/******/ (function(modules) { // webpackBootstrap /******/ function hotDisposeChunk(chunkId) { /******/ delete installedChunks[chunkId]; /******/ } /******/ var parentHotUpdateCallback = this["webpackHotUpdate"]; /******/ this["webpackHotUpdate"] = /******/ function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars /******/ hotAddUpdateChunk(chunkId, moreModules); /******/ if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); /******/ } ; /******/ /******/ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars /******/ var head = document.getElementsByTagName("head")[0]; /******/ var script = document.createElement("script"); /******/ script.type = "text/javascript"; /******/ script.charset = "utf-8"; /******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js"; /******/ ; /******/ head.appendChild(script); /******/ } /******/ /******/ function hotDownloadManifest(requestTimeout) { // eslint-disable-line no-unused-vars /******/ requestTimeout = requestTimeout || 10000; /******/ return new Promise(function(resolve, reject) { /******/ if(typeof XMLHttpRequest === "undefined") /******/ return reject(new Error("No browser support")); /******/ try { /******/ var request = new XMLHttpRequest(); /******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json"; /******/ request.open("GET", requestPath, true); /******/ request.timeout = requestTimeout; /******/ request.send(null); /******/ } catch(err) { /******/ return reject(err); /******/ } /******/ request.onreadystatechange = function() { /******/ if(request.readyState !== 4) return; /******/ if(request.status === 0) { /******/ // timeout /******/ reject(new Error("Manifest request to " + requestPath + " timed out.")); /******/ } else if(request.status === 404) { /******/ // no update available /******/ resolve(); /******/ } else if(request.status !== 200 && request.status !== 304) { /******/ // other failure /******/ reject(new Error("Manifest request to " + requestPath + " failed.")); /******/ } else { /******/ // success /******/ try { /******/ var update = JSON.parse(request.responseText); /******/ } catch(e) { /******/ reject(e); /******/ return; /******/ } /******/ resolve(update); /******/ } /******/ }; /******/ }); /******/ } /******/ /******/ /******/ /******/ var hotApplyOnUpdate = true; /******/ var hotCurrentHash = "00f63948bf045ef6842f"; // eslint-disable-line no-unused-vars /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; // eslint-disable-line no-unused-vars /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars /******/ var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars /******/ /******/ function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars /******/ var me = installedModules[moduleId]; /******/ if(!me) return __webpack_require__; /******/ var fn = function(request) { /******/ if(me.hot.active) { /******/ if(installedModules[request]) { /******/ if(installedModules[request].parents.indexOf(moduleId) < 0) /******/ installedModules[request].parents.push(moduleId); /******/ } else { /******/ hotCurrentParents = [moduleId]; /******/ hotCurrentChildModule = request; /******/ } /******/ if(me.children.indexOf(request) < 0) /******/ me.children.push(request); /******/ } else { /******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId); /******/ hotCurrentParents = []; /******/ } /******/ return __webpack_require__(request); /******/ }; /******/ var ObjectFactory = function ObjectFactory(name) { /******/ return { /******/ configurable: true, /******/ enumerable: true, /******/ get: function() { /******/ return __webpack_require__[name]; /******/ }, /******/ set: function(value) { /******/ __webpack_require__[name] = value; /******/ } /******/ }; /******/ }; /******/ for(var name in __webpack_require__) { /******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name) && name !== "e") { /******/ Object.defineProperty(fn, name, ObjectFactory(name)); /******/ } /******/ } /******/ fn.e = function(chunkId) { /******/ if(hotStatus === "ready") /******/ hotSetStatus("prepare"); /******/ hotChunksLoading++; /******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) { /******/ finishChunkLoading(); /******/ throw err; /******/ }); /******/ /******/ function finishChunkLoading() { /******/ hotChunksLoading--; /******/ if(hotStatus === "prepare") { /******/ if(!hotWaitingFilesMap[chunkId]) { /******/ hotEnsureUpdateChunk(chunkId); /******/ } /******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) { /******/ hotUpdateDownloaded(); /******/ } /******/ } /******/ } /******/ }; /******/ return fn; /******/ } /******/ /******/ function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars /******/ var hot = { /******/ // private stuff /******/ _acceptedDependencies: {}, /******/ _declinedDependencies: {}, /******/ _selfAccepted: false, /******/ _selfDeclined: false, /******/ _disposeHandlers: [], /******/ _main: hotCurrentChildModule !== moduleId, /******/ /******/ // Module API /******/ active: true, /******/ accept: function(dep, callback) { /******/ if(typeof dep === "undefined") /******/ hot._selfAccepted = true; /******/ else if(typeof dep === "function") /******/ hot._selfAccepted = dep; /******/ else if(typeof dep === "object") /******/ for(var i = 0; i < dep.length; i++) /******/ hot._acceptedDependencies[dep[i]] = callback || function() {}; /******/ else /******/ hot._acceptedDependencies[dep] = callback || function() {}; /******/ }, /******/ decline: function(dep) { /******/ if(typeof dep === "undefined") /******/ hot._selfDeclined = true; /******/ else if(typeof dep === "object") /******/ for(var i = 0; i < dep.length; i++) /******/ hot._declinedDependencies[dep[i]] = true; /******/ else /******/ hot._declinedDependencies[dep] = true; /******/ }, /******/ dispose: function(callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ addDisposeHandler: function(callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ removeDisposeHandler: function(callback) { /******/ var idx = hot._disposeHandlers.indexOf(callback); /******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1); /******/ }, /******/ /******/ // Management API /******/ check: hotCheck, /******/ apply: hotApply, /******/ status: function(l) { /******/ if(!l) return hotStatus; /******/ hotStatusHandlers.push(l); /******/ }, /******/ addStatusHandler: function(l) { /******/ hotStatusHandlers.push(l); /******/ }, /******/ removeStatusHandler: function(l) { /******/ var idx = hotStatusHandlers.indexOf(l); /******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1); /******/ }, /******/ /******/ //inherit from previous dispose call /******/ data: hotCurrentModuleData[moduleId] /******/ }; /******/ hotCurrentChildModule = undefined; /******/ return hot; /******/ } /******/ /******/ var hotStatusHandlers = []; /******/ var hotStatus = "idle"; /******/ /******/ function hotSetStatus(newStatus) { /******/ hotStatus = newStatus; /******/ for(var i = 0; i < hotStatusHandlers.length; i++) /******/ hotStatusHandlers[i].call(null, newStatus); /******/ } /******/ /******/ // while downloading /******/ var hotWaitingFiles = 0; /******/ var hotChunksLoading = 0; /******/ var hotWaitingFilesMap = {}; /******/ var hotRequestedFilesMap = {}; /******/ var hotAvailableFilesMap = {}; /******/ var hotDeferred; /******/ /******/ // The update info /******/ var hotUpdate, hotUpdateNewHash; /******/ /******/ function toModuleId(id) { /******/ var isNumber = (+id) + "" === id; /******/ return isNumber ? +id : id; /******/ } /******/ /******/ function hotCheck(apply) { /******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status"); /******/ hotApplyOnUpdate = apply; /******/ hotSetStatus("check"); /******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) { /******/ if(!update) { /******/ hotSetStatus("idle"); /******/ return null; /******/ } /******/ hotRequestedFilesMap = {}; /******/ hotWaitingFilesMap = {}; /******/ hotAvailableFilesMap = update.c; /******/ hotUpdateNewHash = update.h; /******/ /******/ hotSetStatus("prepare"); /******/ var promise = new Promise(function(resolve, reject) { /******/ hotDeferred = { /******/ resolve: resolve, /******/ reject: reject /******/ }; /******/ }); /******/ hotUpdate = {}; /******/ var chunkId = 0; /******/ { // eslint-disable-line no-lone-blocks /******/ /*globals chunkId */ /******/ hotEnsureUpdateChunk(chunkId); /******/ } /******/ if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) { /******/ hotUpdateDownloaded(); /******/ } /******/ return promise; /******/ }); /******/ } /******/ /******/ function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars /******/ if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) /******/ return; /******/ hotRequestedFilesMap[chunkId] = false; /******/ for(var moduleId in moreModules) { /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { /******/ hotUpdate[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) { /******/ hotUpdateDownloaded(); /******/ } /******/ } /******/ /******/ function hotEnsureUpdateChunk(chunkId) { /******/ if(!hotAvailableFilesMap[chunkId]) { /******/ hotWaitingFilesMap[chunkId] = true; /******/ } else { /******/ hotRequestedFilesMap[chunkId] = true; /******/ hotWaitingFiles++; /******/ hotDownloadUpdateChunk(chunkId); /******/ } /******/ } /******/ /******/ function hotUpdateDownloaded() { /******/ hotSetStatus("ready"); /******/ var deferred = hotDeferred; /******/ hotDeferred = null; /******/ if(!deferred) return; /******/ if(hotApplyOnUpdate) { /******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to /******/ // avoid triggering uncaught exception warning in Chrome. /******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666 /******/ Promise.resolve().then(function() { /******/ return hotApply(hotApplyOnUpdate); /******/ }).then( /******/ function(result) { /******/ deferred.resolve(result); /******/ }, /******/ function(err) { /******/ deferred.reject(err); /******/ } /******/ ); /******/ } else { /******/ var outdatedModules = []; /******/ for(var id in hotUpdate) { /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { /******/ outdatedModules.push(toModuleId(id)); /******/ } /******/ } /******/ deferred.resolve(outdatedModules); /******/ } /******/ } /******/ /******/ function hotApply(options) { /******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status"); /******/ options = options || {}; /******/ /******/ var cb; /******/ var i; /******/ var j; /******/ var module; /******/ var moduleId; /******/ /******/ function getAffectedStuff(updateModuleId) { /******/ var outdatedModules = [updateModuleId]; /******/ var outdatedDependencies = {}; /******/ /******/ var queue = outdatedModules.slice().map(function(id) { /******/ return { /******/ chain: [id], /******/ id: id /******/ }; /******/ }); /******/ while(queue.length > 0) { /******/ var queueItem = queue.pop(); /******/ var moduleId = queueItem.id; /******/ var chain = queueItem.chain; /******/ module = installedModules[moduleId]; /******/ if(!module || module.hot._selfAccepted) /******/ continue; /******/ if(module.hot._selfDeclined) { /******/ return { /******/ type: "self-declined", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ if(module.hot._main) { /******/ return { /******/ type: "unaccepted", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ for(var i = 0; i < module.parents.length; i++) { /******/ var parentId = module.parents[i]; /******/ var parent = installedModules[parentId]; /******/ if(!parent) continue; /******/ if(parent.hot._declinedDependencies[moduleId]) { /******/ return { /******/ type: "declined", /******/ chain: chain.concat([parentId]), /******/ moduleId: moduleId, /******/ parentId: parentId /******/ }; /******/ } /******/ if(outdatedModules.indexOf(parentId) >= 0) continue; /******/ if(parent.hot._acceptedDependencies[moduleId]) { /******/ if(!outdatedDependencies[parentId]) /******/ outdatedDependencies[parentId] = []; /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); /******/ continue; /******/ } /******/ delete outdatedDependencies[parentId]; /******/ outdatedModules.push(parentId); /******/ queue.push({ /******/ chain: chain.concat([parentId]), /******/ id: parentId /******/ }); /******/ } /******/ } /******/ /******/ return { /******/ type: "accepted", /******/ moduleId: updateModuleId, /******/ outdatedModules: outdatedModules, /******/ outdatedDependencies: outdatedDependencies /******/ }; /******/ } /******/ /******/ function addAllToSet(a, b) { /******/ for(var i = 0; i < b.length; i++) { /******/ var item = b[i]; /******/ if(a.indexOf(item) < 0) /******/ a.push(item); /******/ } /******/ } /******/ /******/ // at begin all updates modules are outdated /******/ // the "outdated" status can propagate to parents if they don't accept the children /******/ var outdatedDependencies = {}; /******/ var outdatedModules = []; /******/ var appliedUpdate = {}; /******/ /******/ var warnUnexpectedRequire = function warnUnexpectedRequire() { /******/ console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module"); /******/ }; /******/ /******/ for(var id in hotUpdate) { /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { /******/ moduleId = toModuleId(id); /******/ var result; /******/ if(hotUpdate[id]) { /******/ result = getAffectedStuff(moduleId); /******/ } else { /******/ result = { /******/ type: "disposed", /******/ moduleId: id /******/ }; /******/ } /******/ var abortError = false; /******/ var doApply = false; /******/ var doDispose = false; /******/ var chainInfo = ""; /******/ if(result.chain) { /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); /******/ } /******/ switch(result.type) { /******/ case "self-declined": /******/ if(options.onDeclined) /******/ options.onDeclined(result); /******/ if(!options.ignoreDeclined) /******/ abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo); /******/ break; /******/ case "declined": /******/ if(options.onDeclined) /******/ options.onDeclined(result); /******/ if(!options.ignoreDeclined) /******/ abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo); /******/ break; /******/ case "unaccepted": /******/ if(options.onUnaccepted) /******/ options.onUnaccepted(result); /******/ if(!options.ignoreUnaccepted) /******/ abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo); /******/ break; /******/ case "accepted": /******/ if(options.onAccepted) /******/ options.onAccepted(result); /******/ doApply = true; /******/ break; /******/ case "disposed": /******/ if(options.onDisposed) /******/ options.onDisposed(result); /******/ doDispose = true; /******/ break; /******/ default: /******/ throw new Error("Unexception type " + result.type); /******/ } /******/ if(abortError) { /******/ hotSetStatus("abort"); /******/ return Promise.reject(abortError); /******/ } /******/ if(doApply) { /******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; /******/ addAllToSet(outdatedModules, result.outdatedModules); /******/ for(moduleId in result.outdatedDependencies) { /******/ if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) { /******/ if(!outdatedDependencies[moduleId]) /******/ outdatedDependencies[moduleId] = []; /******/ addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]); /******/ } /******/ } /******/ } /******/ if(doDispose) { /******/ addAllToSet(outdatedModules, [result.moduleId]); /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; /******/ } /******/ } /******/ } /******/ /******/ // Store self accepted outdated modules to require them later by the module system /******/ var outdatedSelfAcceptedModules = []; /******/ for(i = 0; i < outdatedModules.length; i++) { /******/ moduleId = outdatedModules[i]; /******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted) /******/ outdatedSelfAcceptedModules.push({ /******/ module: moduleId, /******/ errorHandler: installedModules[moduleId].hot._selfAccepted /******/ }); /******/ } /******/ /******/ // Now in "dispose" phase /******/ hotSetStatus("dispose"); /******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { /******/ if(hotAvailableFilesMap[chunkId] === false) { /******/ hotDisposeChunk(chunkId); /******/ } /******/ }); /******/ /******/ var idx; /******/ var queue = outdatedModules.slice(); /******/ while(queue.length > 0) { /******/ moduleId = queue.pop(); /******/ module = installedModules[moduleId]; /******/ if(!module) continue; /******/ /******/ var data = {}; /******/ /******/ // Call dispose handlers /******/ var disposeHandlers = module.hot._disposeHandlers; /******/ for(j = 0; j < disposeHandlers.length; j++) { /******/ cb = disposeHandlers[j]; /******/ cb(data); /******/ } /******/ hotCurrentModuleData[moduleId] = data; /******/ /******/ // disable module (this disables requires from this module) /******/ module.hot.active = false; /******/ /******/ // remove module from cache /******/ delete installedModules[moduleId]; /******/ /******/ // when disposing there is no need to call dispose handler /******/ delete outdatedDependencies[moduleId]; /******/ /******/ // remove "parents" references from all children /******/ for(j = 0; j < module.children.length; j++) { /******/ var child = installedModules[module.children[j]]; /******/ if(!child) continue; /******/ idx = child.parents.indexOf(moduleId); /******/ if(idx >= 0) { /******/ child.parents.splice(idx, 1); /******/ } /******/ } /******/ } /******/ /******/ // remove outdated dependency from module children /******/ var dependency; /******/ var moduleOutdatedDependencies; /******/ for(moduleId in outdatedDependencies) { /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { /******/ module = installedModules[moduleId]; /******/ if(module) { /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; /******/ for(j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ dependency = moduleOutdatedDependencies[j]; /******/ idx = module.children.indexOf(dependency); /******/ if(idx >= 0) module.children.splice(idx, 1); /******/ } /******/ } /******/ } /******/ } /******/ /******/ // Not in "apply" phase /******/ hotSetStatus("apply"); /******/ /******/ hotCurrentHash = hotUpdateNewHash; /******/ /******/ // insert new code /******/ for(moduleId in appliedUpdate) { /******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { /******/ modules[moduleId] = appliedUpdate[moduleId]; /******/ } /******/ } /******/ /******/ // call accept handlers /******/ var error = null; /******/ for(moduleId in outdatedDependencies) { /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { /******/ module = installedModules[moduleId]; /******/ if(module) { /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; /******/ var callbacks = []; /******/ for(i = 0; i < moduleOutdatedDependencies.length; i++) { /******/ dependency = moduleOutdatedDependencies[i]; /******/ cb = module.hot._acceptedDependencies[dependency]; /******/ if(cb) { /******/ if(callbacks.indexOf(cb) >= 0) continue; /******/ callbacks.push(cb); /******/ } /******/ } /******/ for(i = 0; i < callbacks.length; i++) { /******/ cb = callbacks[i]; /******/ try { /******/ cb(moduleOutdatedDependencies); /******/ } catch(err) { /******/ if(options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-errored", /******/ moduleId: moduleId, /******/ dependencyId: moduleOutdatedDependencies[i], /******/ error: err /******/ }); /******/ } /******/ if(!options.ignoreErrored) { /******/ if(!error) /******/ error = err; /******/ } /******/ } /******/ } /******/ } /******/ } /******/ } /******/ /******/ // Load self accepted modules /******/ for(i = 0; i < outdatedSelfAcceptedModules.length; i++) { /******/ var item = outdatedSelfAcceptedModules[i]; /******/ moduleId = item.module; /******/ hotCurrentParents = [moduleId]; /******/ try { /******/ __webpack_require__(moduleId); /******/ } catch(err) { /******/ if(typeof item.errorHandler === "function") { /******/ try { /******/ item.errorHandler(err); /******/ } catch(err2) { /******/ if(options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-error-handler-errored", /******/ moduleId: moduleId, /******/ error: err2, /******/ orginalError: err, // TODO remove in webpack 4 /******/ originalError: err /******/ }); /******/ } /******/ if(!options.ignoreErrored) { /******/ if(!error) /******/ error = err2; /******/ } /******/ if(!error) /******/ error = err; /******/ } /******/ } else { /******/ if(options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-errored", /******/ moduleId: moduleId, /******/ error: err /******/ }); /******/ } /******/ if(!options.ignoreErrored) { /******/ if(!error) /******/ error = err; /******/ } /******/ } /******/ } /******/ } /******/ /******/ // handle errors in accept handlers and self accepted module load /******/ if(error) { /******/ hotSetStatus("fail"); /******/ return Promise.reject(error); /******/ } /******/ /******/ hotSetStatus("idle"); /******/ return new Promise(function(resolve) { /******/ resolve(outdatedModules); /******/ }); /******/ } /******/ /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {}, /******/ hot: hotCreateModule(moduleId), /******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), /******/ children: [] /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // __webpack_hash__ /******/ __webpack_require__.h = function() { return hotCurrentHash; }; /******/ /******/ // Load entry module and return exports /******/ return hotCreateRequire(1)(__webpack_require__.s = 1); /******/ }) /************************************************************************/ /******/ ({ /***/ "./config/polyfills.js": /*!*****************************!*\ !*** ./config/polyfills.js ***! \*****************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; if (typeof Promise === 'undefined') { // Rejection tracking prevents a common issue where React gets into an // inconsistent state due to an error, but it gets swallowed by a Promise, // and the user has no idea what causes React's erratic future behavior. __webpack_require__(/*! promise/lib/rejection-tracking */ "./node_modules/promise/lib/rejection-tracking.js").enable(); window.Promise = __webpack_require__(/*! promise/lib/es6-extensions.js */ "./node_modules/promise/lib/es6-extensions.js"); } // fetch() polyfill for making API calls. __webpack_require__(/*! whatwg-fetch */ "./node_modules/whatwg-fetch/fetch.js"); // Object.assign() is commonly used with React. // It will use the native implementation if it's present and isn't buggy. Object.assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); // In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet. // We don't polyfill it in the browser--this is user's responsibility. if (false) { require('raf').polyfill(global); } /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Analytics.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Analytics.js ***! \******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Providers_AWSPinpointProvider__ = __webpack_require__(/*! ./Providers/AWSPinpointProvider */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__trackers__ = __webpack_require__(/*! ./trackers */ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AnalyticsClass'); var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); var dispatchAnalyticsEvent = function (event, data, message) { __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Hub"].dispatch('analytics', { event: event, data: data, message: message }, 'Analytics', AMPLIFY_SYMBOL); }; var trackers = { pageView: __WEBPACK_IMPORTED_MODULE_2__trackers__["b" /* PageViewTracker */], event: __WEBPACK_IMPORTED_MODULE_2__trackers__["a" /* EventTracker */], session: __WEBPACK_IMPORTED_MODULE_2__trackers__["c" /* SessionTracker */], }; /** * Provide mobile analytics client functions */ var AnalyticsClass = /** @class */ (function () { /** * Initialize Analtyics * @param config - Configuration of the Analytics */ function AnalyticsClass() { this._config = {}; this._pluggables = []; this._disabled = false; this._trackers = {}; this.record = this.record.bind(this); } AnalyticsClass.prototype.getModuleName = function () { return 'Analytics'; }; /** * configure Analytics * @param {Object} config - Configuration of the Analytics */ AnalyticsClass.prototype.configure = function (config) { var _this = this; if (!config) return this._config; logger.debug('configure Analytics', config); var amplifyConfig = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Parser"].parseMobilehubConfig(config); this._config = Object.assign({}, this._config, amplifyConfig.Analytics, config); if (this._config['disabled']) { this._disabled = true; } this._pluggables.forEach(function (pluggable) { // for backward compatibility var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' && !_this._config['AWSPinpoint'] ? _this._config : _this._config[pluggable.getProviderName()]; pluggable.configure(__assign({ disabled: _this._config['disabled'] }, providerConfig)); }); if (this._pluggables.length === 0) { this.addPluggable(new __WEBPACK_IMPORTED_MODULE_1__Providers_AWSPinpointProvider__["a" /* default */]()); } // turn on the autoSessionRecord if not specified if (this._config['autoSessionRecord'] === undefined) { this._config['autoSessionRecord'] = true; } dispatchAnalyticsEvent('configured', null, "The Analytics category has been configured successfully"); logger.debug('current configuration', this._config); return this._config; }; /** * add plugin into Analytics category * @param {Object} pluggable - an instance of the plugin */ AnalyticsClass.prototype.addPluggable = function (pluggable) { if (pluggable && pluggable.getCategory() === 'Analytics') { this._pluggables.push(pluggable); // for backward compatibility var providerConfig = pluggable.getProviderName() === 'AWSPinpoint' && !this._config['AWSPinpoint'] ? this._config : this._config[pluggable.getProviderName()]; var config = __assign({ disabled: this._config['disabled'] }, providerConfig); pluggable.configure(config); return config; } }; /** * Get the plugin object * @param providerName - the name of the plugin */ AnalyticsClass.prototype.getPluggable = function (providerName) { for (var i = 0; i < this._pluggables.length; i += 1) { var pluggable = this._pluggables[i]; if (pluggable.getProviderName() === providerName) { return pluggable; } } logger.debug('No plugin found with providerName', providerName); return null; }; /** * Remove the plugin object * @param providerName - the name of the plugin */ AnalyticsClass.prototype.removePluggable = function (providerName) { var idx = 0; while (idx < this._pluggables.length) { if (this._pluggables[idx].getProviderName() === providerName) { break; } idx += 1; } if (idx === this._pluggables.length) { logger.debug('No plugin found with providerName', providerName); return; } else { this._pluggables.splice(idx, idx + 1); return; } }; /** * stop sending events */ AnalyticsClass.prototype.disable = function () { this._disabled = true; }; /** * start sending events */ AnalyticsClass.prototype.enable = function () { this._disabled = false; }; /** * Record Session start * @return - A promise which resolves if buffer doesn't overflow */ AnalyticsClass.prototype.startSession = function (provider) { return __awaiter(this, void 0, void 0, function () { var params; return __generator(this, function (_a) { params = { event: { name: '_session.start' }, provider: provider }; return [2 /*return*/, this._sendEvent(params)]; }); }); }; /** * Record Session stop * @return - A promise which resolves if buffer doesn't overflow */ AnalyticsClass.prototype.stopSession = function (provider) { return __awaiter(this, void 0, void 0, function () { var params; return __generator(this, function (_a) { params = { event: { name: '_session.stop' }, provider: provider }; return [2 /*return*/, this._sendEvent(params)]; }); }); }; /** * Record one analytic event and send it to Pinpoint * @param {String} name - The name of the event * @param {Object} [attributs] - Attributes of the event * @param {Object} [metrics] - Event metrics * @return - A promise which resolves if buffer doesn't overflow */ AnalyticsClass.prototype.record = function (event, provider, metrics) { return __awaiter(this, void 0, void 0, function () { var errMsg, params; return __generator(this, function (_a) { if (!this.isAnalyticsConfigured()) { errMsg = 'Analytics has not been configured'; logger.debug(errMsg); return [2 /*return*/, Promise.reject(new Error(errMsg))]; } params = null; // this is just for compatibility, going to be deprecated if (typeof event === 'string') { params = { event: { name: event, attributes: provider, metrics: metrics, }, provider: 'AWSPinpoint', }; } else { params = { event: event, provider: provider }; } return [2 /*return*/, this._sendEvent(params)]; }); }); }; AnalyticsClass.prototype.updateEndpoint = function (attrs, provider) { return __awaiter(this, void 0, void 0, function () { var event; return __generator(this, function (_a) { event = Object.assign({ name: '_update_endpoint' }, attrs); return [2 /*return*/, this.record(event, provider)]; }); }); }; AnalyticsClass.prototype._sendEvent = function (params) { var _this = this; if (!this.isAnalyticsConfigured()) { var errMsg = 'Analytics has not been configured'; logger.debug(errMsg); return Promise.reject(new Error(errMsg)); } if (this._disabled) { logger.debug('Analytics has been disabled'); return Promise.resolve(); } var provider = params.provider ? params.provider : 'AWSPinpoint'; return new Promise(function (resolve, reject) { _this._pluggables.forEach(function (pluggable) { if (pluggable.getProviderName() === provider) { pluggable.record(params, { resolve: resolve, reject: reject }); } }); }); }; AnalyticsClass.prototype.autoTrack = function (trackerType, opts) { if (!trackers[trackerType]) { logger.debug('invalid tracker type'); return; } // to sync up two different configuration ways of auto session tracking if (trackerType === 'session') { this._config['autoSessionRecord'] = opts['enable']; } var tracker = this._trackers[trackerType]; if (!tracker) { this._trackers[trackerType] = new trackers[trackerType](this.record, opts); } else { tracker.configure(opts); } }; AnalyticsClass.prototype.isAnalyticsConfigured = function () { return this._config && Object.entries(this._config).length > 0; }; return AnalyticsClass; }()); /* harmony default export */ __webpack_exports__["a"] = (AnalyticsClass); //# sourceMappingURL=Analytics.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSKinesisProvider.js": /*!*************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSKinesisProvider.js ***! \*************************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_kinesis__ = __webpack_require__(/*! aws-sdk/clients/kinesis */ "./node_modules/aws-sdk/clients/kinesis.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_kinesis___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_kinesis__); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AWSKineisProvider'); // events buffer var BUFFER_SIZE = 1000; var FLUSH_SIZE = 100; var FLUSH_INTERVAL = 5 * 1000; // 5s var RESEND_LIMIT = 5; var AWSKinesisProvider = /** @class */ (function () { function AWSKinesisProvider(config) { this._buffer = []; this._config = config ? config : {}; this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE; this._config.flushSize = this._config.flushSize || FLUSH_SIZE; this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL; this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT; // events batch var that = this; // flush event buffer this._setupTimer(); } AWSKinesisProvider.prototype._setupTimer = function () { var _this = this; if (this._timer) { clearInterval(this._timer); } var _a = this._config, flushSize = _a.flushSize, flushInterval = _a.flushInterval; var that = this; this._timer = setInterval(function () { var size = _this._buffer.length < flushSize ? _this._buffer.length : flushSize; var events = []; for (var i = 0; i < size; i += 1) { var params = _this._buffer.shift(); events.push(params); } that._sendFromBuffer(events); }, flushInterval); }; /** * get the category of the plugin */ AWSKinesisProvider.prototype.getCategory = function () { return 'Analytics'; }; /** * get provider name of the plugin */ AWSKinesisProvider.prototype.getProviderName = function () { return 'AWSKinesis'; }; /** * configure the plugin * @param {Object} config - configuration */ AWSKinesisProvider.prototype.configure = function (config) { logger.debug('configure Analytics', config); var conf = config ? config : {}; this._config = Object.assign({}, this._config, conf); this._setupTimer(); return this._config; }; /** * record an event * @param {Object} params - the params of an event */ AWSKinesisProvider.prototype.record = function (params) { return __awaiter(this, void 0, void 0, function () { var credentials; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._getCredentials()]; case 1: credentials = _a.sent(); if (!credentials) return [2 /*return*/, Promise.resolve(false)]; Object.assign(params, { config: this._config, credentials: credentials }); return [2 /*return*/, this._putToBuffer(params)]; } }); }); }; AWSKinesisProvider.prototype.updateEndpoint = function (params) { logger.debug('updateEndpoint is not implemented in Kinesis provider'); return Promise.resolve(true); }; /** * @private * @param params - params for the event recording * Put events into buffer */ AWSKinesisProvider.prototype._putToBuffer = function (params) { if (this._buffer.length < BUFFER_SIZE) { this._buffer.push(params); return Promise.resolve(true); } else { logger.debug('exceed analytics events buffer size'); return Promise.reject(false); } }; AWSKinesisProvider.prototype._sendFromBuffer = function (events) { var _this = this; // collapse events by credentials // events = [ {params} ] var eventsGroups = []; var preCred = null; var group = []; for (var i = 0; i < events.length; i += 1) { var cred = events[i].credentials; if (i === 0) { group.push(events[i]); preCred = cred; } else { if (cred.sessionToken === preCred.sessionToken && cred.identityId === preCred.identityId) { logger.debug('no change for cred, put event in the same group'); group.push(events[i]); } else { eventsGroups.push(group); group = []; group.push(events[i]); preCred = cred; } } } eventsGroups.push(group); eventsGroups.map(function (evts) { _this._sendEvents(evts); }); }; AWSKinesisProvider.prototype._sendEvents = function (group) { var _this = this; if (group.length === 0) { // logger.debug('events array is empty, directly return'); return; } var _a = group[0], config = _a.config, credentials = _a.credentials; var initClients = this._init(config, credentials); if (!initClients) return false; var records = {}; group.map(function (params) { // spit by streamName var evt = params.event; var streamName = evt.streamName; if (records[streamName] === undefined) { records[streamName] = []; } var Data = JSON.stringify(evt.data); var PartitionKey = evt.partitionKey || 'partition-' + credentials.identityId; var record = { Data: Data, PartitionKey: PartitionKey }; records[streamName].push(record); }); Object.keys(records).map(function (streamName) { logger.debug('putting records to kinesis with records', records[streamName]); _this._kinesis.putRecords({ Records: records[streamName], StreamName: streamName, }, function (err, data) { if (err) logger.debug('Failed to upload records to Kinesis', err); else logger.debug('Upload records to stream', streamName); }); }); }; AWSKinesisProvider.prototype._init = function (config, credentials) { logger.debug('init clients'); if (this._kinesis && this._config.credentials && this._config.credentials.sessionToken === credentials.sessionToken && this._config.credentials.identityId === credentials.identityId) { logger.debug('no change for analytics config, directly return from init'); return true; } this._config.credentials = credentials; var region = config.region; logger.debug('initialize kinesis with credentials', credentials); this._kinesis = new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_kinesis__({ apiVersion: '2013-12-02', region: region, credentials: credentials, }); return true; }; /** * @private * check if current credentials exists */ AWSKinesisProvider.prototype._getCredentials = function () { var that = this; return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].get() .then(function (credentials) { if (!credentials) return null; logger.debug('set credentials for analytics', that._config.credentials); return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].shear(credentials); }) .catch(function (err) { logger.debug('ensure credentials error', err); return null; }); }; return AWSKinesisProvider; }()); /* harmony default export */ __webpack_exports__["a"] = (AWSKinesisProvider); //# sourceMappingURL=AWSKinesisProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js": /*!**************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js ***! \**************************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_mobileanalytics__ = __webpack_require__(/*! aws-sdk/clients/mobileanalytics */ "./node_modules/aws-sdk/clients/mobileanalytics.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_mobileanalytics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_mobileanalytics__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_aws_sdk_clients_pinpoint__ = __webpack_require__(/*! aws-sdk/clients/pinpoint */ "./node_modules/aws-sdk/clients/pinpoint.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_aws_sdk_clients_pinpoint___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_aws_sdk_clients_pinpoint__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__ = __webpack_require__(/*! @aws-amplify/cache */ "./node_modules/@aws-amplify/cache/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_uuid__ = __webpack_require__(/*! uuid */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_uuid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_uuid__); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); var dispatchAnalyticsEvent = function (event, data) { __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Hub"].dispatch('analytics', { event: event, data: data }, 'Analytics', AMPLIFY_SYMBOL); }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AWSPinpointProvider'); var RETRYABLE_CODES = [429, 500]; var ACCEPTED_CODES = [202]; var MOBILE_SERVICE_NAME = 'mobiletargeting'; var BEACON_SUPPORTED = navigator && typeof navigator.sendBeacon === 'function'; // events buffer var BUFFER_SIZE = 1000; var FLUSH_SIZE = 100; var FLUSH_INTERVAL = 5 * 1000; // 5s var RESEND_LIMIT = 5; // params: { event: {name: , .... }, timeStamp, config, resendLimit } var AWSPinpointProvider = /** @class */ (function () { function AWSPinpointProvider(config) { this._endpointGenerating = true; this._buffer = []; this._config = config ? config : {}; this._config.bufferSize = this._config.bufferSize || BUFFER_SIZE; this._config.flushSize = this._config.flushSize || FLUSH_SIZE; this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL; this._config.resendLimit = this._config.resendLimit || RESEND_LIMIT; this._clientInfo = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ClientDevice"].clientInfo(); } AWSPinpointProvider.prototype._setupTimer = function () { var _this = this; if (this._timer) { clearInterval(this._timer); } var _a = this._config, flushSize = _a.flushSize, flushInterval = _a.flushInterval; var that = this; this._timer = setInterval(function () { var size = _this._buffer.length < flushSize ? _this._buffer.length : flushSize; for (var i = 0; i < size; i += 1) { var _a = _this._buffer.shift(), params = _a.params, handlers = _a.handlers; that._send(params, handlers); // If this is the first request sent by Analytics module, we should stop sending remaining requests // to prevent race condition of updating one endpoint when it's being created in the backend if (_this._endpointGenerating) break; } }, flushInterval); }; /** * @private * @param params - params for the event recording * Put events into buffer */ AWSPinpointProvider.prototype._putToBuffer = function (params, handlers) { var bufferSize = this._config.bufferSize; if (this._buffer.length < bufferSize) { this._buffer.push({ params: params, handlers: handlers }); } else { logger.debug('exceed analytics events buffer size'); return handlers.reject(new Error('Exceed the size of analytics events buffer')); } }; /** * get the category of the plugin */ AWSPinpointProvider.prototype.getCategory = function () { return AWSPinpointProvider.category; }; /** * get provider name of the plugin */ AWSPinpointProvider.prototype.getProviderName = function () { return AWSPinpointProvider.providerName; }; /** * configure the plugin * @param {Object} config - configuration */ AWSPinpointProvider.prototype.configure = function (config) { var _this = this; logger.debug('configure Analytics', config); var conf = config ? config : {}; this._config = Object.assign({}, this._config, conf); if (this._config['appId'] && !this._config['disabled']) { if (!this._config['endpointId']) { var cacheKey = this.getProviderName() + '_' + this._config['appId']; this._getEndpointId(cacheKey) .then(function (endpointId) { logger.debug('setting endpoint id from the cache', endpointId); _this._config['endpointId'] = endpointId; dispatchAnalyticsEvent('pinpointProvider_configured', null); }) .catch(function (e) { logger.debug('Failed to generate endpointId', e); }); } else { dispatchAnalyticsEvent('pinpointProvider_configured', null); } this._setupTimer(); } else { if (this._timer) { clearInterval(this._timer); } } return this._config; }; /** * record an event * @param {Object} params - the params of an event */ AWSPinpointProvider.prototype.record = function (params, handlers) { return __awaiter(this, void 0, void 0, function () { var credentials, timestamp; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._getCredentials()]; case 1: credentials = _a.sent(); if (!credentials || !this._config['appId'] || !this._config['region']) { logger.debug('cannot send events without credentials, applicationId or region'); return [2 /*return*/, handlers.reject(new Error('No credentials, applicationId or region'))]; } timestamp = new Date().getTime(); // attach the session and eventId this._generateSession(params); params.event.eventId = Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); Object.assign(params, { timestamp: timestamp, config: this._config, credentials: credentials }); if (params.event.immediate) { return [2 /*return*/, this._send(params, handlers)]; } else { this._putToBuffer(params, handlers); } return [2 /*return*/]; } }); }); }; AWSPinpointProvider.prototype._generateSession = function (params) { this._sessionId = this._sessionId || Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); var event = params.event; switch (event.name) { case '_session.start': // refresh the session id and session start time this._sessionStartTimestamp = new Date().getTime(); this._sessionId = Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); event.session = { Id: this._sessionId, StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(), }; break; case '_session.stop': var stopTimestamp = new Date().getTime(); this._sessionStartTimestamp = this._sessionStartTimestamp || new Date().getTime(); this._sessionId = this._sessionId || Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); event.session = { Id: this._sessionId, Duration: stopTimestamp - this._sessionStartTimestamp, StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(), StopTimestamp: new Date(stopTimestamp).toISOString(), }; this._sessionId = undefined; this._sessionStartTimestamp = undefined; break; default: this._sessionStartTimestamp = this._sessionStartTimestamp || new Date().getTime(); this._sessionId = this._sessionId || Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); event.session = { Id: this._sessionId, StartTimestamp: new Date(this._sessionStartTimestamp).toISOString(), }; break; } }; AWSPinpointProvider.prototype._send = function (params, handlers) { return __awaiter(this, void 0, void 0, function () { var event, config; return __generator(this, function (_a) { event = params.event, config = params.config; switch (event.name) { case '_update_endpoint': return [2 /*return*/, this._updateEndpoint(params, handlers)]; case '_session.stop': return [2 /*return*/, this._pinpointSendStopSession(params, handlers)]; default: return [2 /*return*/, this._record(params, handlers)]; } return [2 /*return*/]; }); }); }; AWSPinpointProvider.prototype._generateBatchItemContext = function (params) { var event = params.event, timestamp = params.timestamp, config = params.config, credentials = params.credentials; var name = event.name, attributes = event.attributes, metrics = event.metrics, eventId = event.eventId, session = event.session; var appId = config.appId, endpointId = config.endpointId; var endpointContext = {}; var eventParams = { ApplicationId: appId, EventsRequest: { BatchItem: {}, }, }; eventParams.EventsRequest.BatchItem[endpointId] = {}; var endpointObj = eventParams.EventsRequest.BatchItem[endpointId]; endpointObj['Endpoint'] = endpointContext; endpointObj['Events'] = {}; endpointObj['Events'][eventId] = { EventType: name, Timestamp: new Date(timestamp).toISOString(), Attributes: attributes, Metrics: metrics, Session: session, }; return eventParams; }; AWSPinpointProvider.prototype._pinpointPutEvents = function (params, handlers) { return __awaiter(this, void 0, void 0, function () { var eventId, endpointId, eventParams, request; var _this = this; return __generator(this, function (_a) { eventId = params.event.eventId, endpointId = params.config.endpointId; eventParams = this._generateBatchItemContext(params); request = this.pinpointClient.putEvents(eventParams); // in order to keep backward compatiblity // we are using a legacy api: /apps/{appid}/events/legacy // so that users don't need to update their IAM Policy // will use the formal one in the next break release request.on('build', function () { request.httpRequest.path = request.httpRequest.path + '/legacy'; }); request.send(function (err, data) { if (err) { logger.error('record event failed. ', err); logger.warn('If you have not updated your Pinpoint IAM Policy' + ' with the Action: "mobiletargeting:PutEvents" yet, please do it.' + ' This action is not necessary for now' + ' but in order to avoid breaking changes in the future,' + ' please update it as soon as possible.'); return handlers.reject(err); } else { var _a = endpointId, _b = eventId, _c = data.EventsResponse.Results[_a].EventsItemResponse[_b], StatusCode = _c.StatusCode, Message = _c.Message; if (ACCEPTED_CODES.includes(StatusCode)) { _this._endpointGenerating = false; logger.debug('record event success. ', data); return handlers.resolve(data); } else { if (RETRYABLE_CODES.includes(StatusCode)) { _this._retry(params, handlers); } else { logger.error("Event " + eventId + " is not accepted, the error is " + Message); return handlers.reject(data); } } } }); return [2 /*return*/]; }); }); }; AWSPinpointProvider.prototype._pinpointSendStopSession = function (params, handlers) { if (!BEACON_SUPPORTED) { this._record(params, handlers); return; } var eventParams = this._generateBatchItemContext(params); var region = this._config.region; var ApplicationId = eventParams.ApplicationId, EventsRequest = eventParams.EventsRequest; var accessInfo = { secret_key: this._config.credentials.secretAccessKey, access_key: this._config.credentials.accessKeyId, session_token: this._config.credentials.sessionToken, }; var url = "https://pinpoint." + region + ".amazonaws.com/v1/apps/" + ApplicationId + "/events"; var body = JSON.stringify(EventsRequest); var method = 'POST'; var request = { url: url, body: body, method: method, }; var serviceInfo = { region: region, service: MOBILE_SERVICE_NAME }; var requestUrl = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Signer"].signUrl(request, accessInfo, serviceInfo, null); var success = navigator.sendBeacon(requestUrl, body); if (success) { return handlers.resolve('sendBeacon success'); } return handlers.reject('sendBeacon failure'); }; AWSPinpointProvider.prototype._retry = function (params, handlers) { var resendLimit = params.config.resendLimit; // For backward compatibility params.resendLimit = typeof params.resendLimit === 'number' ? params.resendLimit : resendLimit; if (params.resendLimit-- > 0) { logger.debug("resending event " + params.eventName + " with " + params.resendLimit + " retry times left"); this._putToBuffer(params, handlers); } else { logger.debug("retry times used up for event " + params.eventName); } }; AWSPinpointProvider.prototype._record = function (params, handlers) { return __awaiter(this, void 0, void 0, function () { var event, timestamp, config, credentials; return __generator(this, function (_a) { event = params.event, timestamp = params.timestamp, config = params.config, credentials = params.credentials; this._initClients(config, credentials); return [2 /*return*/, this._pinpointPutEvents(params, handlers)]; }); }); }; AWSPinpointProvider.prototype._updateEndpoint = function (params, handlers) { return __awaiter(this, void 0, void 0, function () { var timestamp, config, credentials, event, appId, region, endpointId, request, update_params, that; var _this = this; return __generator(this, function (_a) { timestamp = params.timestamp, config = params.config, credentials = params.credentials, event = params.event; appId = config.appId, region = config.region, endpointId = config.endpointId; this._initClients(config, credentials); request = this._endpointRequest(config, __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].transferKeyToLowerCase(event, [], ['attributes', 'userAttributes', 'Attributes', 'UserAttributes'])); update_params = { ApplicationId: appId, EndpointId: endpointId, EndpointRequest: request, }; that = this; logger.debug('updateEndpoint with params: ', update_params); that.pinpointClient.updateEndpoint(update_params, function (err, data) { if (err) { logger.debug('updateEndpoint failed', err); if (err.message.startsWith('Exceeded maximum endpoint per user count')) { _this._removeUnusedEndpoints(appId, request.User.UserId) .then(function () { logger.debug('Remove the unused endpoints successfully'); _this._retry(params, handlers); }) .catch(function (e) { logger.warn("Failed to remove unused endpoints with error: " + e); logger.warn("Please ensure you have updated your Pinpoint IAM Policy " + "with the Action: \"mobiletargeting:GetUserEndpoints\" " + "in order to get endpoints info of the user"); return handlers.reject(err); }); } else return handlers.reject(err); } else { logger.debug('updateEndpoint success', data); _this._endpointGenerating = false; return handlers.resolve(data); } }); return [2 /*return*/]; }); }); }; AWSPinpointProvider.prototype._removeUnusedEndpoints = function (appId, userId) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (res, rej) { _this.pinpointClient.getUserEndpoints({ ApplicationId: appId, UserId: userId, }, function (err, data) { if (err) { logger.debug("Failed to get endpoints associated with the userId: " + userId + " with error", err); return rej(err); } var endpoints = data.EndpointsResponse.Item; logger.debug("get endpoints associated with the userId: " + userId + " with data", endpoints); var endpointToBeDeleted = endpoints[0]; for (var i = 1; i < endpoints.length; i++) { var timeStamp1 = Date.parse(endpointToBeDeleted['EffectiveDate']); var timeStamp2 = Date.parse(endpoints[i]['EffectiveDate']); // delete the one with invalid effective date if (isNaN(timeStamp1)) break; if (isNaN(timeStamp2)) { endpointToBeDeleted = endpoints[i]; break; } if (timeStamp2 < timeStamp1) { endpointToBeDeleted = endpoints[i]; } } // update the endpoint's user id with an empty string var update_params = { ApplicationId: appId, EndpointId: endpointToBeDeleted['Id'], EndpointRequest: { User: { UserId: '', }, }, }; _this.pinpointClient.updateEndpoint(update_params, function (err, data) { if (err) { logger.debug('Failed to update the endpoint', err); return rej(err); } logger.debug('The old endpoint is updated with an empty string for user id'); return res(data); }); }); })]; }); }); }; /** * @private * @param config * Init the clients */ AWSPinpointProvider.prototype._initClients = function (config, credentials) { return __awaiter(this, void 0, void 0, function () { var region; return __generator(this, function (_a) { logger.debug('init clients'); if (this.mobileAnalytics && this.pinpointClient && this._config.credentials && this._config.credentials.sessionToken === credentials.sessionToken && this._config.credentials.identityId === credentials.identityId) { logger.debug('no change for aws credentials, directly return from init'); return [2 /*return*/]; } this._config.credentials = credentials; region = config.region; logger.debug('init clients with credentials', credentials); this.mobileAnalytics = new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_mobileanalytics__({ credentials: credentials, region: region }); this.pinpointClient = new __WEBPACK_IMPORTED_MODULE_2_aws_sdk_clients_pinpoint__({ region: region, credentials: credentials }); if (__WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Platform"].isReactNative) { this.pinpointClient.customizeRequests(function (request) { request.on('build', function (req) { req.httpRequest.headers['user-agent'] = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Platform"].userAgent; }); }); } return [2 /*return*/]; }); }); }; AWSPinpointProvider.prototype._getEndpointId = function (cacheKey) { return __awaiter(this, void 0, void 0, function () { var endpointId; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__["default"].getItem(cacheKey)]; case 1: endpointId = _a.sent(); logger.debug('endpointId from cache', endpointId, 'type', typeof endpointId); if (!endpointId) { endpointId = Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(); __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__["default"].setItem(cacheKey, endpointId); } return [2 /*return*/, endpointId]; } }); }); }; /** * EndPoint request * @return {Object} - The request of updating endpoint */ AWSPinpointProvider.prototype._endpointRequest = function (config, event) { var credentials = config.credentials; var clientInfo = this._clientInfo || {}; var clientContext = config.clientContext || {}; // for now we have three different ways for default endpoint configurations // clientInfo // clientContext (deprecated) // config.endpoint var defaultEndpointConfig = config.endpoint || {}; var demographicByClientInfo = { appVersion: clientInfo.appVersion, make: clientInfo.make, model: clientInfo.model, modelVersion: clientInfo.version, platform: clientInfo.platform, }; // for backward compatibility var clientId = clientContext.clientId, appTitle = clientContext.appTitle, appVersionName = clientContext.appVersionName, appVersionCode = clientContext.appVersionCode, appPackageName = clientContext.appPackageName, demographicByClientContext = __rest(clientContext, ["clientId", "appTitle", "appVersionName", "appVersionCode", "appPackageName"]); var channelType = event.address ? clientInfo.platform === 'android' ? 'GCM' : 'APNS' : undefined; var tmp = __assign(__assign(__assign({ channelType: channelType, requestId: Object(__WEBPACK_IMPORTED_MODULE_4_uuid__["v1"])(), effectiveDate: new Date().toISOString() }, defaultEndpointConfig), event), { attributes: __assign(__assign({}, defaultEndpointConfig.attributes), event.attributes), demographic: __assign(__assign(__assign(__assign({}, demographicByClientInfo), demographicByClientContext), defaultEndpointConfig.demographic), event.demographic), location: __assign(__assign({}, defaultEndpointConfig.location), event.location), metrics: __assign(__assign({}, defaultEndpointConfig.metrics), event.metrics), user: { userId: event.userId || defaultEndpointConfig.userId || credentials.identityId, userAttributes: __assign(__assign({}, defaultEndpointConfig.userAttributes), event.userAttributes), } }); // eliminate unnecessary params var userId = tmp.userId, userAttributes = tmp.userAttributes, name = tmp.name, session = tmp.session, eventId = tmp.eventId, immediate = tmp.immediate, ret = __rest(tmp, ["userId", "userAttributes", "name", "session", "eventId", "immediate"]); return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].transferKeyToUpperCase(ret, [], ['metrics', 'userAttributes', 'attributes']); }; /** * @private * check if current credentials exists */ AWSPinpointProvider.prototype._getCredentials = function () { var that = this; return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].get() .then(function (credentials) { if (!credentials) return null; logger.debug('set credentials for analytics', credentials); return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].shear(credentials); }) .catch(function (err) { logger.debug('ensure credentials error', err); return null; }); }; AWSPinpointProvider.category = 'Analytics'; AWSPinpointProvider.providerName = 'AWSPinpoint'; return AWSPinpointProvider; }()); /* harmony default export */ __webpack_exports__["a"] = (AWSPinpointProvider); //# sourceMappingURL=AWSPinpointProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js": /*!*********************************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js ***! \*********************************************************************************************************/ /*! exports provided: MediaAutoTrack */ /*! exports used: MediaAutoTrack */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MediaAutoTrack; }); var HTML5_MEDIA_EVENT; (function (HTML5_MEDIA_EVENT) { HTML5_MEDIA_EVENT["PLAY"] = "play"; HTML5_MEDIA_EVENT["PAUSE"] = "pause"; HTML5_MEDIA_EVENT["ENDED"] = "Ended"; })(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {})); var MEDIA_TYPE; (function (MEDIA_TYPE) { MEDIA_TYPE["IFRAME"] = "IFRAME"; MEDIA_TYPE["VIDEO"] = "VIDEO"; MEDIA_TYPE["AUDIO"] = "AUDIO"; })(MEDIA_TYPE || (MEDIA_TYPE = {})); var EVENT_TYPE; (function (EVENT_TYPE) { EVENT_TYPE["PLAY"] = "Play"; EVENT_TYPE["ENDED"] = "Ended"; EVENT_TYPE["PAUSE"] = "Pause"; EVENT_TYPE["TIME_WATCHED"] = "TimeWatched"; })(EVENT_TYPE || (EVENT_TYPE = {})); var MediaAutoTrack = /** @class */ (function () { function MediaAutoTrack(params, provider) { var _a; this.eventActionMapping = (_a = {}, _a[EVENT_TYPE.ENDED] = this.endedEventAction.bind(this), _a[EVENT_TYPE.PLAY] = this.playEventAction.bind(this), _a[EVENT_TYPE.PAUSE] = this.pauseEventAction.bind(this), _a); var eventData = params.eventData; this._params = params; this._mediaElement = document.getElementById(eventData.properties['domElementId']); this._started = false; this._provider = provider; var mediaTrackFunMapping = { IFRAME: this._iframeMediaTracker, VIDEO: this._html5MediaTracker, AUDIO: this._html5MediaTracker, }; mediaTrackFunMapping[this._mediaElement.tagName].bind(this)(); this._initYoutubeFrame(); } MediaAutoTrack.prototype._initYoutubeFrame = function () { this._youTubeIframeLoader = { src: 'https://www.youtube.com/iframe_api', loading: false, loaded: false, listeners: [], load: function (callback) { var _this = this; this.listeners.push(callback); if (this.loaded) { setTimeout(function () { _this.done(); }); return; } if (this.loading) { return; } this.loading = true; window['onYouTubeIframeAPIReady'] = function () { _this.loaded = true; _this.done(); }; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = this.src; document.body.appendChild(script); }, done: function () { delete window['onYouTubeIframeAPIReady']; while (this.listeners.length) { this.listeners.pop()(window['YT']); } }, }; }; MediaAutoTrack.prototype._iframeMediaTracker = function () { var that = this; setInterval(function () { if (that._started) { that.recordEvent(MEDIA_TYPE.IFRAME, EVENT_TYPE.TIME_WATCHED); } }, 3 * 1000); this._youTubeIframeLoader.load(function (YT) { that._iframePlayer = new YT.Player(that._mediaElement.id, { events: { onStateChange: that._onPlayerStateChange.bind(that) }, }); }); }; MediaAutoTrack.prototype._onPlayerStateChange = function (event) { var iframeEventMapping = { 0: EVENT_TYPE.ENDED, 1: EVENT_TYPE.PLAY, 2: EVENT_TYPE.PAUSE, }; var eventType = iframeEventMapping[event.data]; if (eventType) { this.eventActionMapping[eventType](MEDIA_TYPE.IFRAME); } }; MediaAutoTrack.prototype._html5MediaTracker = function () { var that = this; setInterval(function () { if (that._started) { that.recordEvent(MEDIA_TYPE.VIDEO, EVENT_TYPE.TIME_WATCHED); } }, 3 * 1000); this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.PLAY, function () { that.eventActionMapping[EVENT_TYPE.PLAY](MEDIA_TYPE.VIDEO); }, false); this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.PAUSE, function () { that.eventActionMapping[EVENT_TYPE.PAUSE](MEDIA_TYPE.VIDEO); }, false); this._mediaElement.addEventListener(HTML5_MEDIA_EVENT.ENDED, function () { that.eventActionMapping[EVENT_TYPE.ENDED](MEDIA_TYPE.VIDEO); }, false); }; MediaAutoTrack.prototype.playEventAction = function (mediaType) { this._started = true; this.recordEvent(mediaType, EVENT_TYPE.PLAY); }; MediaAutoTrack.prototype.pauseEventAction = function (mediaType) { this._started = false; this.recordEvent(mediaType, EVENT_TYPE.PAUSE); }; MediaAutoTrack.prototype.endedEventAction = function (mediaType) { this._started = false; this.recordEvent(mediaType, EVENT_TYPE.ENDED); }; MediaAutoTrack.prototype.recordEvent = function (mediaType, eventType) { var newParams = Object.assign({}, this._params); var eventData = newParams.eventData; eventData.eventType = eventType; if (mediaType === MEDIA_TYPE.VIDEO) { eventData.properties.timestamp = this._mediaElement.currentTime; eventData.properties.duration = this._mediaElement.duration; } else { eventData.properties.timestamp = this._financial(this._iframePlayer.getCurrentTime()); eventData.properties.duration = this._financial(this._iframePlayer.getDuration()); } var percentage = parseFloat(eventData.properties.timestamp) / parseFloat(eventData.properties.duration); eventData.properties.eventValue = Number(percentage.toFixed(4)); delete eventData.properties.domElementId; this._provider.putToBuffer(newParams); }; MediaAutoTrack.prototype._financial = function (x) { return Number.parseFloat(x).toFixed(4); }; return MediaAutoTrack; }()); //# sourceMappingURL=MediaAutoTrack.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js ***! \*************************************************************************************************************/ /*! exports provided: SessionInfoManager */ /*! exports used: SessionInfoManager */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SessionInfoManager; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uuid__ = __webpack_require__(/*! uuid */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uuid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_uuid__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__ = __webpack_require__(/*! @aws-amplify/cache */ "./node_modules/@aws-amplify/cache/lib-esm/index.js"); var PERSONALIZE_CACHE = '_awsct'; var PERSONALIZE_CACHE_USERID = '_awsct_uid'; var PERSONALIZE_CACHE_SESSIONID = '_awsct_sid'; var DEFAULT_CACHE_PREFIX = 'peronslize'; var TIMER_INTERVAL = 30 * 1000; var DELIMITER = '.'; var CACHE_EXPIRY_IN_DAYS = 7; var logger = new __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["ConsoleLogger"]('AmazonPersonalizeProvider'); var SessionInfoManager = /** @class */ (function () { function SessionInfoManager(prefixKey) { if (prefixKey === void 0) { prefixKey = ''; } this._isBrowser = __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["JS"].browserOrNode().isBrowser; this._timerKey = Object(__WEBPACK_IMPORTED_MODULE_1_uuid__["v1"])().substr(0, 15); this._refreshTimer(); } SessionInfoManager.prototype._refreshTimer = function () { if (this._timer) { clearInterval(this._timer); } var that = this; this._timer = setInterval(function () { that._timerKey = Object(__WEBPACK_IMPORTED_MODULE_1_uuid__["v1"])().substr(0, 15); }, TIMER_INTERVAL); }; SessionInfoManager.prototype.storeValue = function (key, value) { var today = new Date(); var expire = new Date(); expire.setTime(today.getTime() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS); __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__["default"].setItem(this._getCachePrefix(key), value, { expires: expire.getTime(), }); }; SessionInfoManager.prototype.retrieveValue = function (key) { return __WEBPACK_IMPORTED_MODULE_3__aws_amplify_cache__["default"].getItem(this._getCachePrefix(key)); }; SessionInfoManager.prototype._getCachePrefix = function (key) { if (this._isBrowser) { return key + DELIMITER + window.location.host; } return DEFAULT_CACHE_PREFIX; }; SessionInfoManager.prototype.getTimerKey = function () { return this._timerKey; }; SessionInfoManager.prototype.updateSessionInfo = function (userId, sessionInfo) { var existUserId = sessionInfo.userId; var existSessionId = sessionInfo.sessionId; if (this._isRequireNewSession(userId, existUserId, existSessionId)) { var newSessionId = Object(__WEBPACK_IMPORTED_MODULE_1_uuid__["v1"])(); this.storeValue(PERSONALIZE_CACHE_USERID, userId); this.storeValue(PERSONALIZE_CACHE_SESSIONID, newSessionId); sessionInfo.sessionId = newSessionId; } else if (this._isRequireUpdateSessionInfo(userId, existUserId, existSessionId)) { this.storeValue(PERSONALIZE_CACHE_USERID, userId); } sessionInfo.userId = userId; }; SessionInfoManager.prototype._isRequireUpdateSessionInfo = function (userId, cachedSessionUserId, cachedSessionSessionId) { // anonymouse => sign in : hasSession && s_userId == null && curr_userId !=null var isNoCachedSession = Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(cachedSessionSessionId); return (!isNoCachedSession && Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(cachedSessionUserId) && !Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(userId)); }; SessionInfoManager.prototype.retrieveSessionInfo = function (trackingId) { var sessionInfo = {}; sessionInfo.trackingId = trackingId; sessionInfo.sessionId = this.retrieveValue(PERSONALIZE_CACHE_SESSIONID); sessionInfo.userId = this.retrieveValue(PERSONALIZE_CACHE_USERID); if (Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(sessionInfo.sessionId)) { sessionInfo.sessionId = Object(__WEBPACK_IMPORTED_MODULE_1_uuid__["v1"])(); this.storeValue(PERSONALIZE_CACHE_SESSIONID, sessionInfo.sessionId); } this.storeValue(PERSONALIZE_CACHE, trackingId); return sessionInfo; }; SessionInfoManager.prototype._isRequireNewSession = function (userId, cachedSessionUserId, cachedSessionSessionId) { // new session => 1. no cached session info 2. signOut: s_userId !=null && curr_userId ==null // 3. switch account: s_userId !=null && curr_userId !=null && s_userId != curr_userId var isNoCachedSession = Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(cachedSessionSessionId); var isSignoutCase = Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(userId) && !Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(cachedSessionUserId); var isSwitchUserCase = !Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(userId) && !Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEmpty"])(cachedSessionUserId) && !Object(__WEBPACK_IMPORTED_MODULE_0_lodash__["isEqual"])(userId, cachedSessionUserId); return isNoCachedSession || isSignoutCase || isSwitchUserCase; }; return SessionInfoManager; }()); //# sourceMappingURL=SessionInfoManager.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/index.js": /*!************************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/index.js ***! \************************************************************************************************/ /*! exports provided: SessionInfoManager, MediaAutoTrack */ /*! exports used: MediaAutoTrack, SessionInfoManager */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__SessionInfoManager__ = __webpack_require__(/*! ./SessionInfoManager */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/SessionInfoManager.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__SessionInfoManager__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MediaAutoTrack__ = __webpack_require__(/*! ./MediaAutoTrack */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/MediaAutoTrack.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__MediaAutoTrack__["a"]; }); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeProvider.js": /*!********************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeProvider.js ***! \********************************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_personalizeevents__ = __webpack_require__(/*! aws-sdk/clients/personalizeevents */ "./node_modules/aws-sdk/clients/personalizeevents.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_personalizeevents___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_personalizeevents__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__AmazonPersonalizeHelper__ = __webpack_require__(/*! ./AmazonPersonalizeHelper */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeHelper/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash__); /* * Copyright 2019-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AmazonPersonalizeProvider'); // events buffer var FLUSH_SIZE = 5; var FLUSH_SIZE_THRESHHOLD = 10; var FLUSH_INTERVAL = 5 * 1000; // 5s var IDENTIFY_EVENT = 'Identify'; var AmazonPersonalizeProvider = /** @class */ (function () { function AmazonPersonalizeProvider(config) { this._buffer = []; this._config = config ? config : {}; this._config.flushSize = this._config.flushSize > 0 && this._config.flushSize <= FLUSH_SIZE_THRESHHOLD ? this._config.flushSize : FLUSH_SIZE; this._config.flushInterval = this._config.flushInterval || FLUSH_INTERVAL; this._sessionManager = new __WEBPACK_IMPORTED_MODULE_2__AmazonPersonalizeHelper__["b" /* SessionInfoManager */](); if (!Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["isEmpty"])(this._config.trackingId)) { this._sessionInfo = this._sessionManager.retrieveSessionInfo(this._config.trackingId); } this._isBrowser = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isBrowser; // flush event buffer this._setupTimer(); } AmazonPersonalizeProvider.prototype._setupTimer = function () { if (this._timer) { clearInterval(this._timer); } var _a = this._config, flushSize = _a.flushSize, flushInterval = _a.flushInterval; var that = this; this._timer = setInterval(function () { that._sendFromBuffer(); }, flushInterval); }; /** * Record event * @param eventType - type of the event action. e.g. "Click" * @param properties - properties of the event * @return Promise */ AmazonPersonalizeProvider.prototype.record = function (params) { return __awaiter(this, void 0, void 0, function () { var credentials, _a, eventType, properties, requestParams, isLoaded; return __generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this._getCredentials()]; case 1: credentials = _b.sent(); if (!credentials) return [2 /*return*/, Promise.resolve(false)]; Object.assign(params, { config: this._config, credentials: credentials, sentAt: new Date().getTime() / 1000, }); _a = params.event, eventType = _a.eventType, properties = _a.properties; if (eventType === IDENTIFY_EVENT) { this._sessionManager.updateSessionInfo(properties && properties.userId ? properties.userId : '', this._sessionInfo); return [2 /*return*/]; } else if (!Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["isEmpty"])(params.event.userId)) { this._sessionManager.updateSessionInfo(params.event.userId, this._sessionInfo); } requestParams = this.generateRequestParams(params, this._sessionInfo); if (!(eventType === 'MediaAutoTrack')) return [3 /*break*/, 7]; if (!this._isBrowser) return [3 /*break*/, 5]; if (!!Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["isEmpty"])(Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["get"])(requestParams, 'eventData.properties.domElementId', null))) return [3 /*break*/, 3]; return [4 /*yield*/, this.isElementFullyLoaded(this.loadElement, requestParams.eventData.properties['domElementId'], 500, 5)]; case 2: isLoaded = _b.sent(); if (isLoaded) { new __WEBPACK_IMPORTED_MODULE_2__AmazonPersonalizeHelper__["a" /* MediaAutoTrack */](requestParams, this); } else { logger.debug('Cannot find the media element.'); } return [3 /*break*/, 4]; case 3: logger.debug("Missing domElementId field in 'properties' for MediaAutoTrack event type."); _b.label = 4; case 4: return [3 /*break*/, 6]; case 5: logger.debug('MediaAutoTrack only for browser'); _b.label = 6; case 6: return [2 /*return*/]; case 7: return [2 /*return*/, this.putToBuffer(requestParams)]; } }); }); }; AmazonPersonalizeProvider.prototype.loadElement = function (domId) { return new Promise(function (resolve, reject) { if (document.getElementById(domId) && document.getElementById(domId).clientHeight) { return resolve(true); } else { return reject(true); } }); }; AmazonPersonalizeProvider.prototype.isElementFullyLoaded = function (operation, params, delay, times) { var _this = this; var wait = function (ms) { return new Promise(function (r) { return setTimeout(r, ms); }); }; return new Promise(function (resolve, reject) { return operation(params) .then(resolve) .catch(function (reason) { if (times - 1 > 0) { return wait(delay) .then(_this.isElementFullyLoaded.bind(null, operation, params, delay, times - 1)) .then(resolve) .catch(reject); } return reject(reason); }); }); }; /** * get the category of the plugin */ AmazonPersonalizeProvider.prototype.getCategory = function () { return 'Analytics'; }; /** * get provider name of the plugin */ AmazonPersonalizeProvider.prototype.getProviderName = function () { return 'AmazonPersonalize'; }; /** * configure the plugin * @param {Object} config - configuration */ AmazonPersonalizeProvider.prototype.configure = function (config) { logger.debug('configure Analytics', config); var conf = config ? config : {}; this._config = Object.assign({}, this._config, conf); if (!Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["isEmpty"])(this._config.trackingId)) { this._sessionInfo = this._sessionManager.retrieveSessionInfo(this._config.trackingId); } this._setupTimer(); return this._config; }; /** * Generate the requestParams from customer input params and sessionInfo * @private * @param eventData - customer input for event data * @param api - api name * @return RequestParams - wrapper object with all information required for make request */ AmazonPersonalizeProvider.prototype.generateRequestParams = function (params, sessionInfo) { var requestParams = {}; var _a = params.event, eventType = _a.eventType, properties = _a.properties; requestParams.eventData = { eventType: eventType, properties: properties }; requestParams.sessionInfo = sessionInfo; requestParams.sentAt = params.sentAt; requestParams.credentials = params.credentials; requestParams.config = params.config; return requestParams; }; /** * record an event * @param {Object} params - the params of an event */ AmazonPersonalizeProvider.prototype._sendEvents = function (group) { var groupLen = group.length; if (groupLen === 0) { logger.debug('events array is empty, directly return'); return; } var _a = group[0], config = _a.config, credentials = _a.credentials, sessionInfo = _a.sessionInfo; var initClients = this._init(config, credentials); if (!initClients) return false; if (groupLen > 0) { var events = []; for (var i = 0; i < groupLen; i += 1) { var params = group.shift(); var eventPayload = this._generateSingleRecordPayload(params, sessionInfo); events.push(eventPayload); } var payload = {}; payload.trackingId = sessionInfo.trackingId; payload.sessionId = sessionInfo.sessionId; payload.userId = sessionInfo.userId; payload.eventList = events; this._personalize.putEvents(payload, function (err, data) { if (err) logger.debug('Failed to call putEvents in Personalize', err); else logger.debug('Put events'); }); } }; /** * Put event into buffer * @private * @param params - params for the event recording */ AmazonPersonalizeProvider.prototype.putToBuffer = function (params) { if (this._buffer.length < this._config.flushSize) { this._buffer.push(params); } else { this._buffer.push(params); this._sendFromBuffer(); } return Promise.resolve(true); }; /** * flush the buffer and batch sending the request * @private * @param eventsParams - the buffer for cache the payload */ AmazonPersonalizeProvider.prototype._sendFromBuffer = function () { var _this = this; var size = this._buffer.length; if (size <= 0) return; var eventsGroups = []; var preCred = null; var group = []; for (var i = 0; i < size; i += 1) { var currRequestParams = this._buffer.shift(); var cred = currRequestParams.credentials; var sessionInfo = currRequestParams.sessionInfo; if (i === 0) { group.push(currRequestParams); preCred = cred; } else { if (Object(__WEBPACK_IMPORTED_MODULE_3_lodash__["isEqual"])(sessionInfo, this._sessionInfo) && cred.sessionToken === preCred.sessionToken && cred.identityId === preCred.identityId) { logger.debug('no change for cred, put event in the same group'); group.push(currRequestParams); } else { eventsGroups.push(group); group = []; group.push(currRequestParams); preCred = cred; this._sessionInfo = sessionInfo; } } } eventsGroups.push(group); eventsGroups.map(function (group) { _this._sendEvents(group); }); }; /** * Generate the record payload for single event * @private * @param params - RequestParams */ AmazonPersonalizeProvider.prototype._generateSingleRecordPayload = function (params, sessionInfo) { var eventData = params.eventData, sentAt = params.sentAt; var trackPayload = {}; trackPayload.sentAt = sentAt; trackPayload.properties = eventData.properties; trackPayload.eventId = this._sessionManager.getTimerKey() + sessionInfo.sessionId; trackPayload.eventType = eventData.eventType; return trackPayload; }; /** * Initialize the personalize client * @private * @param params - RequestParams */ AmazonPersonalizeProvider.prototype._init = function (config, credentials) { logger.debug('init clients'); if (this._personalize && this._config.credentials && this._config.credentials.sessionToken === credentials.sessionToken && this._config.credentials.identityId === credentials.identityId) { logger.debug('no change for analytics config, directly return from init'); return true; } this._config.credentials = credentials; var region = config.region; logger.debug('initialize personalize with credentials', credentials); this._personalize = new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_personalizeevents__({ apiVersion: '2018-03-22', region: region, credentials: credentials, }); return true; }; /** * check if current credentials exists * @private */ AmazonPersonalizeProvider.prototype._getCredentials = function () { var that = this; return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].get() .then(function (credentials) { if (!credentials) return null; logger.debug('set credentials for analytics', that._config.credentials); return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].shear(credentials); }) .catch(function (err) { logger.debug('ensure credentials error', err); return null; }); }; return AmazonPersonalizeProvider; }()); /* harmony default export */ __webpack_exports__["a"] = (AmazonPersonalizeProvider); //# sourceMappingURL=AmazonPersonalizeProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/index.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/Providers/index.js ***! \************************************************************************/ /*! exports provided: AWSPinpointProvider, AWSKinesisProvider, AmazonPersonalizeProvider */ /*! exports used: AWSKinesisProvider, AWSPinpointProvider, AmazonPersonalizeProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AWSPinpointProvider__ = __webpack_require__(/*! ./AWSPinpointProvider */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSPinpointProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AWSKinesisProvider__ = __webpack_require__(/*! ./AWSKinesisProvider */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AWSKinesisProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__AmazonPersonalizeProvider__ = __webpack_require__(/*! ./AmazonPersonalizeProvider */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/AmazonPersonalizeProvider.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__AWSPinpointProvider__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__AWSKinesisProvider__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__AmazonPersonalizeProvider__["a"]; }); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/index.js": /*!**************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/index.js ***! \**************************************************************/ /*! exports provided: default, AnalyticsClass, AWSPinpointProvider, AWSKinesisProvider, AmazonPersonalizeProvider */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Analytics__ = __webpack_require__(/*! ./Analytics */ "./node_modules/@aws-amplify/analytics/lib-esm/Analytics.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnalyticsClass", function() { return __WEBPACK_IMPORTED_MODULE_0__Analytics__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Providers__ = __webpack_require__(/*! ./Providers */ "./node_modules/@aws-amplify/analytics/lib-esm/Providers/index.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWSPinpointProvider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers__["b"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWSKinesisProvider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers__["a"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AmazonPersonalizeProvider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers__["c"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('Analytics'); var endpointUpdated = false; var authConfigured = false; var analyticsConfigured = false; var _instance = null; if (!_instance) { logger.debug('Create Analytics Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__Analytics__["a" /* default */](); } var Analytics = _instance; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["default"].register(Analytics); /* harmony default export */ __webpack_exports__["default"] = (Analytics); var listener = function (capsule) { var channel = capsule.channel, payload = capsule.payload, source = capsule.source; logger.debug('on hub capsule ' + channel, payload); switch (channel) { case 'auth': authEvent(payload); break; case 'storage': storageEvent(payload); break; case 'analytics': analyticsEvent(payload); break; default: break; } }; var storageEvent = function (payload) { var _a = payload.data, attrs = _a.attrs, metrics = _a.metrics; if (!attrs) return; if (analyticsConfigured) { Analytics.record({ name: 'Storage', attributes: attrs, metrics: metrics, }).catch(function (e) { logger.debug('Failed to send the storage event automatically', e); }); } }; var authEvent = function (payload) { var event = payload.event; if (!event) { return; } switch (event) { case 'signIn': if (authConfigured && analyticsConfigured) { Analytics.record({ name: '_userauth.sign_in', }).catch(function (e) { logger.debug('Failed to send the sign in event automatically', e); }); } break; case 'signUp': if (authConfigured && analyticsConfigured) { Analytics.record({ name: '_userauth.sign_up', }).catch(function (e) { logger.debug('Failed to send the sign up event automatically', e); }); } break; case 'signOut': break; case 'signIn_failure': if (authConfigured && analyticsConfigured) { Analytics.record({ name: '_userauth.auth_fail', }).catch(function (e) { logger.debug('Failed to send the sign in failure event automatically', e); }); } break; case 'configured': authConfigured = true; if (authConfigured && analyticsConfigured) { sendEvents(); } break; } }; var analyticsEvent = function (payload) { var event = payload.event; if (!event) return; switch (event) { case 'pinpointProvider_configured': analyticsConfigured = true; if (authConfigured && analyticsConfigured) { sendEvents(); } break; } }; var sendEvents = function () { var config = Analytics.configure(); if (!endpointUpdated && config['autoSessionRecord']) { Analytics.updateEndpoint({ immediate: true }).catch(function (e) { logger.debug('Failed to update the endpoint', e); }); endpointUpdated = true; } Analytics.autoTrack('session', { enable: config['autoSessionRecord'], }); }; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Hub"].listen('auth', listener); __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Hub"].listen('storage', listener); __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Hub"].listen('analytics', listener); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/EventTracker.js": /*!******************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/trackers/EventTracker.js ***! \******************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vendor_dom_utils__ = __webpack_require__(/*! ../vendor/dom-utils */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('EventTracker'); var defaultOpts = { enable: false, events: ['click'], selectorPrefix: 'data-amplify-analytics-', provider: 'AWSPinpoint', }; var EventTracker = /** @class */ (function () { function EventTracker(tracker, opts) { if (!__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser || !window.addEventListener) { logger.debug('not in the supported web environment'); return; } this._config = Object.assign({}, defaultOpts, opts); this._tracker = tracker; this._delegates = {}; this._trackFunc = this._trackFunc.bind(this); logger.debug('initialize pageview tracker with opts', this._config); this.configure(this._config); } EventTracker.prototype.configure = function (opts) { var _this = this; Object.assign(this._config, opts); if (!this._config.enable) { Object.keys(this._delegates).forEach(function (key) { if (typeof _this._delegates[key].destroy === 'function') _this._delegates[key].destroy(); }); this._delegates = {}; } else if (this._config.enable && Object.keys(this._delegates).length === 0) { var selector_1 = '[' + this._config.selectorPrefix + 'on]'; this._config.events.forEach(function (evt) { _this._delegates[evt] = Object(__WEBPACK_IMPORTED_MODULE_0__vendor_dom_utils__["a" /* delegate */])(document, evt, selector_1, _this._trackFunc, { composed: true, useCapture: true }); }); } return this._config; }; EventTracker.prototype._trackFunc = function (event, element) { return __awaiter(this, void 0, void 0, function () { var customAttrs, events, eventName, attrs, defaultAttrs, _a, attributes; return __generator(this, function (_b) { switch (_b.label) { case 0: customAttrs = {}; events = element .getAttribute(this._config.selectorPrefix + 'on') .split(/\s*,\s*/); eventName = element.getAttribute(this._config.selectorPrefix + 'name'); attrs = element.getAttribute(this._config.selectorPrefix + 'attrs'); if (attrs) { attrs.split(/\s*,\s*/).forEach(function (attr) { var tmp = attr.trim().split(/\s*:\s*/); customAttrs[tmp[0]] = tmp[1]; }); } if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, this._config.attributes()]; case 1: _a = _b.sent(); return [3 /*break*/, 3]; case 2: _a = this._config.attributes; _b.label = 3; case 3: defaultAttrs = _a; attributes = Object.assign({ type: event.type, target: event.target.localName + " with id " + event.target.id, }, defaultAttrs, customAttrs); logger.debug('events needed to be recorded', events); logger.debug('attributes needed to be attached', customAttrs); if (events.indexOf(event.type) < 0) { logger.debug("event " + event.type + " is not selected to be recorded"); return [2 /*return*/]; } this._tracker({ name: eventName || 'event', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug("Failed to record the " + event.type + " event', " + e); }); return [2 /*return*/]; } }); }); }; return EventTracker; }()); /* harmony default export */ __webpack_exports__["a"] = (EventTracker); //# sourceMappingURL=EventTracker.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/PageViewTracker.js": /*!*********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/trackers/PageViewTracker.js ***! \*********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_MethodEmbed__ = __webpack_require__(/*! ../utils/MethodEmbed */ "./node_modules/@aws-amplify/analytics/lib-esm/utils/MethodEmbed.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('PageViewTracker'); var PREV_URL_KEY = 'aws-amplify-analytics-prevUrl'; var getUrl = function () { if (!__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser) return ''; else return window.location.origin + window.location.pathname; }; var defaultOpts = { enable: false, provider: 'AWSPinpoint', getUrl: getUrl, }; var PageViewTracker = /** @class */ (function () { function PageViewTracker(tracker, opts) { logger.debug('initialize pageview tracker with opts', opts); this._config = Object.assign({}, defaultOpts, opts); this._tracker = tracker; this._hasEnabled = false; this._trackFunc = this._trackFunc.bind(this); if (this._config.type === 'SPA') { this._pageViewTrackSPA(); } else { this._pageViewTrackDefault(); } } PageViewTracker.prototype.configure = function (opts) { Object.assign(this._config, opts); // if spa, need to remove those listeners if disabled if (this._config.type === 'SPA') { this._pageViewTrackSPA(); } return this._config; }; PageViewTracker.prototype._isSameUrl = function () { var prevUrl = sessionStorage.getItem(PREV_URL_KEY); var curUrl = this._config.getUrl(); if (prevUrl === curUrl) { logger.debug('the url is same'); return true; } else return false; }; PageViewTracker.prototype._pageViewTrackDefault = function () { return __awaiter(this, void 0, void 0, function () { var url, customAttrs, _a, attributes; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser || !window.addEventListener || !window.sessionStorage) { logger.debug('not in the supported web enviroment'); return [2 /*return*/]; } url = this._config.getUrl(); if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, this._config.attributes()]; case 1: _a = _b.sent(); return [3 /*break*/, 3]; case 2: _a = this._config.attributes; _b.label = 3; case 3: customAttrs = _a; attributes = Object.assign({ url: url, }, customAttrs); if (this._config.enable && !this._isSameUrl()) { this._tracker({ name: this._config.eventName || 'pageView', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug('Failed to record the page view event', e); }); sessionStorage.setItem(PREV_URL_KEY, url); } return [2 /*return*/]; } }); }); }; PageViewTracker.prototype._trackFunc = function () { return __awaiter(this, void 0, void 0, function () { var url, customAttrs, _a, attributes; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser || !window.addEventListener || !history.pushState || !window.sessionStorage) { logger.debug('not in the supported web enviroment'); return [2 /*return*/]; } url = this._config.getUrl(); if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, this._config.attributes()]; case 1: _a = _b.sent(); return [3 /*break*/, 3]; case 2: _a = this._config.attributes; _b.label = 3; case 3: customAttrs = _a; attributes = Object.assign({ url: url, }, customAttrs); if (!this._isSameUrl()) { this._tracker({ name: this._config.eventName || 'pageView', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug('Failed to record the page view event', e); }); sessionStorage.setItem(PREV_URL_KEY, url); } return [2 /*return*/]; } }); }); }; PageViewTracker.prototype._pageViewTrackSPA = function () { if (!__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser || !window.addEventListener || !history.pushState) { logger.debug('not in the supported web enviroment'); return; } if (this._config.enable && !this._hasEnabled) { __WEBPACK_IMPORTED_MODULE_0__utils_MethodEmbed__["a" /* default */].add(history, 'pushState', this._trackFunc); __WEBPACK_IMPORTED_MODULE_0__utils_MethodEmbed__["a" /* default */].add(history, 'replaceState', this._trackFunc); window.addEventListener('popstate', this._trackFunc); this._trackFunc(); this._hasEnabled = true; } else { __WEBPACK_IMPORTED_MODULE_0__utils_MethodEmbed__["a" /* default */].remove(history, 'pushState'); __WEBPACK_IMPORTED_MODULE_0__utils_MethodEmbed__["a" /* default */].remove(history, 'replaceState'); window.removeEventListener('popstate', this._trackFunc); this._hasEnabled = false; } }; return PageViewTracker; }()); /* harmony default export */ __webpack_exports__["a"] = (PageViewTracker); //# sourceMappingURL=PageViewTracker.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/SessionTracker.js": /*!********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/trackers/SessionTracker.js ***! \********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; // the session tracker for web var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('SessionTracker'); var defaultOpts = { enable: false, provider: 'AWSPinpoint', }; var initialEventSent = false; var SessionTracker = /** @class */ (function () { function SessionTracker(tracker, opts) { this._config = Object.assign({}, defaultOpts, opts); this._tracker = tracker; this._hasEnabled = false; this._trackFunc = this._trackFunc.bind(this); this._trackBeforeUnload = this._trackBeforeUnload.bind(this); this.configure(this._config); } SessionTracker.prototype._envCheck = function () { if (!__WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isBrowser) { return false; } if (!document || !document.addEventListener) { logger.debug('not in the supported web environment'); return false; } if (typeof document.hidden !== 'undefined') { this._hidden = 'hidden'; this._visibilityChange = 'visibilitychange'; } else if (typeof document['msHidden'] !== 'undefined') { this._hidden = 'msHidden'; this._visibilityChange = 'msvisibilitychange'; } else if (typeof document['webkitHidden'] !== 'undefined') { this._hidden = 'webkitHidden'; this._visibilityChange = 'webkitvisibilitychange'; } else { logger.debug('not in the supported web environment'); return false; } return true; }; SessionTracker.prototype._trackFunc = function () { return __awaiter(this, void 0, void 0, function () { var customAttrs, _a, attributes; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, this._config.attributes()]; case 1: _a = _b.sent(); return [3 /*break*/, 3]; case 2: _a = this._config.attributes; _b.label = 3; case 3: customAttrs = _a; attributes = Object.assign({}, customAttrs); if (document.visibilityState === this._hidden) { this._tracker({ name: '_session.stop', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug('record session stop event failed.', e); }); } else { this._tracker({ name: '_session.start', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug('record session start event failed.', e); }); } return [2 /*return*/]; } }); }); }; SessionTracker.prototype._trackBeforeUnload = function (event) { // before unload callback cannot be async => https://github.com/aws-amplify/amplify-js/issues/2088 var _this = this; var customAttrs = typeof this._config.attributes === 'function' ? Promise.resolve(this._config.attributes()) : Promise.resolve(this._config.attributes); customAttrs.then(function (custom) { var attributes = Object.assign({}, custom); _this._tracker({ name: '_session.stop', attributes: attributes, immediate: true, }, _this._config.provider).catch(function (e) { logger.debug('record session stop event failed.', e); }); }); }; // to keep configure a synchronized function SessionTracker.prototype._sendInitialEvent = function () { return __awaiter(this, void 0, void 0, function () { var customAttrs, _a, attributes; return __generator(this, function (_b) { switch (_b.label) { case 0: if (initialEventSent) { logger.debug('the start session has been sent when the page is loaded'); return [2 /*return*/]; } else { initialEventSent = true; } if (!(typeof this._config.attributes === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, this._config.attributes()]; case 1: _a = _b.sent(); return [3 /*break*/, 3]; case 2: _a = this._config.attributes; _b.label = 3; case 3: customAttrs = _a; attributes = Object.assign({}, customAttrs); this._tracker({ name: '_session.start', attributes: attributes, }, this._config.provider).catch(function (e) { logger.debug('record session start event failed.', e); }); return [2 /*return*/]; } }); }); }; SessionTracker.prototype.configure = function (opts) { if (!this._envCheck()) { return this._config; } Object.assign(this._config, opts); if (this._config.enable && !this._hasEnabled) { // send a start session as soon as it's enabled this._sendInitialEvent(); // listen on events document.addEventListener(this._visibilityChange, this._trackFunc, false); window.addEventListener('beforeunload', this._trackBeforeUnload, false); this._hasEnabled = true; } else if (!this._config.enable && this._hasEnabled) { document.removeEventListener(this._visibilityChange, this._trackFunc, false); window.removeEventListener('beforeunload', this._trackBeforeUnload, false); this._hasEnabled = false; } return this._config; }; return SessionTracker; }()); /* harmony default export */ __webpack_exports__["a"] = (SessionTracker); //# sourceMappingURL=SessionTracker.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/index.js": /*!***********************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/trackers/index.js ***! \***********************************************************************/ /*! exports provided: PageViewTracker, EventTracker, SessionTracker */ /*! exports used: EventTracker, PageViewTracker, SessionTracker */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__PageViewTracker__ = __webpack_require__(/*! ./PageViewTracker */ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/PageViewTracker.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__PageViewTracker__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__EventTracker__ = __webpack_require__(/*! ./EventTracker */ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/EventTracker.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__EventTracker__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SessionTracker__ = __webpack_require__(/*! ./SessionTracker */ "./node_modules/@aws-amplify/analytics/lib-esm/trackers/SessionTracker.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__SessionTracker__["a"]; }); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/utils/MethodEmbed.js": /*!**************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/utils/MethodEmbed.js ***! \**************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var lists = []; var MethodEmbed = /** @class */ (function () { function MethodEmbed(context, methodName) { this.context = context; this.methodName = methodName; this._originalMethod = context[methodName].bind(context); } MethodEmbed.add = function (context, methodName, methodOverride) { getInstance(context, methodName).set(methodOverride); }; MethodEmbed.remove = function (context, methodName) { getInstance(context, methodName).remove(); }; MethodEmbed.prototype.set = function (methodOverride) { var _this = this; this.context[this.methodName] = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return methodOverride(_this._originalMethod.apply(_this, args)); }; }; MethodEmbed.prototype.remove = function () { this.context[this.methodName] = this._originalMethod; }; return MethodEmbed; }()); /* harmony default export */ __webpack_exports__["a"] = (MethodEmbed); function getInstance(context, methodName) { var instance = lists.filter(function (h) { return h.context === context && h.methodName === methodName; })[0]; if (!instance) { instance = new MethodEmbed(context, methodName); lists.push(instance); } return instance; } //# sourceMappingURL=MethodEmbed.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js": /*!*********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js ***! \*********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = closest; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__matches__ = __webpack_require__(/*! ./matches */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parents__ = __webpack_require__(/*! ./parents */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js"); /** * Copyright (c) 2017, Philip Walton */ /** * Gets the closest parent element that matches the passed selector. * @param {Element} element The element whose parents to check. * @param {string} selector The CSS selector to match against. * @param {boolean=} shouldCheckSelf True if the selector should test against * the passed element itself. * @return {Element|undefined} The matching element or undefined. */ function closest(element, selector, shouldCheckSelf) { if (shouldCheckSelf === void 0) { shouldCheckSelf = false; } if (!(element && element.nodeType === 1 && selector)) return; var parentElements = (shouldCheckSelf ? [element] : []).concat(Object(__WEBPACK_IMPORTED_MODULE_1__parents__["a" /* default */])(element)); for (var i = 0, parent_1; (parent_1 = parentElements[i]); i++) { if (Object(__WEBPACK_IMPORTED_MODULE_0__matches__["a" /* default */])(parent_1, selector)) return parent_1; } } //# sourceMappingURL=closest.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/delegate.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/delegate.js ***! \**********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = delegate; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__closest__ = __webpack_require__(/*! ./closest */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__matches__ = __webpack_require__(/*! ./matches */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js"); /** * Copyright (c) 2017, Philip Walton */ /** * Delegates the handling of events for an element matching a selector to an * ancestor of the matching element. * @param {!Node} ancestor The ancestor element to add the listener to. * @param {string} eventType The event type to listen to. * @param {string} selector A CSS selector to match against child elements. * @param {!Function} callback A function to run any time the event happens. * @param {Object=} opts A configuration options object. The available options: * - useCapture: If true, bind to the event capture phase. * - deep: If true, delegate into shadow trees. * @return {Object} The delegate object. It contains a destroy method. */ function delegate(ancestor, eventType, selector, callback, opts) { if (opts === void 0) { opts = {}; } // Defines the event listener. var listener = function (event) { var delegateTarget; // If opts.composed is true and the event originated from inside a Shadow // tree, check the composed path nodes. if (opts['composed'] && typeof event['composedPath'] === 'function') { var composedPath = event.composedPath(); for (var i = 0, node = void 0; (node = composedPath[i]); i++) { if (node.nodeType === 1 && Object(__WEBPACK_IMPORTED_MODULE_1__matches__["a" /* default */])(node, selector)) { delegateTarget = node; } } } else { // Otherwise check the parents. delegateTarget = Object(__WEBPACK_IMPORTED_MODULE_0__closest__["a" /* default */])(event.target, selector, true); } if (delegateTarget) { callback.call(delegateTarget, event, delegateTarget); } }; ancestor.addEventListener(eventType, listener, opts['useCapture']); return { destroy: function () { ancestor.removeEventListener(eventType, listener, opts['useCapture']); }, }; } //# sourceMappingURL=delegate.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/dispatch.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/dispatch.js ***! \**********************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export default */ /** * Copyright (c) 2017, Philip Walton */ /** * Dispatches an event on the passed element. * @param {!Element} element The DOM element to dispatch the event on. * @param {string} eventType The type of event to dispatch. * @param {Object|string=} eventName A string name of the event constructor * to use. Defaults to 'Event' if nothing is passed or 'CustomEvent' if * a value is set on `initDict.detail`. If eventName is given an object * it is assumed to be initDict and thus reassigned. * @param {Object=} initDict The initialization attributes for the * event. A `detail` property can be used here to pass custom data. * @return {boolean} The return value of `element.dispatchEvent`, which will * be false if any of the event listeners called `preventDefault`. */ function dispatch(element, eventType, evtName, init_dict) { if (evtName === void 0) { evtName = 'Event'; } if (init_dict === void 0) { init_dict = {}; } var event; var isCustom; var initDict = init_dict; var eventName = evtName; // eventName is optional if (typeof eventName === 'object') { initDict = eventName; eventName = 'Event'; } initDict['bubbles'] = initDict['bubbles'] || false; initDict['cancelable'] = initDict['cancelable'] || false; initDict['composed'] = initDict['composed'] || false; // If a detail property is passed, this is a custom event. if ('detail' in initDict) isCustom = true; eventName = isCustom ? 'CustomEvent' : eventName; // Tries to create the event using constructors, if that doesn't work, // fallback to `document.createEvent()`. try { event = new window[eventName](eventType, initDict); } catch (err) { event = document.createEvent(eventName); var initMethod = 'init' + (isCustom ? 'Custom' : '') + 'Event'; event[initMethod](eventType, initDict['bubbles'], initDict['cancelable'], initDict['detail']); } return element.dispatchEvent(event); } //# sourceMappingURL=dispatch.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/get-attributes.js": /*!****************************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/get-attributes.js ***! \****************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export default */ /** * Copyright (c) 2017, Philip Walton */ /** * Gets all attributes of an element as a plain JavaScriot object. * @param {Element} element The element whose attributes to get. * @return {!Object} An object whose keys are the attribute keys and whose * values are the attribute values. If no attributes exist, an empty * object is returned. */ function getAttributes(element) { var attrs = {}; // Validate input. if (!(element && element.nodeType === 1)) return attrs; // Return an empty object if there are no attributes. var map = element.attributes; if (map.length === 0) return {}; for (var i = 0, attr = void 0; (attr = map[i]); i++) { attrs[attr.name] = attr.value; } return attrs; } //# sourceMappingURL=get-attributes.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/index.js": /*!*******************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/index.js ***! \*******************************************************************************/ /*! exports provided: closest, delegate, dispatch, getAttributes, matches, parents, parseUrl */ /*! exports used: delegate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__closest__ = __webpack_require__(/*! ./closest */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/closest.js"); /* unused harmony reexport closest */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__delegate__ = __webpack_require__(/*! ./delegate */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/delegate.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__delegate__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dispatch__ = __webpack_require__(/*! ./dispatch */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/dispatch.js"); /* unused harmony reexport dispatch */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__get_attributes__ = __webpack_require__(/*! ./get-attributes */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/get-attributes.js"); /* unused harmony reexport getAttributes */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matches__ = __webpack_require__(/*! ./matches */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js"); /* unused harmony reexport matches */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__parents__ = __webpack_require__(/*! ./parents */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js"); /* unused harmony reexport parents */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__parse_url__ = __webpack_require__(/*! ./parse-url */ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parse-url.js"); /* unused harmony reexport parseUrl */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js": /*!*********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/matches.js ***! \*********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = matches; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /** * Copyright (c) 2017, Philip Walton */ var proto = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isBrowser && window['Element'] ? window['Element'].prototype : null; var nativeMatches = proto ? proto.matches || // @ts-ignore proto.matchesSelector || // @ts-ignore proto.webkitMatchesSelector || // @ts-ignore proto.mozMatchesSelector || // @ts-ignore proto.msMatchesSelector || // @ts-ignore proto.oMatchesSelector : null; /** * Tests if a DOM elements matches any of the test DOM elements or selectors. * @param {Element} element The DOM element to test. * @param {Element|string|Array} test A DOM element, a CSS * selector, or an array of DOM elements or CSS selectors to match against. * @return {boolean} True of any part of the test matches. */ function matches(element, test) { // Validate input. if (element && element.nodeType === 1 && test) { // if test is a string or DOM element test it. if (typeof test === 'string' || test.nodeType === 1) { return (element === test || matchesSelector(element, /** @type {string} */ test)); } else if ('length' in test) { // if it has a length property iterate over the items // and return true if any match. for (var i = 0, item = void 0; (item = test[i]); i++) { if (element === item || matchesSelector(element, item)) return true; } } } // Still here? Return false return false; } /** * Tests whether a DOM element matches a selector. This polyfills the native * Element.prototype.matches method across browsers. * @param {!Element} element The DOM element to test. * @param {string} selector The CSS selector to test element against. * @return {boolean} True if the selector matches. */ function matchesSelector(element, selector) { if (typeof selector !== 'string') return false; if (nativeMatches) return nativeMatches.call(element, selector); var nodes = element.parentNode.querySelectorAll(selector); for (var i = 0, node = void 0; (node = nodes[i]); i++) { if (node === element) return true; } return false; } //# sourceMappingURL=matches.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js": /*!*********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parents.js ***! \*********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = parents; /** * Copyright (c) 2017, Philip Walton */ /** * Returns an array of a DOM element's parent elements. * @param {!Element} element The DOM element whose parents to get. * @return {!Array} An array of all parent elemets, or an empty array if no * parent elements are found. */ function parents(ele) { var list = []; var element = ele; while (element && element.parentNode && element.parentNode.nodeType === 1) { element = /** @type {!Element} */ element.parentNode; list.push(element); } return list; } //# sourceMappingURL=parents.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parse-url.js": /*!***********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/lib-esm/vendor/dom-utils/parse-url.js ***! \***********************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export default */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /** * Copyright (c) 2017, Philip Walton */ var HTTP_PORT = '80'; var HTTPS_PORT = '443'; var DEFAULT_PORT = RegExp(':(' + HTTP_PORT + '|' + HTTPS_PORT + ')$'); var a = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isBrowser ? document.createElement('a') : null; var cache = {}; /** * Parses the given url and returns an object mimicing a `Location` object. * @param {string} url The url to parse. * @return {!Object} An object with the same properties as a `Location`. */ function parseUrl(u) { var url = u; // All falsy values (as well as ".") should map to the current URL. url = !url || url === '.' ? location.href : url; if (cache[url]) return cache[url]; a.href = url; // When parsing file relative paths (e.g. `../index.html`), IE will correctly // resolve the `href` property but will keep the `..` in the `path` property. // It will also not include the `host` or `hostname` properties. Furthermore, // IE will sometimes return no protocol or just a colon, especially for things // like relative protocol URLs (e.g. "//google.com"). // To workaround all of these issues, we reparse with the full URL from the // `href` property. if (url.charAt(0) === '.' || url.charAt(0) === '/') return parseUrl(a.href); // Don't include default ports. var port = a.port === HTTP_PORT || a.port === HTTPS_PORT ? '' : a.port; // PhantomJS sets the port to "0" when using the file: protocol. port = port === '0' ? '' : port; // Sometimes IE incorrectly includes a port for default ports // (e.g. `:80` or `:443`) even when no port is specified in the URL. // http://bit.ly/1rQNoMg var host = a.host.replace(DEFAULT_PORT, ''); // Not all browser support `origin` so we have to build it. var origin = a['origin'] ? a['origin'] : a.protocol + '//' + host; // Sometimes IE doesn't include the leading slash for pathname. // http://bit.ly/1rQNoMg var pathname = a.pathname.charAt(0) === '/' ? a.pathname : '/' + a.pathname; return (cache[url] = { hash: a.hash, host: host, hostname: a.hostname, href: a.href, origin: origin, pathname: pathname, port: port, protocol: a.protocol, search: a.search, }); } //# sourceMappingURL=parse-url.js.map /***/ }), /***/ "./node_modules/@aws-amplify/analytics/node_modules/uuid/index.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/node_modules/uuid/index.js ***! \************************************************************************/ /*! dynamic exports provided */ /*! exports used: v1 */ /***/ (function(module, exports, __webpack_require__) { var v1 = __webpack_require__(/*! ./v1 */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/v1.js"); var v4 = __webpack_require__(/*! ./v4 */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/v4.js"); var uuid = v4; uuid.v1 = v1; uuid.v4 = v4; module.exports = uuid; /***/ }), /***/ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/bytesToUuid.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/bytesToUuid.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ var byteToHex = []; for (var i = 0; i < 256; ++i) { byteToHex[i] = (i + 0x100).toString(16).substr(1); } function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 return ([ bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]] ]).join(''); } module.exports = bytesToUuid; /***/ }), /***/ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/rng-browser.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/rng-browser.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via // feature-detection // getRandomValues needs to be invoked in a context where "this" is a Crypto // implementation. Also, find the complete implementation of crypto on IE11. var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); if (getRandomValues) { // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef module.exports = function whatwgRNG() { getRandomValues(rnds8); return rnds8; }; } else { // Math.random()-based (RNG) // // If all else fails, use Math.random(). It's fast, but is of unspecified // quality. var rnds = new Array(16); module.exports = function mathRNG() { for (var i = 0, r; i < 16; i++) { if ((i & 0x03) === 0) r = Math.random() * 0x100000000; rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; } return rnds; }; } /***/ }), /***/ "./node_modules/@aws-amplify/analytics/node_modules/uuid/v1.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/node_modules/uuid/v1.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/bytesToUuid.js"); // **`v1()` - Generate time-based UUID** // // Inspired by https://github.com/LiosK/UUID.js // and http://docs.python.org/library/uuid.html var _nodeId; var _clockseq; // Previous uuid creation time var _lastMSecs = 0; var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details function v1(options, buf, offset) { var i = buf && offset || 0; var b = buf || []; options = options || {}; var node = options.node || _nodeId; var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not // specified. We do this lazily to minimize issues related to insufficient // system entropy. See #189 if (node == null || clockseq == null) { var seedBytes = rng(); if (node == null) { // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) node = _nodeId = [ seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] ]; } if (clockseq == null) { // Per 4.2.2, randomize (14 bit) clockseq clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; } } // UUID timestamps are 100 nano-second units since the Gregorian epoch, // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock // cycle to simulate higher resolution clock var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; // Per 4.2.1.2, Bump clockseq on clock regression if (dt < 0 && options.clockseq === undefined) { clockseq = clockseq + 1 & 0x3fff; } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new // time interval if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { nsecs = 0; } // Per 4.2.1.2 Throw error if too many uuids are requested if (nsecs >= 10000) { throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); } _lastMSecs = msecs; _lastNSecs = nsecs; _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch msecs += 12219292800000; // `time_low` var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; b[i++] = tl >>> 24 & 0xff; b[i++] = tl >>> 16 & 0xff; b[i++] = tl >>> 8 & 0xff; b[i++] = tl & 0xff; // `time_mid` var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; b[i++] = tmh >>> 8 & 0xff; b[i++] = tmh & 0xff; // `time_high_and_version` b[i++] = tmh >>> 24 & 0xf | 0x10; // include version b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` b[i++] = clockseq & 0xff; // `node` for (var n = 0; n < 6; ++n) { b[i + n] = node[n]; } return buf ? buf : bytesToUuid(b); } module.exports = v1; /***/ }), /***/ "./node_modules/@aws-amplify/analytics/node_modules/uuid/v4.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/analytics/node_modules/uuid/v4.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/analytics/node_modules/uuid/lib/bytesToUuid.js"); function v4(options, buf, offset) { var i = buf && offset || 0; if (typeof(options) == 'string') { buf = options === 'binary' ? new Array(16) : null; options = null; } options = options || {}; var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided if (buf) { for (var ii = 0; ii < 16; ++ii) { buf[i + ii] = rnds[ii]; } } return buf || bytesToUuid(rnds); } module.exports = v4; /***/ }), /***/ "./node_modules/@aws-amplify/api/lib-esm/API.js": /*!******************************************************!*\ !*** ./node_modules/@aws-amplify/api/lib-esm/API.js ***! \******************************************************/ /*! exports provided: graphqlOperation, default */ /*! exports used: default, graphqlOperation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return graphqlOperation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql__ = __webpack_require__(/*! graphql */ "./node_modules/graphql/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_language_parser__ = __webpack_require__(/*! graphql/language/parser */ "./node_modules/graphql/language/parser.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_zen_observable__ = __webpack_require__(/*! zen-observable */ "./node_modules/zen-observable/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_zen_observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_zen_observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__RestClient__ = __webpack_require__(/*! ./RestClient */ "./node_modules/@aws-amplify/api/lib-esm/RestClient.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__aws_amplify_auth__ = __webpack_require__(/*! @aws-amplify/auth */ "./node_modules/@aws-amplify/auth/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__aws_amplify_cache__ = __webpack_require__(/*! @aws-amplify/cache */ "./node_modules/@aws-amplify/cache/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__aws_amplify_core_lib_constants__ = __webpack_require__(/*! @aws-amplify/core/lib/constants */ "./node_modules/@aws-amplify/core/lib/constants.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__aws_amplify_core_lib_constants___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__aws_amplify_core_lib_constants__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_uuid__ = __webpack_require__(/*! uuid */ "./node_modules/@aws-amplify/api/node_modules/uuid/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_uuid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_uuid__); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var USER_AGENT_HEADER = 'x-amz-user-agent'; var logger = new __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["ConsoleLogger"]('API'); var graphqlOperation = function (query, variables) { if (variables === void 0) { variables = {}; } return ({ query: query, variables: variables, }); }; /** * Export Cloud Logic APIs */ var APIClass = /** @class */ (function () { /** * Initialize Storage with AWS configuration * @param {Object} options - Configuration object for storage */ function APIClass(options) { this._api = null; this._pubSub = __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["default"].PubSub; this.clientIdentifier = Object(__WEBPACK_IMPORTED_MODULE_9_uuid__["v4"])(); this._options = options; logger.debug('API Options', this._options); } APIClass.prototype.getModuleName = function () { return 'API'; }; /** * Configure API part with aws configurations * @param {Object} config - Configuration of the API * @return {Object} - The current configuration */ APIClass.prototype.configure = function (options) { var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, ["API"]); var opt = __assign(__assign({}, otherOptions), API); logger.debug('configure API', { opt: opt }); if (opt['aws_project_region']) { if (opt['aws_cloud_logic_custom']) { var custom = opt['aws_cloud_logic_custom']; opt.endpoints = typeof custom === 'string' ? JSON.parse(custom) : custom; } opt = Object.assign({}, opt, { region: opt['aws_project_region'], header: {}, }); } if (!Array.isArray(opt.endpoints)) { opt.endpoints = []; } // Check if endpoints has custom_headers and validate if is a function opt.endpoints.forEach(function (endpoint) { if (typeof endpoint.custom_header !== 'undefined' && typeof endpoint.custom_header !== 'function') { logger.warn('API ' + endpoint.name + ', custom_header should be a function'); endpoint.custom_header = undefined; } }); if (typeof opt.graphql_headers !== 'undefined' && typeof opt.graphql_headers !== 'function') { logger.warn('graphql_headers should be a function'); opt.graphql_headers = undefined; } this._options = Object.assign({}, this._options, opt); this.createInstance(); return this._options; }; /** * Create an instance of API for the library * @return - A promise of true if Success */ APIClass.prototype.createInstance = function () { logger.debug('create API instance'); if (this._options) { this._api = new __WEBPACK_IMPORTED_MODULE_4__RestClient__["a" /* RestClient */](this._options); return true; } else { return Promise.reject('API not configured'); } }; /** * Make a GET request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.get = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_1, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_1 = _a.sent(); return [2 /*return*/, Promise.reject(error_1)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.get(endpoint + path, init)]; } }); }); }; /** * Make a POST request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.post = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_2, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_2 = _a.sent(); return [2 /*return*/, Promise.reject(error_2)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.post(endpoint + path, init)]; } }); }); }; /** * Make a PUT request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.put = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_3, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_3 = _a.sent(); return [2 /*return*/, Promise.reject(error_3)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.put(endpoint + path, init)]; } }); }); }; /** * Make a PATCH request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.patch = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_4, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_4 = _a.sent(); return [2 /*return*/, Promise.reject(error_4)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.patch(endpoint + path, init)]; } }); }); }; /** * Make a DEL request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.del = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_5, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_5 = _a.sent(); return [2 /*return*/, Promise.reject(error_5)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.del(endpoint + path, init)]; } }); }); }; /** * Make a HEAD request * @param {string} apiName - The api name of the request * @param {string} path - The path of the request * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ APIClass.prototype.head = function (apiName, path, init) { return __awaiter(this, void 0, void 0, function () { var error_6, endpoint; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_6 = _a.sent(); return [2 /*return*/, Promise.reject(error_6)]; case 4: endpoint = this._api.endpoint(apiName); if (endpoint.length === 0) { return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')]; } return [2 /*return*/, this._api.head(endpoint + path, init)]; } }); }); }; /** * Getting endpoint for API * @param {string} apiName - The name of the api * @return {string} - The endpoint of the api */ APIClass.prototype.endpoint = function (apiName) { return __awaiter(this, void 0, void 0, function () { var error_7; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this._api) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.createInstance()]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: error_7 = _a.sent(); return [2 /*return*/, Promise.reject(error_7)]; case 4: return [2 /*return*/, this._api.endpoint(apiName)]; } }); }); }; APIClass.prototype._headerBasedAuth = function (defaultAuthenticationType) { return __awaiter(this, void 0, void 0, function () { var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, federatedInfo, session; return __generator(this, function (_c) { switch (_c.label) { case 0: _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey; authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM'; headers = {}; _b = authenticationType; switch (_b) { case 'API_KEY': return [3 /*break*/, 1]; case 'AWS_IAM': return [3 /*break*/, 2]; case 'OPENID_CONNECT': return [3 /*break*/, 4]; case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 6]; } return [3 /*break*/, 8]; case 1: if (!apiKey) { throw new Error('No api-key configured'); } headers = { Authorization: null, 'X-Api-Key': apiKey, }; return [3 /*break*/, 9]; case 2: return [4 /*yield*/, this._ensureCredentials()]; case 3: credentialsOK = _c.sent(); if (!credentialsOK) { throw new Error('No credentials'); } return [3 /*break*/, 9]; case 4: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_7__aws_amplify_cache__["default"].getItem('federatedInfo')]; case 5: federatedInfo = _c.sent(); if (!federatedInfo || !federatedInfo.token) { throw new Error('No federated jwt'); } headers = { Authorization: federatedInfo.token, }; return [3 /*break*/, 9]; case 6: return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_6__aws_amplify_auth__["default"].currentSession()]; case 7: session = _c.sent(); headers = { Authorization: session.getAccessToken().getJwtToken(), }; return [3 /*break*/, 9]; case 8: headers = { Authorization: null, }; return [3 /*break*/, 9]; case 9: return [2 /*return*/, headers]; } }); }); }; /** * to get the operation type * @param operation */ APIClass.prototype.getGraphqlOperationType = function (operation) { var doc = Object(__WEBPACK_IMPORTED_MODULE_2_graphql_language_parser__["a" /* parse */])(operation); var operationType = doc.definitions[0].operation; return operationType; }; /** * Executes a GraphQL operation * * @param {GraphQLOptions} GraphQL Options * @returns {Promise | Observable} */ APIClass.prototype.graphql = function (_a) { var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode; var query = typeof paramQuery === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_2_graphql_language_parser__["a" /* parse */])(paramQuery) : Object(__WEBPACK_IMPORTED_MODULE_2_graphql_language_parser__["a" /* parse */])(Object(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__["a" /* print */])(paramQuery)); var _c = query.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; })[0], operationDef = _c === void 0 ? {} : _c; var operationType = operationDef.operation; switch (operationType) { case 'query': case 'mutation': return this._graphql({ query: query, variables: variables, authMode: authMode }); case 'subscription': return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }); } throw new Error("invalid operation type: " + operationType); }; APIClass.prototype._graphql = function (_a, additionalHeaders) { var query = _a.query, variables = _a.variables, authMode = _a.authMode; if (additionalHeaders === void 0) { additionalHeaders = {}; } return __awaiter(this, void 0, void 0, function () { var _b, region, appSyncGraphqlEndpoint, _c, graphql_headers, customGraphqlEndpoint, customEndpointRegion, headers, _d, _e, _f, _g, _h, _j, body, init, endpoint, error, response, err_1, errors; var _k; return __generator(this, function (_l) { switch (_l.label) { case 0: if (!!this._api) return [3 /*break*/, 2]; return [4 /*yield*/, this.createInstance()]; case 1: _l.sent(); _l.label = 2; case 2: _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, customGraphqlEndpoint = _b.graphql_endpoint, customEndpointRegion = _b.graphql_endpoint_iam_region; _d = [{}]; _e = !customGraphqlEndpoint; if (!_e) return [3 /*break*/, 4]; return [4 /*yield*/, this._headerBasedAuth(authMode)]; case 3: _e = (_l.sent()); _l.label = 4; case 4: _f = [__assign.apply(void 0, _d.concat([(_e)]))]; _g = customGraphqlEndpoint; if (!_g) return [3 /*break*/, 8]; if (!customEndpointRegion) return [3 /*break*/, 6]; return [4 /*yield*/, this._headerBasedAuth(authMode)]; case 5: _h = _l.sent(); return [3 /*break*/, 7]; case 6: _h = { Authorization: null }; _l.label = 7; case 7: _g = (_h); _l.label = 8; case 8: _j = [__assign.apply(void 0, _f.concat([(_g)]))]; return [4 /*yield*/, graphql_headers({ query: query, variables: variables })]; case 9: headers = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), additionalHeaders]), (!customGraphqlEndpoint && (_k = {}, _k[USER_AGENT_HEADER] = __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["Constants"].userAgent, _k))]); body = { query: Object(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__["a" /* print */])(query), variables: variables, }; init = { headers: headers, body: body, signerServiceInfo: { service: !customGraphqlEndpoint ? 'appsync' : 'execute-api', region: !customGraphqlEndpoint ? region : customEndpointRegion, }, }; endpoint = customGraphqlEndpoint || appSyncGraphqlEndpoint; if (!endpoint) { error = new __WEBPACK_IMPORTED_MODULE_0_graphql__["a" /* GraphQLError */]('No graphql endpoint provided.'); throw { data: {}, errors: [error], }; } _l.label = 10; case 10: _l.trys.push([10, 12, , 13]); return [4 /*yield*/, this._api.post(endpoint, init)]; case 11: response = _l.sent(); return [3 /*break*/, 13]; case 12: err_1 = _l.sent(); response = { data: {}, errors: [new __WEBPACK_IMPORTED_MODULE_0_graphql__["a" /* GraphQLError */](err_1.message)], }; return [3 /*break*/, 13]; case 13: errors = response.errors; if (errors && errors.length) { throw response; } return [2 /*return*/, response]; } }); }); }; APIClass.prototype._graphqlSubscribe = function (_a) { var _this = this; var query = _a.query, variables = _a.variables, authMode = _a.authMode; if (__WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["default"].PubSub && typeof __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["default"].PubSub.subscribe === 'function') { return new __WEBPACK_IMPORTED_MODULE_3_zen_observable__(function (observer) { var handle = null; (function () { return __awaiter(_this, void 0, void 0, function () { var aws_appsync_authenticationType, authenticationType, additionalheaders, subscription, newSubscriptions_1, newTopics, observable, error_8; return __generator(this, function (_a) { switch (_a.label) { case 0: aws_appsync_authenticationType = this._options.aws_appsync_authenticationType; authenticationType = authMode || aws_appsync_authenticationType; additionalheaders = __assign({}, (authenticationType === 'API_KEY' ? { 'x-amz-subscriber-id': this.clientIdentifier, } : {})); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this._graphql({ query: query, variables: variables, authMode: authMode }, additionalheaders)]; case 2: subscription = (_a.sent()).extensions.subscription; newSubscriptions_1 = subscription.newSubscriptions; newTopics = Object.getOwnPropertyNames(newSubscriptions_1).map(function (p) { return newSubscriptions_1[p].topic; }); observable = __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["default"].PubSub.subscribe(newTopics, __assign(__assign({}, subscription), { provider: __WEBPACK_IMPORTED_MODULE_8__aws_amplify_core_lib_constants__["INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER"] })); handle = observable.subscribe({ next: function (data) { return observer.next(data); }, complete: function () { return observer.complete(); }, error: function (data) { var error = __assign({}, data); if (!error.errors) { error.errors = [ __assign({}, new __WEBPACK_IMPORTED_MODULE_0_graphql__["a" /* GraphQLError */]('Network Error')), ]; } observer.error(error); }, }); return [3 /*break*/, 4]; case 3: error_8 = _a.sent(); observer.error(error_8); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); })(); return function () { if (handle) { handle.unsubscribe(); } }; }); } else { logger.debug('No pubsub module applied for subscription'); throw new Error('No pubsub module applied for subscription'); } }; /** * @private */ APIClass.prototype._ensureCredentials = function () { return __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["Credentials"].get() .then(function (credentials) { if (!credentials) return false; var cred = __WEBPACK_IMPORTED_MODULE_5__aws_amplify_core__["Credentials"].shear(credentials); logger.debug('set credentials for api', cred); return true; }) .catch(function (err) { logger.warn('ensure credentials error', err); return false; }); }; return APIClass; }()); /* harmony default export */ __webpack_exports__["a"] = (APIClass); //# sourceMappingURL=API.js.map /***/ }), /***/ "./node_modules/@aws-amplify/api/lib-esm/RestClient.js": /*!*************************************************************!*\ !*** ./node_modules/@aws-amplify/api/lib-esm/RestClient.js ***! \*************************************************************/ /*! exports provided: RestClient */ /*! exports used: RestClient */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RestClient; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_axios__ = __webpack_require__(/*! axios */ "./node_modules/axios/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_axios__); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('RestClient'), urlLib = __webpack_require__(/*! url */ "./node_modules/url/url.js"); /** * HTTP Client for REST requests. Send and receive JSON data. * Sign request with AWS credentials if available * Usage:
const restClient = new RestClient();
restClient.get('...')
    .then(function(data) {
        console.log(data);
    })
    .catch(err => console.log(err));
*/ var RestClient = /** @class */ (function () { /** * @param {RestClientOptions} [options] - Instance options */ function RestClient(options) { this._region = 'us-east-1'; // this will be updated by endpoint function this._service = 'execute-api'; // this can be updated by endpoint function this._custom_header = undefined; // this can be updated by endpoint function var endpoints = options.endpoints; this._options = options; logger.debug('API Options', this._options); } /** * Update AWS credentials * @param {AWSCredentials} credentials - AWS credentials * updateCredentials(credentials: AWSCredentials) { this.options.credentials = credentials; } */ /** * Basic HTTP request. Customizable * @param {string} url - Full request URL * @param {string} method - Request HTTP method * @param {json} [init] - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.ajax = function (url, method, init) { return __awaiter(this, void 0, void 0, function () { var parsed_url, params, libraryHeaders, userAgent, initParams, isAllResponse, custom_header, _a, _b, search, parsedUrl; var _this = this; return __generator(this, function (_c) { switch (_c.label) { case 0: logger.debug(method + ' ' + url); parsed_url = this._parseUrl(url); params = { method: method, url: url, host: parsed_url.host, path: parsed_url.path, headers: {}, data: null, responseType: 'json', timeout: 0, }; libraryHeaders = {}; if (__WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Platform"].isReactNative) { userAgent = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Platform"].userAgent || 'aws-amplify/0.1.x'; libraryHeaders = { 'User-Agent': userAgent, }; } initParams = Object.assign({}, init); isAllResponse = initParams.response; if (initParams.body) { libraryHeaders['Content-Type'] = 'application/json; charset=UTF-8'; params.data = JSON.stringify(initParams.body); } if (initParams.responseType) { params.responseType = initParams.responseType; } if (initParams.withCredentials) { params['withCredentials'] = initParams.withCredentials; } if (initParams.timeout) { params.timeout = initParams.timeout; } params['signerServiceInfo'] = initParams.signerServiceInfo; if (!this._custom_header) return [3 /*break*/, 2]; return [4 /*yield*/, this._custom_header()]; case 1: _a = _c.sent(); return [3 /*break*/, 3]; case 2: _a = undefined; _c.label = 3; case 3: custom_header = _a; params.headers = __assign(__assign(__assign({}, libraryHeaders), custom_header), initParams.headers); _b = urlLib.parse(url, true, true), search = _b.search, parsedUrl = __rest(_b, ["search"]); params.url = urlLib.format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), (initParams.queryStringParameters || {})) })); // Do not sign the request if client has added 'Authorization' header, // which means custom authorizer. if (typeof params.headers['Authorization'] !== 'undefined') { params.headers = Object.keys(params.headers).reduce(function (acc, k) { if (params.headers[k]) { acc[k] = params.headers[k]; } return acc; // tslint:disable-next-line:align }, {}); return [2 /*return*/, this._request(params, isAllResponse)]; } // Signing the request in case there credentials are available return [2 /*return*/, __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].get().then(function (credentials) { return _this._signed(__assign({}, params), credentials, isAllResponse); }, function (err) { logger.debug('No credentials available, the request will be unsigned'); return _this._request(params, isAllResponse); })]; } }); }); }; /** * GET HTTP request * @param {string} url - Full request URL * @param {JSON} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.get = function (url, init) { return this.ajax(url, 'GET', init); }; /** * PUT HTTP request * @param {string} url - Full request URL * @param {json} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.put = function (url, init) { return this.ajax(url, 'PUT', init); }; /** * PATCH HTTP request * @param {string} url - Full request URL * @param {json} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.patch = function (url, init) { return this.ajax(url, 'PATCH', init); }; /** * POST HTTP request * @param {string} url - Full request URL * @param {json} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.post = function (url, init) { return this.ajax(url, 'POST', init); }; /** * DELETE HTTP request * @param {string} url - Full request URL * @param {json} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.del = function (url, init) { return this.ajax(url, 'DELETE', init); }; /** * HEAD HTTP request * @param {string} url - Full request URL * @param {json} init - Request extra params * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful. */ RestClient.prototype.head = function (url, init) { return this.ajax(url, 'HEAD', init); }; /** * Getting endpoint for API * @param {string} apiName - The name of the api * @return {string} - The endpoint of the api */ RestClient.prototype.endpoint = function (apiName) { var _this = this; var cloud_logic_array = this._options.endpoints; var response = ''; if (!Array.isArray(cloud_logic_array)) { return response; } cloud_logic_array.forEach(function (v) { if (v.name === apiName) { response = v.endpoint; if (typeof v.region === 'string') { _this._region = v.region; } else if (typeof _this._options.region === 'string') { _this._region = _this._options.region; } if (typeof v.service === 'string') { _this._service = v.service || 'execute-api'; } else { _this._service = 'execute-api'; } if (typeof v.custom_header === 'function') { _this._custom_header = v.custom_header; } else { _this._custom_header = undefined; } } }); return response; }; /** private methods **/ RestClient.prototype._signed = function (params, credentials, isAllResponse) { var signerServiceInfoParams = params.signerServiceInfo, otherParams = __rest(params, ["signerServiceInfo"]); var endpoint_region = this._region || this._options.region; var endpoint_service = this._service || this._options.service; var creds = { secret_key: credentials.secretAccessKey, access_key: credentials.accessKeyId, session_token: credentials.sessionToken, }; var endpointInfo = { region: endpoint_region, service: endpoint_service, }; var signerServiceInfo = Object.assign(endpointInfo, signerServiceInfoParams); var signed_params = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Signer"].sign(otherParams, creds, signerServiceInfo); if (signed_params.data) { signed_params.body = signed_params.data; } logger.debug('Signed Request: ', signed_params); delete signed_params.headers['host']; return __WEBPACK_IMPORTED_MODULE_1_axios___default()(signed_params) .then(function (response) { return (isAllResponse ? response : response.data); }) .catch(function (error) { logger.debug(error); throw error; }); }; RestClient.prototype._request = function (params, isAllResponse) { if (isAllResponse === void 0) { isAllResponse = false; } return __WEBPACK_IMPORTED_MODULE_1_axios___default()(params) .then(function (response) { return (isAllResponse ? response : response.data); }) .catch(function (error) { logger.debug(error); throw error; }); }; RestClient.prototype._parseUrl = function (url) { var parts = url.split('/'); return { host: parts[2], path: '/' + parts.slice(3).join('/'), }; }; return RestClient; }()); //# sourceMappingURL=RestClient.js.map /***/ }), /***/ "./node_modules/@aws-amplify/api/lib-esm/index.js": /*!********************************************************!*\ !*** ./node_modules/@aws-amplify/api/lib-esm/index.js ***! \********************************************************/ /*! exports provided: default, APIClass, graphqlOperation */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__API__ = __webpack_require__(/*! ./API */ "./node_modules/@aws-amplify/api/lib-esm/API.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "APIClass", function() { return __WEBPACK_IMPORTED_MODULE_0__API__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "graphqlOperation", function() { return __WEBPACK_IMPORTED_MODULE_0__API__["b"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('API'); var _instance = null; if (!_instance) { logger.debug('Create API Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__API__["a" /* default */](null); } var API = _instance; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["default"].register(API); /* harmony default export */ __webpack_exports__["default"] = (API); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/api/node_modules/uuid/index.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/api/node_modules/uuid/index.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! exports used: v4 */ /***/ (function(module, exports, __webpack_require__) { var v1 = __webpack_require__(/*! ./v1 */ "./node_modules/@aws-amplify/api/node_modules/uuid/v1.js"); var v4 = __webpack_require__(/*! ./v4 */ "./node_modules/@aws-amplify/api/node_modules/uuid/v4.js"); var uuid = v4; uuid.v1 = v1; uuid.v4 = v4; module.exports = uuid; /***/ }), /***/ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/bytesToUuid.js": /*!****************************************************************************!*\ !*** ./node_modules/@aws-amplify/api/node_modules/uuid/lib/bytesToUuid.js ***! \****************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ var byteToHex = []; for (var i = 0; i < 256; ++i) { byteToHex[i] = (i + 0x100).toString(16).substr(1); } function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 return ([ bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]] ]).join(''); } module.exports = bytesToUuid; /***/ }), /***/ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/rng-browser.js": /*!****************************************************************************!*\ !*** ./node_modules/@aws-amplify/api/node_modules/uuid/lib/rng-browser.js ***! \****************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via // feature-detection // getRandomValues needs to be invoked in a context where "this" is a Crypto // implementation. Also, find the complete implementation of crypto on IE11. var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); if (getRandomValues) { // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef module.exports = function whatwgRNG() { getRandomValues(rnds8); return rnds8; }; } else { // Math.random()-based (RNG) // // If all else fails, use Math.random(). It's fast, but is of unspecified // quality. var rnds = new Array(16); module.exports = function mathRNG() { for (var i = 0, r; i < 16; i++) { if ((i & 0x03) === 0) r = Math.random() * 0x100000000; rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; } return rnds; }; } /***/ }), /***/ "./node_modules/@aws-amplify/api/node_modules/uuid/v1.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/api/node_modules/uuid/v1.js ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/bytesToUuid.js"); // **`v1()` - Generate time-based UUID** // // Inspired by https://github.com/LiosK/UUID.js // and http://docs.python.org/library/uuid.html var _nodeId; var _clockseq; // Previous uuid creation time var _lastMSecs = 0; var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details function v1(options, buf, offset) { var i = buf && offset || 0; var b = buf || []; options = options || {}; var node = options.node || _nodeId; var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not // specified. We do this lazily to minimize issues related to insufficient // system entropy. See #189 if (node == null || clockseq == null) { var seedBytes = rng(); if (node == null) { // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) node = _nodeId = [ seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] ]; } if (clockseq == null) { // Per 4.2.2, randomize (14 bit) clockseq clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; } } // UUID timestamps are 100 nano-second units since the Gregorian epoch, // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock // cycle to simulate higher resolution clock var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; // Per 4.2.1.2, Bump clockseq on clock regression if (dt < 0 && options.clockseq === undefined) { clockseq = clockseq + 1 & 0x3fff; } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new // time interval if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { nsecs = 0; } // Per 4.2.1.2 Throw error if too many uuids are requested if (nsecs >= 10000) { throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); } _lastMSecs = msecs; _lastNSecs = nsecs; _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch msecs += 12219292800000; // `time_low` var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; b[i++] = tl >>> 24 & 0xff; b[i++] = tl >>> 16 & 0xff; b[i++] = tl >>> 8 & 0xff; b[i++] = tl & 0xff; // `time_mid` var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; b[i++] = tmh >>> 8 & 0xff; b[i++] = tmh & 0xff; // `time_high_and_version` b[i++] = tmh >>> 24 & 0xf | 0x10; // include version b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` b[i++] = clockseq & 0xff; // `node` for (var n = 0; n < 6; ++n) { b[i + n] = node[n]; } return buf ? buf : bytesToUuid(b); } module.exports = v1; /***/ }), /***/ "./node_modules/@aws-amplify/api/node_modules/uuid/v4.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/api/node_modules/uuid/v4.js ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/api/node_modules/uuid/lib/bytesToUuid.js"); function v4(options, buf, offset) { var i = buf && offset || 0; if (typeof(options) == 'string') { buf = options === 'binary' ? new Array(16) : null; options = null; } options = options || {}; var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided if (buf) { for (var ii = 0; ii < 16; ++ii) { buf[i + ii] = rnds[ii]; } } return buf || bytesToUuid(rnds); } module.exports = v4; /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/Auth.js": /*!********************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/Auth.js ***! \********************************************************/ /*! exports provided: CognitoHostedUIIdentityProvider, default */ /*! exports used: CognitoHostedUIIdentityProvider, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CognitoHostedUIIdentityProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__types__ = __webpack_require__(/*! ./types */ "./node_modules/@aws-amplify/auth/lib-esm/types/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__ = __webpack_require__(/*! amazon-cognito-identity-js */ "./node_modules/amazon-cognito-identity-js/es/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_url__ = __webpack_require__(/*! url */ "./node_modules/url/url.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_url___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_url__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__OAuth_OAuth__ = __webpack_require__(/*! ./OAuth/OAuth */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__urlListener__ = __webpack_require__(/*! ./urlListener */ "./node_modules/@aws-amplify/auth/lib-esm/urlListener.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Errors__ = __webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/auth/lib-esm/Errors.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__types_Auth__ = __webpack_require__(/*! ./types/Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); /* * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('AuthClass'); var USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin'; var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); var dispatchAuthEvent = function (event, data, message) { __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Hub"].dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL); }; var CognitoHostedUIIdentityProvider; (function (CognitoHostedUIIdentityProvider) { CognitoHostedUIIdentityProvider["Cognito"] = "COGNITO"; CognitoHostedUIIdentityProvider["Google"] = "Google"; CognitoHostedUIIdentityProvider["Facebook"] = "Facebook"; CognitoHostedUIIdentityProvider["Amazon"] = "LoginWithAmazon"; })(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {})); /** * Provide authentication steps */ var AuthClass = /** @class */ (function () { /** * Initialize Auth with AWS configurations * @param {Object} config - Configuration of the Auth */ function AuthClass(config) { var _this = this; this.userPool = null; this.user = null; this.configure(config); this.currentUserCredentials = this.currentUserCredentials.bind(this); if (__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["AWS"].config) { __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["AWS"].config.update({ customUserAgent: __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Constants"].userAgent }); } else { logger.warn('No AWS.config'); } __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Hub"].listen('auth', function (_a) { var payload = _a.payload; var event = payload.event; switch (event) { case 'signIn': _this._storage.setItem('amplify-signin-with-hostedUI', 'false'); break; case 'signOut': _this._storage.removeItem('amplify-signin-with-hostedUI'); break; case 'cognitoHostedUI': _this._storage.setItem('amplify-signin-with-hostedUI', 'true'); break; } }); } AuthClass.prototype.getModuleName = function () { return 'Auth'; }; AuthClass.prototype.configure = function (config) { var _this = this; if (!config) return this._config || {}; logger.debug('configure Auth'); var conf = Object.assign({}, this._config, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Parser"].parseMobilehubConfig(config).Auth, config); this._config = conf; var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata; if (!this._config.storage) { // backward compatbility if (cookieStorage) this._storage = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["i" /* CookieStorage */](cookieStorage); else { this._storage = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["StorageHelper"]().getStorage(); } } else { if (!this._isValidAuthStorage(this._config.storage)) { logger.error('The storage in the Auth config is not valid!'); throw new Error('Empty storage object'); } this._storage = this._config.storage; } this._storageSync = Promise.resolve(); if (typeof this._storage['sync'] === 'function') { this._storageSync = this._storage['sync'](); } if (userPoolId) { var userPoolData = { UserPoolId: userPoolId, ClientId: userPoolWebClientId, }; userPoolData.Storage = this._storage; this.userPool = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["g" /* CognitoUserPool */](userPoolData); } __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].configure({ mandatorySignIn: mandatorySignIn, region: identityPoolRegion || region, userPoolId: userPoolId, identityPoolId: identityPoolId, refreshHandlers: refreshHandlers, storage: this._storage, }); // initiailize cognitoauth client if hosted ui options provided // to keep backward compatibility: var cognitoHostedUIConfig = oauth ? Object(__WEBPACK_IMPORTED_MODULE_0__types__["a" /* isCognitoHostedOpts */])(this._config.oauth) ? oauth : oauth.awsCognito : undefined; if (cognitoHostedUIConfig) { var cognitoAuthParams = Object.assign({ cognitoClientId: userPoolWebClientId, UserPoolId: userPoolId, domain: cognitoHostedUIConfig['domain'], scopes: cognitoHostedUIConfig['scope'], redirectSignIn: cognitoHostedUIConfig['redirectSignIn'], redirectSignOut: cognitoHostedUIConfig['redirectSignOut'], responseType: cognitoHostedUIConfig['responseType'], Storage: this._storage, urlOpener: cognitoHostedUIConfig['urlOpener'], clientMetadata: clientMetadata, }, cognitoHostedUIConfig['options']); this._oAuthHandler = new __WEBPACK_IMPORTED_MODULE_4__OAuth_OAuth__["a" /* default */]({ scopes: cognitoAuthParams.scopes, config: cognitoAuthParams, cognitoClientId: cognitoAuthParams.cognitoClientId, }); // **NOTE** - Remove this in a future major release as it is a breaking change Object(__WEBPACK_IMPORTED_MODULE_5__urlListener__["a" /* default */])(function (_a) { var url = _a.url; _this._handleAuthResponse(url); }); } dispatchAuthEvent('configured', null, "The Auth category has been configured successfully"); return this._config; }; /** * Sign up with username, password and other attrbutes like phone, email * @param {String | object} params - The user attirbutes used for signin * @param {String[]} restOfAttrs - for the backward compatability * @return - A promise resolves callback data if success */ AuthClass.prototype.signUp = function (params) { var _this = this; var restOfAttrs = []; for (var _i = 1; _i < arguments.length; _i++) { restOfAttrs[_i - 1] = arguments[_i]; } if (!this.userPool) { return this.rejectNoUserPool(); } var username = null; var password = null; var attributes = []; var validationData = null; var clientMetadata; if (params && typeof params === 'string') { username = params; password = restOfAttrs ? restOfAttrs[0] : null; var email = restOfAttrs ? restOfAttrs[1] : null; var phone_number = restOfAttrs ? restOfAttrs[2] : null; if (email) attributes.push({ Name: 'email', Value: email }); if (phone_number) attributes.push({ Name: 'phone_number', Value: phone_number }); } else if (params && typeof params === 'object') { username = params['username']; password = params['password']; if (params && params.clientMetadata) { clientMetadata = params.clientMetadata; } else if (this._config.clientMetadata) { clientMetadata = this._config.clientMetadata; } var attrs_1 = params['attributes']; if (attrs_1) { Object.keys(attrs_1).map(function (key) { var ele = { Name: key, Value: attrs_1[key] }; attributes.push(ele); }); } validationData = params['validationData'] || null; } else { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].SignUpError); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } if (!password) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyPassword); } logger.debug('signUp attrs:', attributes); logger.debug('signUp validation data:', validationData); return new Promise(function (resolve, reject) { _this.userPool.signUp(username, password, attributes, validationData, function (err, data) { if (err) { dispatchAuthEvent('signUp_failure', err, username + " failed to signup"); reject(err); } else { dispatchAuthEvent('signUp', data, username + " has signed up successfully"); resolve(data); } }, clientMetadata); }); }; /** * Send the verfication code to confirm sign up * @param {String} username - The username to be confirmed * @param {String} code - The verification code * @param {ConfirmSignUpOptions} options - other options for confirm signup * @return - A promise resolves callback data if success */ AuthClass.prototype.confirmSignUp = function (username, code, options) { if (!this.userPool) { return this.rejectNoUserPool(); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } if (!code) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyCode); } var user = this.createCognitoUser(username); var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean' ? options.forceAliasCreation : true; var clientMetadata; if (options && options.clientMetadata) { clientMetadata = options.clientMetadata; } else if (this._config.clientMetadata) { clientMetadata = this._config.clientMetadata; } return new Promise(function (resolve, reject) { user.confirmRegistration(code, forceAliasCreation, function (err, data) { if (err) { reject(err); } else { resolve(data); } }, clientMetadata); }); }; /** * Resend the verification code * @param {String} username - The username to be confirmed * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers * @return - A promise resolves data if success */ AuthClass.prototype.resendSignUp = function (username, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!this.userPool) { return this.rejectNoUserPool(); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } var user = this.createCognitoUser(username); return new Promise(function (resolve, reject) { user.resendConfirmationCode(function (err, data) { if (err) { reject(err); } else { resolve(data); } }, clientMetadata); }); }; /** * Sign in * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options * @param {String} password - The password of the username * @return - A promise resolves the CognitoUser */ AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!this.userPool) { return this.rejectNoUserPool(); } var username = null; var password = null; var validationData = {}; // for backward compatibility if (typeof usernameOrSignInOpts === 'string') { username = usernameOrSignInOpts; password = pw; } else if (Object(__WEBPACK_IMPORTED_MODULE_0__types__["d" /* isUsernamePasswordOpts */])(usernameOrSignInOpts)) { if (typeof pw !== 'undefined') { logger.warn('The password should be defined under the first parameter object!'); } username = usernameOrSignInOpts.username; password = usernameOrSignInOpts.password; validationData = usernameOrSignInOpts.validationData; } else { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].InvalidUsername); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } var authDetails = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["a" /* AuthenticationDetails */]({ Username: username, Password: password, ValidationData: validationData, ClientMetadata: clientMetadata, }); if (password) { return this.signInWithPassword(authDetails); } else { return this.signInWithoutPassword(authDetails); } }; /** * Return an object with the authentication callbacks * @param {CognitoUser} user - the cognito user object * @param {} resolve - function called when resolving the current step * @param {} reject - function called when rejecting the current step * @return - an object with the callback methods for user authentication */ AuthClass.prototype.authCallbacks = function (user, resolve, reject) { var _this = this; var that = this; return { onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { var cred, e_1, currentUser, e_2; return __generator(this, function (_a) { switch (_a.label) { case 0: logger.debug(session); delete user['challengeName']; delete user['challengeParam']; _a.label = 1; case 1: _a.trys.push([1, 4, 5, 9]); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].clear()]; case 2: _a.sent(); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(session, 'session')]; case 3: cred = _a.sent(); logger.debug('succeed to get cognito credentials', cred); return [3 /*break*/, 9]; case 4: e_1 = _a.sent(); logger.debug('cannot get cognito credentials', e_1); return [3 /*break*/, 9]; case 5: _a.trys.push([5, 7, , 8]); return [4 /*yield*/, this.currentUserPoolUser()]; case 6: currentUser = _a.sent(); that.user = currentUser; dispatchAuthEvent('signIn', currentUser, "A user " + user.getUsername() + " has been signed in"); resolve(currentUser); return [3 /*break*/, 8]; case 7: e_2 = _a.sent(); logger.error('Failed to get the signed in user', e_2); reject(e_2); return [3 /*break*/, 8]; case 8: return [7 /*endfinally*/]; case 9: return [2 /*return*/]; } }); }); }, onFailure: function (err) { logger.debug('signIn failure', err); dispatchAuthEvent('signIn_failure', err, user.getUsername() + " failed to signin"); reject(err); }, customChallenge: function (challengeParam) { logger.debug('signIn custom challenge answer required'); user['challengeName'] = 'CUSTOM_CHALLENGE'; user['challengeParam'] = challengeParam; resolve(user); }, mfaRequired: function (challengeName, challengeParam) { logger.debug('signIn MFA required'); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, mfaSetup: function (challengeName, challengeParam) { logger.debug('signIn mfa setup', challengeName); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, newPasswordRequired: function (userAttributes, requiredAttributes) { logger.debug('signIn new password'); user['challengeName'] = 'NEW_PASSWORD_REQUIRED'; user['challengeParam'] = { userAttributes: userAttributes, requiredAttributes: requiredAttributes, }; resolve(user); }, totpRequired: function (challengeName, challengeParam) { logger.debug('signIn totpRequired'); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, selectMFAType: function (challengeName, challengeParam) { logger.debug('signIn selectMFAType', challengeName); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, }; }; /** * Sign in with a password * @private * @param {AuthenticationDetails} authDetails - the user sign in data * @return - A promise resolves the CognitoUser object if success or mfa required */ AuthClass.prototype.signInWithPassword = function (authDetails) { var _this = this; var user = this.createCognitoUser(authDetails.getUsername()); return new Promise(function (resolve, reject) { user.authenticateUser(authDetails, _this.authCallbacks(user, resolve, reject)); }); }; /** * Sign in without a password * @private * @param {AuthenticationDetails} authDetails - the user sign in data * @return - A promise resolves the CognitoUser object if success or mfa required */ AuthClass.prototype.signInWithoutPassword = function (authDetails) { var _this = this; var user = this.createCognitoUser(authDetails.getUsername()); user.setAuthenticationFlowType('CUSTOM_AUTH'); return new Promise(function (resolve, reject) { user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject)); }); }; /** * get user current preferred mfa option * this method doesn't work with totp, we need to deprecate it. * @deprecated * @param {CognitoUser} user - the current user * @return - A promise resolves the current preferred mfa option if success */ AuthClass.prototype.getMFAOptions = function (user) { return new Promise(function (res, rej) { user.getMFAOptions(function (err, mfaOptions) { if (err) { logger.debug('get MFA Options failed', err); rej(err); return; } logger.debug('get MFA options success', mfaOptions); res(mfaOptions); return; }); }); }; /** * get preferred mfa method * @param {CognitoUser} user - the current cognito user * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA */ AuthClass.prototype.getPreferredMFA = function (user, params) { var that = this; return new Promise(function (res, rej) { var bypassCache = params ? params.bypassCache : false; user.getUserData(function (err, data) { if (err) { logger.debug('getting preferred mfa failed', err); rej(err); return; } var mfaType = that._getMfaTypeFromUserData(data); if (!mfaType) { rej('invalid MFA Type'); return; } else { res(mfaType); return; } }, { bypassCache: bypassCache }); }); }; AuthClass.prototype._getMfaTypeFromUserData = function (data) { var ret = null; var preferredMFA = data.PreferredMfaSetting; // if the user has used Auth.setPreferredMFA() to setup the mfa type // then the "PreferredMfaSetting" would exist in the response if (preferredMFA) { ret = preferredMFA; } else { // if mfaList exists but empty, then its noMFA var mfaList = data.UserMFASettingList; if (!mfaList) { // if SMS was enabled by using Auth.enableSMS(), // the response would contain MFAOptions // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA' // if it does not exist, then it should be NOMFA var MFAOptions = data.MFAOptions; if (MFAOptions) { ret = 'SMS_MFA'; } else { ret = 'NOMFA'; } } else if (mfaList.length === 0) { ret = 'NOMFA'; } else { logger.debug('invalid case for getPreferredMFA', data); } } return ret; }; AuthClass.prototype._getUserData = function (user, params) { return new Promise(function (res, rej) { user.getUserData(function (err, data) { if (err) { logger.debug('getting user data failed', err); rej(err); return; } else { res(data); return; } }, params); }); }; /** * set preferred MFA method * @param {CognitoUser} user - the current Cognito user * @param {string} mfaMethod - preferred mfa method * @return - A promise resolve if success */ AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) { return __awaiter(this, void 0, void 0, function () { var userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that; return __generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this._getUserData(user, { bypassCache: true })]; case 1: userData = _b.sent(); smsMfaSettings = null; totpMfaSettings = null; _a = mfaMethod; switch (_a) { case 'TOTP' || 'SOFTWARE_TOKEN_MFA': return [3 /*break*/, 2]; case 'SMS' || 'SMS_MFA': return [3 /*break*/, 3]; case 'NOMFA': return [3 /*break*/, 4]; } return [3 /*break*/, 6]; case 2: totpMfaSettings = { PreferredMfa: true, Enabled: true, }; return [3 /*break*/, 7]; case 3: smsMfaSettings = { PreferredMfa: true, Enabled: true, }; return [3 /*break*/, 7]; case 4: mfaList = userData['UserMFASettingList']; return [4 /*yield*/, this._getMfaTypeFromUserData(userData)]; case 5: currentMFAType = _b.sent(); if (currentMFAType === 'NOMFA') { return [2 /*return*/, Promise.resolve('No change for mfa type')]; } else if (currentMFAType === 'SMS_MFA') { smsMfaSettings = { PreferredMfa: false, Enabled: false, }; } else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') { totpMfaSettings = { PreferredMfa: false, Enabled: false, }; } else { return [2 /*return*/, this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].InvalidMFA)]; } // if there is a UserMFASettingList in the response // we need to disable every mfa type in that list if (mfaList && mfaList.length !== 0) { // to disable SMS or TOTP if exists in that list mfaList.forEach(function (mfaType) { if (mfaType === 'SMS_MFA') { smsMfaSettings = { PreferredMfa: false, Enabled: false, }; } else if (mfaType === 'SOFTWARE_TOKEN_MFA') { totpMfaSettings = { PreferredMfa: false, Enabled: false, }; } }); } return [3 /*break*/, 7]; case 6: logger.debug('no validmfa method provided'); return [2 /*return*/, this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].NoMFA)]; case 7: that = this; return [2 /*return*/, new Promise(function (res, rej) { user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) { if (err) { logger.debug('Set user mfa preference error', err); return rej(err); } logger.debug('Set user mfa success', result); logger.debug('Caching the latest user data into local'); // cache the latest result into user data user.getUserData(function (err, data) { if (err) { logger.debug('getting user data failed', err); return rej(err); } else { return res(result); } }, { bypassCache: true }); }); })]; } }); }); }; /** * diable SMS * @deprecated * @param {CognitoUser} user - the current user * @return - A promise resolves is success */ AuthClass.prototype.disableSMS = function (user) { return new Promise(function (res, rej) { user.disableMFA(function (err, data) { if (err) { logger.debug('disable mfa failed', err); rej(err); return; } logger.debug('disable mfa succeed', data); res(data); return; }); }); }; /** * enable SMS * @deprecated * @param {CognitoUser} user - the current user * @return - A promise resolves is success */ AuthClass.prototype.enableSMS = function (user) { return new Promise(function (res, rej) { user.enableMFA(function (err, data) { if (err) { logger.debug('enable mfa failed', err); rej(err); return; } logger.debug('enable mfa succeed', data); res(data); return; }); }); }; /** * Setup TOTP * @param {CognitoUser} user - the current user * @return - A promise resolves with the secret code if success */ AuthClass.prototype.setupTOTP = function (user) { return new Promise(function (res, rej) { user.associateSoftwareToken({ onFailure: function (err) { logger.debug('associateSoftwareToken failed', err); rej(err); return; }, associateSecretCode: function (secretCode) { logger.debug('associateSoftwareToken sucess', secretCode); res(secretCode); return; }, }); }); }; /** * verify TOTP setup * @param {CognitoUser} user - the current user * @param {string} challengeAnswer - challenge answer * @return - A promise resolves is success */ AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) { logger.debug('verfication totp token', user, challengeAnswer); return new Promise(function (res, rej) { user.verifySoftwareToken(challengeAnswer, 'My TOTP device', { onFailure: function (err) { logger.debug('verifyTotpToken failed', err); rej(err); return; }, onSuccess: function (data) { logger.debug('verifyTotpToken success', data); res(data); return; }, }); }); }; /** * Send MFA code to confirm sign in * @param {Object} user - The CognitoUser object * @param {String} code - The confirmation code */ AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) { var _this = this; if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!code) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyCode); } var that = this; return new Promise(function (resolve, reject) { user.sendMFACode(code, { onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { var cred, e_3; return __generator(this, function (_a) { switch (_a.label) { case 0: logger.debug(session); _a.label = 1; case 1: _a.trys.push([1, 4, 5, 6]); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].clear()]; case 2: _a.sent(); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(session, 'session')]; case 3: cred = _a.sent(); logger.debug('succeed to get cognito credentials', cred); return [3 /*break*/, 6]; case 4: e_3 = _a.sent(); logger.debug('cannot get cognito credentials', e_3); return [3 /*break*/, 6]; case 5: that.user = user; dispatchAuthEvent('signIn', user, user + " has signed in"); resolve(user); return [7 /*endfinally*/]; case 6: return [2 /*return*/]; } }); }); }, onFailure: function (err) { logger.debug('confirm signIn failure', err); reject(err); }, }, mfaType, clientMetadata); }); }; AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) { var _this = this; if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!password) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyPassword); } var that = this; return new Promise(function (resolve, reject) { user.completeNewPasswordChallenge(password, requiredAttributes, { onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { var cred, e_4; return __generator(this, function (_a) { switch (_a.label) { case 0: logger.debug(session); _a.label = 1; case 1: _a.trys.push([1, 4, 5, 6]); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].clear()]; case 2: _a.sent(); return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(session, 'session')]; case 3: cred = _a.sent(); logger.debug('succeed to get cognito credentials', cred); return [3 /*break*/, 6]; case 4: e_4 = _a.sent(); logger.debug('cannot get cognito credentials', e_4); return [3 /*break*/, 6]; case 5: that.user = user; dispatchAuthEvent('signIn', user, user + " has signed in"); resolve(user); return [7 /*endfinally*/]; case 6: return [2 /*return*/]; } }); }); }, onFailure: function (err) { logger.debug('completeNewPassword failure', err); dispatchAuthEvent('completeNewPassword_failure', err, _this.user + " failed to complete the new password flow"); reject(err); }, mfaRequired: function (challengeName, challengeParam) { logger.debug('signIn MFA required'); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, mfaSetup: function (challengeName, challengeParam) { logger.debug('signIn mfa setup', challengeName); user['challengeName'] = challengeName; user['challengeParam'] = challengeParam; resolve(user); }, }, clientMetadata); }); }; /** * Send the answer to a custom challenge * @param {CognitoUser} user - The CognitoUser object * @param {String} challengeResponses - The confirmation code */ AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) { var _this = this; if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!this.userPool) { return this.rejectNoUserPool(); } if (!challengeResponses) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyChallengeResponse); } var that = this; return new Promise(function (resolve, reject) { user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata); }); }; /** * Update an authenticated users' attributes * @param {CognitoUser} - The currently logged in user object * @return {Promise} **/ AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } var attributeList = []; var that = this; return new Promise(function (resolve, reject) { that.userSession(user).then(function (session) { for (var key in attributes) { if (key !== 'sub' && key.indexOf('_verified') < 0) { var attr = { Name: key, Value: attributes[key], }; attributeList.push(attr); } } user.updateAttributes(attributeList, function (err, result) { if (err) { return reject(err); } else { return resolve(result); } }, clientMetadata); }); }); }; /** * Return user attributes * @param {Object} user - The CognitoUser object * @return - A promise resolves to user attributes if success */ AuthClass.prototype.userAttributes = function (user) { var _this = this; return new Promise(function (resolve, reject) { _this.userSession(user).then(function (session) { user.getUserAttributes(function (err, attributes) { if (err) { reject(err); } else { resolve(attributes); } }); }); }); }; AuthClass.prototype.verifiedContact = function (user) { var that = this; return this.userAttributes(user).then(function (attributes) { var attrs = that.attributesToObject(attributes); var unverified = {}; var verified = {}; if (attrs['email']) { if (attrs['email_verified']) { verified['email'] = attrs['email']; } else { unverified['email'] = attrs['email']; } } if (attrs['phone_number']) { if (attrs['phone_number_verified']) { verified['phone_number'] = attrs['phone_number']; } else { unverified['phone_number'] = attrs['phone_number']; } } return { verified: verified, unverified: unverified, }; }); }; /** * Get current authenticated user * @return - A promise resolves to current authenticated CognitoUser if success */ AuthClass.prototype.currentUserPoolUser = function (params) { var _this = this; if (!this.userPool) { return this.rejectNoUserPool(); } var that = this; return new Promise(function (res, rej) { _this._storageSync .then(function () { var user = that.userPool.getCurrentUser(); if (!user) { logger.debug('Failed to get user from user pool'); rej('No current user'); return; } // refresh the session if the session expired. user.getSession(function (err, session) { if (err) { logger.debug('Failed to get the user session', err); rej(err); return; } // get user data from Cognito var bypassCache = params ? params.bypassCache : false; // validate the token's scope fisrt before calling this function var _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a; if (scope.split(' ').includes(USER_ADMIN_SCOPE)) { user.getUserData(function (err, data) { if (err) { logger.debug('getting user data failed', err); // Make sure the user is still valid if (err.message === 'User is disabled' || err.message === 'User does not exist.') { rej(err); } else { // the error may also be thrown when lack of permissions to get user info etc // in that case we just bypass the error res(user); } return; } var preferredMFA = data.PreferredMfaSetting || 'NOMFA'; var attributeList = []; for (var i = 0; i < data.UserAttributes.length; i++) { var attribute = { Name: data.UserAttributes[i].Name, Value: data.UserAttributes[i].Value, }; var userAttribute = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["f" /* CognitoUserAttribute */](attribute); attributeList.push(userAttribute); } var attributes = that.attributesToObject(attributeList); Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA }); return res(user); }, { bypassCache: bypassCache }); } else { logger.debug("Unable to get the user data because the " + USER_ADMIN_SCOPE + " " + "is not in the scopes of the access token"); return res(user); } }); }) .catch(function (e) { logger.debug('Failed to sync cache info into memory', e); return rej(e); }); }); }; /** * Get current authenticated user * @param {CurrentUserOpts} - options for getting the current user * @return - A promise resolves to current authenticated CognitoUser if success */ AuthClass.prototype.currentAuthenticatedUser = function (params) { return __awaiter(this, void 0, void 0, function () { var federatedUser, e_5, user, e_6; return __generator(this, function (_a) { switch (_a.label) { case 0: logger.debug('getting current authenticated user'); federatedUser = null; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this._storageSync]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: e_5 = _a.sent(); logger.debug('Failed to sync cache info into memory', e_5); throw e_5; case 4: try { federatedUser = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user; } catch (e) { logger.debug('cannot load federated user from auth storage'); } if (!federatedUser) return [3 /*break*/, 5]; this.user = federatedUser; logger.debug('get current authenticated federated user', this.user); return [2 /*return*/, this.user]; case 5: logger.debug('get current authenticated userpool user'); user = null; _a.label = 6; case 6: _a.trys.push([6, 8, , 9]); return [4 /*yield*/, this.currentUserPoolUser(params)]; case 7: user = _a.sent(); return [3 /*break*/, 9]; case 8: e_6 = _a.sent(); if (e_6 === 'No userPool') { logger.error('Cannot get the current user because the user pool is missing. ' + 'Please make sure the Auth module is configured with a valid Cognito User Pool ID'); } logger.debug('The user is not authenticated by the error', e_6); throw 'not authenticated'; case 9: this.user = user; return [2 /*return*/, this.user]; } }); }); }; /** * Get current user's session * @return - A promise resolves to session object if success */ AuthClass.prototype.currentSession = function () { var that = this; logger.debug('Getting current session'); // Purposely not calling the reject method here because we don't need a console error if (!this.userPool) { return Promise.reject(); } return new Promise(function (res, rej) { that .currentUserPoolUser() .then(function (user) { that .userSession(user) .then(function (session) { res(session); return; }) .catch(function (e) { logger.debug('Failed to get the current session', e); rej(e); return; }); }) .catch(function (e) { logger.debug('Failed to get the current user', e); rej(e); return; }); }); }; /** * Get the corresponding user session * @param {Object} user - The CognitoUser object * @return - A promise resolves to the session */ AuthClass.prototype.userSession = function (user) { if (!user) { logger.debug('the user is null'); return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].NoUserSession); } return new Promise(function (resolve, reject) { logger.debug('Getting the session from this user:', user); user.getSession(function (err, session) { if (err) { logger.debug('Failed to get the session from user', user); reject(err); return; } else { logger.debug('Succeed to get the user session', session); resolve(session); return; } }); }); }; /** * Get authenticated credentials of current user. * @return - A promise resolves to be current user's credentials */ AuthClass.prototype.currentUserCredentials = function () { return __awaiter(this, void 0, void 0, function () { var that, e_7, federatedInfo; return __generator(this, function (_a) { switch (_a.label) { case 0: that = this; logger.debug('Getting current user credentials'); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this._storageSync]; case 2: _a.sent(); return [3 /*break*/, 4]; case 3: e_7 = _a.sent(); logger.debug('Failed to sync cache info into memory', e_7); throw e_7; case 4: federatedInfo = null; try { federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')); } catch (e) { logger.debug('failed to get or parse item aws-amplify-federatedInfo', e); } if (federatedInfo) { // refresh the jwt token here if necessary return [2 /*return*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].refreshFederatedToken(federatedInfo)]; } else { return [2 /*return*/, this.currentSession() .then(function (session) { logger.debug('getting session success', session); return __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(session, 'session'); }) .catch(function (error) { logger.debug('getting session failed', error); return __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(null, 'guest'); })]; } return [2 /*return*/]; } }); }); }; AuthClass.prototype.currentCredentials = function () { logger.debug('getting current credntials'); return __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].get(); }; /** * Initiate an attribute confirmation request * @param {Object} user - The CognitoUser * @param {Object} attr - The attributes to be verified * @return - A promise resolves to callback data if success */ AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } return new Promise(function (resolve, reject) { user.getAttributeVerificationCode(attr, { onSuccess: function () { return resolve(); }, onFailure: function (err) { return reject(err); }, clientMetadata: clientMetadata, }); }); }; /** * Confirm an attribute using a confirmation code * @param {Object} user - The CognitoUser * @param {Object} attr - The attribute to be verified * @param {String} code - The confirmation code * @return - A promise resolves to callback data if success */ AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) { if (!code) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyCode); } return new Promise(function (resolve, reject) { user.verifyAttribute(attr, code, { onSuccess: function (data) { resolve(data); return; }, onFailure: function (err) { reject(err); return; }, }); }); }; AuthClass.prototype.verifyCurrentUserAttribute = function (attr) { var that = this; return that .currentUserPoolUser() .then(function (user) { return that.verifyUserAttribute(user, attr); }); }; /** * Confirm current user's attribute using a confirmation code * @param {Object} attr - The attribute to be verified * @param {String} code - The confirmation code * @return - A promise resolves to callback data if success */ AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) { var that = this; return that .currentUserPoolUser() .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); }); }; AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) { return __awaiter(this, void 0, void 0, function () { var e_8, isSignedInHostedUI; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, this._storageSync]; case 1: _a.sent(); return [3 /*break*/, 3]; case 2: e_8 = _a.sent(); logger.debug('Failed to sync cache info into memory', e_8); throw e_8; case 3: isSignedInHostedUI = this._oAuthHandler && this._storage.getItem('amplify-signin-with-hostedUI') === 'true'; return [2 /*return*/, new Promise(function (res, rej) { if (opts && opts.global) { logger.debug('user global sign out', user); // in order to use global signout // we must validate the user as an authenticated user by using getSession user.getSession(function (err, result) { if (err) { logger.debug('failed to get the user session', err); return rej(err); } user.globalSignOut({ onSuccess: function (data) { logger.debug('global sign out success'); if (isSignedInHostedUI) { return res(_this._oAuthHandler.signOut()); } else { return res(); } }, onFailure: function (err) { logger.debug('global sign out failed', err); return rej(err); }, }); }); } else { logger.debug('user sign out', user); user.signOut(); if (isSignedInHostedUI) { return res(_this._oAuthHandler.signOut()); } else { return res(); } } })]; } }); }); }; /** * Sign out method * @ * @return - A promise resolved if success */ AuthClass.prototype.signOut = function (opts) { return __awaiter(this, void 0, void 0, function () { var e_9, user; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, this.cleanCachedItems()]; case 1: _a.sent(); return [3 /*break*/, 3]; case 2: e_9 = _a.sent(); logger.debug('failed to clear cached items'); return [3 /*break*/, 3]; case 3: if (!this.userPool) return [3 /*break*/, 7]; user = this.userPool.getCurrentUser(); if (!user) return [3 /*break*/, 5]; return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)]; case 4: _a.sent(); return [3 /*break*/, 6]; case 5: logger.debug('no current Cognito user'); _a.label = 6; case 6: return [3 /*break*/, 8]; case 7: logger.debug('no Congito User pool'); _a.label = 8; case 8: /** * Note for future refactor - no reliable way to get username with * Cognito User Pools vs Identity when federating with Social Providers * This is why we need a well structured session object that can be inspected * and information passed back in the message below for Hub dispatch */ dispatchAuthEvent('signOut', this.user, "A user has been signed out"); this.user = null; return [2 /*return*/]; } }); }); }; AuthClass.prototype.cleanCachedItems = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: // clear cognito cached item return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].clear()]; case 1: // clear cognito cached item _a.sent(); return [2 /*return*/]; } }); }); }; /** * Change a password for an authenticated user * @param {Object} user - The CognitoUser object * @param {String} oldPassword - the current password * @param {String} newPassword - the requested new password * @return - A promise resolves if success */ AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) { var _this = this; if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } return new Promise(function (resolve, reject) { _this.userSession(user).then(function (session) { user.changePassword(oldPassword, newPassword, function (err, data) { if (err) { logger.debug('change password failure', err); return reject(err); } else { return resolve(data); } }, clientMetadata); }); }); }; /** * Initiate a forgot password request * @param {String} username - the username to change password * @return - A promise resolves if success */ AuthClass.prototype.forgotPassword = function (username, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!this.userPool) { return this.rejectNoUserPool(); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } var user = this.createCognitoUser(username); return new Promise(function (resolve, reject) { user.forgotPassword({ onSuccess: function () { resolve(); return; }, onFailure: function (err) { logger.debug('forgot password failure', err); dispatchAuthEvent('forgotPassword_failure', err, username + " forgotPassword failed"); reject(err); return; }, inputVerificationCode: function (data) { dispatchAuthEvent('forgotPassword', user, username + " has initiated forgot password flow"); resolve(data); return; }, }, clientMetadata); }); }; /** * Confirm a new password using a confirmation Code * @param {String} username - The username * @param {String} code - The confirmation code * @param {String} password - The new password * @return - A promise that resolves if success */ AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) { if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } if (!this.userPool) { return this.rejectNoUserPool(); } if (!username) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyUsername); } if (!code) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyCode); } if (!password) { return this.rejectAuthError(__WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].EmptyPassword); } var user = this.createCognitoUser(username); return new Promise(function (resolve, reject) { user.confirmPassword(code, password, { onSuccess: function () { dispatchAuthEvent('forgotPasswordSubmit', user, username + " forgotPasswordSubmit successful"); resolve(); return; }, onFailure: function (err) { dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + " forgotPasswordSubmit failed"); reject(err); return; }, }, clientMetadata); }); }; /** * Get user information * @async * @return {Object }- current User's information */ AuthClass.prototype.currentUserInfo = function () { return __awaiter(this, void 0, void 0, function () { var source, user, attributes, userAttrs, credentials, e_10, info, err_1, user; return __generator(this, function (_a) { switch (_a.label) { case 0: source = __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].getCredSource(); if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9]; return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) { return logger.debug(err); })]; case 1: user = _a.sent(); if (!user) { return [2 /*return*/, null]; } _a.label = 2; case 2: _a.trys.push([2, 8, , 9]); return [4 /*yield*/, this.userAttributes(user)]; case 3: attributes = _a.sent(); userAttrs = this.attributesToObject(attributes); credentials = null; _a.label = 4; case 4: _a.trys.push([4, 6, , 7]); return [4 /*yield*/, this.currentCredentials()]; case 5: credentials = _a.sent(); return [3 /*break*/, 7]; case 6: e_10 = _a.sent(); logger.debug('Failed to retrieve credentials while getting current user info', e_10); return [3 /*break*/, 7]; case 7: info = { id: credentials ? credentials.identityId : undefined, username: user.getUsername(), attributes: userAttrs, }; return [2 /*return*/, info]; case 8: err_1 = _a.sent(); logger.debug('currentUserInfo error', err_1); return [2 /*return*/, {}]; case 9: if (source === 'federated') { user = this.user; return [2 /*return*/, user ? user : {}]; } return [2 /*return*/]; } }); }); }; AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) { return __awaiter(this, void 0, void 0, function () { var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!this._config.identityPoolId && !this._config.userPoolId) { throw new Error("Federation requires either a User Pool or Identity Pool in config"); } // Ensure backwards compatability if (typeof providerOrOptions === 'undefined') { if (this._config.identityPoolId && !this._config.userPoolId) { throw new Error("Federation with Identity Pools requires tokens passed as arguments"); } } if (!(Object(__WEBPACK_IMPORTED_MODULE_0__types__["b" /* isFederatedSignInOptions */])(providerOrOptions) || Object(__WEBPACK_IMPORTED_MODULE_0__types__["c" /* isFederatedSignInOptionsCustom */])(providerOrOptions) || typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1]; options = providerOrOptions || { provider: CognitoHostedUIIdentityProvider.Cognito, }; provider = Object(__WEBPACK_IMPORTED_MODULE_0__types__["b" /* isFederatedSignInOptions */])(options) ? options.provider : options.customProvider; customState = Object(__WEBPACK_IMPORTED_MODULE_0__types__["b" /* isFederatedSignInOptions */])(options) ? options.customState : options.customState; if (this._config.userPoolId) { client_id = Object(__WEBPACK_IMPORTED_MODULE_0__types__["a" /* isCognitoHostedOpts */])(this._config.oauth) ? this._config.userPoolWebClientId : this._config.oauth.clientID; redirect_uri = Object(__WEBPACK_IMPORTED_MODULE_0__types__["a" /* isCognitoHostedOpts */])(this._config.oauth) ? this._config.oauth.redirectSignIn : this._config.oauth.redirectUri; this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState); } return [3 /*break*/, 4]; case 1: provider = providerOrOptions; // To check if the user is already logged in try { loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user); if (loggedInUser) { logger.warn("There is already a signed in user: " + loggedInUser + " in your app.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior."); } } catch (e) { } token = response.token, identity_id = response.identity_id, expires_at = response.expires_at; return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')]; case 2: credentials = _a.sent(); return [4 /*yield*/, this.currentAuthenticatedUser()]; case 3: currentUser = _a.sent(); dispatchAuthEvent('signIn', currentUser, "A user " + currentUser.username + " has been signed in"); logger.debug('federated sign in credentials', credentials); return [2 /*return*/, credentials]; case 4: return [2 /*return*/]; } }); }); }; /** * Used to complete the OAuth flow with or without the Cognito Hosted UI * @param {String} URL - optional parameter for customers to pass in the response URL */ AuthClass.prototype._handleAuthResponse = function (URL) { return __awaiter(this, void 0, void 0, function () { var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, _b, customState, err_2; return __generator(this, function (_c) { switch (_c.label) { case 0: if (!this._config.userPoolId) { throw new Error("OAuth responses require a User Pool defined in config"); } dispatchAuthEvent('parsingCallbackUrl', { url: URL }, "The callback url is being parsed"); currentUrl = URL || (__WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["JS"].browserOrNode().isBrowser ? window.location.href : ''); hasCodeOrError = !!(Object(__WEBPACK_IMPORTED_MODULE_3_url__["parse"])(currentUrl).query || '') .split('&') .map(function (entry) { return entry.split('='); }) .find(function (_a) { var k = _a[0]; return k === 'code' || k === 'error'; }); hasTokenOrError = !!(Object(__WEBPACK_IMPORTED_MODULE_3_url__["parse"])(currentUrl).hash || '#') .substr(1) .split('&') .map(function (entry) { return entry.split('='); }) .find(function (_a) { var k = _a[0]; return k === 'access_token' || k === 'error'; }); if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 6]; _c.label = 1; case 1: _c.trys.push([1, 5, , 6]); return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)]; case 2: _a = _c.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state; session = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["h" /* CognitoUserSession */]({ IdToken: new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["c" /* CognitoIdToken */]({ IdToken: idToken }), RefreshToken: new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["d" /* CognitoRefreshToken */]({ RefreshToken: refreshToken }), AccessToken: new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["b" /* CognitoAccessToken */]({ AccessToken: accessToken }), }); credentials = void 0; if (!this._config.identityPoolId) return [3 /*break*/, 4]; return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].set(session, 'session')]; case 3: credentials = _c.sent(); logger.debug('AWS credentials', credentials); _c.label = 4; case 4: isCustomStateIncluded = /-/.test(state); currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']); dispatchAuthEvent('signIn', currentUser, "A user " + currentUser.getUsername() + " has been signed in"); dispatchAuthEvent('cognitoHostedUI', currentUser, "A user " + currentUser.getUsername() + " has been signed in via Cognito Hosted UI"); if (isCustomStateIncluded) { _b = state.split('-'), customState = _b[1]; dispatchAuthEvent('customOAuthState', customState, "State for user " + currentUser.getUsername()); } // This calls cacheTokens() in Cognito SDK currentUser.setSignInUserSession(session); //#endregion if (window && typeof window.history !== 'undefined') { window.history.replaceState({}, null, this._config.oauth.redirectSignIn); } return [2 /*return*/, credentials]; case 5: err_2 = _c.sent(); logger.debug('Error in cognito hosted auth response', err_2); dispatchAuthEvent('signIn_failure', err_2, "The OAuth response flow failed"); dispatchAuthEvent('cognitoHostedUI_failure', err_2, "A failure occurred when returning to the Cognito Hosted UI"); dispatchAuthEvent('customState_failure', err_2, "A failure occurred when returning state"); throw err_2; case 6: return [2 /*return*/]; } }); }); }; /** * Compact version of credentials * @param {Object} credentials * @return {Object} - Credentials */ AuthClass.prototype.essentialCredentials = function (credentials) { return { accessKeyId: credentials.accessKeyId, sessionToken: credentials.sessionToken, secretAccessKey: credentials.secretAccessKey, identityId: credentials.identityId, authenticated: credentials.authenticated, }; }; AuthClass.prototype.attributesToObject = function (attributes) { var obj = {}; if (attributes) { attributes.map(function (attribute) { if (attribute.Value === 'true') { obj[attribute.Name] = true; } else if (attribute.Value === 'false') { obj[attribute.Name] = false; } else { obj[attribute.Name] = attribute.Value; } }); } return obj; }; AuthClass.prototype.createCognitoUser = function (username) { var userData = { Username: username, Pool: this.userPool, }; userData.Storage = this._storage; var authenticationFlowType = this._config.authenticationFlowType; var user = new __WEBPACK_IMPORTED_MODULE_2_amazon_cognito_identity_js__["e" /* CognitoUser */](userData); if (authenticationFlowType) { user.setAuthenticationFlowType(authenticationFlowType); } return user; }; AuthClass.prototype._isValidAuthStorage = function (obj) { // We need to check if the obj has the functions of Storage return (!!obj && typeof obj.getItem === 'function' && typeof obj.setItem === 'function' && typeof obj.removeItem === 'function' && typeof obj.clear === 'function'); }; AuthClass.prototype.noUserPoolErrorHandler = function (config) { if (config) { if (!config.userPoolId || !config.identityPoolId) { return __WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].MissingAuthConfig; } } return __WEBPACK_IMPORTED_MODULE_7__types_Auth__["a" /* AuthErrorTypes */].NoConfig; }; AuthClass.prototype.rejectAuthError = function (type) { return Promise.reject(new __WEBPACK_IMPORTED_MODULE_6__Errors__["a" /* AuthError */](type)); }; AuthClass.prototype.rejectNoUserPool = function () { var type = this.noUserPoolErrorHandler(this._config); return Promise.reject(new __WEBPACK_IMPORTED_MODULE_6__Errors__["b" /* NoUserPoolError */](type)); }; return AuthClass; }()); /* harmony default export */ __webpack_exports__["b"] = (AuthClass); //# sourceMappingURL=Auth.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/Errors.js": /*!**********************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/Errors.js ***! \**********************************************************/ /*! exports provided: AuthError, NoUserPoolError, authErrorMessages */ /*! exports used: AuthError, NoUserPoolError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AuthError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return NoUserPoolError; }); /* unused harmony export authErrorMessages */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AuthError'); var DEFAULT_MSG = 'Authentication Error'; var AuthError = /** @class */ (function (_super) { __extends(AuthError, _super); function AuthError(type) { var _this = this; var _a = authErrorMessages[type], message = _a.message, log = _a.log; _this = _super.call(this, message) || this; // Hack for making the custom error class work when transpiled to es5 // TODO: Delete the following 2 lines after we change the build target to >= es2015 _this.constructor = AuthError; Object.setPrototypeOf(_this, AuthError.prototype); _this.name = 'AuthError'; _this.log = log || message; logger.error(_this.log); return _this; } return AuthError; }(Error)); var NoUserPoolError = /** @class */ (function (_super) { __extends(NoUserPoolError, _super); function NoUserPoolError(type) { var _this = _super.call(this, type) || this; // Hack for making the custom error class work when transpiled to es5 // TODO: Delete the following 2 lines after we change the build target to >= es2015 _this.constructor = NoUserPoolError; Object.setPrototypeOf(_this, NoUserPoolError.prototype); _this.name = 'NoUserPoolError'; return _this; } return NoUserPoolError; }(AuthError)); var authErrorMessages = { noConfig: { message: DEFAULT_MSG, log: "\n Error: Amplify has not been configured correctly.\n This error is typically caused by one of the following scenarios:\n\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\n \n 2. There might be multiple conflicting versions of aws-amplify or amplify packages in your node_modules.\n Try deleting your node_modules folder and reinstalling the dependencies with `yarn install`\n ", }, missingAuthConfig: { message: DEFAULT_MSG, log: "\n Error: Amplify has not been configured correctly. \n The configuration object is missing required auth properties. \n Did you run `amplify push` after adding auth via `amplify add auth`?\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\n ", }, emptyUsername: { message: 'Username cannot be empty', }, // TODO: should include a list of valid sign-in types invalidUsername: { message: 'The username should either be a string or one of the sign in types', }, emptyPassword: { message: 'Password cannot be empty', }, emptyCode: { message: 'Confirmation code cannot be empty', }, signUpError: { message: 'Error creating account', log: 'The first parameter should either be non-null string or object', }, noMFA: { message: 'No valid MFA method provided', }, invalidMFA: { message: 'Invalid MFA type', }, emptyChallengeResponse: { message: 'Challenge response cannot be empty', }, noUserSession: { message: 'Failed to get the session because the user is empty', }, default: { message: DEFAULT_MSG, }, }; //# sourceMappingURL=Errors.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js ***! \***************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_url__ = __webpack_require__(/*! url */ "./node_modules/url/url.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_url___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_url__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__urlOpener__ = __webpack_require__(/*! ./urlOpener */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__oauthStorage__ = __webpack_require__(/*! ./oauthStorage */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types_Auth__ = __webpack_require__(/*! ../types/Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; // Used for OAuth parsing of Cognito Hosted UI var SHA256 = __webpack_require__(/*! crypto-js/sha256 */ "./node_modules/crypto-js/sha256.js"); var Base64 = __webpack_require__(/*! crypto-js/enc-base64 */ "./node_modules/crypto-js/enc-base64.js"); var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); var dispatchAuthEvent = function (event, data, message) { __WEBPACK_IMPORTED_MODULE_4__aws_amplify_core__["Hub"].dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL); }; var logger = new __WEBPACK_IMPORTED_MODULE_4__aws_amplify_core__["ConsoleLogger"]('OAuth'); var OAuth = /** @class */ (function () { function OAuth(_a) { var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b; this._urlOpener = config.urlOpener || __WEBPACK_IMPORTED_MODULE_1__urlOpener__["a" /* launchUri */]; this._config = config; this._cognitoClientId = cognitoClientId; this._scopes = scopes; } OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) { if (responseType === void 0) { responseType = 'code'; } if (provider === void 0) { provider = __WEBPACK_IMPORTED_MODULE_3__types_Auth__["b" /* CognitoHostedUIIdentityProvider */].Cognito; } var generatedState = this._generateState(32); var state = customState ? generatedState + "-" + customState : generatedState; __WEBPACK_IMPORTED_MODULE_2__oauthStorage__["d" /* setState */](encodeURIComponent(state)); var pkce_key = this._generateRandom(128); __WEBPACK_IMPORTED_MODULE_2__oauthStorage__["c" /* setPKCE */](pkce_key); var code_challenge = this._generateChallenge(pkce_key); var code_challenge_method = 'S256'; var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scopes: this._scopes, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {}))) .map(function (_a) { var k = _a[0], v = _a[1]; return encodeURIComponent(k) + "=" + encodeURIComponent(v); }) .join('&'); var URL = "https://" + domain + "/oauth2/authorize?" + queryString; logger.debug("Redirecting to " + URL); this._urlOpener(URL, redirectSignIn); }; OAuth.prototype._handleCodeFlow = function (currentUrl) { return __awaiter(this, void 0, void 0, function () { var code, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, _a, access_token, refresh_token, id_token, error; return __generator(this, function (_b) { switch (_b.label) { case 0: code = (Object(__WEBPACK_IMPORTED_MODULE_0_url__["parse"])(currentUrl).query || '') .split('&') .map(function (pairings) { return pairings.split('='); }) .reduce(function (accum, _a) { var _b; var k = _a[0], v = _a[1]; return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b))); }, { code: undefined }).code; if (!code) { return [2 /*return*/]; } oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token'; dispatchAuthEvent('codeFlow', {}, "Retrieving tokens from " + oAuthTokenEndpoint); client_id = Object(__WEBPACK_IMPORTED_MODULE_3__types_Auth__["c" /* isCognitoHostedOpts */])(this._config) ? this._cognitoClientId : this._config.clientID; redirect_uri = Object(__WEBPACK_IMPORTED_MODULE_3__types_Auth__["c" /* isCognitoHostedOpts */])(this._config) ? this._config.redirectSignIn : this._config.redirectUri; code_verifier = __WEBPACK_IMPORTED_MODULE_2__oauthStorage__["a" /* getPKCE */](); oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code, client_id: client_id, redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {})); logger.debug("Calling token endpoint: " + oAuthTokenEndpoint + " with", oAuthTokenBody); body = Object.entries(oAuthTokenBody) .map(function (_a) { var k = _a[0], v = _a[1]; return encodeURIComponent(k) + "=" + encodeURIComponent(v); }) .join('&'); return [4 /*yield*/, fetch(oAuthTokenEndpoint, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: body, })]; case 1: return [4 /*yield*/, (_b.sent()).json()]; case 2: _a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error; if (error) { throw new Error(error); } return [2 /*return*/, { accessToken: access_token, refreshToken: refresh_token, idToken: id_token, }]; } }); }); }; OAuth.prototype._handleImplicitFlow = function (currentUrl) { return __awaiter(this, void 0, void 0, function () { var _a, id_token, access_token; return __generator(this, function (_b) { _a = Object(__WEBPACK_IMPORTED_MODULE_0_url__["parse"])(currentUrl) .hash.substr(1) // Remove # from returned code .split('&') .map(function (pairings) { return pairings.split('='); }) .reduce(function (accum, _a) { var _b; var k = _a[0], v = _a[1]; return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b))); }, { id_token: undefined, access_token: undefined, }), id_token = _a.id_token, access_token = _a.access_token; dispatchAuthEvent('implicitFlow', {}, "Got tokens from " + currentUrl); logger.debug("Retrieving implicit tokens from " + currentUrl + " with"); return [2 /*return*/, { accessToken: access_token, idToken: id_token, refreshToken: null, }]; }); }); }; OAuth.prototype.handleAuthResponse = function (currentUrl) { return __awaiter(this, void 0, void 0, function () { var urlParams, error, error_description, state, _a, _b, e_1; return __generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 5, , 6]); urlParams = currentUrl ? __assign(__assign({}, (Object(__WEBPACK_IMPORTED_MODULE_0_url__["parse"])(currentUrl).hash || '#') .substr(1) .split('&') .map(function (entry) { return entry.split('='); }) .reduce(function (acc, _a) { var k = _a[0], v = _a[1]; return ((acc[k] = v), acc); }, {})), (Object(__WEBPACK_IMPORTED_MODULE_0_url__["parse"])(currentUrl).query || '') .split('&') .map(function (entry) { return entry.split('='); }) .reduce(function (acc, _a) { var k = _a[0], v = _a[1]; return ((acc[k] = v), acc); }, {})) : {}; error = urlParams.error, error_description = urlParams.error_description; if (error) { throw new Error(error_description); } state = this._validateState(urlParams); logger.debug("Starting " + this._config.responseType + " flow with " + currentUrl); if (!(this._config.responseType === 'code')) return [3 /*break*/, 2]; _a = [{}]; return [4 /*yield*/, this._handleCodeFlow(currentUrl)]; case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])]; case 2: _b = [{}]; return [4 /*yield*/, this._handleImplicitFlow(currentUrl)]; case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])]; case 4: return [3 /*break*/, 6]; case 5: e_1 = _c.sent(); logger.error("Error handling auth response.", e_1); return [3 /*break*/, 6]; case 6: return [2 /*return*/]; } }); }); }; OAuth.prototype._validateState = function (urlParams) { if (!urlParams) { return; } var savedState = __WEBPACK_IMPORTED_MODULE_2__oauthStorage__["b" /* getState */](); var returnedState = urlParams.state; // This is because savedState only exists if the flow was initiated by Amplify if (savedState && savedState !== returnedState) { throw new Error('Invalid state in OAuth flow'); } return returnedState; }; OAuth.prototype.signOut = function () { return __awaiter(this, void 0, void 0, function () { var oAuthLogoutEndpoint, client_id, signout_uri; return __generator(this, function (_a) { oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?'; client_id = Object(__WEBPACK_IMPORTED_MODULE_3__types_Auth__["c" /* isCognitoHostedOpts */])(this._config) ? this._cognitoClientId : this._config.oauth.clientID; signout_uri = Object(__WEBPACK_IMPORTED_MODULE_3__types_Auth__["c" /* isCognitoHostedOpts */])(this._config) ? this._config.redirectSignOut : this._config.returnTo; oAuthLogoutEndpoint += Object.entries({ client_id: client_id, logout_uri: encodeURIComponent(signout_uri), }) .map(function (_a) { var k = _a[0], v = _a[1]; return k + "=" + v; }) .join('&'); dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, "Signing out from " + oAuthLogoutEndpoint); logger.debug("Signing out from " + oAuthLogoutEndpoint); return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint)]; }); }); }; OAuth.prototype._generateState = function (length) { var result = ''; var i = length; var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for (; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; return result; }; OAuth.prototype._generateChallenge = function (code) { return this._base64URL(SHA256(code)); }; OAuth.prototype._base64URL = function (string) { return string .toString(Base64) .replace(/=/g, '') .replace(/\+/g, '-') .replace(/\//g, '_'); }; OAuth.prototype._generateRandom = function (size) { var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~'; var buffer = new Uint8Array(size); if (typeof window !== 'undefined' && !!window.crypto) { window.crypto.getRandomValues(buffer); } else { for (var i = 0; i < size; i += 1) { buffer[i] = (Math.random() * CHARSET.length) | 0; } } return this._bufferToString(buffer); }; OAuth.prototype._bufferToString = function (buffer) { var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var state = []; for (var i = 0; i < buffer.byteLength; i += 1) { var index = buffer[i] % CHARSET.length; state.push(CHARSET[index]); } return state.join(''); }; return OAuth; }()); /* harmony default export */ __webpack_exports__["a"] = (OAuth); //# sourceMappingURL=OAuth.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js": /*!**********************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js ***! \**********************************************************************/ /*! exports provided: setState, getState, setPKCE, getPKCE, clearAll */ /*! exports used: getPKCE, getState, setPKCE, setState */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return setState; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getState; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return setPKCE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getPKCE; }); /* unused harmony export clearAll */ /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var setState = function (state) { window.sessionStorage.setItem('oauth_state', state); }; var getState = function () { var oauth_state = window.sessionStorage.getItem('oauth_state'); window.sessionStorage.removeItem('oauth_state'); return oauth_state; }; var setPKCE = function (private_key) { window.sessionStorage.setItem('ouath_pkce_key', private_key); }; var getPKCE = function () { var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key'); window.sessionStorage.removeItem('ouath_pkce_key'); return ouath_pkce_key; }; var clearAll = function () { window.sessionStorage.removeItem('ouath_pkce_key'); window.sessionStorage.removeItem('oauth_state'); }; //# sourceMappingURL=oauthStorage.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js": /*!*******************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js ***! \*******************************************************************/ /*! exports provided: launchUri */ /*! exports used: launchUri */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return launchUri; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var SELF = '_self'; var launchUri = function (url) { var windowProxy = window.open(url, SELF); if (windowProxy) { return Promise.resolve(windowProxy); } else { return Promise.reject(); } }; //# sourceMappingURL=urlOpener.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/index.js": /*!*********************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/index.js ***! \*********************************************************/ /*! exports provided: default, AuthClass, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Auth__ = __webpack_require__(/*! ./Auth */ "./node_modules/@aws-amplify/auth/lib-esm/Auth.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_amazon_cognito_identity_js__ = __webpack_require__(/*! amazon-cognito-identity-js */ "./node_modules/amazon-cognito-identity-js/es/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AuthClass", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoUser", function() { return __WEBPACK_IMPORTED_MODULE_1_amazon_cognito_identity_js__["e"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CookieStorage", function() { return __WEBPACK_IMPORTED_MODULE_1_amazon_cognito_identity_js__["i"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoHostedUIIdentityProvider", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["ConsoleLogger"]('Auth'); var _instance = null; if (!_instance) { logger.debug('Create Auth Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__Auth__["b" /* default */](null); } var Auth = _instance; __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["default"].register(Auth); /* harmony default export */ __webpack_exports__["default"] = (Auth); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js": /*!**************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js ***! \**************************************************************/ /*! exports provided: CognitoHostedUIIdentityProvider, isFederatedSignInOptions, isFederatedSignInOptionsCustom, isCognitoHostedOpts, AuthErrorTypes, isUsernamePasswordOpts */ /*! exports used: AuthErrorTypes, CognitoHostedUIIdentityProvider, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, isUsernamePasswordOpts */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CognitoHostedUIIdentityProvider; }); /* harmony export (immutable) */ __webpack_exports__["d"] = isFederatedSignInOptions; /* harmony export (immutable) */ __webpack_exports__["e"] = isFederatedSignInOptionsCustom; /* harmony export (immutable) */ __webpack_exports__["c"] = isCognitoHostedOpts; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AuthErrorTypes; }); /* harmony export (immutable) */ __webpack_exports__["f"] = isUsernamePasswordOpts; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var CognitoHostedUIIdentityProvider; (function (CognitoHostedUIIdentityProvider) { CognitoHostedUIIdentityProvider["Cognito"] = "COGNITO"; CognitoHostedUIIdentityProvider["Google"] = "Google"; CognitoHostedUIIdentityProvider["Facebook"] = "Facebook"; CognitoHostedUIIdentityProvider["Amazon"] = "LoginWithAmazon"; })(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {})); function isFederatedSignInOptions(obj) { var keys = ['provider', 'customState']; return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); }); } function isFederatedSignInOptionsCustom(obj) { var keys = [ 'customProvider', 'customState', ]; return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); }); } function isCognitoHostedOpts(oauth) { return oauth.redirectSignIn !== undefined; } var AuthErrorTypes; (function (AuthErrorTypes) { AuthErrorTypes["NoConfig"] = "noConfig"; AuthErrorTypes["MissingAuthConfig"] = "missingAuthConfig"; AuthErrorTypes["EmptyUsername"] = "emptyUsername"; AuthErrorTypes["InvalidUsername"] = "invalidUsername"; AuthErrorTypes["EmptyPassword"] = "emptyPassword"; AuthErrorTypes["EmptyCode"] = "emptyCode"; AuthErrorTypes["SignUpError"] = "signUpError"; AuthErrorTypes["NoMFA"] = "noMFA"; AuthErrorTypes["InvalidMFA"] = "invalidMFA"; AuthErrorTypes["EmptyChallengeResponse"] = "emptyChallengeResponse"; AuthErrorTypes["NoUserSession"] = "noUserSession"; AuthErrorTypes["Default"] = "default"; })(AuthErrorTypes || (AuthErrorTypes = {})); function isUsernamePasswordOpts(obj) { return !!obj.username; } //# sourceMappingURL=Auth.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/types/index.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/types/index.js ***! \***************************************************************/ /*! exports provided: CognitoHostedUIIdentityProvider, isFederatedSignInOptions, isFederatedSignInOptionsCustom, isCognitoHostedOpts, AuthErrorTypes, isUsernamePasswordOpts */ /*! exports used: isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, isUsernamePasswordOpts */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Auth__ = __webpack_require__(/*! ./Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["c"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["d"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["e"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__Auth__["f"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/auth/lib-esm/urlListener.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/auth/lib-esm/urlListener.js ***! \***************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /* harmony default export */ __webpack_exports__["a"] = (function (callback) { if (__WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isBrowser && window.location) { var url = window.location.href; callback({ url: url }); } else if (__WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["JS"].browserOrNode().isNode) { // continue building on ssr (function () { }); // noop } else { throw new Error('Not supported'); } }); //# sourceMappingURL=urlListener.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js ***! \************************************************************************/ /*! exports provided: BrowserStorageCache, default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export BrowserStorageCache */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Utils__ = __webpack_require__(/*! ./Utils */ "./node_modules/@aws-amplify/cache/lib-esm/Utils/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__StorageCache__ = __webpack_require__(/*! ./StorageCache */ "./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var logger = new __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["ConsoleLogger"]('Cache'); /** * Customized storage based on the SessionStorage or LocalStorage with LRU implemented */ var BrowserStorageCache = /** @class */ (function (_super) { __extends(BrowserStorageCache, _super); /** * initialize the cache * @param config - the configuration of the cache */ function BrowserStorageCache(config) { var _this = this; var cacheConfig = config ? Object.assign({}, __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */], config) : __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */]; _this = _super.call(this, cacheConfig) || this; _this.config.storage = cacheConfig.storage; _this.getItem = _this.getItem.bind(_this); _this.setItem = _this.setItem.bind(_this); _this.removeItem = _this.removeItem.bind(_this); return _this; } /** * decrease current size of the cache * * @private * @param amount - the amount of the cache size which needs to be decreased */ BrowserStorageCache.prototype._decreaseCurSizeInBytes = function (amount) { var curSize = this.getCacheCurSize(); this.config.storage.setItem(this.cacheCurSizeKey, (curSize - amount).toString()); }; /** * increase current size of the cache * * @private * @param amount - the amount of the cache szie which need to be increased */ BrowserStorageCache.prototype._increaseCurSizeInBytes = function (amount) { var curSize = this.getCacheCurSize(); this.config.storage.setItem(this.cacheCurSizeKey, (curSize + amount).toString()); }; /** * update the visited time if item has been visited * * @private * @param item - the item which need to be refreshed * @param prefixedKey - the key of the item * * @return the refreshed item */ BrowserStorageCache.prototype._refreshItem = function (item, prefixedKey) { item.visitedTime = Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])(); this.config.storage.setItem(prefixedKey, JSON.stringify(item)); return item; }; /** * check wether item is expired * * @private * @param key - the key of the item * * @return true if the item is expired. */ BrowserStorageCache.prototype._isExpired = function (key) { var text = this.config.storage.getItem(key); var item = JSON.parse(text); if (Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])() >= item.expires) { return true; } return false; }; /** * delete item from cache * * @private * @param prefixedKey - the key of the item * @param size - optional, the byte size of the item */ BrowserStorageCache.prototype._removeItem = function (prefixedKey, size) { var itemSize = size ? size : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize; this._decreaseCurSizeInBytes(itemSize); // remove the cache item this.config.storage.removeItem(prefixedKey); }; /** * put item into cache * * @private * @param prefixedKey - the key of the item * @param itemData - the value of the item * @param itemSizeInBytes - the byte size of the item */ BrowserStorageCache.prototype._setItem = function (prefixedKey, item) { // update the cache size this._increaseCurSizeInBytes(item.byteSize); try { this.config.storage.setItem(prefixedKey, JSON.stringify(item)); } catch (setItemErr) { // if failed, we need to rollback the cache size this._decreaseCurSizeInBytes(item.byteSize); logger.error("Failed to set item " + setItemErr); } }; /** * total space needed when poping out items * * @private * @param itemSize * * @return total space needed */ BrowserStorageCache.prototype._sizeToPop = function (itemSize) { var spaceItemNeed = this.getCacheCurSize() + itemSize - this.config.capacityInBytes; var cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes; return spaceItemNeed > cacheThresholdSpace ? spaceItemNeed : cacheThresholdSpace; }; /** * see whether cache is full * * @private * @param itemSize * * @return true if cache is full */ BrowserStorageCache.prototype._isCacheFull = function (itemSize) { return itemSize + this.getCacheCurSize() > this.config.capacityInBytes; }; /** * scan the storage and find out all the keys owned by this cache * also clean the expired keys while scanning * * @private * * @return array of keys */ BrowserStorageCache.prototype._findValidKeys = function () { var keys = []; var keyInCache = []; // get all keys in Storage for (var i = 0; i < this.config.storage.length; i += 1) { keyInCache.push(this.config.storage.key(i)); } // find those items which belong to our cache and also clean those expired items for (var i = 0; i < keyInCache.length; i += 1) { var key = keyInCache[i]; if (key.indexOf(this.config.keyPrefix) === 0 && key !== this.cacheCurSizeKey) { if (this._isExpired(key)) { this._removeItem(key); } else { keys.push(key); } } } return keys; }; /** * get all the items we have, sort them by their priority, * if priority is same, sort them by their last visited time * pop out items from the low priority (5 is the lowest) * * @private * @param keys - all the keys in this cache * @param sizeToPop - the total size of the items which needed to be poped out */ BrowserStorageCache.prototype._popOutItems = function (keys, sizeToPop) { var items = []; var remainedSize = sizeToPop; // get the items from Storage for (var i = 0; i < keys.length; i += 1) { var val = this.config.storage.getItem(keys[i]); if (val != null) { var item = JSON.parse(val); items.push(item); } } // first compare priority // then compare visited time items.sort(function (a, b) { if (a.priority > b.priority) { return -1; } else if (a.priority < b.priority) { return 1; } else { if (a.visitedTime < b.visitedTime) { return -1; } else return 1; } }); for (var i = 0; i < items.length; i += 1) { // pop out items until we have enough room for new item this._removeItem(items[i].key, items[i].byteSize); remainedSize -= items[i].byteSize; if (remainedSize <= 0) { return; } } }; /** * Set item into cache. You can put number, string, boolean or object. * The cache will first check whether has the same key. * If it has, it will delete the old item and then put the new item in * The cache will pop out items if it is full * You can specify the cache item options. The cache will abort and output a warning: * If the key is invalid * If the size of the item exceeds itemMaxSize. * If the value is undefined * If incorrect cache item configuration * If error happened with browser storage * * @param key - the key of the item * @param value - the value of the item * @param {Object} [options] - optional, the specified meta-data */ BrowserStorageCache.prototype.setItem = function (key, value, options) { logger.log("Set item: key is " + key + ", value is " + value + " with options: " + options); var prefixedKey = this.config.keyPrefix + key; // invalid keys if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) { logger.warn("Invalid key: should not be empty or 'CurSize'"); return; } if (typeof value === 'undefined') { logger.warn("The value of item should not be undefined!"); return; } var cacheItemOptions = { priority: options && options.priority !== undefined ? options.priority : this.config.defaultPriority, expires: options && options.expires !== undefined ? options.expires : this.config.defaultTTL + Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])(), }; if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) { logger.warn("Invalid parameter: priority due to out or range. It should be within 1 and 5."); return; } var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions); // check wether this item is too big; if (item.byteSize > this.config.itemMaxSize) { logger.warn("Item with key: " + key + " you are trying to put into is too big!"); return; } try { // first look into the storage, if it exists, delete it. var val = this.config.storage.getItem(prefixedKey); if (val) { this._removeItem(prefixedKey, JSON.parse(val).byteSize); } // check whether the cache is full if (this._isCacheFull(item.byteSize)) { var validKeys = this._findValidKeys(); // check again and then pop out items if (this._isCacheFull(item.byteSize)) { var sizeToPop = this._sizeToPop(item.byteSize); this._popOutItems(validKeys, sizeToPop); } } // put item in the cache // may failed due to storage full this._setItem(prefixedKey, item); } catch (e) { logger.warn("setItem failed! " + e); } }; /** * Get item from cache. It will return null if item doesn’t exist or it has been expired. * If you specified callback function in the options, * then the function will be executed if no such item in the cache * and finally put the return value into cache. * Please make sure the callback function will return the value you want to put into the cache. * The cache will abort output a warning: * If the key is invalid * If error happened with browser storage * * @param key - the key of the item * @param {Object} [options] - the options of callback function * * @return - return the value of the item */ BrowserStorageCache.prototype.getItem = function (key, options) { logger.log("Get item: key is " + key + " with options " + options); var ret = null; var prefixedKey = this.config.keyPrefix + key; if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) { logger.warn("Invalid key: should not be empty or 'CurSize'"); return null; } try { ret = this.config.storage.getItem(prefixedKey); if (ret != null) { if (this._isExpired(prefixedKey)) { // if expired, remove that item and return null this._removeItem(prefixedKey, JSON.parse(ret).byteSize); ret = null; } else { // if not expired, great, return the value and refresh it var item = JSON.parse(ret); item = this._refreshItem(item, prefixedKey); return item.data; } } if (options && options.callback !== undefined) { var val = options.callback(); if (val !== null) { this.setItem(key, val, options); } return val; } return null; } catch (e) { logger.warn("getItem failed! " + e); return null; } }; /** * remove item from the cache * The cache will abort output a warning: * If error happened with browser storage * @param key - the key of the item */ BrowserStorageCache.prototype.removeItem = function (key) { logger.log("Remove item: key is " + key); var prefixedKey = this.config.keyPrefix + key; if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) { return; } try { var val = this.config.storage.getItem(prefixedKey); if (val) { this._removeItem(prefixedKey, JSON.parse(val).byteSize); } } catch (e) { logger.warn("removeItem failed! " + e); } }; /** * clear the entire cache * The cache will abort output a warning: * If error happened with browser storage */ BrowserStorageCache.prototype.clear = function () { logger.log("Clear Cache"); var keysToRemove = []; for (var i = 0; i < this.config.storage.length; i += 1) { var key = this.config.storage.key(i); if (key.indexOf(this.config.keyPrefix) === 0) { keysToRemove.push(key); } } try { for (var i = 0; i < keysToRemove.length; i += 1) { this.config.storage.removeItem(keysToRemove[i]); } } catch (e) { logger.warn("clear failed! " + e); } }; /** * Return all the keys in the cache. * * @return - all keys in the cache */ BrowserStorageCache.prototype.getAllKeys = function () { var keys = []; for (var i = 0; i < this.config.storage.length; i += 1) { var key = this.config.storage.key(i); if (key.indexOf(this.config.keyPrefix) === 0 && key !== this.cacheCurSizeKey) { keys.push(key.substring(this.config.keyPrefix.length)); } } return keys; }; /** * return the current size of the cache * * @return - current size of the cache */ BrowserStorageCache.prototype.getCacheCurSize = function () { var ret = this.config.storage.getItem(this.cacheCurSizeKey); if (!ret) { this.config.storage.setItem(this.cacheCurSizeKey, '0'); ret = '0'; } return Number(ret); }; /** * Return a new instance of cache with customized configuration. * @param config - the customized configuration * * @return - new instance of Cache */ BrowserStorageCache.prototype.createInstance = function (config) { if (!config.keyPrefix || config.keyPrefix === __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].keyPrefix) { logger.error('invalid keyPrefix, setting keyPrefix with timeStamp'); config.keyPrefix = __WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */].toString(); } return new BrowserStorageCache(config); }; return BrowserStorageCache; }(__WEBPACK_IMPORTED_MODULE_1__StorageCache__["a" /* default */])); var instance = new BrowserStorageCache(); /* harmony default export */ __webpack_exports__["a"] = (instance); //# sourceMappingURL=BrowserStorageCache.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/InMemoryCache.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/InMemoryCache.js ***! \******************************************************************/ /*! exports provided: InMemoryCache, default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export InMemoryCache */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Utils__ = __webpack_require__(/*! ./Utils */ "./node_modules/@aws-amplify/cache/lib-esm/Utils/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__StorageCache__ = __webpack_require__(/*! ./StorageCache */ "./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var logger = new __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["ConsoleLogger"]('InMemoryCache'); /** * Customized in-memory cache with LRU implemented * @member cacheObj - object which store items * @member cacheList - list of keys in the cache with LRU * @member curSizeInBytes - current size of the cache * @member maxPriority - max of the priority * @member cacheSizeLimit - the limit of cache size */ var InMemoryCache = /** @class */ (function (_super) { __extends(InMemoryCache, _super); /** * initialize the cache * * @param config - the configuration of the cache */ function InMemoryCache(config) { var _this = this; var cacheConfig = config ? Object.assign({}, __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */], config) : __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */]; _this = _super.call(this, cacheConfig) || this; logger.debug('now we start!'); _this.cacheList = []; _this.curSizeInBytes = 0; _this.maxPriority = 5; _this.getItem = _this.getItem.bind(_this); _this.setItem = _this.setItem.bind(_this); _this.removeItem = _this.removeItem.bind(_this); // initialize list for every priority for (var i = 0; i < _this.maxPriority; i += 1) { _this.cacheList[i] = new __WEBPACK_IMPORTED_MODULE_0__Utils__["a" /* CacheList */](); } return _this; } /** * decrease current size of the cache * * @param amount - the amount of the cache size which needs to be decreased */ InMemoryCache.prototype._decreaseCurSizeInBytes = function (amount) { this.curSizeInBytes -= amount; }; /** * increase current size of the cache * * @param amount - the amount of the cache szie which need to be increased */ InMemoryCache.prototype._increaseCurSizeInBytes = function (amount) { this.curSizeInBytes += amount; }; /** * check whether item is expired * * @param key - the key of the item * * @return true if the item is expired. */ InMemoryCache.prototype._isExpired = function (key) { var text = __WEBPACK_IMPORTED_MODULE_0__Utils__["b" /* CacheObject */].getItem(key); var item = JSON.parse(text); if (Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])() >= item.expires) { return true; } return false; }; /** * delete item from cache * * @param prefixedKey - the key of the item * @param listIdx - indicates which cache list the key belongs to */ InMemoryCache.prototype._removeItem = function (prefixedKey, listIdx) { // delete the key from the list this.cacheList[listIdx].removeItem(prefixedKey); // decrease the current size of the cache this._decreaseCurSizeInBytes(JSON.parse(__WEBPACK_IMPORTED_MODULE_0__Utils__["b" /* CacheObject */].getItem(prefixedKey)).byteSize); // finally remove the item from memory __WEBPACK_IMPORTED_MODULE_0__Utils__["b" /* CacheObject */].removeItem(prefixedKey); }; /** * put item into cache * * @param prefixedKey - the key of the item * @param itemData - the value of the item * @param itemSizeInBytes - the byte size of the item * @param listIdx - indicates which cache list the key belongs to */ InMemoryCache.prototype._setItem = function (prefixedKey, item, listIdx) { // insert the key into the list this.cacheList[listIdx].insertItem(prefixedKey); // increase the current size of the cache this._increaseCurSizeInBytes(item.byteSize); // finally add the item into memory __WEBPACK_IMPORTED_MODULE_0__Utils__["b" /* CacheObject */].setItem(prefixedKey, JSON.stringify(item)); }; /** * see whether cache is full * * @param itemSize * * @return true if cache is full */ InMemoryCache.prototype._isCacheFull = function (itemSize) { return this.curSizeInBytes + itemSize > this.config.capacityInBytes; }; /** * check whether the cache contains the key * * @param key */ InMemoryCache.prototype.containsKey = function (key) { var prefixedKey = this.config.keyPrefix + key; for (var i = 0; i < this.maxPriority; i += 1) { if (this.cacheList[i].containsKey(prefixedKey)) { return i + 1; } } return -1; }; /** * * Set item into cache. You can put number, string, boolean or object. * The cache will first check whether has the same key. * If it has, it will delete the old item and then put the new item in * The cache will pop out items if it is full * You can specify the cache item options. The cache will abort and output a warning: * If the key is invalid * If the size of the item exceeds itemMaxSize. * If the value is undefined * If incorrect cache item configuration * If error happened with browser storage * * @param key - the key of the item * @param value - the value of the item * @param options - optional, the specified meta-data * * @throws if the item is too big which exceeds the limit of single item size * @throws if the key is invalid */ InMemoryCache.prototype.setItem = function (key, value, options) { var prefixedKey = this.config.keyPrefix + key; // invalid keys if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) { logger.warn("Invalid key: should not be empty or 'CurSize'"); return; } if (typeof value === 'undefined') { logger.warn("The value of item should not be undefined!"); return; } var cacheItemOptions = { priority: options && options.priority !== undefined ? options.priority : this.config.defaultPriority, expires: options && options.expires !== undefined ? options.expires : this.config.defaultTTL + Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])(), }; if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) { logger.warn("Invalid parameter: priority due to out or range. It should be within 1 and 5."); return; } var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions); // check wether this item is too big; if (item.byteSize > this.config.itemMaxSize) { logger.warn("Item with key: " + key + " you are trying to put into is too big!"); return; } // if key already in the cache, then delete it. var presentKeyPrio = this.containsKey(key); if (presentKeyPrio !== -1) { this._removeItem(prefixedKey, presentKeyPrio - 1); } // pop out items in the cache when cache is full based on LRU // first start from lowest priority cache list var cacheListIdx = this.maxPriority - 1; while (this._isCacheFull(item.byteSize) && cacheListIdx >= 0) { if (!this.cacheList[cacheListIdx].isEmpty()) { var popedItemKey = this.cacheList[cacheListIdx].getLastItem(); this._removeItem(popedItemKey, cacheListIdx); } else { cacheListIdx -= 1; } } this._setItem(prefixedKey, item, Number(item.priority) - 1); }; /** * Get item from cache. It will return null if item doesn’t exist or it has been expired. * If you specified callback function in the options, * then the function will be executed if no such item in the cache * and finally put the return value into cache. * Please make sure the callback function will return the value you want to put into the cache. * The cache will abort output a warning: * If the key is invalid * * @param key - the key of the item * @param options - the options of callback function */ InMemoryCache.prototype.getItem = function (key, options) { var ret = null; var prefixedKey = this.config.keyPrefix + key; if (prefixedKey === this.config.keyPrefix || prefixedKey === this.cacheCurSizeKey) { logger.warn("Invalid key: should not be empty or 'CurSize'"); return null; } // check whether it's in the cachelist var presentKeyPrio = this.containsKey(key); if (presentKeyPrio !== -1) { if (this._isExpired(prefixedKey)) { // if expired, remove that item and return null this._removeItem(prefixedKey, presentKeyPrio - 1); } else { // if not expired, great, return the value and refresh it ret = __WEBPACK_IMPORTED_MODULE_0__Utils__["b" /* CacheObject */].getItem(prefixedKey); var item = JSON.parse(ret); this.cacheList[item.priority - 1].refresh(prefixedKey); return item.data; } } if (options && options.callback !== undefined) { var val = options.callback(); if (val !== null) { this.setItem(key, val, options); } return val; } return null; }; /** * remove item from the cache * * @param key - the key of the item */ InMemoryCache.prototype.removeItem = function (key) { var prefixedKey = this.config.keyPrefix + key; // check if the key is in the cache var presentKeyPrio = this.containsKey(key); if (presentKeyPrio !== -1) { this._removeItem(prefixedKey, presentKeyPrio - 1); } }; /** * clear the entire cache */ InMemoryCache.prototype.clear = function () { for (var i = 0; i < this.maxPriority; i += 1) { for (var _i = 0, _a = this.cacheList[i].getKeys(); _i < _a.length; _i++) { var key = _a[_i]; this._removeItem(key, i); } } }; /** * Return all the keys in the cache. */ InMemoryCache.prototype.getAllKeys = function () { var keys = []; for (var i = 0; i < this.maxPriority; i += 1) { for (var _i = 0, _a = this.cacheList[i].getKeys(); _i < _a.length; _i++) { var key = _a[_i]; keys.push(key.substring(this.config.keyPrefix.length)); } } return keys; }; /** * return the current size of the cache * * @return the current size of the cache */ InMemoryCache.prototype.getCacheCurSize = function () { return this.curSizeInBytes; }; /** * Return a new instance of cache with customized configuration. * @param config - the customized configuration */ InMemoryCache.prototype.createInstance = function (config) { return new InMemoryCache(config); }; return InMemoryCache; }(__WEBPACK_IMPORTED_MODULE_1__StorageCache__["a" /* default */])); var instance = new InMemoryCache(); /* harmony default export */ __webpack_exports__["a"] = (instance); //# sourceMappingURL=InMemoryCache.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js": /*!*****************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js ***! \*****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Utils__ = __webpack_require__(/*! ./Utils */ "./node_modules/@aws-amplify/cache/lib-esm/Utils/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('StorageCache'); /** * Initialization of the cache * */ var StorageCache = /** @class */ (function () { /** * Initialize the cache * @param config - the configuration of the cache */ function StorageCache(config) { this.config = Object.assign({}, config); this.cacheCurSizeKey = this.config.keyPrefix + 'CurSize'; this.checkConfig(); } StorageCache.prototype.getModuleName = function () { return 'Cache'; }; StorageCache.prototype.checkConfig = function () { // check configuration if (!Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["f" /* isInteger */])(this.config.capacityInBytes)) { logger.error('Invalid parameter: capacityInBytes. It should be an Integer. Setting back to default.'); this.config.capacityInBytes = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].capacityInBytes; } if (!Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["f" /* isInteger */])(this.config.itemMaxSize)) { logger.error('Invalid parameter: itemMaxSize. It should be an Integer. Setting back to default.'); this.config.itemMaxSize = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].itemMaxSize; } if (!Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["f" /* isInteger */])(this.config.defaultTTL)) { logger.error('Invalid parameter: defaultTTL. It should be an Integer. Setting back to default.'); this.config.defaultTTL = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].defaultTTL; } if (!Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["f" /* isInteger */])(this.config.defaultPriority)) { logger.error('Invalid parameter: defaultPriority. It should be an Integer. Setting back to default.'); this.config.defaultPriority = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].defaultPriority; } if (this.config.itemMaxSize > this.config.capacityInBytes) { logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.'); this.config.itemMaxSize = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].itemMaxSize; } if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) { logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.'); this.config.defaultPriority = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].defaultPriority; } if (Number(this.config.warningThreshold) > 1 || Number(this.config.warningThreshold) < 0) { logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.'); this.config.warningThreshold = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].warningThreshold; } // set 5MB limit var cacheLimit = 5 * 1024 * 1024; if (this.config.capacityInBytes > cacheLimit) { logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.'); this.config.capacityInBytes = __WEBPACK_IMPORTED_MODULE_0__Utils__["c" /* defaultConfig */].capacityInBytes; } }; /** * produce a JSON object with meta-data and data value * @param value - the value of the item * @param options - optional, the specified meta-data * * @return - the item which has the meta-data and the value */ StorageCache.prototype.fillCacheItem = function (key, value, options) { var ret = { key: key, data: value, timestamp: Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])(), visitedTime: Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["e" /* getCurrTime */])(), priority: options.priority, expires: options.expires, type: typeof value, byteSize: 0, }; ret.byteSize = Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["d" /* getByteLength */])(JSON.stringify(ret)); // for accurate size ret.byteSize = Object(__WEBPACK_IMPORTED_MODULE_0__Utils__["d" /* getByteLength */])(JSON.stringify(ret)); return ret; }; /** * set cache with customized configuration * @param config - customized configuration * * @return - the current configuration */ StorageCache.prototype.configure = function (config) { if (!config) { return this.config; } if (config.keyPrefix) { logger.warn("Don't try to configure keyPrefix!"); } this.config = Object.assign({}, this.config, config, config.Cache); this.checkConfig(); return this.config; }; return StorageCache; }()); /* harmony default export */ __webpack_exports__["a"] = (StorageCache); //# sourceMappingURL=StorageCache.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheList.js": /*!********************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheList.js ***! \********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var DoubleLinkedNode = /** @class */ (function () { function DoubleLinkedNode(keyVal) { this.key = keyVal ? keyVal : ''; this.prevNode = null; this.nextNode = null; } return DoubleLinkedNode; }()); /** * double linked list plus a hash table inside * each key in the cache stored as a node in the list * recently visited node will be rotated to the head * so the Last Recently Visited node will be at the tail * * @member head - dummy head of the linked list * @member tail - dummy tail of the linked list * @member hashtable - the hashtable which maps cache key to list node * @member length - length of the list */ var CacheList = /** @class */ (function () { /** * initialization */ function CacheList() { this.head = new DoubleLinkedNode(); this.tail = new DoubleLinkedNode(); this.hashtable = {}; this.length = 0; this.head.nextNode = this.tail; this.tail.prevNode = this.head; } /** * insert node to the head of the list * * @param node */ CacheList.prototype.insertNodeToHead = function (node) { var tmp = this.head.nextNode; this.head.nextNode = node; node.nextNode = tmp; node.prevNode = this.head; tmp.prevNode = node; this.length = this.length + 1; }; /** * remove node * * @param node */ CacheList.prototype.removeNode = function (node) { node.prevNode.nextNode = node.nextNode; node.nextNode.prevNode = node.prevNode; node.prevNode = null; node.nextNode = null; this.length = this.length - 1; }; /** * @return true if list is empty */ CacheList.prototype.isEmpty = function () { return this.length === 0; }; /** * refresh node so it is rotated to the head * * @param key - key of the node */ CacheList.prototype.refresh = function (key) { var node = this.hashtable[key]; this.removeNode(node); this.insertNodeToHead(node); }; /** * insert new node to the head and add it in the hashtable * * @param key - the key of the node */ CacheList.prototype.insertItem = function (key) { var node = new DoubleLinkedNode(key); this.hashtable[key] = node; this.insertNodeToHead(node); }; /** * @return the LAST Recently Visited key */ CacheList.prototype.getLastItem = function () { return this.tail.prevNode.key; }; /** * remove the cache key from the list and hashtable * @param key - the key of the node */ CacheList.prototype.removeItem = function (key) { var removedItem = this.hashtable[key]; this.removeNode(removedItem); delete this.hashtable[key]; }; /** * @return length of the list */ CacheList.prototype.getSize = function () { return this.length; }; /** * @return true if the key is in the hashtable * @param key */ CacheList.prototype.containsKey = function (key) { return key in this.hashtable; }; /** * clean up the list and hashtable */ CacheList.prototype.clearList = function () { for (var _i = 0, _a = Object.keys(this.hashtable); _i < _a.length; _i++) { var key = _a[_i]; if (this.hashtable.hasOwnProperty(key)) { delete this.hashtable[key]; } } this.head.nextNode = this.tail; this.tail.prevNode = this.head; this.length = 0; }; /** * @return all keys in the hashtable */ CacheList.prototype.getKeys = function () { return Object.keys(this.hashtable); }; /** * mainly for test * * @param key * @return true if key is the head node */ CacheList.prototype.isHeadNode = function (key) { var node = this.hashtable[key]; return node.prevNode === this.head; }; /** * mainly for test * * @param key * @return true if key is the tail node */ CacheList.prototype.isTailNode = function (key) { var node = this.hashtable[key]; return node.nextNode === this.tail; }; return CacheList; }()); /* harmony default export */ __webpack_exports__["a"] = (CacheList); //# sourceMappingURL=CacheList.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js ***! \*********************************************************************/ /*! exports provided: defaultConfig, getByteLength, getCurrTime, isInteger, CacheObject */ /*! exports used: CacheObject, defaultConfig, getByteLength, getCurrTime, isInteger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return defaultConfig; }); /* harmony export (immutable) */ __webpack_exports__["c"] = getByteLength; /* harmony export (immutable) */ __webpack_exports__["d"] = getCurrTime; /* harmony export (immutable) */ __webpack_exports__["e"] = isInteger; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CacheObject; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /** * Default cache config */ var defaultConfig = { keyPrefix: 'aws-amplify-cache', capacityInBytes: 1048576, itemMaxSize: 210000, defaultTTL: 259200000, defaultPriority: 5, warningThreshold: 0.8, // the storage helper will check if localStorage exists, // if not, will use a in-memory object instead storage: new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["StorageHelper"]().getStorage(), }; /** * return the byte size of the string * @param str */ function getByteLength(str) { var ret = 0; ret = str.length; for (var i = str.length; i >= 0; i -= 1) { var charCode = str.charCodeAt(i); if (charCode > 0x7f && charCode <= 0x7ff) { ret += 1; } else if (charCode > 0x7ff && charCode <= 0xffff) { ret += 2; } // trail surrogate if (charCode >= 0xdc00 && charCode <= 0xdfff) { i -= 1; } } return ret; } /** * get current time */ function getCurrTime() { var currTime = new Date(); return currTime.getTime(); } /** * check if passed value is an integer */ function isInteger(value) { if (Number.isInteger) { return Number.isInteger(value); } return _isInteger(value); } function _isInteger(value) { return (typeof value === 'number' && isFinite(value) && Math.floor(value) === value); } /** * provide an object as the in-memory cache */ var store = {}; var CacheObject = /** @class */ (function () { function CacheObject() { } CacheObject.clear = function () { store = {}; }; CacheObject.getItem = function (key) { return store[key] || null; }; CacheObject.setItem = function (key, value) { store[key] = value; }; CacheObject.removeItem = function (key) { delete store[key]; }; return CacheObject; }()); //# sourceMappingURL=CacheUtils.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/Utils/index.js": /*!****************************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/Utils/index.js ***! \****************************************************************/ /*! exports provided: CacheList, defaultConfig, getByteLength, getCurrTime, isInteger, CacheObject */ /*! exports used: CacheList, CacheObject, defaultConfig, getByteLength, getCurrTime, isInteger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__CacheUtils__ = __webpack_require__(/*! ./CacheUtils */ "./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__CacheUtils__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__CacheUtils__["b"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__CacheUtils__["c"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__CacheUtils__["d"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_0__CacheUtils__["e"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CacheList__ = __webpack_require__(/*! ./CacheList */ "./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheList.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__CacheList__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/cache/lib-esm/index.js": /*!**********************************************************!*\ !*** ./node_modules/@aws-amplify/cache/lib-esm/index.js ***! \**********************************************************/ /*! exports provided: BrowserStorageCache, InMemoryCache, default */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__BrowserStorageCache__ = __webpack_require__(/*! ./BrowserStorageCache */ "./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__InMemoryCache__ = __webpack_require__(/*! ./InMemoryCache */ "./node_modules/@aws-amplify/cache/lib-esm/InMemoryCache.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "BrowserStorageCache", function() { return __WEBPACK_IMPORTED_MODULE_1__BrowserStorageCache__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "InMemoryCache", function() { return __WEBPACK_IMPORTED_MODULE_2__InMemoryCache__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_1__BrowserStorageCache__["a" /* default */]); __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["default"].register(__WEBPACK_IMPORTED_MODULE_1__BrowserStorageCache__["a" /* default */]); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js": /*!***********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Amplify.js ***! \***********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('Amplify'); var Amplify = /** @class */ (function () { function Amplify() { } Amplify.register = function (comp) { logger.debug('component registered in amplify', comp); this._components.push(comp); if (typeof comp.getModuleName === 'function') { Amplify[comp.getModuleName()] = comp; } else { logger.debug('no getModuleName method for component', comp); } }; Amplify.configure = function (config) { var _this = this; if (!config) return this._config; this._config = Object.assign(this._config, config); logger.debug('amplify config', this._config); this._components.map(function (comp) { comp.configure(_this._config); }); return this._config; }; Amplify.addPluggable = function (pluggable) { if (pluggable && pluggable['getCategory'] && typeof pluggable['getCategory'] === 'function') { this._components.map(function (comp) { if (comp['addPluggable'] && typeof comp['addPluggable'] === 'function') { comp.addPluggable(pluggable); } }); } }; Amplify._components = []; Amplify._config = {}; // for backward compatibility to avoid breaking change // if someone is using like Amplify.Auth Amplify.Auth = null; Amplify.Analytics = null; Amplify.API = null; Amplify.Storage = null; Amplify.I18n = null; Amplify.Cache = null; Amplify.PubSub = null; Amplify.Interactions = null; Amplify.Pushnotification = null; Amplify.UI = null; Amplify.XR = null; Amplify.Predictions = null; Amplify.Logger = __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]; Amplify.ServiceWorker = null; return Amplify; }()); /* harmony default export */ __webpack_exports__["a"] = (Amplify); //# sourceMappingURL=Amplify.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js ***! \************************************************************************/ /*! exports provided: clientInfo, dimension */ /*! exports used: clientInfo, dimension */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = clientInfo; /* harmony export (immutable) */ __webpack_exports__["b"] = dimension; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('ClientDevice_Browser'); function clientInfo() { if (typeof window === 'undefined') { return {}; } return browserClientInfo(); } function browserClientInfo() { if (typeof window === 'undefined') { logger.warn('No window object available to get browser client info'); return {}; } var nav = window.navigator; if (!nav) { logger.warn('No navigator object available to get browser client info'); return {}; } var platform = nav.platform, product = nav.product, vendor = nav.vendor, userAgent = nav.userAgent, language = nav.language; var type = browserType(userAgent); var timezone = browserTimezone(); return { platform: platform, make: product || vendor, model: type.type, version: type.version, appVersion: [type.type, type.version].join('/'), language: language, timezone: timezone, }; } function dimension() { if (typeof window === 'undefined') { logger.warn('No window object available to get browser client info'); return { width: 320, height: 320 }; } return { width: window.innerWidth, height: window.innerHeight, }; } function browserTimezone() { var tzMatch = /\(([A-Za-z\s].*)\)/.exec(new Date().toString()); return tzMatch ? tzMatch[1] || '' : ''; } function browserType(userAgent) { var operaMatch = /.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9\.]+).*/i.exec(userAgent); if (operaMatch) { return { type: operaMatch[1], version: operaMatch[2] }; } var ieMatch = /.+(Trident|Edge)\/([0-9\.]+).*/i.exec(userAgent); if (ieMatch) { return { type: ieMatch[1], version: ieMatch[2] }; } var cfMatch = /.+(Chrome|Firefox|FxiOS)\/([0-9\.]+).*/i.exec(userAgent); if (cfMatch) { return { type: cfMatch[1], version: cfMatch[2] }; } var sMatch = /.+(Safari)\/([0-9\.]+).*/i.exec(userAgent); if (sMatch) { return { type: sMatch[1], version: sMatch[2] }; } var awkMatch = /.+(AppleWebKit)\/([0-9\.]+).*/i.exec(userAgent); if (awkMatch) { return { type: awkMatch[1], version: awkMatch[2] }; } var anyMatch = /.*([A-Z]+)\/([0-9\.]+).*/i.exec(userAgent); if (anyMatch) { return { type: anyMatch[1], version: anyMatch[2] }; } return { type: '', version: '' }; } //# sourceMappingURL=browser.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js": /*!**********************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js ***! \**********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__browser__ = __webpack_require__(/*! ./browser */ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var ClientDevice = /** @class */ (function () { function ClientDevice() { } ClientDevice.clientInfo = function () { return __WEBPACK_IMPORTED_MODULE_0__browser__["a" /* clientInfo */](); }; ClientDevice.dimension = function () { return __WEBPACK_IMPORTED_MODULE_0__browser__["b" /* dimension */](); }; return ClientDevice; }()); /* harmony default export */ __webpack_exports__["a"] = (ClientDevice); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Credentials.js": /*!***************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Credentials.js ***! \***************************************************************/ /*! exports provided: Credentials, default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export Credentials */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__StorageHelper__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Facet__ = __webpack_require__(/*! ./Facet */ "./node_modules/@aws-amplify/core/lib-esm/Facet.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__JS__ = __webpack_require__(/*! ./JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__OAuthHelper__ = __webpack_require__(/*! ./OAuthHelper */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Amplify__ = __webpack_require__(/*! ./Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('Credentials'); var Credentials = /** @class */ (function () { function Credentials(config) { this._gettingCredPromise = null; this._refreshHandlers = {}; this.configure(config); this._refreshHandlers['google'] = __WEBPACK_IMPORTED_MODULE_4__OAuthHelper__["b" /* GoogleOAuth */].refreshGoogleToken; this._refreshHandlers['facebook'] = __WEBPACK_IMPORTED_MODULE_4__OAuthHelper__["a" /* FacebookOAuth */].refreshFacebookToken; } Credentials.prototype.getCredSource = function () { return this._credentials_source; }; Credentials.prototype.configure = function (config) { if (!config) return this._config || {}; this._config = Object.assign({}, this._config, config); var refreshHandlers = this._config.refreshHandlers; // If the developer has provided an object of refresh handlers, // then we can merge the provided handlers with the current handlers. if (refreshHandlers) { this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers); } this._storage = this._config.storage; if (!this._storage) { this._storage = new __WEBPACK_IMPORTED_MODULE_1__StorageHelper__["b" /* default */]().getStorage(); } this._storageSync = Promise.resolve(); if (typeof this._storage['sync'] === 'function') { this._storageSync = this._storage['sync'](); } return this._config; }; Credentials.prototype.get = function () { logger.debug('getting credentials'); return this._pickupCredentials(); }; Credentials.prototype._pickupCredentials = function () { logger.debug('picking up credentials'); if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) { logger.debug('getting new cred promise'); if (__WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].config && __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].config.credentials && __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].config.credentials instanceof __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].Credentials) { this._gettingCredPromise = __WEBPACK_IMPORTED_MODULE_3__JS__["a" /* default */].makeQuerablePromise(this._setCredentialsFromAWS()); } else { this._gettingCredPromise = __WEBPACK_IMPORTED_MODULE_3__JS__["a" /* default */].makeQuerablePromise(this._keepAlive()); } } else { logger.debug('getting old cred promise'); } return this._gettingCredPromise; }; Credentials.prototype._keepAlive = function () { logger.debug('checking if credentials exists and not expired'); var cred = this._credentials; if (cred && !this._isExpired(cred)) { logger.debug('credentials not changed and not expired, directly return'); return Promise.resolve(cred); } logger.debug('need to get a new credential or refresh the existing one'); if (__WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Auth && typeof __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Auth.currentUserCredentials === 'function') { return __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Auth.currentUserCredentials(); } else { return Promise.reject('No Auth module registered in Amplify'); } }; Credentials.prototype.refreshFederatedToken = function (federatedInfo) { var _this = this; logger.debug('Getting federated credentials'); var provider = federatedInfo.provider, user = federatedInfo.user; var token = federatedInfo.token; var expires_at = federatedInfo.expires_at; var identity_id = federatedInfo.identity_id; var that = this; logger.debug('checking if federated jwt token expired'); if (expires_at > new Date().getTime()) { // if not expired logger.debug('token not expired'); return this._setCredentialsFromFederation({ provider: provider, token: token, user: user, identity_id: identity_id, expires_at: expires_at, }); } else { // if refresh handler exists if (that._refreshHandlers[provider] && typeof that._refreshHandlers[provider] === 'function') { logger.debug('getting refreshed jwt token from federation provider'); return that._refreshHandlers[provider]() .then(function (data) { logger.debug('refresh federated token sucessfully', data); token = data.token; identity_id = data.identity_id; expires_at = data.expires_at; return that._setCredentialsFromFederation({ provider: provider, token: token, user: user, identity_id: identity_id, expires_at: expires_at, }); }) .catch(function (e) { logger.debug('refresh federated token failed', e); _this.clear(); return Promise.reject('refreshing federation token failed: ' + e); }); } else { logger.debug('no refresh handler for provider:', provider); this.clear(); return Promise.reject('no refresh handler for provider'); } } }; Credentials.prototype._isExpired = function (credentials) { if (!credentials) { logger.debug('no credentials for expiration check'); return true; } logger.debug('is this credentials expired?', credentials); var ts = new Date().getTime(); var delta = 10 * 60 * 1000; // 10 minutes var expired = credentials.expired, expireTime = credentials.expireTime; if (!expired && expireTime > ts + delta) { return false; } return true; }; Credentials.prototype._setCredentialsForGuest = function () { return __awaiter(this, void 0, void 0, function () { var attempted, _a, identityPoolId, region, mandatorySignIn, identityId, e_1, credentials, that; var _this = this; return __generator(this, function (_b) { switch (_b.label) { case 0: attempted = false; logger.debug('setting credentials for guest'); _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn; if (mandatorySignIn) { return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')]; } if (!identityPoolId) { logger.debug('No Cognito Federated Identity pool provided'); return [2 /*return*/, Promise.reject('No Cognito Federated Identity pool provided')]; } identityId = undefined; _b.label = 1; case 1: _b.trys.push([1, 3, , 4]); return [4 /*yield*/, this._storageSync]; case 2: _b.sent(); identityId = this._storage.getItem('CognitoIdentityId-' + identityPoolId); return [3 /*break*/, 4]; case 3: e_1 = _b.sent(); logger.debug('Failed to get the cached identityId', e_1); return [3 /*break*/, 4]; case 4: credentials = new __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, IdentityId: identityId ? identityId : undefined, }, { region: region, }); that = this; return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null) .then(function (res) { return res; }) .catch(function (e) { return __awaiter(_this, void 0, void 0, function () { var newCredentials; return __generator(this, function (_a) { // If identity id is deleted in the console, we make one attempt to recreate it // and remove existing id from cache. if (e.code === 'ResourceNotFoundException' && e.message === "Identity '" + identityId + "' not found." && !attempted) { attempted = true; logger.debug('Failed to load guest credentials'); this._storage.removeItem('CognitoIdentityId-' + identityPoolId); credentials.clearCachedId(); newCredentials = new __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, IdentityId: undefined, }, { region: region, }); return [2 /*return*/, this._loadCredentials(newCredentials, 'guest', false, null)]; } else { return [2 /*return*/, e]; } return [2 /*return*/]; }); }); })]; } }); }); }; Credentials.prototype._setCredentialsFromAWS = function () { var credentials = __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].config.credentials; logger.debug('setting credentials from aws'); var that = this; if (credentials instanceof __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].Credentials) { return Promise.resolve(credentials); } else { logger.debug('AWS.config.credentials is not an instance of AWS Credentials'); return Promise.reject('AWS.config.credentials is not an instance of AWS Credentials'); } }; Credentials.prototype._setCredentialsFromFederation = function (params) { var provider = params.provider, token = params.token, identity_id = params.identity_id, user = params.user, expires_at = params.expires_at; var domains = { google: 'accounts.google.com', facebook: 'graph.facebook.com', amazon: 'www.amazon.com', developer: 'cognito-identity.amazonaws.com', }; // Use custom provider url instead of the predefined ones var domain = domains[provider] || provider; if (!domain) { return Promise.reject('You must specify a federated provider'); } var logins = {}; logins[domain] = token; var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region; if (!identityPoolId) { logger.debug('No Cognito Federated Identity pool provided'); return Promise.reject('No Cognito Federated Identity pool provided'); } var credentials = new __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, IdentityId: identity_id, Logins: logins, }, { region: region, }); return this._loadCredentials(credentials, 'federated', true, params); }; Credentials.prototype._setCredentialsFromSession = function (session) { logger.debug('set credentials from session'); var idToken = session.getIdToken().getJwtToken(); var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId; if (!identityPoolId) { logger.debug('No Cognito Federated Identity pool provided'); return Promise.reject('No Cognito Federated Identity pool provided'); } var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId; var logins = {}; logins[key] = idToken; var credentials = new __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, Logins: logins, }, { region: region, }); return this._loadCredentials(credentials, 'userPool', true, null); }; Credentials.prototype._loadCredentials = function (credentials, source, authenticated, info) { var _this = this; var that = this; var identityPoolId = this._config.identityPoolId; return new Promise(function (res, rej) { credentials.get(function (err) { return __awaiter(_this, void 0, void 0, function () { var user, provider, token, expires_at, identity_id, e_2; return __generator(this, function (_a) { switch (_a.label) { case 0: if (err) { logger.debug('Failed to load credentials', credentials); rej(err); return [2 /*return*/]; } logger.debug('Load credentials successfully', credentials); that._credentials = credentials; that._credentials.authenticated = authenticated; that._credentials_source = source; if (!(source === 'federated')) return [3 /*break*/, 3]; user = Object.assign({ id: this._credentials.identityId }, info.user); provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id; try { this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({ provider: provider, token: token, user: user, expires_at: expires_at, identity_id: identity_id, })); } catch (e) { logger.debug('Failed to put federated info into auth storage', e); } if (!(__WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache && typeof __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache.setItem === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache.setItem('federatedInfo', { provider: provider, token: token, user: user, expires_at: expires_at, identity_id: identity_id, }, { priority: 1 })]; case 1: _a.sent(); return [3 /*break*/, 3]; case 2: logger.debug('No Cache module registered in Amplify'); _a.label = 3; case 3: if (!(source === 'guest')) return [3 /*break*/, 7]; _a.label = 4; case 4: _a.trys.push([4, 6, , 7]); return [4 /*yield*/, this._storageSync]; case 5: _a.sent(); this._storage.setItem('CognitoIdentityId-' + identityPoolId, credentials.identityId); return [3 /*break*/, 7]; case 6: e_2 = _a.sent(); logger.debug('Failed to cache identityId', e_2); return [3 /*break*/, 7]; case 7: res(that._credentials); return [2 /*return*/]; } }); }); }); }); }; Credentials.prototype.set = function (params, source) { if (source === 'session') { return this._setCredentialsFromSession(params); } else if (source === 'federation') { return this._setCredentialsFromFederation(params); } else if (source === 'guest') { return this._setCredentialsForGuest(); } else { logger.debug('no source specified for setting credentials'); return Promise.reject('invalid source'); } }; Credentials.prototype.clear = function () { return __awaiter(this, void 0, void 0, function () { var _a, identityPoolId, region, credentials; return __generator(this, function (_b) { switch (_b.label) { case 0: _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region; if (identityPoolId) { credentials = new __WEBPACK_IMPORTED_MODULE_2__Facet__["a" /* AWS */].CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, }, { region: region, }); credentials.clearCachedId(); } this._credentials = null; this._credentials_source = null; this._storage.removeItem('aws-amplify-federatedInfo'); if (!(__WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache && typeof __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache.setItem === 'function')) return [3 /*break*/, 2]; return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_5__Amplify__["a" /* default */].Cache.removeItem('federatedInfo')]; case 1: _b.sent(); return [3 /*break*/, 3]; case 2: logger.debug('No Cache module registered in Amplify'); _b.label = 3; case 3: return [2 /*return*/]; } }); }); }; /** * Compact version of credentials * @param {Object} credentials * @return {Object} - Credentials */ Credentials.prototype.shear = function (credentials) { return { accessKeyId: credentials.accessKeyId, sessionToken: credentials.sessionToken, secretAccessKey: credentials.secretAccessKey, identityId: credentials.identityId, authenticated: credentials.authenticated, }; }; return Credentials; }()); var instance = new Credentials(null); /* harmony default export */ __webpack_exports__["a"] = (instance); //# sourceMappingURL=Credentials.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Errors.js": /*!**********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Errors.js ***! \**********************************************************/ /*! exports provided: missingConfig, invalidParameter */ /*! exports used: invalidParameter, missingConfig */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = missingConfig; /* harmony export (immutable) */ __webpack_exports__["a"] = invalidParameter; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ function missingConfig(name) { return new Error('Missing config value of ' + name); } function invalidParameter(name) { return new Error('Invalid parameter value of ' + name); } //# sourceMappingURL=Errors.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Facet.js": /*!*********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Facet.js ***! \*********************************************************/ /*! exports provided: AWS */ /*! exports used: AWS */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_aws_sdk_global__ = __webpack_require__(/*! aws-sdk/global */ "./node_modules/aws-sdk/browser.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_aws_sdk_global___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_aws_sdk_global__); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0_aws_sdk_global__; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ // import * as S3 from 'aws-sdk/clients/s3'; // import * as Pinpoint from 'aws-sdk/clients/pinpoint'; // import * as Kinesis from 'aws-sdk/clients/kinesis'; // import * as MobileAnalytics from 'aws-sdk/clients/mobileanalytics'; // export {AWS, S3, Pinpoint, MobileAnalytics, Kinesis }; //# sourceMappingURL=Facet.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Hub.js": /*!*******************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Hub.js ***! \*******************************************************/ /*! exports provided: HubClass, default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export HubClass */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('Hub'); var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); function isLegacyCallback(callback) { return callback.onHubCapsule !== undefined; } var HubClass = /** @class */ (function () { function HubClass(name) { this.listeners = []; this.patterns = []; this.protectedChannels = [ 'core', 'auth', 'api', 'analytics', 'interactions', 'pubsub', 'storage', 'xr', ]; this.name = name; } // Note - Need to pass channel as a reference for removal to work and not anonymous function HubClass.prototype.remove = function (channel, listener) { if (channel instanceof RegExp) { var pattern_1 = this.patterns.find(function (_a) { var pattern = _a.pattern; return pattern.source === channel.source; }); if (!pattern_1) { logger.warn("No listeners for " + channel); return; } this.patterns = __spreadArrays(this.patterns.filter(function (x) { return x !== pattern_1; })); } else { var holder = this.listeners[channel]; if (!holder) { logger.warn("No listeners for " + channel); return; } this.listeners[channel] = __spreadArrays(holder.filter(function (_a) { var callback = _a.callback; return callback !== listener; })); } }; HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) { if (source === void 0) { source = ''; } if (this.protectedChannels.indexOf(channel) > -1) { var hasAccess = ampSymbol === AMPLIFY_SYMBOL; if (!hasAccess) { logger.warn("WARNING: " + channel + " is protected and dispatching on it can have unintended consequences"); } } var capsule = { channel: channel, payload: __assign({}, payload), source: source, patternInfo: [], }; try { this._toListeners(capsule); } catch (e) { logger.error(e); } }; HubClass.prototype.listen = function (channel, callback, listenerName) { if (listenerName === void 0) { listenerName = 'noname'; } var cb; // Check for legacy onHubCapsule callback for backwards compatability if (isLegacyCallback(callback)) { logger.warn("WARNING onHubCapsule is Deprecated. Please pass in a callback."); cb = callback.onHubCapsule.bind(callback); } else if (typeof callback !== 'function') { throw new Error('No callback supplied to Hub'); } else { cb = callback; } if (channel instanceof RegExp) { this.patterns.push({ pattern: channel, callback: cb, }); } else { var holder = this.listeners[channel]; if (!holder) { holder = []; this.listeners[channel] = holder; } holder.push({ name: listenerName, callback: cb, }); } }; HubClass.prototype._toListeners = function (capsule) { var channel = capsule.channel, payload = capsule.payload; var holder = this.listeners[channel]; if (holder) { holder.forEach(function (listener) { logger.debug("Dispatching to " + channel + " with ", payload); try { listener.callback(capsule); } catch (e) { logger.error(e); } }); } if (this.patterns.length > 0) { if (!payload.message) { logger.warn("Cannot perform pattern matching without a message key"); return; } var payloadStr_1 = payload.message; this.patterns.forEach(function (pattern) { var match = payloadStr_1.match(pattern.pattern); if (match) { var groups = match.slice(1); var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups }); try { pattern.callback(dispatchingCapsule); } catch (e) { logger.error(e); } } }); } }; return HubClass; }()); /*We export a __default__ instance of HubClass to use it as a psuedo Singleton for the main messaging bus, however you can still create your own instance of HubClass() for a separate "private bus" of events.*/ var Hub = new HubClass('__default__'); /* harmony default export */ __webpack_exports__["a"] = (Hub); //# sourceMappingURL=Hub.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js": /*!*************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js ***! \*************************************************************/ /*! exports provided: I18n */ /*! exports used: I18n */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return I18n; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('I18n'); /** * Language transition class */ var I18n = /** @class */ (function () { /** * @constructor * Initialize with configurations * @param {Object} options */ function I18n(options) { /** * @private */ this._options = null; /** * @private */ this._lang = null; /** * @private */ this._dict = {}; this._options = Object.assign({}, options); this._lang = this._options.language; if (!this._lang && typeof window !== 'undefined' && window && window.navigator) { this._lang = window.navigator.language; } logger.debug(this._lang); } /** * @method * Explicitly setting language * @param {String} lang */ I18n.prototype.setLanguage = function (lang) { this._lang = lang; }; /** * @method * Get value * @param {String} key * @param {String} defVal - Default value */ I18n.prototype.get = function (key, defVal) { if (defVal === void 0) { defVal = undefined; } if (!this._lang) { return typeof defVal !== 'undefined' ? defVal : key; } var lang = this._lang; var val = this.getByLanguage(key, lang); if (val) { return val; } if (lang.indexOf('-') > 0) { val = this.getByLanguage(key, lang.split('-')[0]); } if (val) { return val; } return typeof defVal !== 'undefined' ? defVal : key; }; /** * @method * Get value according to specified language * @param {String} key * @param {String} language - Specified langurage to be used * @param {String} defVal - Default value */ I18n.prototype.getByLanguage = function (key, language, defVal) { if (defVal === void 0) { defVal = null; } if (!language) { return defVal; } var lang_dict = this._dict[language]; if (!lang_dict) { return defVal; } return lang_dict[key]; }; /** * @method * Add vocabularies for one language * @param {String} langurage - Language of the dictionary * @param {Object} vocabularies - Object that has key-value as dictionary entry */ I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) { var lang_dict = this._dict[language]; if (!lang_dict) { lang_dict = this._dict[language] = {}; } Object.assign(lang_dict, vocabularies); }; /** * @method * Add vocabularies for one language * @param {Object} vocabularies - Object that has language as key, * vocabularies of each language as value */ I18n.prototype.putVocabularies = function (vocabularies) { var _this = this; Object.keys(vocabularies).map(function (key) { _this.putVocabulariesForLanguage(key, vocabularies[key]); }); }; return I18n; }()); //# sourceMappingURL=I18n.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/I18n/index.js": /*!**************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/I18n/index.js ***! \**************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__I18n__ = __webpack_require__(/*! ./I18n */ "./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Amplify__ = __webpack_require__(/*! ../Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__Logger__["a" /* ConsoleLogger */]('I18n'); var _config = null; var _i18n = null; /** * Export I18n APIs */ var I18n = /** @class */ (function () { function I18n() { } /** * @static * @method * Configure I18n part * @param {Object} config - Configuration of the I18n */ I18n.configure = function (config) { logger.debug('configure I18n'); if (!config) { return _config; } _config = Object.assign({}, _config, config.I18n || config); I18n.createInstance(); return _config; }; I18n.getModuleName = function () { return 'I18n'; }; /** * @static * @method * Create an instance of I18n for the library */ I18n.createInstance = function () { logger.debug('create I18n instance'); if (_i18n) { return; } _i18n = new __WEBPACK_IMPORTED_MODULE_0__I18n__["a" /* I18n */](_config); }; /** * @static @method * Explicitly setting language * @param {String} lang */ I18n.setLanguage = function (lang) { I18n.checkConfig(); return _i18n.setLanguage(lang); }; /** * @static @method * Get value * @param {String} key * @param {String} defVal - Default value */ I18n.get = function (key, defVal) { if (!I18n.checkConfig()) { return typeof defVal === 'undefined' ? key : defVal; } return _i18n.get(key, defVal); }; /** * @static * @method * Add vocabularies for one language * @param {String} langurage - Language of the dictionary * @param {Object} vocabularies - Object that has key-value as dictionary entry */ I18n.putVocabulariesForLanguage = function (language, vocabularies) { I18n.checkConfig(); return _i18n.putVocabulariesForLanguage(language, vocabularies); }; /** * @static * @method * Add vocabularies for one language * @param {Object} vocabularies - Object that has language as key, * vocabularies of each language as value */ I18n.putVocabularies = function (vocabularies) { I18n.checkConfig(); return _i18n.putVocabularies(vocabularies); }; I18n.checkConfig = function () { if (!_i18n) { _i18n = new __WEBPACK_IMPORTED_MODULE_0__I18n__["a" /* I18n */](_config); } return true; }; return I18n; }()); __WEBPACK_IMPORTED_MODULE_2__Amplify__["a" /* default */].register(I18n); /* harmony default export */ __webpack_exports__["a"] = (I18n); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/JS.js": /*!******************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/JS.js ***! \******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var MIME_MAP = [ { type: 'text/plain', ext: 'txt' }, { type: 'text/html', ext: 'html' }, { type: 'text/javascript', ext: 'js' }, { type: 'text/css', ext: 'css' }, { type: 'text/csv', ext: 'csv' }, { type: 'text/yaml', ext: 'yml' }, { type: 'text/yaml', ext: 'yaml' }, { type: 'text/calendar', ext: 'ics' }, { type: 'text/calendar', ext: 'ical' }, { type: 'image/png', ext: 'png' }, { type: 'image/gif', ext: 'gif' }, { type: 'image/jpeg', ext: 'jpg' }, { type: 'image/jpeg', ext: 'jpeg' }, { type: 'image/bmp', ext: 'bmp' }, { type: 'image/x-icon', ext: 'ico' }, { type: 'image/tiff', ext: 'tif' }, { type: 'image/tiff', ext: 'tiff' }, { type: 'image/svg+xml', ext: 'svg' }, { type: 'application/json', ext: 'json' }, { type: 'application/xml', ext: 'xml' }, { type: 'application/x-sh', ext: 'sh' }, { type: 'application/zip', ext: 'zip' }, { type: 'application/x-rar-compressed', ext: 'rar' }, { type: 'application/x-tar', ext: 'tar' }, { type: 'application/x-bzip', ext: 'bz' }, { type: 'application/x-bzip2', ext: 'bz2' }, { type: 'application/pdf', ext: 'pdf' }, { type: 'application/java-archive', ext: 'jar' }, { type: 'application/msword', ext: 'doc' }, { type: 'application/vnd.ms-excel', ext: 'xls' }, { type: 'application/vnd.ms-excel', ext: 'xlsx' }, { type: 'message/rfc822', ext: 'eml' }, ]; var JS = /** @class */ (function () { function JS() { } JS.isEmpty = function (obj) { return Object.keys(obj).length === 0; }; JS.sortByField = function (list, field, dir) { if (!list || !list.sort) { return false; } var dirX = dir && dir === 'desc' ? -1 : 1; list.sort(function (a, b) { var a_val = a[field]; var b_val = b[field]; if (typeof b_val === 'undefined') { return typeof a_val === 'undefined' ? 0 : 1 * dirX; } if (typeof a_val === 'undefined') { return -1 * dirX; } if (a_val < b_val) { return -1 * dirX; } if (a_val > b_val) { return 1 * dirX; } return 0; }); return true; }; JS.objectLessAttributes = function (obj, less) { var ret = Object.assign({}, obj); if (less) { if (typeof less === 'string') { delete ret[less]; } else { less.forEach(function (attr) { delete ret[attr]; }); } } return ret; }; JS.filenameToContentType = function (filename, defVal) { if (defVal === void 0) { defVal = 'application/octet-stream'; } var name = filename.toLowerCase(); var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); }); return filtered.length > 0 ? filtered[0].type : defVal; }; JS.isTextFile = function (contentType) { var type = contentType.toLowerCase(); if (type.startsWith('text/')) { return true; } return ('application/json' === type || 'application/xml' === type || 'application/sh' === type); }; /** * generate random string */ JS.generateRandomString = function () { var result = ''; var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for (var i = 32; i > 0; i -= 1) { result += chars[Math.floor(Math.random() * chars.length)]; } return result; }; JS.makeQuerablePromise = function (promise) { if (promise.isResolved) return promise; var isPending = true; var isRejected = false; var isFullfilled = false; var result = promise.then(function (data) { isFullfilled = true; isPending = false; return data; }, function (e) { isRejected = true; isPending = false; throw e; }); result.isFullfilled = function () { return isFullfilled; }; result.isPending = function () { return isPending; }; result.isRejected = function () { return isRejected; }; return result; }; JS.browserOrNode = function () { var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined'; var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null; return { isBrowser: isBrowser, isNode: isNode, }; }; /** * transfer the first letter of the keys to lowercase * @param {Object} obj - the object need to be transferred * @param {Array} whiteListForItself - whitelist itself from being transferred * @param {Array} whiteListForChildren - whitelist its children keys from being transferred */ JS.transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) { if (whiteListForItself === void 0) { whiteListForItself = []; } if (whiteListForChildren === void 0) { whiteListForChildren = []; } if (!JS.isStrictObject(obj)) return obj; var ret = {}; for (var key in obj) { if (obj.hasOwnProperty(key)) { var transferedKey = whiteListForItself.includes(key) ? key : key[0].toLowerCase() + key.slice(1); ret[transferedKey] = whiteListForChildren.includes(key) ? obj[key] : JS.transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren); } } return ret; }; /** * transfer the first letter of the keys to lowercase * @param {Object} obj - the object need to be transferred * @param {Array} whiteListForItself - whitelist itself from being transferred * @param {Array} whiteListForChildren - whitelist its children keys from being transferred */ JS.transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) { if (whiteListForItself === void 0) { whiteListForItself = []; } if (whiteListForChildren === void 0) { whiteListForChildren = []; } if (!JS.isStrictObject(obj)) return obj; var ret = {}; for (var key in obj) { if (obj.hasOwnProperty(key)) { var transferedKey = whiteListForItself.includes(key) ? key : key[0].toUpperCase() + key.slice(1); ret[transferedKey] = whiteListForChildren.includes(key) ? obj[key] : JS.transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren); } } return ret; }; /** * Return true if the object is a strict object * which means it's not Array, Function, Number, String, Boolean or Null * @param obj the Object */ JS.isStrictObject = function (obj) { return (obj instanceof Object && !(obj instanceof Array) && !(obj instanceof Function) && !(obj instanceof Number) && !(obj instanceof String) && !(obj instanceof Boolean)); }; return JS; }()); /* harmony default export */ __webpack_exports__["a"] = (JS); //# sourceMappingURL=JS.js.map /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(/*! ./../../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js ***! \************************************************************************/ /*! exports provided: ConsoleLogger */ /*! exports used: ConsoleLogger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ConsoleLogger; }); /* * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; var LOG_LEVELS = { VERBOSE: 1, DEBUG: 2, INFO: 3, WARN: 4, ERROR: 5, }; /** * Write logs * @class Logger */ var ConsoleLogger = /** @class */ (function () { /** * @constructor * @param {string} name - Name of the logger */ function ConsoleLogger(name, level) { if (level === void 0) { level = 'WARN'; } this.name = name; this.level = level; } ConsoleLogger.prototype._padding = function (n) { return n < 10 ? '0' + n : '' + n; }; ConsoleLogger.prototype._ts = function () { var dt = new Date(); return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') + '.' + dt.getMilliseconds()); }; /** * Write log * @method * @memeberof Logger * @param {string} type - log type, default INFO * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype._log = function (type) { var msg = []; for (var _i = 1; _i < arguments.length; _i++) { msg[_i - 1] = arguments[_i]; } var logger_level_name = this.level; if (ConsoleLogger.LOG_LEVEL) { logger_level_name = ConsoleLogger.LOG_LEVEL; } if (typeof window !== 'undefined' && window.LOG_LEVEL) { logger_level_name = window.LOG_LEVEL; } var logger_level = LOG_LEVELS[logger_level_name]; var type_level = LOG_LEVELS[type]; if (!(type_level >= logger_level)) { // Do nothing if type is not greater than or equal to logger level (handle undefined) return; } var log = console.log.bind(console); if (type === 'ERROR' && console.error) { log = console.error.bind(console); } if (type === 'WARN' && console.warn) { log = console.warn.bind(console); } var prefix = "[" + type + "] " + this._ts() + " " + this.name; if (msg.length === 1 && typeof msg[0] === 'string') { log(prefix + " - " + msg[0]); } else if (msg.length === 1) { log(prefix, msg[0]); } else if (typeof msg[0] === 'string') { var obj = msg.slice(1); if (obj.length === 1) { obj = obj[0]; } log(prefix + " - " + msg[0], obj); } else { log(prefix, msg); } }; /** * Write General log. Default to INFO * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.log = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['INFO'], msg)); }; /** * Write INFO log * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.info = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['INFO'], msg)); }; /** * Write WARN log * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.warn = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['WARN'], msg)); }; /** * Write ERROR log * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.error = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['ERROR'], msg)); }; /** * Write DEBUG log * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.debug = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['DEBUG'], msg)); }; /** * Write VERBOSE log * @method * @memeberof Logger * @param {string|object} msg - Logging message or object */ ConsoleLogger.prototype.verbose = function () { var msg = []; for (var _i = 0; _i < arguments.length; _i++) { msg[_i] = arguments[_i]; } this._log.apply(this, __spreadArrays(['VERBOSE'], msg)); }; ConsoleLogger.LOG_LEVEL = null; return ConsoleLogger; }()); //# sourceMappingURL=ConsoleLogger.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js": /*!****************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Logger/index.js ***! \****************************************************************/ /*! exports provided: ConsoleLogger */ /*! exports used: ConsoleLogger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ConsoleLogger__ = __webpack_require__(/*! ./ConsoleLogger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__ConsoleLogger__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js": /*!*****************************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js ***! \*****************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__JS__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('CognitoCredentials'); var waitForInit = new Promise(function (res, rej) { if (!__WEBPACK_IMPORTED_MODULE_1__JS__["a" /* default */].browserOrNode().isBrowser) { logger.debug('not in the browser, directly resolved'); return res(); } var fb = window['FB']; if (fb) { logger.debug('FB SDK already loaded'); return res(); } else { setTimeout(function () { return res(); }, 2000); } }); var FacebookOAuth = /** @class */ (function () { function FacebookOAuth() { this.initialized = false; this.refreshFacebookToken = this.refreshFacebookToken.bind(this); this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this); } FacebookOAuth.prototype.refreshFacebookToken = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this.initialized) return [3 /*break*/, 2]; logger.debug('need to wait for the Facebook SDK loaded'); return [4 /*yield*/, waitForInit]; case 1: _a.sent(); this.initialized = true; logger.debug('finish waiting'); _a.label = 2; case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()]; } }); }); }; FacebookOAuth.prototype._refreshFacebookTokenImpl = function () { var fb = null; if (__WEBPACK_IMPORTED_MODULE_1__JS__["a" /* default */].browserOrNode().isBrowser) fb = window['FB']; if (!fb) { logger.debug('no fb sdk available'); return Promise.reject('no fb sdk available'); } return new Promise(function (res, rej) { fb.getLoginStatus(function (fbResponse) { if (!fbResponse || !fbResponse.authResponse) { logger.debug('no response from facebook when refreshing the jwt token'); rej('no response from facebook when refreshing the jwt token'); } var response = fbResponse.authResponse; var accessToken = response.accessToken, expiresIn = response.expiresIn; var date = new Date(); var expires_at = expiresIn * 1000 + date.getTime(); if (!accessToken) { logger.debug('the jwtToken is undefined'); rej('the jwtToken is undefined'); } res({ token: accessToken, expires_at: expires_at }); }, { scope: 'public_profile,email' }); }); }; return FacebookOAuth; }()); /* harmony default export */ __webpack_exports__["a"] = (FacebookOAuth); //# sourceMappingURL=FacebookOAuth.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js": /*!***************************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js ***! \***************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__JS__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('CognitoCredentials'); var waitForInit = new Promise(function (res, rej) { if (!__WEBPACK_IMPORTED_MODULE_1__JS__["a" /* default */].browserOrNode().isBrowser) { logger.debug('not in the browser, directly resolved'); return res(); } var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null; if (ga) { logger.debug('google api already loaded'); return res(); } else { setTimeout(function () { return res(); }, 2000); } }); var GoogleOAuth = /** @class */ (function () { function GoogleOAuth() { this.initialized = false; this.refreshGoogleToken = this.refreshGoogleToken.bind(this); this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this); } GoogleOAuth.prototype.refreshGoogleToken = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!this.initialized) return [3 /*break*/, 2]; logger.debug('need to wait for the Google SDK loaded'); return [4 /*yield*/, waitForInit]; case 1: _a.sent(); this.initialized = true; logger.debug('finish waiting'); _a.label = 2; case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()]; } }); }); }; GoogleOAuth.prototype._refreshGoogleTokenImpl = function () { var ga = null; if (__WEBPACK_IMPORTED_MODULE_1__JS__["a" /* default */].browserOrNode().isBrowser) ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null; if (!ga) { logger.debug('no gapi auth2 available'); return Promise.reject('no gapi auth2 available'); } return new Promise(function (res, rej) { ga.getAuthInstance() .then(function (googleAuth) { if (!googleAuth) { console.log('google Auth undefiend'); rej('google Auth undefiend'); } var googleUser = googleAuth.currentUser.get(); // refresh the token if (googleUser.isSignedIn()) { logger.debug('refreshing the google access token'); googleUser.reloadAuthResponse().then(function (authResponse) { var id_token = authResponse.id_token, expires_at = authResponse.expires_at; var profile = googleUser.getBasicProfile(); var user = { email: profile.getEmail(), name: profile.getName(), }; res({ token: id_token, expires_at: expires_at }); }); } else { rej('User is not signed in with Google'); } }) .catch(function (err) { logger.debug('Failed to refresh google token', err); rej('Failed to refresh google token'); }); }); }; return GoogleOAuth; }()); /* harmony default export */ __webpack_exports__["a"] = (GoogleOAuth); //# sourceMappingURL=GoogleOAuth.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js ***! \*********************************************************************/ /*! exports provided: GoogleOAuth, FacebookOAuth */ /*! exports used: FacebookOAuth, GoogleOAuth */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return GoogleOAuth; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FacebookOAuth; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__GoogleOAuth__ = __webpack_require__(/*! ./GoogleOAuth */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__FacebookOAuth__ = __webpack_require__(/*! ./FacebookOAuth */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var GoogleOAuth = new __WEBPACK_IMPORTED_MODULE_0__GoogleOAuth__["a" /* default */](); var FacebookOAuth = new __WEBPACK_IMPORTED_MODULE_1__FacebookOAuth__["a" /* default */](); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Parser.js": /*!**********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Parser.js ***! \**********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('Parser'); var Parser = /** @class */ (function () { function Parser() { } Parser.parseMobilehubConfig = function (config) { var amplifyConfig = {}; // Analytics if (config['aws_mobile_analytics_app_id']) { var Analytics = { AWSPinpoint: { appId: config['aws_mobile_analytics_app_id'], region: config['aws_mobile_analytics_app_region'], }, }; amplifyConfig.Analytics = Analytics; } // Auth if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) { var Auth = { userPoolId: config['aws_user_pools_id'], userPoolWebClientId: config['aws_user_pools_web_client_id'], region: config['aws_cognito_region'], identityPoolId: config['aws_cognito_identity_pool_id'], mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable' ? true : false, }; amplifyConfig.Auth = Auth; } // Storage var storageConfig; if (config['aws_user_files_s3_bucket']) { storageConfig = { AWSS3: { bucket: config['aws_user_files_s3_bucket'], region: config['aws_user_files_s3_bucket_region'], dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'], }, }; } else { storageConfig = config ? config.Storage || config : {}; } amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics); amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth); amplifyConfig.Storage = Object.assign({}, storageConfig); logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig); return amplifyConfig; }; return Parser; }()); /* harmony default export */ __webpack_exports__["a"] = (Parser); //# sourceMappingURL=Parser.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Platform/index.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Platform/index.js ***! \******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var packageInfo = __webpack_require__(/*! ../../package.json */ "./node_modules/@aws-amplify/core/package.json"); var Platform = { userAgent: "aws-amplify/" + packageInfo.version + " js", product: '', navigator: null, isReactNative: false, }; if (typeof navigator !== 'undefined' && navigator.product) { Platform.product = navigator.product || ''; Platform.navigator = navigator || null; switch (navigator.product) { case 'ReactNative': Platform.userAgent = "aws-amplify/" + packageInfo.version + " react-native"; Platform.isReactNative = true; break; default: Platform.userAgent = "aws-amplify/" + packageInfo.version + " js"; Platform.isReactNative = false; break; } } /* harmony default export */ __webpack_exports__["a"] = (Platform); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js": /*!**********************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js ***! \**********************************************************************/ /*! exports provided: Linking, AppState, AsyncStorage */ /*! exports used: AppState, AsyncStorage, Linking */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return Linking; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AppState; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AsyncStorage; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__JS__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__StorageHelper__ = __webpack_require__(/*! ../StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var Linking = {}; var AppState = { addEventListener: function (action, handler) { return; }, }; // if not in react native, just use local storage var AsyncStorage = __WEBPACK_IMPORTED_MODULE_0__JS__["a" /* default */].browserOrNode().isBrowser ? new __WEBPACK_IMPORTED_MODULE_1__StorageHelper__["b" /* default */]().getStorage() : undefined; //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js": /*!*******************************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js ***! \*******************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__JS__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Amplify__ = __webpack_require__(/*! ../Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); /** * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /** * Provides a means to registering a service worker in the browser * and communicating with it via postMessage events. * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/ * * postMessage events are currently not supported in all browsers. See: * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API * * At the minmum this class will register the service worker and listen * and attempt to dispatch messages on state change and record analytics * events based on the service worker lifecycle. */ var ServiceWorkerClass = /** @class */ (function () { function ServiceWorkerClass() { // The AWS Amplify logger this._logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('ServiceWorker'); } Object.defineProperty(ServiceWorkerClass.prototype, "serviceWorker", { /** * Get the currently active service worker */ get: function () { return this._serviceWorker; }, enumerable: true, configurable: true }); /** * Register the service-worker.js file in the browser * Make sure the service-worker.js is part of the build * for example with Angular, modify the angular-cli.json file * and add to "assets" array "service-worker.js" * @param {string} - (optional) Service worker file. Defaults to "/service-worker.js" * @param {string} - (optional) The service worker scope. Defaults to "/" * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register * @returns {Promise} * - resolve(ServiceWorkerRegistration) * - reject(Error) **/ ServiceWorkerClass.prototype.register = function (filePath, scope) { var _this = this; if (filePath === void 0) { filePath = '/service-worker.js'; } if (scope === void 0) { scope = '/'; } this._logger.debug("registering " + filePath); this._logger.debug("registering service worker with scope " + scope); return new Promise(function (resolve, reject) { if (navigator && 'serviceWorker' in navigator) { navigator.serviceWorker .register(filePath, { scope: scope, }) .then(function (registration) { if (registration.installing) { _this._serviceWorker = registration.installing; } else if (registration.waiting) { _this._serviceWorker = registration.waiting; } else if (registration.active) { _this._serviceWorker = registration.active; } _this._registration = registration; _this._setupListeners(); _this._logger.debug("Service Worker Registration Success: " + registration); return resolve(registration); }) .catch(function (error) { _this._logger.debug("Service Worker Registration Failed " + error); return reject(error); }); } else { return reject(new Error('Service Worker not available')); } }); }; /** * Enable web push notifications. If not subscribed, a new subscription will * be created and registered. * Test Push Server: https://web-push-codelab.glitch.me/ * Push Server Libraries: https://github.com/web-push-libs/ * API Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/ * @param publicKey * @returns {Promise} * - resolve(PushSubscription) * - reject(Error) */ ServiceWorkerClass.prototype.enablePush = function (publicKey) { var _this = this; if (!this._registration) throw new Error('Service Worker not registered'); this._publicKey = publicKey; return new Promise(function (resolve, reject) { if (__WEBPACK_IMPORTED_MODULE_1__JS__["a" /* default */].browserOrNode().isBrowser) { _this._registration.pushManager.getSubscription().then(function (subscription) { if (subscription) { _this._subscription = subscription; _this._logger.debug("User is subscribed to push: " + JSON.stringify(subscription)); resolve(subscription); } else { _this._logger.debug("User is NOT subscribed to push"); return _this._registration.pushManager .subscribe({ userVisibleOnly: true, applicationServerKey: _this._urlB64ToUint8Array(publicKey), }) .then(function (subscription) { _this._subscription = subscription; _this._logger.debug("User subscribed: " + JSON.stringify(subscription)); resolve(subscription); }) .catch(function (error) { _this._logger.error(error); }); } }); } else { return reject(new Error('Service Worker not available')); } }); }; /** * Convert a base64 encoded string to a Uint8 array for the push server key * @param base64String */ ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) { var padding = '='.repeat((4 - (base64String.length % 4)) % 4); var base64 = (base64String + padding) .replace(/\-/g, '+') .replace(/_/g, '/'); var rawData = window.atob(base64); var outputArray = new Uint8Array(rawData.length); for (var i = 0; i < rawData.length; ++i) { outputArray[i] = rawData.charCodeAt(i); } return outputArray; }; /** * Send a message to the service worker. The service worker needs * to implement `self.addEventListener('message') to handle the * message. This ***currently*** does not work in Safari or IE. * @param {object | string} - An arbitrary JSON object or string message to send to the service worker * - see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable * @returns {Promise} **/ ServiceWorkerClass.prototype.send = function (message) { if (this._serviceWorker) { this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message); } }; /** * Listen for service worker state change and message events * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state **/ ServiceWorkerClass.prototype._setupListeners = function () { var _this = this; this._serviceWorker.addEventListener('statechange', function (event) { var currentState = _this._serviceWorker.state; _this._logger.debug("ServiceWorker statechange: " + currentState); if (__WEBPACK_IMPORTED_MODULE_2__Amplify__["a" /* default */].Analytics && typeof __WEBPACK_IMPORTED_MODULE_2__Amplify__["a" /* default */].Analytics.record === 'function') { __WEBPACK_IMPORTED_MODULE_2__Amplify__["a" /* default */].Analytics.record({ name: 'ServiceWorker', attributes: { state: currentState, }, }); } }); this._serviceWorker.addEventListener('message', function (event) { _this._logger.debug("ServiceWorker message event: " + event); }); }; return ServiceWorkerClass; }()); /* harmony default export */ __webpack_exports__["a"] = (ServiceWorkerClass); //# sourceMappingURL=ServiceWorker.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js": /*!***********************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js ***! \***********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ServiceWorker__ = __webpack_require__(/*! ./ServiceWorker */ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__ServiceWorker__["a"]; }); /** * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/Signer.js": /*!**********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/Signer.js ***! \**********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Facet__ = __webpack_require__(/*! ./Facet */ "./node_modules/@aws-amplify/core/lib-esm/Facet.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger__["a" /* ConsoleLogger */]('Signer'), url = __webpack_require__(/*! url */ "./node_modules/url/url.js"), crypto = __WEBPACK_IMPORTED_MODULE_1__Facet__["a" /* AWS */]['util'].crypto; var DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256'; var IOT_SERVICE_NAME = 'iotdevicegateway'; var encrypt = function (key, src, encoding) { return crypto.lib .createHmac('sha256', key) .update(src, 'utf8') .digest(encoding); }; var hash = function (src) { var arg = src || ''; return crypto .createHash('sha256') .update(arg, 'utf8') .digest('hex'); }; /** * @private * RFC 3986 compliant version of encodeURIComponent */ var escape_RFC3986 = function (component) { return component.replace(/[!'()*]/g, function (c) { return ('%' + c .charCodeAt(0) .toString(16) .toUpperCase()); }); }; /** * @private * Create canonical query string * */ var canonical_query = function (query) { if (!query || query.length === 0) { return ''; } return query .split('&') .map(function (e) { var key_val = e.split('='); if (key_val.length === 1) { return e; } else { var reencoded_val = escape_RFC3986(key_val[1]); return key_val[0] + '=' + reencoded_val; } }) .sort(function (a, b) { var key_a = a.split('=')[0]; var key_b = b.split('=')[0]; if (key_a === key_b) { return a < b ? -1 : 1; } else { return key_a < key_b ? -1 : 1; } }) .join('&'); }; /** * @private * Create canonical headers *
CanonicalHeaders =
    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN
CanonicalHeadersEntry =
    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\n'
*/ var canonical_headers = function (headers) { if (!headers || Object.keys(headers).length === 0) { return ''; } return (Object.keys(headers) .map(function (key) { return { key: key.toLowerCase(), value: headers[key] ? headers[key].trim().replace(/\s+/g, ' ') : '', }; }) .sort(function (a, b) { return a.key < b.key ? -1 : 1; }) .map(function (item) { return item.key + ':' + item.value; }) .join('\n') + '\n'); }; /** * List of header keys included in the canonical headers. * @access private */ var signed_headers = function (headers) { return Object.keys(headers) .map(function (key) { return key.toLowerCase(); }) .sort() .join(';'); }; /** * @private * Create canonical request * Refer to * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request} *
CanonicalRequest =
    HTTPRequestMethod + '\n' +
    CanonicalURI + '\n' +
    CanonicalQueryString + '\n' +
    CanonicalHeaders + '\n' +
    SignedHeaders + '\n' +
    HexEncode(Hash(RequestPayload))
*/ var canonical_request = function (request) { var url_info = url.parse(request.url); return [ request.method || '/', encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'), canonical_query(url_info.query), canonical_headers(request.headers), signed_headers(request.headers), hash(request.data), ].join('\n'); }; var parse_service_info = function (request) { var url_info = url.parse(request.url), host = url_info.host; var matched = host.match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com$/); var parsed = (matched || []).slice(1, 3); if (parsed[1] === 'es') { // Elastic Search parsed = parsed.reverse(); } return { service: request.service || parsed[0], region: request.region || parsed[1], }; }; var credential_scope = function (d_str, region, service) { return [d_str, region, service, 'aws4_request'].join('/'); }; /** * @private * Create a string to sign * Refer to * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign} *
StringToSign =
    Algorithm + \n +
    RequestDateTime + \n +
    CredentialScope + \n +
    HashedCanonicalRequest
*/ var string_to_sign = function (algorithm, canonical_request, dt_str, scope) { return [algorithm, dt_str, scope, hash(canonical_request)].join('\n'); }; /** * @private * Create signing key * Refer to * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature} *
kSecret = your secret access key
kDate = HMAC("AWS4" + kSecret, Date)
kRegion = HMAC(kDate, Region)
kService = HMAC(kRegion, Service)
kSigning = HMAC(kService, "aws4_request")
*/ var get_signing_key = function (secret_key, d_str, service_info) { logger.debug(service_info); var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request'); return k_signing; }; var get_signature = function (signing_key, str_to_sign) { return encrypt(signing_key, str_to_sign, 'hex'); }; /** * @private * Create authorization header * Refer to * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information} */ var get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) { return [ algorithm + ' ' + 'Credential=' + access_key + '/' + scope, 'SignedHeaders=' + signed_headers, 'Signature=' + signature, ].join(', '); }; /** * AWS request signer. * Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html|Signature Version 4} * * @class Signer */ var Signer = /** @class */ (function () { function Signer() { } /** * Sign a HTTP request, add 'Authorization' header to request param * @method sign * @memberof Signer * @static * * @param {object} request - HTTP request object
    request: {
        method: GET | POST | PUT ...
        url: ...,
        headers: {
            header1: ...
        },
        data: data
    }
    
* @param {object} access_info - AWS access credential info
    access_info: {
        access_key: ...,
        secret_key: ...,
        session_token: ...
    }
    
* @param {object} [service_info] - AWS service type and region, optional, * if not provided then parse out from url
    service_info: {
        service: ...,
        region: ...
    }
    
* * @returns {object} Signed HTTP request */ Signer.sign = function (request, access_info, service_info) { if (service_info === void 0) { service_info = null; } request.headers = request.headers || {}; // datetime string and date string var dt = new Date(), dt_str = dt.toISOString().replace(/[:\-]|\.\d{3}/g, ''), d_str = dt_str.substr(0, 8); var url_info = url.parse(request.url); request.headers['host'] = url_info.host; request.headers['x-amz-date'] = dt_str; if (access_info.session_token) { request.headers['X-Amz-Security-Token'] = access_info.session_token; } // Task 1: Create a Canonical Request var request_str = canonical_request(request); logger.debug(request_str); // Task 2: Create a String to Sign var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope); // Task 3: Calculate the Signature var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign); // Task 4: Adding the Signing information to the Request var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature); request.headers['Authorization'] = authorization_header; return request; }; Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) { var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest; var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET'; var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined; var now = new Date().toISOString().replace(/[:\-]|\.\d{3}/g, ''); var today = now.substr(0, 8); // Intentionally discarding search var _a = url.parse(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, ["search"]); var host = parsedUrl.host; var signedHeaders = { host: host }; var _b = serviceInfo || parse_service_info({ url: url.format(parsedUrl) }), region = _b.region, service = _b.service; var credentialScope = credential_scope(today, region, service); // IoT service does not allow the session token in the canonical request // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME; var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired ? { 'X-Amz-Security-Token': "" + accessInfo.session_token } : {})), (expiration ? { 'X-Amz-Expires': "" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') }); var canonicalRequest = canonical_request({ method: method, url: url.format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })), headers: signedHeaders, data: body, }); var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope); var signing_key = get_signing_key(accessInfo.secret_key, today, { region: region, service: service, }); var signature = get_signature(signing_key, stringToSign); var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && { 'X-Amz-Security-Token': accessInfo.session_token, })); var result = url.format({ protocol: parsedUrl.protocol, slashes: true, hostname: parsedUrl.hostname, port: parsedUrl.port, pathname: parsedUrl.pathname, query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams), }); return result; }; return Signer; }()); /* harmony default export */ __webpack_exports__["a"] = (Signer); //# sourceMappingURL=Signer.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js": /*!***********************************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js ***! \***********************************************************************/ /*! exports provided: MemoryStorage, default */ /*! exports used: MemoryStorage, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MemoryStorage; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var dataMemory = {}; /** @class */ var MemoryStorage = /** @class */ (function () { function MemoryStorage() { } /** * This is used to set a specific item in storage * @param {string} key - the key for the item * @param {object} value - the value * @returns {string} value that was set */ MemoryStorage.setItem = function (key, value) { dataMemory[key] = value; return dataMemory[key]; }; /** * This is used to get a specific key from storage * @param {string} key - the key for the item * This is used to clear the storage * @returns {string} the data item */ MemoryStorage.getItem = function (key) { return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined; }; /** * This is used to remove an item from storage * @param {string} key - the key being set * @returns {string} value - value that was deleted */ MemoryStorage.removeItem = function (key) { return delete dataMemory[key]; }; /** * This is used to clear the storage * @returns {string} nothing */ MemoryStorage.clear = function () { dataMemory = {}; return dataMemory; }; return MemoryStorage; }()); var StorageHelper = /** @class */ (function () { /** * This is used to get a storage object * @returns {object} the storage */ function StorageHelper() { try { this.storageWindow = window.localStorage; this.storageWindow.setItem('aws.amplify.test-ls', 1); this.storageWindow.removeItem('aws.amplify.test-ls'); } catch (exception) { this.storageWindow = MemoryStorage; } } /** * This is used to return the storage * @returns {object} the storage */ StorageHelper.prototype.getStorage = function () { return this.storageWindow; }; return StorageHelper; }()); /* harmony default export */ __webpack_exports__["b"] = (StorageHelper); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib-esm/index.js": /*!*********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib-esm/index.js ***! \*********************************************************/ /*! exports provided: ClientDevice, ConsoleLogger, Logger, Hub, I18n, JS, Signer, Parser, FacebookOAuth, GoogleOAuth, Credentials, ServiceWorker, StorageHelper, MemoryStorage, Platform, Constants, default, AWS, missingConfig, invalidParameter, Linking, AppState, AsyncStorage */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return Constants; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Facet__ = __webpack_require__(/*! ./Facet */ "./node_modules/@aws-amplify/core/lib-esm/Facet.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Logger__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Amplify__ = __webpack_require__(/*! ./Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWS", function() { return __WEBPACK_IMPORTED_MODULE_0__Facet__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ClientDevice__ = __webpack_require__(/*! ./ClientDevice */ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ClientDevice", function() { return __WEBPACK_IMPORTED_MODULE_3__ClientDevice__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ConsoleLogger", function() { return __WEBPACK_IMPORTED_MODULE_1__Logger__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return __WEBPACK_IMPORTED_MODULE_1__Logger__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Errors__ = __webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/core/lib-esm/Errors.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "missingConfig", function() { return __WEBPACK_IMPORTED_MODULE_4__Errors__["b"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "invalidParameter", function() { return __WEBPACK_IMPORTED_MODULE_4__Errors__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Hub__ = __webpack_require__(/*! ./Hub */ "./node_modules/@aws-amplify/core/lib-esm/Hub.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Hub", function() { return __WEBPACK_IMPORTED_MODULE_5__Hub__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__I18n__ = __webpack_require__(/*! ./I18n */ "./node_modules/@aws-amplify/core/lib-esm/I18n/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "I18n", function() { return __WEBPACK_IMPORTED_MODULE_6__I18n__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__JS__ = __webpack_require__(/*! ./JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "JS", function() { return __WEBPACK_IMPORTED_MODULE_7__JS__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Signer__ = __webpack_require__(/*! ./Signer */ "./node_modules/@aws-amplify/core/lib-esm/Signer.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Signer", function() { return __WEBPACK_IMPORTED_MODULE_8__Signer__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Parser__ = __webpack_require__(/*! ./Parser */ "./node_modules/@aws-amplify/core/lib-esm/Parser.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Parser", function() { return __WEBPACK_IMPORTED_MODULE_9__Parser__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__OAuthHelper__ = __webpack_require__(/*! ./OAuthHelper */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FacebookOAuth", function() { return __WEBPACK_IMPORTED_MODULE_10__OAuthHelper__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "GoogleOAuth", function() { return __WEBPACK_IMPORTED_MODULE_10__OAuthHelper__["b"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__RNComponents__ = __webpack_require__(/*! ./RNComponents */ "./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "Linking", function() { return __WEBPACK_IMPORTED_MODULE_11__RNComponents__["c"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AppState", function() { return __WEBPACK_IMPORTED_MODULE_11__RNComponents__["a"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AsyncStorage", function() { return __WEBPACK_IMPORTED_MODULE_11__RNComponents__["b"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Credentials__ = __webpack_require__(/*! ./Credentials */ "./node_modules/@aws-amplify/core/lib-esm/Credentials.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Credentials", function() { return __WEBPACK_IMPORTED_MODULE_12__Credentials__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ServiceWorker__ = __webpack_require__(/*! ./ServiceWorker */ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ServiceWorker", function() { return __WEBPACK_IMPORTED_MODULE_13__ServiceWorker__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__StorageHelper__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StorageHelper", function() { return __WEBPACK_IMPORTED_MODULE_14__StorageHelper__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MemoryStorage", function() { return __WEBPACK_IMPORTED_MODULE_14__StorageHelper__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Platform__ = __webpack_require__(/*! ./Platform */ "./node_modules/@aws-amplify/core/lib-esm/Platform/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Platform", function() { return __WEBPACK_IMPORTED_MODULE_15__Platform__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var Constants = { userAgent: __WEBPACK_IMPORTED_MODULE_15__Platform__["a" /* default */].userAgent, }; /* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_2__Amplify__["a" /* default */]); var logger = new __WEBPACK_IMPORTED_MODULE_1__Logger__["a" /* ConsoleLogger */]('Core'); if (__WEBPACK_IMPORTED_MODULE_0__Facet__["a" /* AWS */]['util']) { __WEBPACK_IMPORTED_MODULE_0__Facet__["a" /* AWS */]['util'].userAgent = function () { return Constants.userAgent; }; } else if (__WEBPACK_IMPORTED_MODULE_0__Facet__["a" /* AWS */].config) { __WEBPACK_IMPORTED_MODULE_0__Facet__["a" /* AWS */].config.update({ customUserAgent: Constants.userAgent }); } else { logger.warn('No AWS.config'); } //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/lib/constants.js": /*!*********************************************************!*\ !*** ./node_modules/@aws-amplify/core/lib/constants.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! exports used: INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); /** * This Symbol is used to reference an internal-only PubSub provider that * is used for AppSync/GraphQL subscriptions in the API category. */ var hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'; exports.INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER') : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER'; //# sourceMappingURL=constants.js.map /***/ }), /***/ "./node_modules/@aws-amplify/core/package.json": /*!*****************************************************!*\ !*** ./node_modules/@aws-amplify/core/package.json ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"_args":[["@aws-amplify/core@1.3.3","c:\\Cardknox\\PartnerPortal\\ClientApp"]],"_from":"@aws-amplify/core@1.3.3","_id":"@aws-amplify/core@1.3.3","_inBundle":false,"_integrity":"sha512-NyJii+PvZ1Sb1j7w1XWJpRr9nDjB60bjb+FspCRAWjdwlxgVgpCQdhXE4F4teUtLUd22Po2boxLkyhKnuI0jwg==","_location":"/@aws-amplify/core","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"@aws-amplify/core@1.3.3","name":"@aws-amplify/core","escapedName":"@aws-amplify%2fcore","scope":"@aws-amplify","rawSpec":"1.3.3","saveSpec":null,"fetchSpec":"1.3.3"},"_requiredBy":["/@aws-amplify/analytics","/@aws-amplify/api","/@aws-amplify/auth","/@aws-amplify/cache","/@aws-amplify/interactions","/@aws-amplify/pubsub","/@aws-amplify/storage","/@aws-amplify/xr","/aws-amplify"],"_resolved":"https://registry.npmjs.org/@aws-amplify/core/-/core-1.3.3.tgz","_spec":"1.3.3","_where":"c:\\Cardknox\\PartnerPortal\\ClientApp","author":{"name":"Amazon Web Services"},"bugs":{"url":"https://github.com/aws/aws-amplify/issues"},"dependencies":{"aws-sdk":"2.518.0","url":"^0.11.0"},"description":"Core category of aws-amplify","devDependencies":{"find":"^0.2.7","prepend-file":"^1.3.1","prettier":"^1.7.4","typescript":"^3.2.2"},"gitHead":"4f1eaade7017d4af91dcee049cadd7501c6db836","homepage":"https://aws-amplify.github.io/","jest":{"globals":{"ts-jest":{"diagnostics":false,"tsConfig":{"lib":["es5","es2015","dom","esnext.asynciterable","es2017.object"],"allowJs":true}}},"transform":{"^.+\\.(js|jsx|ts|tsx)$":"ts-jest"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$","moduleFileExtensions":["ts","tsx","js","json","jsx"],"testEnvironment":"jsdom","coverageThreshold":{"global":{"branches":0,"functions":0,"lines":0,"statements":0}},"testURL":"http://localhost/","coveragePathIgnorePatterns":["/node_modules/"]},"license":"Apache-2.0","main":"./index.js","module":"./lib-esm/index.js","name":"@aws-amplify/core","publishConfig":{"access":"public"},"react-native":{"./lib/ClientDevice":"./lib/ClientDevice/reactnative.js","./lib/RNComponents":"./lib/RNComponents/reactnative.js","./lib/StorageHelper":"./lib/StorageHelper/reactnative.js"},"repository":{"type":"git","url":"git+https://github.com/aws-amplify/amplify-js.git"},"scripts":{"build":"npm run clean && npm run build:esm && npm run build:cjs","build-with-test":"npm test && npm run build","build:cjs":"node ./build es5 && webpack && webpack --config ./webpack.config.dev.js","build:esm":"node ./build es6","clean":"rimraf lib-esm lib dist","format":"echo \"Not implemented\"","lint":"tslint 'src/**/*.ts'","test":"tslint 'src/**/*.ts' && jest -w 1 --coverage"},"typings":"./lib-esm/index.d.ts","version":"1.3.3"} /***/ }), /***/ "./node_modules/@aws-amplify/interactions/lib-esm/Interactions.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/interactions/lib-esm/Interactions.js ***! \************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Providers__ = __webpack_require__(/*! ./Providers */ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/index.js"); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('Interactions'); var Interactions = /** @class */ (function () { /** * Initialize PubSub with AWS configurations * * @param {InteractionsOptions} options - Configuration object for Interactions */ function Interactions(options) { this._options = options; logger.debug('Interactions Options', this._options); this._pluggables = {}; } Interactions.prototype.getModuleName = function () { return 'Interactions'; }; /** * * @param {InteractionsOptions} options - Configuration object for Interactions * @return {Object} - The current configuration */ Interactions.prototype.configure = function (options) { var _this = this; var opt = options ? options.Interactions || options : {}; logger.debug('configure Interactions', { opt: opt }); this._options = __assign(__assign({ bots: {} }, opt), opt.Interactions); var aws_bots_config = this._options.aws_bots_config; var bots_config = this._options.bots; if (!Object.keys(bots_config).length && aws_bots_config) { // Convert aws_bots_config to bots object if (Array.isArray(aws_bots_config)) { aws_bots_config.forEach(function (bot) { _this._options.bots[bot.name] = bot; }); } } // Check if AWSLex provider is already on pluggables if (!this._pluggables.AWSLexProvider && bots_config && Object.keys(bots_config) .map(function (key) { return bots_config[key]; }) .find(function (bot) { return !bot.providerName || bot.providerName === 'AWSLexProvider'; })) { this._pluggables.AWSLexProvider = new __WEBPACK_IMPORTED_MODULE_1__Providers__["a" /* AWSLexProvider */](); } Object.keys(this._pluggables).map(function (key) { _this._pluggables[key].configure(_this._options.bots); }); return this._options; }; Interactions.prototype.addPluggable = function (pluggable) { if (pluggable && pluggable.getCategory() === 'Interactions') { if (!this._pluggables[pluggable.getProviderName()]) { pluggable.configure(this._options.bots); this._pluggables[pluggable.getProviderName()] = pluggable; return; } else { throw new Error('Bot ' + pluggable.getProviderName() + ' already plugged'); } } }; Interactions.prototype.send = function (botname, message) { return __awaiter(this, void 0, void 0, function () { var botProvider; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!this._options.bots || !this._options.bots[botname]) { throw new Error('Bot ' + botname + ' does not exist'); } botProvider = this._options.bots[botname].providerName || 'AWSLexProvider'; if (!this._pluggables[botProvider]) { throw new Error('Bot ' + botProvider + ' does not have valid pluggin did you try addPluggable first?'); } return [4 /*yield*/, this._pluggables[botProvider].sendMessage(botname, message)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); }; Interactions.prototype.onComplete = function (botname, callback) { if (!this._options.bots || !this._options.bots[botname]) { throw new Error('Bot ' + botname + ' does not exist'); } var botProvider = this._options.bots[botname].providerName || 'AWSLexProvider'; if (!this._pluggables[botProvider]) { throw new Error('Bot ' + botProvider + ' does not have valid pluggin did you try addPluggable first?'); } this._pluggables[botProvider].onComplete(botname, callback); }; return Interactions; }()); /* harmony default export */ __webpack_exports__["a"] = (Interactions); //# sourceMappingURL=Interactions.js.map /***/ }), /***/ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProvider.js": /*!************************************************************************************!*\ !*** ./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProvider.js ***! \************************************************************************************/ /*! exports provided: AWSLexProvider */ /*! exports used: AWSLexProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AWSLexProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__InteractionsProvider__ = __webpack_require__(/*! ./InteractionsProvider */ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/InteractionsProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_lexruntime__ = __webpack_require__(/*! aws-sdk/clients/lexruntime */ "./node_modules/aws-sdk/clients/lexruntime.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_lexruntime___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_lexruntime__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["ConsoleLogger"]('AWSLexProvider'); var AWSLexProvider = /** @class */ (function (_super) { __extends(AWSLexProvider, _super); function AWSLexProvider(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, options) || this; _this.aws_lex = new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_lexruntime__({ region: _this._config.region }); _this._botsCompleteCallback = {}; return _this; } AWSLexProvider.prototype.getProviderName = function () { return 'AWSLexProvider'; }; AWSLexProvider.prototype.responseCallback = function (err, data, res, rej, botname) { var _this = this; if (err) { rej(err); return; } else { // Check if state is fulfilled to resolve onFullfilment promise logger.debug('postContent state', data.dialogState); if (data.dialogState === 'ReadyForFulfillment' || data.dialogState === 'Fulfilled') { if (typeof this._botsCompleteCallback[botname] === 'function') { setTimeout(function () { return _this._botsCompleteCallback[botname](null, { slots: data.slots }); }, 0); } if (this._config && typeof this._config[botname].onComplete === 'function') { setTimeout(function () { return _this._config[botname].onComplete(null, { slots: data.slots }); }, 0); } } res(data); if (data.dialogState === 'Failed') { if (typeof this._botsCompleteCallback[botname] === 'function') { setTimeout(function () { return _this._botsCompleteCallback[botname]('Bot conversation failed'); }, 0); } if (this._config && typeof this._config[botname].onComplete === 'function') { setTimeout(function () { return _this._config[botname].onComplete('Bot conversation failed'); }, 0); } } } }; AWSLexProvider.prototype.sendMessage = function (botname, message) { var _this = this; return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () { var credentials, params; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!this._config[botname]) { return [2 /*return*/, rej('Bot ' + botname + ' does not exist')]; } return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["Credentials"].get()]; case 1: credentials = _a.sent(); if (!credentials) { return [2 /*return*/, rej('No credentials')]; } __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core__["AWS"].config.update({ credentials: credentials, }); this.aws_lex = new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_lexruntime__({ region: this._config[botname].region, credentials: credentials, }); if (typeof message === 'string') { params = { botAlias: this._config[botname].alias, botName: botname, inputText: message, userId: credentials.identityId, }; logger.debug('postText to lex', message); this.aws_lex.postText(params, function (err, data) { _this.responseCallback(err, data, res, rej, botname); }); } else { if (message.options['messageType'] === 'voice') { params = { botAlias: this._config[botname].alias, botName: botname, contentType: 'audio/x-l16; sample-rate=16000', inputStream: message.content, userId: credentials.identityId, accept: 'audio/mpeg', }; } else { params = { botAlias: this._config[botname].alias, botName: botname, contentType: 'text/plain; charset=utf-8', inputStream: message.content, userId: credentials.identityId, accept: 'audio/mpeg', }; } logger.debug('postContent to lex', message); this.aws_lex.postContent(params, function (err, data) { _this.responseCallback(err, data, res, rej, botname); }); } return [2 /*return*/]; } }); }); }); }; AWSLexProvider.prototype.onComplete = function (botname, callback) { if (!this._config[botname]) { throw new ErrorEvent('Bot ' + botname + ' does not exist'); } this._botsCompleteCallback[botname] = callback; }; return AWSLexProvider; }(__WEBPACK_IMPORTED_MODULE_0__InteractionsProvider__["a" /* AbstractInteractionsProvider */])); //# sourceMappingURL=AWSLexProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/InteractionsProvider.js": /*!******************************************************************************************!*\ !*** ./node_modules/@aws-amplify/interactions/lib-esm/Providers/InteractionsProvider.js ***! \******************************************************************************************/ /*! exports provided: AbstractInteractionsProvider */ /*! exports used: AbstractInteractionsProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractInteractionsProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AbstractInteractionsProvider'); var AbstractInteractionsProvider = /** @class */ (function () { function AbstractInteractionsProvider(options) { if (options === void 0) { options = {}; } this._config = options; } AbstractInteractionsProvider.prototype.configure = function (config) { if (config === void 0) { config = {}; } this._config = __assign(__assign({}, this._config), config); logger.debug("configure " + this.getProviderName(), this._config); return this.options; }; AbstractInteractionsProvider.prototype.getCategory = function () { return 'Interactions'; }; Object.defineProperty(AbstractInteractionsProvider.prototype, "options", { get: function () { return __assign({}, this._config); }, enumerable: true, configurable: true }); return AbstractInteractionsProvider; }()); //# sourceMappingURL=InteractionsProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/index.js": /*!***************************************************************************!*\ !*** ./node_modules/@aws-amplify/interactions/lib-esm/Providers/index.js ***! \***************************************************************************/ /*! exports provided: AWSLexProvider, AbstractInteractionsProvider */ /*! exports used: AWSLexProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AWSLexProvider__ = __webpack_require__(/*! ./AWSLexProvider */ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProvider.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__AWSLexProvider__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__InteractionsProvider__ = __webpack_require__(/*! ./InteractionsProvider */ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/InteractionsProvider.js"); /* unused harmony namespace reexport */ /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/interactions/lib-esm/index.js": /*!*****************************************************************!*\ !*** ./node_modules/@aws-amplify/interactions/lib-esm/index.js ***! \*****************************************************************/ /*! exports provided: default, InteractionsClass, AWSLexProvider */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Interactions__ = __webpack_require__(/*! ./Interactions */ "./node_modules/@aws-amplify/interactions/lib-esm/Interactions.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Providers_AWSLexProvider__ = __webpack_require__(/*! ./Providers/AWSLexProvider */ "./node_modules/@aws-amplify/interactions/lib-esm/Providers/AWSLexProvider.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWSLexProvider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers_AWSLexProvider__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "InteractionsClass", function() { return __WEBPACK_IMPORTED_MODULE_0__Interactions__["a"]; }); /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('Interactions'); var _instance = null; if (!_instance) { logger.debug('Create Interactions Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__Interactions__["a" /* default */](null); } var Interactions = _instance; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["default"].register(Interactions); /* harmony default export */ __webpack_exports__["default"] = (Interactions); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js ***! \**********************************************************************************/ /*! exports provided: AWSAppSyncProvider */ /*! exports used: AWSAppSyncProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AWSAppSyncProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_zen_observable__ = __webpack_require__(/*! zen-observable */ "./node_modules/zen-observable/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_zen_observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_zen_observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__MqttOverWSProvider__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js"); var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('AWSAppSyncProvider'); var AWSAppSyncProvider = /** @class */ (function (_super) { __extends(AWSAppSyncProvider, _super); function AWSAppSyncProvider() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._topicClient = new Map(); _this._topicAlias = new Map(); return _this; } Object.defineProperty(AWSAppSyncProvider.prototype, "endpoint", { get: function () { throw new Error('Not supported'); }, enumerable: true, configurable: true }); AWSAppSyncProvider.prototype.getProviderName = function () { return 'AWSAppSyncProvider'; }; AWSAppSyncProvider.prototype.publish = function (topics, msg, options) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { throw new Error('Operation not supported'); }); }); }; AWSAppSyncProvider.prototype._cleanUp = function (clientId) { var _this = this; var topicsForClient = Array.from(this._topicClient.entries()) .filter(function (_a) { var c = _a[1]; return c.clientId === clientId; }) .map(function (_a) { var t = _a[0]; return t; }); topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); }); }; AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) { this._topicClient.delete(topic); this._topicAlias.delete(topic); }; AWSAppSyncProvider.prototype.onDisconnect = function (_a) { var _this = this; var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]); if (errorCode !== 0) { var topicsForClient = Array.from(this._topicClient.entries()) .filter(function (_a) { var c = _a[1]; return c.clientId === clientId; }) .map(function (_a) { var t = _a[0]; return t; }); topicsForClient.forEach(function (topic) { if (_this._topicObservers.has(topic)) { _this._topicObservers.get(topic).forEach(function (obs) { if (!obs.closed) { obs.error(args); } }); _this._topicObservers.delete(topic); } }); this._cleanUp(clientId); } }; AWSAppSyncProvider.prototype.disconnect = function (clientId) { return __awaiter(this, void 0, void 0, function () { var client; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })]; case 1: client = _a.sent(); return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)]; case 2: _a.sent(); this._cleanUp(clientId); return [2 /*return*/]; } }); }); }; AWSAppSyncProvider.prototype.subscribe = function (topics, options) { var _this = this; if (options === void 0) { options = {}; } var result = new __WEBPACK_IMPORTED_MODULE_0_zen_observable__(function (observer) { var targetTopics = [].concat(topics); logger.debug('Subscribing to topic(s)', targetTopics.join(',')); (function () { return __awaiter(_this, void 0, void 0, function () { var _a, mqttConnections, newSubscriptions, newAliases, map; var _this = this; return __generator(this, function (_b) { switch (_b.label) { case 0: // Add these topics to map targetTopics.forEach(function (t) { if (!_this._topicObservers.has(t)) { _this._topicObservers.set(t, new Set()); } _this._topicObservers.get(t).add(observer); }); _a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions; newAliases = Object.entries(newSubscriptions).map(function (_a) { var alias = _a[0], v = _a[1]; return [v.topic, alias]; }); // Merge new aliases with old ones this._topicAlias = new Map(__spreadArrays(Array.from(this._topicAlias.entries()), newAliases)); map = Object.entries(targetTopics.reduce(function (acc, elem) { var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; }); if (connectionInfoForTopic) { var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url; if (!acc[clientId]) { acc[clientId] = { url: url, topics: new Set(), }; } acc[clientId].topics.add(elem); } return acc; }, {})); // reconnect everything we have in the map return [4 /*yield*/, Promise.all(map.map(function (_a) { var clientId = _a[0], _b = _a[1], url = _b.url, topics = _b.topics; return __awaiter(_this, void 0, void 0, function () { var client, err_1; var _this = this; return __generator(this, function (_c) { switch (_c.label) { case 0: client = null; _c.label = 1; case 1: _c.trys.push([1, 3, , 4]); return [4 /*yield*/, this.connect(clientId, { clientId: clientId, url: url, })]; case 2: client = _c.sent(); return [3 /*break*/, 4]; case 3: err_1 = _c.sent(); observer.error({ message: 'Failed to connect', error: err_1 }); observer.complete(); return [2 /*return*/, undefined]; case 4: // subscribe to all topics for this client // store topic-client mapping topics.forEach(function (topic) { if (client.isConnected()) { client.subscribe(topic); _this._topicClient.set(topic, client); } }); return [2 /*return*/, client]; } }); }); }))]; case 1: // reconnect everything we have in the map _b.sent(); return [2 /*return*/]; } }); }); })(); return function () { logger.debug('Unsubscribing from topic(s)', targetTopics.join(',')); targetTopics.forEach(function (t) { var client = _this._topicClient.get(t); if (client && client.isConnected()) { client.unsubscribe(t); _this._topicClient.delete(t); if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) { _this.disconnect(client.clientId); } } _this._topicObservers.delete(t); }); }; }); return __WEBPACK_IMPORTED_MODULE_0_zen_observable__["from"](result).map(function (value) { var topic = _this.getTopicForValue(value); var alias = _this._topicAlias.get(topic); value.data = Object.entries(value.data).reduce(function (obj, _a) { var origKey = _a[0], val = _a[1]; return ((obj[(alias || origKey)] = val), obj); }, {}); return value; }); }; return AWSAppSyncProvider; }(__WEBPACK_IMPORTED_MODULE_2__MqttOverWSProvider__["a" /* MqttOverWSProvider */])); //# sourceMappingURL=AWSAppSyncProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSIotProvider.js": /*!******************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSIotProvider.js ***! \******************************************************************************/ /*! exports provided: AWSIoTProvider */ /*! exports used: AWSIoTProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AWSIoTProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__MqttOverWSProvider__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var SERVICE_NAME = 'iotdevicegateway'; var AWSIoTProvider = /** @class */ (function (_super) { __extends(AWSIoTProvider, _super); function AWSIoTProvider() { return _super !== null && _super.apply(this, arguments) || this; } Object.defineProperty(AWSIoTProvider.prototype, "region", { get: function () { return this.options.aws_pubsub_region; }, enumerable: true, configurable: true }); AWSIoTProvider.prototype.getProviderName = function () { return 'AWSIoTProvider'; }; Object.defineProperty(AWSIoTProvider.prototype, "endpoint", { get: function () { var _this = this; return (function () { return __awaiter(_this, void 0, void 0, function () { var endpoint, serviceInfo, _a, access_key, secret_key, session_token, result; return __generator(this, function (_b) { switch (_b.label) { case 0: endpoint = this.options.aws_pubsub_endpoint; serviceInfo = { service: SERVICE_NAME, region: this.region, }; return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Credentials"].get()]; case 1: _a = _b.sent(), access_key = _a.accessKeyId, secret_key = _a.secretAccessKey, session_token = _a.sessionToken; result = __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["Signer"].signUrl(endpoint, { access_key: access_key, secret_key: secret_key, session_token: session_token }, serviceInfo); return [2 /*return*/, result]; } }); }); })(); }, enumerable: true, configurable: true }); return AWSIoTProvider; }(__WEBPACK_IMPORTED_MODULE_0__MqttOverWSProvider__["a" /* MqttOverWSProvider */])); //# sourceMappingURL=AWSIotProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js": /*!**********************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js ***! \**********************************************************************************/ /*! exports provided: mqttTopicMatch, MqttOverWSProvider */ /*! exports used: MqttOverWSProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export mqttTopicMatch */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MqttOverWSProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_paho_mqtt__ = __webpack_require__(/*! paho-mqtt */ "./node_modules/paho-mqtt/paho-mqtt.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_paho_mqtt___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_paho_mqtt__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uuid__ = __webpack_require__(/*! uuid */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_uuid___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_uuid__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_zen_observable__ = __webpack_require__(/*! zen-observable */ "./node_modules/zen-observable/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_zen_observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_zen_observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PubSubProvider__ = __webpack_require__(/*! ./PubSubProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_4__aws_amplify_core__["ConsoleLogger"]('MqttOverWSProvider'); function mqttTopicMatch(filter, topic) { var filterArray = filter.split('/'); var length = filterArray.length; var topicArray = topic.split('/'); for (var i = 0; i < length; ++i) { var left = filterArray[i]; var right = topicArray[i]; if (left === '#') return topicArray.length >= length; if (left !== '+' && left !== right) return false; } return length === topicArray.length; } var ClientsQueue = /** @class */ (function () { function ClientsQueue() { this.promises = new Map(); } ClientsQueue.prototype.get = function (clientId, clientFactory) { return __awaiter(this, void 0, void 0, function () { var promise; return __generator(this, function (_a) { promise = this.promises.get(clientId); if (promise) { return [2 /*return*/, promise]; } promise = clientFactory(clientId); this.promises.set(clientId, promise); return [2 /*return*/, promise]; }); }); }; Object.defineProperty(ClientsQueue.prototype, "allClients", { get: function () { return Array.from(this.promises.keys()); }, enumerable: true, configurable: true }); ClientsQueue.prototype.remove = function (clientId) { this.promises.delete(clientId); }; return ClientsQueue; }()); var topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic'; var MqttOverWSProvider = /** @class */ (function (_super) { __extends(MqttOverWSProvider, _super); function MqttOverWSProvider(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || Object(__WEBPACK_IMPORTED_MODULE_1_uuid__["v4"])() })) || this; _this._clientsQueue = new ClientsQueue(); _this._topicObservers = new Map(); _this._clientIdObservers = new Map(); return _this; } Object.defineProperty(MqttOverWSProvider.prototype, "clientId", { get: function () { return this.options.clientId; }, enumerable: true, configurable: true }); Object.defineProperty(MqttOverWSProvider.prototype, "endpoint", { get: function () { return this.options.aws_pubsub_endpoint; }, enumerable: true, configurable: true }); Object.defineProperty(MqttOverWSProvider.prototype, "clientsQueue", { get: function () { return this._clientsQueue; }, enumerable: true, configurable: true }); Object.defineProperty(MqttOverWSProvider.prototype, "isSSLEnabled", { get: function () { return !this.options .aws_appsync_dangerously_connect_to_http_endpoint_for_testing; }, enumerable: true, configurable: true }); MqttOverWSProvider.prototype.getTopicForValue = function (value) { return typeof value === 'object' && value[topicSymbol]; }; MqttOverWSProvider.prototype.getProviderName = function () { return 'MqttOverWSProvider'; }; MqttOverWSProvider.prototype.onDisconnect = function (_a) { var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]); if (errorCode !== 0) { logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2)); this._topicObservers.forEach(function (observerForTopic, _observerTopic) { observerForTopic.forEach(function (observer) { observer.error('Disconnected, error code: ' + errorCode); observer.complete(); }); }); } this._topicObservers = new Map(); }; MqttOverWSProvider.prototype.newClient = function (_a) { var url = _a.url, clientId = _a.clientId; return __awaiter(this, void 0, void 0, function () { var client; var _this = this; return __generator(this, function (_b) { switch (_b.label) { case 0: logger.debug('Creating new MQTT client', clientId); client = new __WEBPACK_IMPORTED_MODULE_0_paho_mqtt__["Client"](url, clientId); // client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2)); client.onMessageArrived = function (_a) { var topic = _a.destinationName, msg = _a.payloadString; _this._onMessage(topic, msg); }; client.onConnectionLost = function (_a) { var errorCode = _a.errorCode, args = __rest(_a, ["errorCode"]); _this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args)); }; return [4 /*yield*/, new Promise(function (resolve, reject) { client.connect({ useSSL: _this.isSSLEnabled, mqttVersion: 3, onSuccess: function () { return resolve(client); }, onFailure: reject, }); })]; case 1: _b.sent(); return [2 /*return*/, client]; } }); }); }; MqttOverWSProvider.prototype.connect = function (clientId, options) { if (options === void 0) { options = {}; } return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) { return _this.newClient(__assign(__assign({}, options), { clientId: clientId })); })]; case 1: return [2 /*return*/, _a.sent()]; } }); }); }; MqttOverWSProvider.prototype.disconnect = function (clientId) { return __awaiter(this, void 0, void 0, function () { var client; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })]; case 1: client = _a.sent(); if (client && client.isConnected()) { client.disconnect(); } this.clientsQueue.remove(clientId); return [2 /*return*/]; } }); }); }; MqttOverWSProvider.prototype.publish = function (topics, msg) { return __awaiter(this, void 0, void 0, function () { var targetTopics, message, url, client; return __generator(this, function (_a) { switch (_a.label) { case 0: targetTopics = [].concat(topics); message = JSON.stringify(msg); return [4 /*yield*/, this.endpoint]; case 1: url = _a.sent(); return [4 /*yield*/, this.connect(this.clientId, { url: url })]; case 2: client = _a.sent(); logger.debug('Publishing to topic(s)', targetTopics.join(','), message); targetTopics.forEach(function (topic) { return client.send(topic, message); }); return [2 /*return*/]; } }); }); }; MqttOverWSProvider.prototype._onMessage = function (topic, msg) { try { var matchedTopicObservers_1 = []; this._topicObservers.forEach(function (observerForTopic, observerTopic) { if (mqttTopicMatch(observerTopic, topic)) { matchedTopicObservers_1.push(observerForTopic); } }); var parsedMessage_1 = JSON.parse(msg); if (typeof parsedMessage_1 === 'object') { parsedMessage_1[topicSymbol] = topic; } matchedTopicObservers_1.forEach(function (observersForTopic) { observersForTopic.forEach(function (observer) { return observer.next(parsedMessage_1); }); }); } catch (error) { logger.warn('Error handling message', error, msg); } }; MqttOverWSProvider.prototype.subscribe = function (topics, options) { var _this = this; if (options === void 0) { options = {}; } var targetTopics = [].concat(topics); logger.debug('Subscribing to topic(s)', targetTopics.join(',')); return new __WEBPACK_IMPORTED_MODULE_2_zen_observable__(function (observer) { targetTopics.forEach(function (topic) { var observersForTopic = _this._topicObservers.get(topic); if (!observersForTopic) { observersForTopic = new Set(); _this._topicObservers.set(topic, observersForTopic); } observersForTopic.add(observer); }); // @ts-ignore var client; var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a; var observersForClientId = _this._clientIdObservers.get(clientId); if (!observersForClientId) { observersForClientId = new Set(); } observersForClientId.add(observer); _this._clientIdObservers.set(clientId, observersForClientId); (function () { return __awaiter(_this, void 0, void 0, function () { var _a, url, _b, e_1; return __generator(this, function (_c) { switch (_c.label) { case 0: _a = options.url; if (!(_a === void 0)) return [3 /*break*/, 2]; return [4 /*yield*/, this.endpoint]; case 1: _b = _c.sent(); return [3 /*break*/, 3]; case 2: _b = _a; _c.label = 3; case 3: url = _b; _c.label = 4; case 4: _c.trys.push([4, 6, , 7]); return [4 /*yield*/, this.connect(clientId, { url: url })]; case 5: client = _c.sent(); targetTopics.forEach(function (topic) { client.subscribe(topic); }); return [3 /*break*/, 7]; case 6: e_1 = _c.sent(); observer.error(e_1); return [3 /*break*/, 7]; case 7: return [2 /*return*/]; } }); }); })(); return function () { logger.debug('Unsubscribing from topic(s)', targetTopics.join(',')); if (client) { _this._clientIdObservers.get(clientId).delete(observer); targetTopics.forEach(function (topic) { if (client.isConnected()) { client.unsubscribe(topic); } var observersForTopic = _this._topicObservers.get(topic) || new Set(); observersForTopic.forEach(function (observer) { return observer.complete(); }); observersForTopic.clear(); }); if (_this._clientIdObservers.get(clientId).size === 0) { _this.disconnect(clientId); _this._clientIdObservers.delete(clientId); } } return null; }; }); }; return MqttOverWSProvider; }(__WEBPACK_IMPORTED_MODULE_3__PubSubProvider__["a" /* AbstractPubSubProvider */])); //# sourceMappingURL=MqttOverWSProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js": /*!******************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js ***! \******************************************************************************/ /*! exports provided: AbstractPubSubProvider */ /*! exports used: AbstractPubSubProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractPubSubProvider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AbstractPubSubProvider'); var AbstractPubSubProvider = /** @class */ (function () { function AbstractPubSubProvider(options) { if (options === void 0) { options = {}; } this._config = options; } AbstractPubSubProvider.prototype.configure = function (config) { if (config === void 0) { config = {}; } this._config = __assign(__assign({}, config), this._config); logger.debug("configure " + this.getProviderName(), this._config); return this.options; }; AbstractPubSubProvider.prototype.getCategory = function () { return 'PubSub'; }; Object.defineProperty(AbstractPubSubProvider.prototype, "options", { get: function () { return __assign({}, this._config); }, enumerable: true, configurable: true }); return AbstractPubSubProvider; }()); //# sourceMappingURL=PubSubProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/index.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/Providers/index.js ***! \*********************************************************************/ /*! exports provided: AWSIoTProvider, mqttTopicMatch, MqttOverWSProvider, AbstractPubSubProvider, AWSAppSyncProvider */ /*! exports used: AWSAppSyncProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__PubSubProvider__ = __webpack_require__(/*! ./PubSubProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js"); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AWSAppSyncProvider__ = __webpack_require__(/*! ./AWSAppSyncProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__AWSAppSyncProvider__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__AWSIotProvider__ = __webpack_require__(/*! ./AWSIotProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSIotProvider.js"); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MqttOverWSProvider__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js"); /* unused harmony namespace reexport */ /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js": /*!************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js ***! \************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_zen_observable__ = __webpack_require__(/*! zen-observable */ "./node_modules/zen-observable/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_zen_observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_zen_observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core_lib_constants__ = __webpack_require__(/*! @aws-amplify/core/lib/constants */ "./node_modules/@aws-amplify/core/lib/constants.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core_lib_constants___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__aws_amplify_core_lib_constants__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Providers__ = __webpack_require__(/*! ./Providers */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/index.js"); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ // import '../Common/Polyfills'; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('PubSub'); var PubSub = /** @class */ (function () { /** * Initialize PubSub with AWS configurations * * @param {PubSubOptions} options - Configuration object for PubSub */ function PubSub(options) { this._options = options; logger.debug('PubSub Options', this._options); this._pluggables = []; this.subscribe = this.subscribe.bind(this); } Object.defineProperty(PubSub.prototype, "awsAppSyncProvider", { /** * Lazy instantiate awsAppSyncProvider when it is required by the API category */ get: function () { if (!this._awsAppSyncProvider) { this._awsAppSyncProvider = new __WEBPACK_IMPORTED_MODULE_3__Providers__["a" /* AWSAppSyncProvider */](this._options); } return this._awsAppSyncProvider; }, enumerable: true, configurable: true }); PubSub.prototype.getModuleName = function () { return 'PubSub'; }; /** * Configure PubSub part with configurations * * @param {PubSubOptions} config - Configuration for PubSub * @return {Object} - The current configuration */ PubSub.prototype.configure = function (options) { var _this = this; var opt = options ? options.PubSub || options : {}; logger.debug('configure PubSub', { opt: opt }); this._options = Object.assign({}, this._options, opt); this._pluggables.map(function (pluggable) { return pluggable.configure(_this._options); }); return this._options; }; /** * add plugin into Analytics category * @param {Object} pluggable - an instance of the plugin */ PubSub.prototype.addPluggable = function (pluggable) { return __awaiter(this, void 0, void 0, function () { var config; return __generator(this, function (_a) { if (pluggable && pluggable.getCategory() === 'PubSub') { this._pluggables.push(pluggable); config = pluggable.configure(this._options); return [2 /*return*/, config]; } return [2 /*return*/]; }); }); }; PubSub.prototype.getProviderByName = function (providerName) { if (providerName === __WEBPACK_IMPORTED_MODULE_2__aws_amplify_core_lib_constants__["INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER"]) { return this.awsAppSyncProvider; } return this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; }); }; PubSub.prototype.getProviders = function (options) { if (options === void 0) { options = {}; } var providerName = options.provider; if (!providerName) { return this._pluggables; } var provider = this.getProviderByName(providerName); if (!provider) { throw new Error("Could not find provider named " + providerName); } return [provider]; }; PubSub.prototype.publish = function (topics, msg, options) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, Promise.all(this.getProviders(options).map(function (provider) { return provider.publish(topics, msg, options); }))]; }); }); }; PubSub.prototype.subscribe = function (topics, options) { logger.debug('subscribe options', options); var providers = this.getProviders(options); return new __WEBPACK_IMPORTED_MODULE_0_zen_observable__(function (observer) { var observables = providers.map(function (provider) { return ({ provider: provider, observable: provider.subscribe(topics, options), }); }); var subscriptions = observables.map(function (_a) { var provider = _a.provider, observable = _a.observable; return observable.subscribe({ start: console.error, next: function (value) { return observer.next({ provider: provider, value: value }); }, error: function (error) { return observer.error({ provider: provider, error: error }); }, }); }); return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); }; }); }; return PubSub; }()); /* harmony default export */ __webpack_exports__["a"] = (PubSub); //# sourceMappingURL=PubSub.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/lib-esm/index.js": /*!***********************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/lib-esm/index.js ***! \***********************************************************/ /*! exports provided: default, PubSubClass, AWSIoTProvider */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__PubSub__ = __webpack_require__(/*! ./PubSub */ "./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Providers_AWSIotProvider__ = __webpack_require__(/*! ./Providers/AWSIotProvider */ "./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSIotProvider.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWSIoTProvider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers_AWSIotProvider__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PubSubClass", function() { return __WEBPACK_IMPORTED_MODULE_0__PubSub__["a"]; }); /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('PubSub'); var _instance = null; if (!_instance) { logger.debug('Create PubSub Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__PubSub__["a" /* default */](null); } var PubSub = _instance; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["default"].register(PubSub); /* harmony default export */ __webpack_exports__["default"] = (PubSub); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js": /*!*********************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! exports used: v4 */ /***/ (function(module, exports, __webpack_require__) { var v1 = __webpack_require__(/*! ./v1 */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js"); var v4 = __webpack_require__(/*! ./v4 */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js"); var uuid = v4; uuid.v1 = v1; uuid.v4 = v4; module.exports = uuid; /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js": /*!*******************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js ***! \*******************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ var byteToHex = []; for (var i = 0; i < 256; ++i) { byteToHex[i] = (i + 0x100).toString(16).substr(1); } function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 return ([ bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]] ]).join(''); } module.exports = bytesToUuid; /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js": /*!*******************************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js ***! \*******************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via // feature-detection // getRandomValues needs to be invoked in a context where "this" is a Crypto // implementation. Also, find the complete implementation of crypto on IE11. var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); if (getRandomValues) { // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef module.exports = function whatwgRNG() { getRandomValues(rnds8); return rnds8; }; } else { // Math.random()-based (RNG) // // If all else fails, use Math.random(). It's fast, but is of unspecified // quality. var rnds = new Array(16); module.exports = function mathRNG() { for (var i = 0, r; i < 16; i++) { if ((i & 0x03) === 0) r = Math.random() * 0x100000000; rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; } return rnds; }; } /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js"); // **`v1()` - Generate time-based UUID** // // Inspired by https://github.com/LiosK/UUID.js // and http://docs.python.org/library/uuid.html var _nodeId; var _clockseq; // Previous uuid creation time var _lastMSecs = 0; var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details function v1(options, buf, offset) { var i = buf && offset || 0; var b = buf || []; options = options || {}; var node = options.node || _nodeId; var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not // specified. We do this lazily to minimize issues related to insufficient // system entropy. See #189 if (node == null || clockseq == null) { var seedBytes = rng(); if (node == null) { // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) node = _nodeId = [ seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] ]; } if (clockseq == null) { // Per 4.2.2, randomize (14 bit) clockseq clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; } } // UUID timestamps are 100 nano-second units since the Gregorian epoch, // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock // cycle to simulate higher resolution clock var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; // Per 4.2.1.2, Bump clockseq on clock regression if (dt < 0 && options.clockseq === undefined) { clockseq = clockseq + 1 & 0x3fff; } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new // time interval if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { nsecs = 0; } // Per 4.2.1.2 Throw error if too many uuids are requested if (nsecs >= 10000) { throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); } _lastMSecs = msecs; _lastNSecs = nsecs; _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch msecs += 12219292800000; // `time_low` var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; b[i++] = tl >>> 24 & 0xff; b[i++] = tl >>> 16 & 0xff; b[i++] = tl >>> 8 & 0xff; b[i++] = tl & 0xff; // `time_mid` var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; b[i++] = tmh >>> 8 & 0xff; b[i++] = tmh & 0xff; // `time_high_and_version` b[i++] = tmh >>> 24 & 0xf | 0x10; // include version b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` b[i++] = clockseq & 0xff; // `node` for (var n = 0; n < 6; ++n) { b[i + n] = node[n]; } return buf ? buf : bytesToUuid(b); } module.exports = v1; /***/ }), /***/ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js"); function v4(options, buf, offset) { var i = buf && offset || 0; if (typeof(options) == 'string') { buf = options === 'binary' ? new Array(16) : null; options = null; } options = options || {}; var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided if (buf) { for (var ii = 0; ii < 16; ++ii) { buf[i + ii] = rnds[ii]; } } return buf || bytesToUuid(rnds); } module.exports = v4; /***/ }), /***/ "./node_modules/@aws-amplify/storage/lib-esm/Providers/AWSS3Provider.js": /*!******************************************************************************!*\ !*** ./node_modules/@aws-amplify/storage/lib-esm/Providers/AWSS3Provider.js ***! \******************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_s3__ = __webpack_require__(/*! aws-sdk/clients/s3 */ "./node_modules/aws-sdk/clients/s3.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_s3___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_s3__); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('AWSS3Provider'); var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function' ? Symbol.for('amplify_default') : '@@amplify_default'); var dispatchStorageEvent = function (track, event, attrs, metrics, message) { if (track) { __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Hub"].dispatch('storage', { event: event, data: { attrs: attrs, metrics: metrics }, message: message, }, 'Storage', AMPLIFY_SYMBOL); } }; var localTestingStorageEndpoint = 'http://localhost:20005'; /** * Provide storage methods to use AWS S3 */ var AWSS3Provider = /** @class */ (function () { /** * Initialize Storage with AWS configurations * @param {Object} config - Configuration object for storage */ function AWSS3Provider(config) { this._config = config ? config : {}; logger.debug('Storage Options', this._config); } /** * get the category of the plugin */ AWSS3Provider.prototype.getCategory = function () { return AWSS3Provider.CATEGORY; }; /** * get provider name of the plugin */ AWSS3Provider.prototype.getProviderName = function () { return AWSS3Provider.PROVIDER_NAME; }; /** * Configure Storage part with aws configuration * @param {Object} config - Configuration of the Storage * @return {Object} - Current configuration */ AWSS3Provider.prototype.configure = function (config) { logger.debug('configure Storage', config); if (!config) return this._config; var amplifyConfig = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Parser"].parseMobilehubConfig(config); this._config = Object.assign({}, this._config, amplifyConfig.Storage); if (!this._config.bucket) { logger.debug('Do not have bucket yet'); } return this._config; }; /** * Get a presigned URL of the file or the object data when download:true * * @param {String} key - key of the object * @param {Object} [config] - { level : private|protected|public, download: true|false } * @return - A promise resolves to Amazon S3 presigned URL on success */ AWSS3Provider.prototype.get = function (key, config) { return __awaiter(this, void 0, void 0, function () { var credentialsOK, opt, bucket, download, track, expires, prefix, final_key, s3, params; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._ensureCredentials()]; case 1: credentialsOK = _a.sent(); if (!credentialsOK) { return [2 /*return*/, Promise.reject('No credentials')]; } opt = Object.assign({}, this._config, config); bucket = opt.bucket, download = opt.download, track = opt.track, expires = opt.expires; prefix = this._prefix(opt); final_key = prefix + key; s3 = this._createS3(opt); logger.debug('get ' + key + ' from ' + final_key); params = { Bucket: bucket, Key: final_key, }; if (download === true) { return [2 /*return*/, new Promise(function (res, rej) { s3.getObject(params, function (err, data) { if (err) { dispatchStorageEvent(track, 'download', { method: 'get', result: 'failed', }, null, "Download failed with " + err.message); rej(err); } else { dispatchStorageEvent(track, 'download', { method: 'get', result: 'success' }, { fileSize: Number(data.Body['length']) }, "Download success for " + key); res(data); } }); })]; } if (expires) { params.Expires = expires; } return [2 /*return*/, new Promise(function (res, rej) { try { var url = s3.getSignedUrl('getObject', params); dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, "Signed URL: " + url); res(url); } catch (e) { logger.warn('get signed url error', e); dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'failed' }, null, "Could not get a signed URL for " + key); rej(e); } })]; } }); }); }; /** * Put a file in S3 bucket specified to configure method * @param {String} key - key of the object * @param {Object} object - File to be put in Amazon S3 bucket * @param {Object} [config] - { level : private|protected|public, contentType: MIME Types, * progressCallback: function } * @return - promise resolves to object on success */ AWSS3Provider.prototype.put = function (key, object, config) { return __awaiter(this, void 0, void 0, function () { var credentialsOK, opt, bucket, track, progressCallback, contentType, contentDisposition, cacheControl, expires, metadata, tagging, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, type, prefix, final_key, s3, params, upload, data, e_1; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._ensureCredentials()]; case 1: credentialsOK = _a.sent(); if (!credentialsOK) { return [2 /*return*/, Promise.reject('No credentials')]; } opt = Object.assign({}, this._config, config); bucket = opt.bucket, track = opt.track, progressCallback = opt.progressCallback; contentType = opt.contentType, contentDisposition = opt.contentDisposition, cacheControl = opt.cacheControl, expires = opt.expires, metadata = opt.metadata, tagging = opt.tagging; serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId; type = contentType ? contentType : 'binary/octet-stream'; prefix = this._prefix(opt); final_key = prefix + key; s3 = this._createS3(opt); logger.debug('put ' + key + ' to ' + final_key); params = { Bucket: bucket, Key: final_key, Body: object, ContentType: type, }; if (cacheControl) { params.CacheControl = cacheControl; } if (contentDisposition) { params.ContentDisposition = contentDisposition; } if (expires) { params.Expires = expires; } if (metadata) { params.Metadata = metadata; } if (tagging) { params.Tagging = tagging; } if (serverSideEncryption) { params.ServerSideEncryption = serverSideEncryption; if (SSECustomerAlgorithm) { params.SSECustomerAlgorithm = SSECustomerAlgorithm; } if (SSECustomerKey) { params.SSECustomerKey = SSECustomerKey; } if (SSECustomerKeyMD5) { params.SSECustomerKeyMD5 = SSECustomerKeyMD5; } if (SSEKMSKeyId) { params.SSEKMSKeyId = SSEKMSKeyId; } } _a.label = 2; case 2: _a.trys.push([2, 4, , 5]); upload = s3.upload(params).on('httpUploadProgress', function (progress) { if (progressCallback) { if (typeof progressCallback === 'function') { progressCallback(progress); } else { logger.warn('progressCallback should be a function, not a ' + typeof progressCallback); } } }); return [4 /*yield*/, upload.promise()]; case 3: data = _a.sent(); logger.debug('upload result', data); dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, "Upload success for " + key); return [2 /*return*/, { key: data.Key.substr(prefix.length), }]; case 4: e_1 = _a.sent(); logger.warn('error uploading', e_1); dispatchStorageEvent(track, 'upload', { method: 'put', result: 'failed' }, null, "Error uploading " + key); throw e_1; case 5: return [2 /*return*/]; } }); }); }; /** * Remove the object for specified key * @param {String} key - key of the object * @param {Object} [config] - { level : private|protected|public } * @return - Promise resolves upon successful removal of the object */ AWSS3Provider.prototype.remove = function (key, config) { return __awaiter(this, void 0, void 0, function () { var credentialsOK, opt, bucket, track, prefix, final_key, s3, params; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._ensureCredentials()]; case 1: credentialsOK = _a.sent(); if (!credentialsOK) { return [2 /*return*/, Promise.reject('No credentials')]; } opt = Object.assign({}, this._config, config); bucket = opt.bucket, track = opt.track; prefix = this._prefix(opt); final_key = prefix + key; s3 = this._createS3(opt); logger.debug('remove ' + key + ' from ' + final_key); params = { Bucket: bucket, Key: final_key, }; return [2 /*return*/, new Promise(function (res, rej) { s3.deleteObject(params, function (err, data) { if (err) { dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'failed' }, null, "Deletion of " + key + " failed with " + err); rej(err); } else { dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'success' }, null, "Deleted " + key + " successfully"); res(data); } }); })]; } }); }); }; /** * List bucket objects relative to the level and prefix specified * @param {String} path - the path that contains objects * @param {Object} [config] - { level : private|protected|public } * @return - Promise resolves to list of keys for all objects in path */ AWSS3Provider.prototype.list = function (path, config) { return __awaiter(this, void 0, void 0, function () { var credentialsOK, opt, bucket, track, prefix, final_path, s3, params; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._ensureCredentials()]; case 1: credentialsOK = _a.sent(); if (!credentialsOK) { return [2 /*return*/, Promise.reject('No credentials')]; } opt = Object.assign({}, this._config, config); bucket = opt.bucket, track = opt.track; prefix = this._prefix(opt); final_path = prefix + path; s3 = this._createS3(opt); logger.debug('list ' + path + ' from ' + final_path); params = { Bucket: bucket, Prefix: final_path, }; return [2 /*return*/, new Promise(function (res, rej) { s3.listObjects(params, function (err, data) { if (err) { logger.warn('list error', err); dispatchStorageEvent(track, 'list', { method: 'list', result: 'failed' }, null, "Listing items failed: " + err.message); rej(err); } else { var list = data.Contents.map(function (item) { return { key: item.Key.substr(prefix.length), eTag: item.ETag, lastModified: item.LastModified, size: item.Size, }; }); dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, list.length + " items returned from list operation"); logger.debug('list', list); res(list); } }); })]; } }); }); }; /** * @private */ AWSS3Provider.prototype._ensureCredentials = function () { var _this = this; return __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].get() .then(function (credentials) { if (!credentials) return false; var cred = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Credentials"].shear(credentials); logger.debug('set credentials for storage', cred); _this._config.credentials = cred; return true; }) .catch(function (err) { logger.warn('ensure credentials error', err); return false; }); }; /** * @private */ AWSS3Provider.prototype._prefix = function (config) { var credentials = config.credentials, level = config.level; var customPrefix = config.customPrefix || {}; var identityId = config.identityId || credentials.identityId; var privatePath = (customPrefix.private !== undefined ? customPrefix.private : 'private/') + identityId + '/'; var protectedPath = (customPrefix.protected !== undefined ? customPrefix.protected : 'protected/') + identityId + '/'; var publicPath = customPrefix.public !== undefined ? customPrefix.public : 'public/'; switch (level) { case 'private': return privatePath; case 'protected': return protectedPath; default: return publicPath; } }; /** * @private */ AWSS3Provider.prototype._createS3 = function (config) { var bucket = config.bucket, region = config.region, credentials = config.credentials, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting; var localTestingConfig = {}; if (dangerouslyConnectToHttpEndpointForTesting) { localTestingConfig = { endpoint: localTestingStorageEndpoint, s3BucketEndpoint: true, s3ForcePathStyle: true, }; } return new __WEBPACK_IMPORTED_MODULE_1_aws_sdk_clients_s3__(__assign({ apiVersion: '2006-03-01', params: { Bucket: bucket }, signatureVersion: 'v4', region: region, credentials: credentials }, localTestingConfig)); }; AWSS3Provider.CATEGORY = 'Storage'; AWSS3Provider.PROVIDER_NAME = 'AWSS3'; return AWSS3Provider; }()); /* harmony default export */ __webpack_exports__["a"] = (AWSS3Provider); //# sourceMappingURL=AWSS3Provider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/storage/lib-esm/Providers/index.js": /*!**********************************************************************!*\ !*** ./node_modules/@aws-amplify/storage/lib-esm/Providers/index.js ***! \**********************************************************************/ /*! exports provided: AWSS3Provider */ /*! exports used: AWSS3Provider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AWSS3Provider__ = __webpack_require__(/*! ./AWSS3Provider */ "./node_modules/@aws-amplify/storage/lib-esm/Providers/AWSS3Provider.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__AWSS3Provider__["a"]; }); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/storage/lib-esm/Storage.js": /*!**************************************************************!*\ !*** ./node_modules/@aws-amplify/storage/lib-esm/Storage.js ***! \**************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Providers_AWSS3Provider__ = __webpack_require__(/*! ./Providers/AWSS3Provider */ "./node_modules/@aws-amplify/storage/lib-esm/Providers/AWSS3Provider.js"); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var logger = new __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["ConsoleLogger"]('StorageClass'); var DEFAULT_PROVIDER = 'AWSS3'; /** * Provide storage methods to use AWS S3 */ var StorageClass = /** @class */ (function () { /** * Initialize Storage * @param {Object} config - Configuration object for storage */ function StorageClass() { this._config = {}; this._pluggables = []; logger.debug('Storage Options', this._config); this.get = this.get.bind(this); this.put = this.put.bind(this); this.remove = this.remove.bind(this); this.list = this.list.bind(this); } StorageClass.prototype.getModuleName = function () { return 'Storage'; }; /** * add plugin into Storage category * @param {Object} pluggable - an instance of the plugin */ StorageClass.prototype.addPluggable = function (pluggable) { if (pluggable && pluggable.getCategory() === 'Storage') { this._pluggables.push(pluggable); var config = {}; config = pluggable.configure(this._config[pluggable.getProviderName()]); return config; } }; /** * Get the plugin object * @param providerName - the name of the plugin */ StorageClass.prototype.getPluggable = function (providerName) { var pluggable = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; }); if (pluggable === undefined) { logger.debug('No plugin found with providerName', providerName); return null; } else return pluggable; }; /** * Remove the plugin object * @param providerName - the name of the plugin */ StorageClass.prototype.removePluggable = function (providerName) { this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; }); return; }; /** * Configure Storage * @param {Object} config - Configuration object for storage * @return {Object} - Current configuration */ StorageClass.prototype.configure = function (config) { var _this = this; logger.debug('configure Storage'); if (!config) return this._config; var amplifyConfig = __WEBPACK_IMPORTED_MODULE_0__aws_amplify_core__["Parser"].parseMobilehubConfig(config); var storageKeysFromConfig = Object.keys(amplifyConfig.Storage); var storageArrayKeys = [ 'bucket', 'region', 'level', 'track', 'customPrefix', 'serverSideEncryption', 'SSECustomerAlgorithm', 'SSECustomerKey', 'SSECustomerKeyMD5', 'SSEKMSKeyId', ]; var isInStorageArrayKeys = function (k) { return storageArrayKeys.some(function (x) { return x === k; }); }; var checkConfigKeysFromArray = function (k) { return k.find(function (k) { return isInStorageArrayKeys(k); }); }; if (storageKeysFromConfig && checkConfigKeysFromArray(storageKeysFromConfig) && !amplifyConfig.Storage[DEFAULT_PROVIDER]) { amplifyConfig.Storage[DEFAULT_PROVIDER] = {}; } Object.entries(amplifyConfig.Storage).map(function (_a) { var key = _a[0], value = _a[1]; if (key && isInStorageArrayKeys(key) && value !== undefined) { amplifyConfig.Storage[DEFAULT_PROVIDER][key] = value; delete amplifyConfig.Storage[key]; } }); // only update new values for each provider Object.keys(amplifyConfig.Storage).forEach(function (providerName) { if (typeof amplifyConfig.Storage[providerName] !== 'string') { _this._config[providerName] = __assign(__assign({}, _this._config[providerName]), amplifyConfig.Storage[providerName]); } }); this._pluggables.forEach(function (pluggable) { pluggable.configure(_this._config[pluggable.getProviderName()]); }); if (this._pluggables.length === 0) { this.addPluggable(new __WEBPACK_IMPORTED_MODULE_1__Providers_AWSS3Provider__["a" /* default */]()); } return this._config; }; /** * Get a presigned URL of the file or the object data when download:true * * @param {String} key - key of the object * @param {Object} [config] - { level : private|protected|public, download: true|false } * @return - A promise resolves to either a presigned url or the object */ StorageClass.prototype.get = function (key, config) { return __awaiter(this, void 0, void 0, function () { var _a, provider, prov; return __generator(this, function (_b) { _a = (config || {}).provider, provider = _a === void 0 ? DEFAULT_PROVIDER : _a; prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; }); if (prov === undefined) { logger.debug('No plugin found with providerName', provider); Promise.reject('No plugin found in Storage for the provider'); } return [2 /*return*/, prov.get(key, config)]; }); }); }; /** * Put a file in storage bucket specified to configure method * @param {String} key - key of the object * @param {Object} object - File to be put in bucket * @param {Object} [config] - { level : private|protected|public, contentType: MIME Types, * progressCallback: function } * @return - promise resolves to object on success */ StorageClass.prototype.put = function (key, object, config) { return __awaiter(this, void 0, void 0, function () { var _a, provider, prov; return __generator(this, function (_b) { _a = (config || {}).provider, provider = _a === void 0 ? DEFAULT_PROVIDER : _a; prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; }); if (prov === undefined) { logger.debug('No plugin found with providerName', provider); Promise.reject('No plugin found in Storage for the provider'); } return [2 /*return*/, prov.put(key, object, config)]; }); }); }; /** * Remove the object for specified key * @param {String} key - key of the object * @param {Object} [config] - { level : private|protected|public } * @return - Promise resolves upon successful removal of the object */ StorageClass.prototype.remove = function (key, config) { return __awaiter(this, void 0, void 0, function () { var _a, provider, prov; return __generator(this, function (_b) { _a = (config || {}).provider, provider = _a === void 0 ? DEFAULT_PROVIDER : _a; prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; }); if (prov === undefined) { logger.debug('No plugin found with providerName', provider); Promise.reject('No plugin found in Storage for the provider'); } return [2 /*return*/, prov.remove(key, config)]; }); }); }; /** * List bucket objects relative to the level and prefix specified * @param {String} path - the path that contains objects * @param {Object} [config] - { level : private|protected|public } * @return - Promise resolves to list of keys for all objects in path */ StorageClass.prototype.list = function (path, config) { return __awaiter(this, void 0, void 0, function () { var _a, provider, prov; return __generator(this, function (_b) { _a = (config || {}).provider, provider = _a === void 0 ? DEFAULT_PROVIDER : _a; prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; }); if (prov === undefined) { logger.debug('No plugin found with providerName', provider); Promise.reject('No plugin found in Storage for the provider'); } return [2 /*return*/, prov.list(path, config)]; }); }); }; return StorageClass; }()); /* harmony default export */ __webpack_exports__["a"] = (StorageClass); //# sourceMappingURL=Storage.js.map /***/ }), /***/ "./node_modules/@aws-amplify/storage/lib-esm/index.js": /*!************************************************************!*\ !*** ./node_modules/@aws-amplify/storage/lib-esm/index.js ***! \************************************************************/ /*! exports provided: default, StorageClass, AWSS3Provider */ /*! all exports used */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Storage__ = __webpack_require__(/*! ./Storage */ "./node_modules/@aws-amplify/storage/lib-esm/Storage.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StorageClass", function() { return __WEBPACK_IMPORTED_MODULE_0__Storage__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Providers__ = __webpack_require__(/*! ./Providers */ "./node_modules/@aws-amplify/storage/lib-esm/Providers/index.js"); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "AWSS3Provider", function() { return __WEBPACK_IMPORTED_MODULE_2__Providers__["a"]; }); /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var logger = new __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["ConsoleLogger"]('Storage'); var _instance = null; if (!_instance) { logger.debug('Create Storage Instance'); _instance = new __WEBPACK_IMPORTED_MODULE_0__Storage__["a" /* default */](); _instance.vault = new __WEBPACK_IMPORTED_MODULE_0__Storage__["a" /* default */](); var old_configure_1 = _instance.configure; _instance.configure = function (options) { logger.debug('storage configure called'); var vaultConfig = __assign({}, old_configure_1.call(_instance, options)); // set level private for each provider for the vault Object.keys(vaultConfig).forEach(function (providerName) { if (typeof vaultConfig[providerName] !== 'string') { vaultConfig[providerName] = __assign(__assign({}, vaultConfig[providerName]), { level: 'private' }); } }); logger.debug('storage vault configure called'); _instance.vault.configure(vaultConfig); }; } var Storage = _instance; __WEBPACK_IMPORTED_MODULE_1__aws_amplify_core__["default"].register(Storage); /* harmony default export */ __webpack_exports__["default"] = (Storage); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@aws-amplify/ui/dist/aws-amplify-ui.js": /*!*************************************************************!*\ !*** ./node_modules/@aws-amplify/ui/dist/aws-amplify-ui.js ***! \*************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { !function(t,_){ true?module.exports=_():"function"==typeof define&&define.amd?define("aws_amplify_ui",[],_):"object"==typeof exports?exports.aws_amplify_ui=_():t.aws_amplify_ui=_()}(this,(function(){return function(t){var _={};function n(o){if(_[o])return _[o].exports;var e=_[o]={i:o,l:!1,exports:{}};return t[o].call(e.exports,e,e.exports,n),e.l=!0,e.exports}return n.m=t,n.c=_,n.d=function(t,_,o){n.o(t,_)||Object.defineProperty(t,_,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,_){if(1&_&&(t=n(t)),8&_)return t;if(4&_&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&_&&"string"!=typeof t)for(var e in t)n.d(o,e,function(_){return t[_]}.bind(null,e));return o},n.n=function(t){var _=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(_,"a",_),_},n.o=function(t,_){return Object.prototype.hasOwnProperty.call(t,_)},n.p="",n(n.s=0)}([function(t,_,n){"use strict";function o(t){for(var n in t)_.hasOwnProperty(n)||(_[n]=t[n])}Object.defineProperty(_,"__esModule",{value:!0}),o(n(1)),o(n(2)),o(n(3)),o(n(4)),o(n(5)),o(n(6)),o(n(7)),o(n(8)),o(n(9)),o(n(10)),o(n(11)),o(n(12)),o(n(13))},function(t,_,n){t.exports={a:"Anchor__a___1_Iz8"}},function(t,_,n){t.exports={button:"Button__button___vS7Mv",signInButton:"Button__signInButton___3bUH-",googleSignInButton:"Button__googleSignInButton___1YiCu",signInButtonIcon:"Button__signInButtonIcon___ihN75",auth0SignInButton:"Button__auth0SignInButton___znnCj",facebookSignInButton:"Button__facebookSignInButton___34Txh",amazonSignInButton:"Button__amazonSignInButton___2EMtl",oAuthSignInButton:"Button__oAuthSignInButton___3UGOl",signInButtonContent:"Button__signInButtonContent___xqTXJ"}},function(t,_,n){t.exports={formContainer:"Form__formContainer___1GA3x",formSection:"Form__formSection___1PPvW",formField:"Form__formField___38Ikl",formRow:"Form__formRow___2mwRs"}},function(t,_,n){t.exports={hint:"Hint__hint___2XngB"}},function(t,_,n){t.exports={input:"Input__input___3e_bf",inputLabel:"Input__inputLabel___3VF0S",label:"Input__label___23sO8",radio:"Input__radio___2hllK"}},function(t,_,n){t.exports={navBar:"Nav__navBar___xtCFA",navRight:"Nav__navRight___1QG2J",nav:"Nav__nav___2Dx2Y",navItem:"Nav__navItem___1LtFQ"}},function(t,_,n){t.exports={photoPickerButton:"PhotoPicker__photoPickerButton___2XdVn",photoPlaceholder:"PhotoPicker__photoPlaceholder___2JXO4",photoPlaceholderIcon:"PhotoPicker__photoPlaceholderIcon___3Et71"}},function(t,_,n){t.exports={container:"Section__container___3YYTG",actionRow:"Section__actionRow___2LWSU",sectionHeader:"Section__sectionHeader___2djyg",sectionHeaderHint:"Section__sectionHeaderHint___3Wxdc",sectionBody:"Section__sectionBody___ihqqd",sectionHeaderContent:"Section__sectionHeaderContent___1UCqa",sectionFooter:"Section__sectionFooter___1T54C",sectionFooterPrimaryContent:"Section__sectionFooterPrimaryContent___2r9ZX",sectionFooterSecondaryContent:"Section__sectionFooterSecondaryContent___Nj41Q"}},function(t,_,n){t.exports={selectInput:"SelectInput__selectInput___3efO4"}},function(t,_,n){t.exports={strike:"Strike__strike___1XV1b",strikeContent:"Strike__strikeContent___10gLb"}},function(t,_,n){t.exports={toast:"Toast__toast___XXr3v",toastClose:"Toast__toastClose___18lU4"}},function(t,_,n){t.exports={totpQrcode:"Totp__totpQrcode___1crLx"}},function(t,_,n){t.exports={sumerianSceneContainer:"XR__sumerianSceneContainer___3nVMt",sumerianScene:"XR__sumerianScene___2Tt7-",loadingOverlay:"XR__loadingOverlay___IbqcI",loadingContainer:"XR__loadingContainer___2Itxb",loadingLogo:"XR__loadingLogo___Ub7xQ",loadingSceneName:"XR__loadingSceneName___3__ne",loadingBar:"XR__loadingBar___2vcke",loadingBarFill:"XR__loadingBarFill___3M-D9",sceneErrorText:"XR__sceneErrorText___2y0tp",sceneBar:"XR__sceneBar___2ShrP",sceneName:"XR__sceneName___1ApHr",sceneActions:"XR__sceneActions___7plGs",actionButton:"XR__actionButton___2poIM",tooltip:"XR__tooltip___UYyhn",actionIcon:"XR__actionIcon___2qnd2",autoShowTooltip:"XR__autoShowTooltip___V1QH7"}}])})); //# sourceMappingURL=aws-amplify-ui.js.map /***/ }), /***/ "./node_modules/@aws-amplify/xr/lib/Errors.js": /*!****************************************************!*\ !*** ./node_modules/@aws-amplify/xr/lib/Errors.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var XRError = /** @class */ (function (_super) { __extends(XRError, _super); function XRError() { return _super !== null && _super.apply(this, arguments) || this; } return XRError; }(Error)); exports.XRError = XRError; var XRNoSceneConfiguredError = /** @class */ (function (_super) { __extends(XRNoSceneConfiguredError, _super); function XRNoSceneConfiguredError() { return _super !== null && _super.apply(this, arguments) || this; } return XRNoSceneConfiguredError; }(XRError)); exports.XRNoSceneConfiguredError = XRNoSceneConfiguredError; var XRSceneNotFoundError = /** @class */ (function (_super) { __extends(XRSceneNotFoundError, _super); function XRSceneNotFoundError() { return _super !== null && _super.apply(this, arguments) || this; } return XRSceneNotFoundError; }(XRError)); exports.XRSceneNotFoundError = XRSceneNotFoundError; var XRSceneNotLoadedError = /** @class */ (function (_super) { __extends(XRSceneNotLoadedError, _super); function XRSceneNotLoadedError() { return _super !== null && _super.apply(this, arguments) || this; } return XRSceneNotLoadedError; }(XRError)); exports.XRSceneNotLoadedError = XRSceneNotLoadedError; var XRNoDomElement = /** @class */ (function (_super) { __extends(XRNoDomElement, _super); function XRNoDomElement() { return _super !== null && _super.apply(this, arguments) || this; } return XRNoDomElement; }(XRError)); exports.XRNoDomElement = XRNoDomElement; var XRSceneLoadFailure = /** @class */ (function (_super) { __extends(XRSceneLoadFailure, _super); function XRSceneLoadFailure() { return _super !== null && _super.apply(this, arguments) || this; } return XRSceneLoadFailure; }(XRError)); exports.XRSceneLoadFailure = XRSceneLoadFailure; var XRProviderNotConfigured = /** @class */ (function (_super) { __extends(XRProviderNotConfigured, _super); function XRProviderNotConfigured() { return _super !== null && _super.apply(this, arguments) || this; } return XRProviderNotConfigured; }(XRError)); exports.XRProviderNotConfigured = XRProviderNotConfigured; //# sourceMappingURL=Errors.js.map /***/ }), /***/ "./node_modules/@aws-amplify/xr/lib/Providers/SumerianProvider.js": /*!************************************************************************!*\ !*** ./node_modules/@aws-amplify/xr/lib/Providers/SumerianProvider.js ***! \************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); /* * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var core_1 = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var XRProvider_1 = __webpack_require__(/*! ./XRProvider */ "./node_modules/@aws-amplify/xr/lib/Providers/XRProvider.js"); var Errors_1 = __webpack_require__(/*! ../Errors */ "./node_modules/@aws-amplify/xr/lib/Errors.js"); var SUMERIAN_SERVICE_NAME = 'sumerian'; var logger = new core_1.ConsoleLogger('SumerianProvider'); var SumerianProvider = /** @class */ (function (_super) { __extends(SumerianProvider, _super); function SumerianProvider(options) { if (options === void 0) { options = {}; } return _super.call(this, options) || this; } SumerianProvider.prototype.getProviderName = function () { return 'SumerianProvider'; }; SumerianProvider.prototype.loadScript = function (url) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { var scriptElement = document.createElement('script'); scriptElement.src = url; scriptElement.addEventListener('load', function (event) { resolve(); }); scriptElement.addEventListener('error', function (event) { reject(new Error("Failed to load script: " + url)); }); document.head.appendChild(scriptElement); })]; }); }); }; SumerianProvider.prototype.loadScene = function (sceneName, domElementId, sceneOptions) { return __awaiter(this, void 0, void 0, function () { var errorMsg, errorMsg, element, errorMsg, scene, errorMsg, sceneUrl, sceneId, sceneRegion, errorMsg, awsSDKConfigOverride, fetchOptions, url, credentials, accessInfo, serviceInfo, request, e_1, apiResponse, apiResponseJson, sceneBundleData, sceneBundle, sceneBundleJson, error_1, progressCallback, publishParamOverrides, sceneLoadParams, sceneController, _i, _a, warning; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!sceneName) { errorMsg = "No scene name passed into loadScene"; logger.error(errorMsg); throw (new Errors_1.XRSceneLoadFailure(errorMsg)); } if (!domElementId) { errorMsg = "No dom element id passed into loadScene"; logger.error(errorMsg); throw (new Errors_1.XRNoDomElement(errorMsg)); } element = document.getElementById(domElementId); if (!element) { errorMsg = "DOM element id, " + domElementId + " not found"; logger.error(errorMsg); throw (new Errors_1.XRNoDomElement(errorMsg)); } scene = this.getScene(sceneName); if (!scene.sceneConfig) { errorMsg = "No scene config configured for scene: " + sceneName; logger.error(errorMsg); throw (new Errors_1.XRSceneLoadFailure(errorMsg)); } sceneUrl = scene.sceneConfig.url; sceneId = scene.sceneConfig.sceneId; if (scene.sceneConfig.hasOwnProperty('region')) { // Use the scene region on the Sumerian scene configuration sceneRegion = scene.sceneConfig.region; } else if (this.options.hasOwnProperty('region')) { // Use the scene region on the XR category configuration sceneRegion = this.options.region; } else { errorMsg = "No region configured for scene: " + sceneName; logger.error(errorMsg); throw (new Errors_1.XRSceneLoadFailure(errorMsg)); } awsSDKConfigOverride = { region: sceneRegion, // This is passed to the AWS clients created in // Sumerian's AwsSystem // This helps other services(like Lex and Polly) to track // traffic coming from Sumerian scenes embedded with Amplify customUserAgent: core_1.Constants.userAgent + "-SumerianScene" }; fetchOptions = { headers: { // This sets the AWS user agent string // So the Sumerian service knows this request is // from Amplify "X-Amz-User-Agent": core_1.Constants.userAgent } }; url = sceneUrl; _b.label = 1; case 1: _b.trys.push([1, 3, , 4]); return [4 /*yield*/, core_1.Credentials.get()]; case 2: credentials = _b.sent(); awsSDKConfigOverride["credentials"] = credentials; accessInfo = { secret_key: credentials.secretAccessKey, access_key: credentials.accessKeyId, session_token: credentials.sessionToken, }; serviceInfo = { region: sceneRegion, service: SUMERIAN_SERVICE_NAME }; request = core_1.Signer.sign({ method: "GET", url: sceneUrl }, accessInfo, serviceInfo); fetchOptions.headers = __assign({}, fetchOptions.headers, request.headers); url = request.url; return [3 /*break*/, 4]; case 3: e_1 = _b.sent(); logger.debug('No credentials available, the request will be unsigned'); return [3 /*break*/, 4]; case 4: return [4 /*yield*/, fetch(url, fetchOptions)]; case 5: apiResponse = _b.sent(); return [4 /*yield*/, apiResponse.json()]; case 6: apiResponseJson = _b.sent(); if (apiResponse.status === 403) { if (apiResponseJson.message) { logger.error("Failure to authenticate user: " + apiResponseJson.message); throw (new Errors_1.XRSceneLoadFailure("Failure to authenticate user: " + apiResponseJson.message)); } else { logger.error("Failure to authenticate user"); throw (new Errors_1.XRSceneLoadFailure("Failure to authenticate user")); } } sceneBundleData = apiResponseJson.bundleData[sceneId]; return [4 /*yield*/, fetch(sceneBundleData.url, { headers: sceneBundleData.headers })]; case 7: sceneBundle = _b.sent(); return [4 /*yield*/, sceneBundle.json()]; case 8: sceneBundleJson = _b.sent(); _b.label = 9; case 9: _b.trys.push([9, 11, , 12]); // Load the Sumerian bootstrapper script into the DOM return [4 /*yield*/, this.loadScript(sceneBundleJson[sceneId].bootstrapperUrl)]; case 10: // Load the Sumerian bootstrapper script into the DOM _b.sent(); return [3 /*break*/, 12]; case 11: error_1 = _b.sent(); logger.error(error_1); throw (new Errors_1.XRSceneLoadFailure(error_1)); case 12: progressCallback = sceneOptions.progressCallback ? sceneOptions.progressCallback : undefined; publishParamOverrides = scene.publishParamOverrides ? scene.publishParamOverrides : undefined; sceneLoadParams = { element: element, sceneId: sceneId, sceneBundle: sceneBundleJson, apiResponse: apiResponseJson, progressCallback: progressCallback, publishParamOverrides: publishParamOverrides, awsSDKConfigOverride: awsSDKConfigOverride }; return [4 /*yield*/, window.SumerianBootstrapper.loadScene(sceneLoadParams)]; case 13: sceneController = _b.sent(); scene.sceneController = sceneController; scene.isLoaded = true; // Log scene warnings for (_i = 0, _a = sceneController.sceneLoadWarnings; _i < _a.length; _i++) { warning = _a[_i]; logger.warn("loadScene warning: " + warning); } return [2 /*return*/]; } }); }); }; SumerianProvider.prototype.isSceneLoaded = function (sceneName) { var scene = this.getScene(sceneName); return scene.isLoaded || false; }; SumerianProvider.prototype.getScene = function (sceneName) { if (!this.options.scenes) { var errorMsg = "No scenes were defined in the configuration"; logger.error(errorMsg); throw (new Errors_1.XRNoSceneConfiguredError(errorMsg)); } if (!sceneName) { var errorMsg = "No scene name was passed"; logger.error(errorMsg); throw (new Errors_1.XRSceneNotFoundError(errorMsg)); } if (!this.options.scenes[sceneName]) { var errorMsg = "Scene '" + sceneName + "' is not configured"; logger.error(errorMsg); throw (new Errors_1.XRSceneNotFoundError(errorMsg)); } return this.options.scenes[sceneName]; }; SumerianProvider.prototype.getSceneController = function (sceneName) { if (!this.options.scenes) { var errorMsg = "No scenes were defined in the configuration"; logger.error(errorMsg); throw (new Errors_1.XRNoSceneConfiguredError(errorMsg)); } var scene = this.options.scenes[sceneName]; if (!scene) { var errorMsg = "Scene '" + sceneName + "' is not configured"; logger.error(errorMsg); throw (new Errors_1.XRSceneNotFoundError(errorMsg)); } var sceneController = scene.sceneController; if (!sceneController) { var errorMsg = "Scene controller for '" + sceneName + "' has not been loaded"; logger.error(errorMsg); throw (new Errors_1.XRSceneNotLoadedError(errorMsg)); } return sceneController; }; SumerianProvider.prototype.isVRCapable = function (sceneName) { var sceneController = this.getSceneController(sceneName); return sceneController.vrCapable; }; SumerianProvider.prototype.isVRPresentationActive = function (sceneName) { var sceneController = this.getSceneController(sceneName); return sceneController.vrPresentationActive; }; SumerianProvider.prototype.start = function (sceneName) { var sceneController = this.getSceneController(sceneName); sceneController.start(); }; SumerianProvider.prototype.enterVR = function (sceneName) { var sceneController = this.getSceneController(sceneName); sceneController.enterVR(); }; SumerianProvider.prototype.exitVR = function (sceneName) { var sceneController = this.getSceneController(sceneName); sceneController.exitVR(); }; SumerianProvider.prototype.isMuted = function (sceneName) { var sceneController = this.getSceneController(sceneName); return sceneController.muted; }; SumerianProvider.prototype.setMuted = function (sceneName, muted) { var sceneController = this.getSceneController(sceneName); sceneController.muted = muted; }; SumerianProvider.prototype.onSceneEvent = function (sceneName, eventName, eventHandler) { var sceneController = this.getSceneController(sceneName); sceneController.on(eventName, eventHandler); }; SumerianProvider.prototype.enableAudio = function (sceneName) { var sceneController = this.getSceneController(sceneName); sceneController.enableAudio(); }; return SumerianProvider; }(XRProvider_1.AbstractXRProvider)); exports.SumerianProvider = SumerianProvider; //# sourceMappingURL=SumerianProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/xr/lib/Providers/XRProvider.js": /*!******************************************************************!*\ !*** ./node_modules/@aws-amplify/xr/lib/Providers/XRProvider.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var logger = new core_1.ConsoleLogger('AbstractXRProvider'); var AbstractXRProvider = /** @class */ (function () { function AbstractXRProvider(options) { if (options === void 0) { options = {}; } this._config = options; } AbstractXRProvider.prototype.configure = function (config) { if (config === void 0) { config = {}; } this._config = __assign({}, config, this._config); logger.debug("configure " + this.getProviderName(), this._config); return this.options; }; AbstractXRProvider.prototype.getCategory = function () { return 'XR'; }; Object.defineProperty(AbstractXRProvider.prototype, "options", { get: function () { return __assign({}, this._config); }, enumerable: true, configurable: true }); return AbstractXRProvider; }()); exports.AbstractXRProvider = AbstractXRProvider; //# sourceMappingURL=XRProvider.js.map /***/ }), /***/ "./node_modules/@aws-amplify/xr/lib/XR.js": /*!************************************************!*\ !*** ./node_modules/@aws-amplify/xr/lib/XR.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); /* * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var core_1 = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var SumerianProvider_1 = __webpack_require__(/*! ./Providers/SumerianProvider */ "./node_modules/@aws-amplify/xr/lib/Providers/SumerianProvider.js"); var Errors_1 = __webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/xr/lib/Errors.js"); var logger = new core_1.ConsoleLogger('XR'); var DEFAULT_PROVIDER_NAME = "SumerianProvider"; var XR = /** @class */ (function () { /** * Initialize XR with AWS configurations * * @param {XROptions} options - Configuration object for XR */ function XR(options) { this._options = options; logger.debug('XR Options', this._options); this._defaultProvider = DEFAULT_PROVIDER_NAME; this._pluggables = {}; // Add default provider this.addPluggable(new SumerianProvider_1.SumerianProvider()); } /** * Configure XR part with configurations * * @param {XROptions} config - Configuration for XR * @return {Object} - The current configuration */ XR.prototype.configure = function (options) { var _this = this; var opt = options ? options.XR || options : {}; logger.debug('configure XR', { opt: opt }); this._options = Object.assign({}, this._options, opt); Object.entries(this._pluggables).map(function (_a) { var name = _a[0], provider = _a[1]; if (name === _this._defaultProvider && !opt[_this._defaultProvider]) { provider.configure(_this._options); } else { provider.configure(_this._options[name]); } }); return this._options; }; /** * add plugin into XR category * @param {Object} pluggable - an instance of the plugin */ XR.prototype.addPluggable = function (pluggable) { return __awaiter(this, void 0, void 0, function () { var config; return __generator(this, function (_a) { if (pluggable && pluggable.getCategory() === 'XR') { this._pluggables[pluggable.getProviderName()] = pluggable; config = pluggable.configure(this._options); return [2 /*return*/, config]; } return [2 /*return*/]; }); }); }; XR.prototype.loadScene = function (sceneName, domElementId, sceneOptions, provider) { if (sceneOptions === void 0) { sceneOptions = {}; } if (provider === void 0) { provider = this._defaultProvider; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return [4 /*yield*/, this._pluggables[provider].loadScene(sceneName, domElementId, sceneOptions)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); }; XR.prototype.isSceneLoaded = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].isSceneLoaded(sceneName); }; XR.prototype.getSceneController = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].getSceneController(sceneName); }; XR.prototype.isVRCapable = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].isVRCapable(sceneName); }; XR.prototype.isVRPresentationActive = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].isVRPresentationActive(sceneName); }; XR.prototype.start = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].start(sceneName); }; XR.prototype.enterVR = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].enterVR(sceneName); }; XR.prototype.exitVR = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].exitVR(sceneName); }; XR.prototype.isMuted = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].isMuted(sceneName); }; XR.prototype.setMuted = function (sceneName, muted, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].setMuted(sceneName, muted); }; XR.prototype.onSceneEvent = function (sceneName, eventName, eventHandler, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].onSceneEvent(sceneName, eventName, eventHandler); }; XR.prototype.enableAudio = function (sceneName, provider) { if (provider === void 0) { provider = this._defaultProvider; } if (!this._pluggables[provider]) throw new Errors_1.XRProviderNotConfigured("Provider '" + provider + "' not configured"); return this._pluggables[provider].enableAudio(sceneName); }; return XR; }()); exports.default = XR; //# sourceMappingURL=XR.js.map /***/ }), /***/ "./node_modules/@aws-amplify/xr/lib/index.js": /*!***************************************************!*\ !*** ./node_modules/@aws-amplify/xr/lib/index.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); /* * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ var XR_1 = __webpack_require__(/*! ./XR */ "./node_modules/@aws-amplify/xr/lib/XR.js"); exports.XRClass = XR_1.default; var core_1 = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); var logger = new core_1.ConsoleLogger('XR'); var _instance = null; if (!_instance) { logger.debug('Create XR Instance'); _instance = new XR_1.default(null); } var XR = _instance; core_1.default.register(XR); exports.default = XR; __export(__webpack_require__(/*! ./Providers/SumerianProvider */ "./node_modules/@aws-amplify/xr/lib/Providers/SumerianProvider.js")); __export(__webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/xr/lib/Errors.js")); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! \**********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _arrayWithoutHoles; function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! \**************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _assertThisInitialized; function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _classCallCheck; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! \****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _createClass; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _defineProperty; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/extends.js": /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! \************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _extends; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _getPrototypeOf; function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": /*!*************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! \*************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _inherits; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__setPrototypeOf__ = __webpack_require__(/*! ./setPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) Object(__WEBPACK_IMPORTED_MODULE_0__setPrototypeOf__["a" /* default */])(subClass, superClass); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js": /*!********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! \********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _iterableToArray; function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! \**********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _nonIterableSpread; function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js": /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/objectSpread.js ***! \*****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _objectSpread; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineProperty__ = __webpack_require__(/*! ./defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__defineProperty__["a" /* default */])(target, key, source[key]); }); } return target; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js": /*!****************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***! \****************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _objectWithoutProperties; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__objectWithoutPropertiesLoose__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = Object(__WEBPACK_IMPORTED_MODULE_0__objectWithoutPropertiesLoose__["a" /* default */])(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js": /*!*********************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! \*********************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _objectWithoutPropertiesLoose; function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": /*!******************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! \******************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _possibleConstructorReturn; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers_esm_typeof__ = __webpack_require__(/*! ../../helpers/esm/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__assertThisInitialized__ = __webpack_require__(/*! ./assertThisInitialized */ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"); function _possibleConstructorReturn(self, call) { if (call && (Object(__WEBPACK_IMPORTED_MODULE_0__helpers_esm_typeof__["a" /* default */])(call) === "object" || typeof call === "function")) { return call; } return Object(__WEBPACK_IMPORTED_MODULE_1__assertThisInitialized__["a" /* default */])(self); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _setPrototypeOf; function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js": /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js ***! \**************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _taggedTemplateLiteral; function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! \**********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _toConsumableArray; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__arrayWithoutHoles__ = __webpack_require__(/*! ./arrayWithoutHoles */ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__iterableToArray__ = __webpack_require__(/*! ./iterableToArray */ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nonIterableSpread__ = __webpack_require__(/*! ./nonIterableSpread */ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); function _toConsumableArray(arr) { return Object(__WEBPACK_IMPORTED_MODULE_0__arrayWithoutHoles__["a" /* default */])(arr) || Object(__WEBPACK_IMPORTED_MODULE_1__iterableToArray__["a" /* default */])(arr) || Object(__WEBPACK_IMPORTED_MODULE_2__nonIterableSpread__["a" /* default */])(); } /***/ }), /***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": /*!***********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! \***********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = _typeof; function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } function _typeof(obj) { if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { _typeof = function _typeof(obj) { return _typeof2(obj); }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); }; } return _typeof(obj); } /***/ }), /***/ "./node_modules/@emotion/cache/dist/cache.browser.esm.js": /*!***************************************************************!*\ !*** ./node_modules/@emotion/cache/dist/cache.browser.esm.js ***! \***************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__emotion_sheet__ = __webpack_require__(/*! @emotion/sheet */ "./node_modules/@emotion/sheet/dist/sheet.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__emotion_stylis__ = __webpack_require__(/*! @emotion/stylis */ "./node_modules/@emotion/stylis/dist/stylis.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__emotion_weak_memoize__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js"); // https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet // inlined to avoid umd wrapper and peerDep warnings/installing stylis // since we use stylis after closure compiler var delimiter = '/*|*/'; var needle = delimiter + '}'; function toSheet(block) { if (block) { Sheet.current.insert(block + '}'); } } var Sheet = { current: null }; var ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) { switch (context) { // property case 1: { switch (content.charCodeAt(0)) { case 64: { // @import Sheet.current.insert(content + ';'); return ''; } // charcode for l case 108: { // charcode for b // this ignores label if (content.charCodeAt(2) === 98) { return ''; } } } break; } // selector case 2: { if (ns === 0) return content + delimiter; break; } // at-rule case 3: { switch (ns) { // @font-face, @page case 102: case 112: { Sheet.current.insert(selectors[0] + content); return ''; } default: { return content + (at === 0 ? delimiter : ''); } } } case -2: { content.split(needle).forEach(toSheet); } } }; var createCache = function createCache(options) { if (options === undefined) options = {}; var key = options.key || 'css'; var stylisOptions; if (options.prefix !== undefined) { stylisOptions = { prefix: options.prefix }; } var stylis = new __WEBPACK_IMPORTED_MODULE_1__emotion_stylis__["a" /* default */](stylisOptions); if (true) { // $FlowFixMe if (/[^a-z-]/.test(key)) { throw new Error("Emotion key must only contain lower case alphabetical characters and - but \"" + key + "\" was passed"); } } var inserted = {}; // $FlowFixMe var container; { container = options.container || document.head; var nodes = document.querySelectorAll("style[data-emotion-" + key + "]"); Array.prototype.forEach.call(nodes, function (node) { var attrib = node.getAttribute("data-emotion-" + key); // $FlowFixMe attrib.split(' ').forEach(function (id) { inserted[id] = true; }); if (node.parentNode !== container) { container.appendChild(node); } }); } var _insert; { stylis.use(options.stylisPlugins)(ruleSheet); _insert = function insert(selector, serialized, sheet, shouldCache) { var name = serialized.name; Sheet.current = sheet; if ("development" !== 'production' && serialized.map !== undefined) { var map = serialized.map; Sheet.current = { insert: function insert(rule) { sheet.insert(rule + map); } }; } stylis(selector, serialized.styles); if (shouldCache) { cache.inserted[name] = true; } }; } if (true) { // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a var commentStart = /\/\*/g; var commentEnd = /\*\//g; stylis.use(function (context, content) { switch (context) { case -1: { while (commentStart.test(content)) { commentEnd.lastIndex = commentStart.lastIndex; if (commentEnd.test(content)) { commentStart.lastIndex = commentEnd.lastIndex; continue; } throw new Error('Your styles have an unterminated comment ("/*" without corresponding "*/").'); } commentStart.lastIndex = 0; break; } } }); stylis.use(function (context, content, selectors) { switch (context) { case -1: { var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason'; var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g); if (unsafePseudoClasses && cache.compat !== true) { unsafePseudoClasses.forEach(function (unsafePseudoClass) { var ignoreRegExp = new RegExp(unsafePseudoClass + ".*\\/\\* " + flag + " \\*\\/"); var ignore = ignoreRegExp.test(content); if (unsafePseudoClass && !ignore) { console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\"."); } }); } break; } } }); } var cache = { key: key, sheet: new __WEBPACK_IMPORTED_MODULE_0__emotion_sheet__["a" /* StyleSheet */]({ key: key, container: container, nonce: options.nonce, speedy: options.speedy }), nonce: options.nonce, inserted: inserted, registered: {}, insert: _insert }; return cache; }; /* harmony default export */ __webpack_exports__["a"] = (createCache); /***/ }), /***/ "./node_modules/@emotion/core/dist/core.browser.esm.js": /*!*************************************************************!*\ !*** ./node_modules/@emotion/core/dist/core.browser.esm.js ***! \*************************************************************/ /*! exports provided: css, CacheProvider, ClassNames, Global, ThemeContext, jsx, keyframes, withEmotionCache */ /*! exports used: ClassNames, jsx, keyframes */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export CacheProvider */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ClassNames; }); /* unused harmony export Global */ /* unused harmony export ThemeContext */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return jsx; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return keyframes; }); /* unused harmony export withEmotionCache */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose__ = __webpack_require__(/*! @babel/runtime/helpers/inheritsLoose */ "./node_modules/@emotion/core/node_modules/@babel/runtime/helpers/inheritsLoose.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__emotion_cache__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/cache.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__emotion_utils__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/utils.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__emotion_serialize__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/serialize.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__emotion_sheet__ = __webpack_require__(/*! @emotion/sheet */ "./node_modules/@emotion/sheet/dist/sheet.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__emotion_css__ = __webpack_require__(/*! @emotion/css */ "./node_modules/@emotion/css/dist/css.browser.esm.js"); /* unused harmony reexport css */ var EmotionCacheContext = Object(__WEBPACK_IMPORTED_MODULE_1_react__["createContext"])( // we're doing this to avoid preconstruct's dead code elimination in this one case // because this module is primarily intended for the browser and node // but it's also required in react native and similar environments sometimes // and we could have a special build just for that // but this is much easier and the native packages // might use a different theme context in the future anyway typeof HTMLElement !== 'undefined' ? Object(__WEBPACK_IMPORTED_MODULE_2__emotion_cache__["a" /* default */])() : null); var ThemeContext = Object(__WEBPACK_IMPORTED_MODULE_1_react__["createContext"])({}); var CacheProvider = EmotionCacheContext.Provider; var withEmotionCache = function withEmotionCache(func) { var render = function render(props, ref) { return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(EmotionCacheContext.Consumer, null, function (cache) { return func(props, cache, ref); }); }; // $FlowFixMe return Object(__WEBPACK_IMPORTED_MODULE_1_react__["forwardRef"])(render); }; // thus we only need to replace what is a valid character for JS, but not for CSS var sanitizeIdentifier = function sanitizeIdentifier(identifier) { return identifier.replace(/\$/g, '-'); }; var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__'; var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__'; var hasOwnProperty = Object.prototype.hasOwnProperty; var render = function render(cache, props, theme, ref) { var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works // not passing the registered cache to serializeStyles because it would // make certain babel optimisations not possible if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) { cssProp = cache.registered[cssProp]; } var type = props[typePropName]; var registeredStyles = [cssProp]; var className = ''; if (typeof props.className === 'string') { className = Object(__WEBPACK_IMPORTED_MODULE_3__emotion_utils__["a" /* getRegisteredStyles */])(cache.registered, registeredStyles, props.className); } else if (props.className != null) { className = props.className + " "; } var serialized = Object(__WEBPACK_IMPORTED_MODULE_4__emotion_serialize__["a" /* serializeStyles */])(registeredStyles); if ("development" !== 'production' && serialized.name.indexOf('-') === -1) { var labelFromStack = props[labelPropName]; if (labelFromStack) { serialized = Object(__WEBPACK_IMPORTED_MODULE_4__emotion_serialize__["a" /* serializeStyles */])([serialized, 'label:' + labelFromStack + ';']); } } var rules = Object(__WEBPACK_IMPORTED_MODULE_3__emotion_utils__["b" /* insertStyles */])(cache, serialized, typeof type === 'string'); className += cache.key + "-" + serialized.name; var newProps = {}; for (var key in props) { if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ("development" === 'production' || key !== labelPropName)) { newProps[key] = props[key]; } } newProps.ref = ref; newProps.className = className; var ele = Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(type, newProps); return ele; }; var Emotion = /* #__PURE__ */ withEmotionCache(function (props, cache, ref) { // use Context.read for the theme when it's stable if (typeof props.css === 'function') { return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(ThemeContext.Consumer, null, function (theme) { return render(cache, props, theme, ref); }); } return render(cache, props, null, ref); }); if (true) { Emotion.displayName = 'EmotionCssPropInternal'; } // $FlowFixMe var jsx = function jsx(type, props) { var args = arguments; if (props == null || !hasOwnProperty.call(props, 'css')) { // $FlowFixMe return __WEBPACK_IMPORTED_MODULE_1_react__["createElement"].apply(undefined, args); } if ("development" !== 'production' && typeof props.css === 'string' && // check if there is a css declaration props.css.indexOf(':') !== -1) { throw new Error("Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`" + props.css + "`"); } var argsLength = args.length; var createElementArgArray = new Array(argsLength); createElementArgArray[0] = Emotion; var newProps = {}; for (var key in props) { if (hasOwnProperty.call(props, key)) { newProps[key] = props[key]; } } newProps[typePropName] = type; if (true) { var error = new Error(); if (error.stack) { // chrome var match = error.stack.match(/at (?:Object\.|)jsx.*\n\s+at ([A-Z][A-Za-z$]+) /); if (!match) { // safari and firefox match = error.stack.match(/^.*\n([A-Z][A-Za-z$]+)@/); } if (match) { newProps[labelPropName] = sanitizeIdentifier(match[1]); } } } createElementArgArray[1] = newProps; for (var i = 2; i < argsLength; i++) { createElementArgArray[i] = args[i]; } // $FlowFixMe return __WEBPACK_IMPORTED_MODULE_1_react__["createElement"].apply(null, createElementArgArray); }; var warnedAboutCssPropForGlobal = false; var Global = /* #__PURE__ */ withEmotionCache(function (props, cache) { if ("development" !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is // probably using the custom createElement which // means it will be turned into a className prop // $FlowFixMe I don't really want to add it to the type since it shouldn't be used props.className || props.css)) { console.error("It looks like you're using the css prop on Global, did you mean to use the styles prop instead?"); warnedAboutCssPropForGlobal = true; } var styles = props.styles; if (typeof styles === 'function') { return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(ThemeContext.Consumer, null, function (theme) { var serialized = Object(__WEBPACK_IMPORTED_MODULE_4__emotion_serialize__["a" /* serializeStyles */])([styles(theme)]); return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(InnerGlobal, { serialized: serialized, cache: cache }); }); } var serialized = Object(__WEBPACK_IMPORTED_MODULE_4__emotion_serialize__["a" /* serializeStyles */])([styles]); return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(InnerGlobal, { serialized: serialized, cache: cache }); }); // maintain place over rerenders. // initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild // initial client-side render from SSR, use place of hydrating tag var InnerGlobal = /*#__PURE__*/ function (_React$Component) { __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose___default()(InnerGlobal, _React$Component); function InnerGlobal(props, context, updater) { return _React$Component.call(this, props, context, updater) || this; } var _proto = InnerGlobal.prototype; _proto.componentDidMount = function componentDidMount() { this.sheet = new __WEBPACK_IMPORTED_MODULE_5__emotion_sheet__["a" /* StyleSheet */]({ key: this.props.cache.key + "-global", nonce: this.props.cache.sheet.nonce, container: this.props.cache.sheet.container }); // $FlowFixMe var node = document.querySelector("style[data-emotion-" + this.props.cache.key + "=\"" + this.props.serialized.name + "\"]"); if (node !== null) { this.sheet.tags.push(node); } if (this.props.cache.sheet.tags.length) { this.sheet.before = this.props.cache.sheet.tags[0]; } this.insertStyles(); }; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { if (prevProps.serialized.name !== this.props.serialized.name) { this.insertStyles(); } }; _proto.insertStyles = function insertStyles$1() { if (this.props.serialized.next !== undefined) { // insert keyframes Object(__WEBPACK_IMPORTED_MODULE_3__emotion_utils__["b" /* insertStyles */])(this.props.cache, this.props.serialized.next, true); } if (this.sheet.tags.length) { // if this doesn't exist then it will be null so the style element will be appended var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling; this.sheet.before = element; this.sheet.flush(); } this.props.cache.insert("", this.props.serialized, this.sheet, false); }; _proto.componentWillUnmount = function componentWillUnmount() { this.sheet.flush(); }; _proto.render = function render() { return null; }; return InnerGlobal; }(__WEBPACK_IMPORTED_MODULE_1_react__["Component"]); var keyframes = function keyframes() { var insertable = __WEBPACK_IMPORTED_MODULE_6__emotion_css__["a" /* default */].apply(void 0, arguments); var name = "animation-" + insertable.name; // $FlowFixMe return { name: name, styles: "@keyframes " + name + "{" + insertable.styles + "}", anim: 1, toString: function toString() { return "_EMO_" + this.name + "_" + this.styles + "_EMO_"; } }; }; var classnames = function classnames(args) { var len = args.length; var i = 0; var cls = ''; for (; i < len; i++) { var arg = args[i]; if (arg == null) continue; var toAdd = void 0; switch (typeof arg) { case 'boolean': break; case 'object': { if (Array.isArray(arg)) { toAdd = classnames(arg); } else { toAdd = ''; for (var k in arg) { if (arg[k] && k) { toAdd && (toAdd += ' '); toAdd += k; } } } break; } default: { toAdd = arg; } } if (toAdd) { cls && (cls += ' '); cls += toAdd; } } return cls; }; function merge(registered, css, className) { var registeredStyles = []; var rawClassName = Object(__WEBPACK_IMPORTED_MODULE_3__emotion_utils__["a" /* getRegisteredStyles */])(registered, registeredStyles, className); if (registeredStyles.length < 2) { return className; } return rawClassName + css(registeredStyles); } var ClassNames = withEmotionCache(function (props, context) { return Object(__WEBPACK_IMPORTED_MODULE_1_react__["createElement"])(ThemeContext.Consumer, null, function (theme) { var hasRendered = false; var css = function css() { if (hasRendered && "development" !== 'production') { throw new Error('css can only be used during render'); } for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var serialized = Object(__WEBPACK_IMPORTED_MODULE_4__emotion_serialize__["a" /* serializeStyles */])(args, context.registered); { Object(__WEBPACK_IMPORTED_MODULE_3__emotion_utils__["b" /* insertStyles */])(context, serialized, false); } return context.key + "-" + serialized.name; }; var cx = function cx() { if (hasRendered && "development" !== 'production') { throw new Error('cx can only be used during render'); } for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return merge(context.registered, css, classnames(args)); }; var content = { css: css, cx: cx, theme: theme }; var ele = props.children(content); hasRendered = true; return ele; }); }); /***/ }), /***/ "./node_modules/@emotion/core/node_modules/@babel/runtime/helpers/inheritsLoose.js": /*!*****************************************************************************************!*\ !*** ./node_modules/@emotion/core/node_modules/@babel/runtime/helpers/inheritsLoose.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } module.exports = _inheritsLoose; /***/ }), /***/ "./node_modules/@emotion/css/dist/css.browser.esm.js": /*!***********************************************************!*\ !*** ./node_modules/@emotion/css/dist/css.browser.esm.js ***! \***********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__emotion_serialize__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/serialize.browser.esm.js"); function css() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return Object(__WEBPACK_IMPORTED_MODULE_0__emotion_serialize__["a" /* serializeStyles */])(args); } /* harmony default export */ __webpack_exports__["a"] = (css); /***/ }), /***/ "./node_modules/@emotion/hash/dist/hash.browser.esm.js": /*!*************************************************************!*\ !*** ./node_modules/@emotion/hash/dist/hash.browser.esm.js ***! \*************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* eslint-disable */ // murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js function murmurhash2_32_gc(str) { var l = str.length, h = l ^ l, i = 0, k; while (l >= 4) { k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24; k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16); k ^= k >>> 24; k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16); h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k; l -= 4; ++i; } switch (l) { case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16; case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8; case 1: h ^= str.charCodeAt(i) & 0xff; h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16); } h ^= h >>> 13; h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16); h ^= h >>> 15; return (h >>> 0).toString(36); } /* harmony default export */ __webpack_exports__["a"] = (murmurhash2_32_gc); /***/ }), /***/ "./node_modules/@emotion/memoize/dist/memoize.browser.esm.js": /*!*******************************************************************!*\ !*** ./node_modules/@emotion/memoize/dist/memoize.browser.esm.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function memoize(fn) { var cache = {}; return function (arg) { if (cache[arg] === undefined) cache[arg] = fn(arg); return cache[arg]; }; } /* harmony default export */ __webpack_exports__["a"] = (memoize); /***/ }), /***/ "./node_modules/@emotion/serialize/dist/serialize.browser.esm.js": /*!***********************************************************************!*\ !*** ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js ***! \***********************************************************************/ /*! exports provided: serializeStyles */ /*! exports used: serializeStyles */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return serializeStyles; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__emotion_hash__ = __webpack_require__(/*! @emotion/hash */ "./node_modules/@emotion/hash/dist/hash.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__emotion_unitless__ = __webpack_require__(/*! @emotion/unitless */ "./node_modules/@emotion/unitless/dist/unitless.browser.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__emotion_memoize__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/memoize.browser.esm.js"); var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences"; var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."; var hyphenateRegex = /[A-Z]|^ms/g; var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g; var isCustomProperty = function isCustomProperty(property) { return property.charCodeAt(1) === 45; }; var isProcessableValue = function isProcessableValue(value) { return value != null && typeof value !== 'boolean'; }; var processStyleName = Object(__WEBPACK_IMPORTED_MODULE_2__emotion_memoize__["a" /* default */])(function (styleName) { return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase(); }); var processStyleValue = function processStyleValue(key, value) { switch (key) { case 'animation': case 'animationName': { if (typeof value === 'string') { return value.replace(animationRegex, function (match, p1, p2) { cursor = { name: p1, styles: p2, next: cursor }; return p1; }); } } } if (__WEBPACK_IMPORTED_MODULE_1__emotion_unitless__["a" /* default */][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) { return value + 'px'; } return value; }; if (true) { var contentValuePattern = /(attr|calc|counters?|url)\(/; var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset']; var oldProcessStyleValue = processStyleValue; var msPattern = /^-ms-/; var hyphenPattern = /-(.)/g; var hyphenatedCache = {}; processStyleValue = function processStyleValue(key, value) { if (key === 'content') { if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '"' && value.charAt(0) !== "'")) { console.error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\"" + value + "\"'`"); } } var processed = oldProcessStyleValue(key, value); if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) { hyphenatedCache[key] = true; console.error("Using kebab-case for css properties in objects is not supported. Did you mean " + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) { return _char.toUpperCase(); }) + "?"); } return processed; }; } var shouldWarnAboutInterpolatingClassNameFromCss = true; function handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) { if (interpolation == null) { return ''; } if (interpolation.__emotion_styles !== undefined) { if ("development" !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') { throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.'); } return interpolation; } switch (typeof interpolation) { case 'boolean': { return ''; } case 'object': { if (interpolation.anim === 1) { cursor = { name: interpolation.name, styles: interpolation.styles, next: cursor }; return interpolation.name; } if (interpolation.styles !== undefined) { var next = interpolation.next; if (next !== undefined) { // not the most efficient thing ever but this is a pretty rare case // and there will be very few iterations of this generally while (next !== undefined) { cursor = { name: next.name, styles: next.styles, next: cursor }; next = next.next; } } var styles = interpolation.styles + ";"; if ("development" !== 'production' && interpolation.map !== undefined) { styles += interpolation.map; } return styles; } return createStringFromObject(mergedProps, registered, interpolation); } case 'function': { if (mergedProps !== undefined) { var previousCursor = cursor; var result = interpolation(mergedProps); cursor = previousCursor; return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation); } else if (true) { console.error('Functions that are interpolated in css calls will be stringified.\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\n' + 'It can be called directly with props or interpolated in a styled call like this\n' + "let SomeComponent = styled('div')`${dynamicStyle}`"); } break; } case 'string': if (true) { var matched = []; var replaced = interpolation.replace(animationRegex, function (match, p1, p2) { var fakeVarName = "animation" + matched.length; matched.push("const " + fakeVarName + " = keyframes`" + p2.replace(/^@keyframes animation-\w+/, '') + "`"); return "${" + fakeVarName + "}"; }); if (matched.length) { console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\n' + 'Instead of doing this:\n\n' + [].concat(matched, ["`" + replaced + "`"]).join('\n') + '\n\nYou should wrap it with `css` like this:\n\n' + ("css`" + replaced + "`")); } } break; } // finalize string values (regular strings and functions interpolated into css calls) if (registered == null) { return interpolation; } var cached = registered[interpolation]; if ("development" !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) { console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion'); shouldWarnAboutInterpolatingClassNameFromCss = false; } return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation; } function createStringFromObject(mergedProps, registered, obj) { var string = ''; if (Array.isArray(obj)) { for (var i = 0; i < obj.length; i++) { string += handleInterpolation(mergedProps, registered, obj[i], false); } } else { for (var _key in obj) { var value = obj[_key]; if (typeof value !== 'object') { if (registered != null && registered[value] !== undefined) { string += _key + "{" + registered[value] + "}"; } else if (isProcessableValue(value)) { string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";"; } } else { if (_key === 'NO_COMPONENT_SELECTOR' && "development" !== 'production') { throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.'); } if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) { for (var _i = 0; _i < value.length; _i++) { if (isProcessableValue(value[_i])) { string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";"; } } } else { var interpolated = handleInterpolation(mergedProps, registered, value, false); switch (_key) { case 'animation': case 'animationName': { string += processStyleName(_key) + ":" + interpolated + ";"; break; } default: { if ("development" !== 'production' && _key === 'undefined') { console.error(UNDEFINED_AS_OBJECT_KEY_ERROR); } string += _key + "{" + interpolated + "}"; } } } } } } return string; } var labelPattern = /label:\s*([^\s;\n{]+)\s*;/g; var sourceMapPattern; if (true) { sourceMapPattern = /\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//; } // this is the cursor for keyframes // keyframes are stored on the SerializedStyles object as a linked list var cursor; var serializeStyles = function serializeStyles(args, registered, mergedProps) { if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) { return args[0]; } var stringMode = true; var styles = ''; cursor = undefined; var strings = args[0]; if (strings == null || strings.raw === undefined) { stringMode = false; styles += handleInterpolation(mergedProps, registered, strings, false); } else { if ("development" !== 'production' && strings[0] === undefined) { console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR); } styles += strings[0]; } // we start at 1 since we've already handled the first arg for (var i = 1; i < args.length; i++) { styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46); if (stringMode) { if ("development" !== 'production' && strings[i] === undefined) { console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR); } styles += strings[i]; } } var sourceMap; if (true) { styles = styles.replace(sourceMapPattern, function (match) { sourceMap = match; return ''; }); } // using a global regex with .exec is stateful so lastIndex has to be reset each time labelPattern.lastIndex = 0; var identifierName = ''; var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5 while ((match = labelPattern.exec(styles)) !== null) { identifierName += '-' + // $FlowFixMe we know it's not null match[1]; } var name = Object(__WEBPACK_IMPORTED_MODULE_0__emotion_hash__["a" /* default */])(styles) + identifierName; if (true) { // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it) return { name: name, styles: styles, map: sourceMap, next: cursor, toString: function toString() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } }; } return { name: name, styles: styles, next: cursor }; }; /***/ }), /***/ "./node_modules/@emotion/sheet/dist/sheet.browser.esm.js": /*!***************************************************************!*\ !*** ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js ***! \***************************************************************/ /*! exports provided: StyleSheet */ /*! exports used: StyleSheet */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StyleSheet; }); /* Based off glamor's StyleSheet, thanks Sunil ❤️ high performance StyleSheet for css-in-js systems - uses multiple style tags behind the scenes for millions of rules - uses `insertRule` for appending in production for *much* faster performance // usage import { StyleSheet } from '@emotion/sheet' let styleSheet = new StyleSheet({ key: '', container: document.head }) styleSheet.insert('#box { border: 1px solid red; }') - appends a css rule into the stylesheet styleSheet.flush() - empties the stylesheet of all its contents */ // $FlowFixMe function sheetForTag(tag) { if (tag.sheet) { // $FlowFixMe return tag.sheet; } // this weirdness brought to you by firefox /* istanbul ignore next */ for (var i = 0; i < document.styleSheets.length; i++) { if (document.styleSheets[i].ownerNode === tag) { // $FlowFixMe return document.styleSheets[i]; } } } function createStyleElement(options) { var tag = document.createElement('style'); tag.setAttribute('data-emotion', options.key); if (options.nonce !== undefined) { tag.setAttribute('nonce', options.nonce); } tag.appendChild(document.createTextNode('')); return tag; } var StyleSheet = /*#__PURE__*/ function () { function StyleSheet(options) { this.isSpeedy = options.speedy === undefined ? "development" === 'production' : options.speedy; this.tags = []; this.ctr = 0; this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets this.key = options.key; this.container = options.container; this.before = null; } var _proto = StyleSheet.prototype; _proto.insert = function insert(rule) { // the max length is how many rules we have per style tag, it's 65000 in speedy mode // it's 1 in dev because we insert source maps that map a single rule to a location // and you can only have one source map per style tag if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) { var _tag = createStyleElement(this); var before; if (this.tags.length === 0) { before = this.before; } else { before = this.tags[this.tags.length - 1].nextSibling; } this.container.insertBefore(_tag, before); this.tags.push(_tag); } var tag = this.tags[this.tags.length - 1]; if (this.isSpeedy) { var sheet = sheetForTag(tag); try { // this is a really hot path // we check the second character first because having "i" // as the second character will happen less often than // having "@" as the first character var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers // the big drawback is that the css won't be editable in devtools sheet.insertRule(rule, // we need to insert @import rules before anything else // otherwise there will be an error // technically this means that the @import rules will // _usually_(not always since there could be multiple style tags) // be the first ones in prod and generally later in dev // this shouldn't really matter in the real world though // @import is generally only used for font faces from google fonts and etc. // so while this could be technically correct then it would be slower and larger // for a tiny bit of correctness that won't matter in the real world isImportRule ? 0 : sheet.cssRules.length); } catch (e) { if (true) { console.warn("There was a problem inserting the following rule: \"" + rule + "\"", e); } } } else { tag.appendChild(document.createTextNode(rule)); } this.ctr++; }; _proto.flush = function flush() { // $FlowFixMe this.tags.forEach(function (tag) { return tag.parentNode.removeChild(tag); }); this.tags = []; this.ctr = 0; }; return StyleSheet; }(); /***/ }), /***/ "./node_modules/@emotion/stylis/dist/stylis.browser.esm.js": /*!*****************************************************************!*\ !*** ./node_modules/@emotion/stylis/dist/stylis.browser.esm.js ***! \*****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function stylis_min (W) { function M(d, c, e, h, a) { for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) { g = e.charCodeAt(l); l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++); if (0 === b + n + v + m) { if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) { switch (g) { case 32: case 9: case 59: case 13: case 10: break; default: f += e.charAt(l); } g = 59; } switch (g) { case 123: f = f.trim(); q = f.charCodeAt(0); k = 1; for (t = ++l; l < B;) { switch (g = e.charCodeAt(l)) { case 123: k++; break; case 125: k--; break; case 47: switch (g = e.charCodeAt(l + 1)) { case 42: case 47: a: { for (u = l + 1; u < J; ++u) { switch (e.charCodeAt(u)) { case 47: if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) { l = u + 1; break a; } break; case 10: if (47 === g) { l = u + 1; break a; } } } l = u; } } break; case 91: g++; case 40: g++; case 34: case 39: for (; l++ < J && e.charCodeAt(l) !== g;) { } } if (0 === k) break; l++; } k = e.substring(t, l); 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0)); switch (q) { case 64: 0 < r && (f = f.replace(N, '')); g = f.charCodeAt(1); switch (g) { case 100: case 109: case 115: case 45: r = c; break; default: r = O; } k = M(c, r, k, g, a + 1); t = k.length; 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = '')); if (0 < t) switch (g) { case 115: f = f.replace(da, ea); case 100: case 109: case 45: k = f + '{' + k + '}'; break; case 107: f = f.replace(fa, '$1 $2'); k = f + '{' + k + '}'; k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k; break; default: k = f + k, 112 === h && (k = (p += k, '')); } else k = ''; break; default: k = M(c, X(c, f, I), k, h, a + 1); } F += k; k = I = r = u = q = 0; f = ''; g = e.charCodeAt(++l); break; case 125: case 59: f = (0 < r ? f.replace(N, '') : f).trim(); if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\x00\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) { case 0: break; case 64: if (105 === g || 99 === g) { G += f + e.charAt(l); break; } default: 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2))); } I = r = u = q = 0; f = ''; g = e.charCodeAt(++l); } } switch (g) { case 13: case 10: 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\x00'); 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h); z = 1; D++; break; case 59: case 125: if (0 === b + n + v + m) { z++; break; } default: z++; y = e.charAt(l); switch (g) { case 9: case 32: if (0 === n + m + b) switch (x) { case 44: case 58: case 9: case 32: y = ''; break; default: 32 !== g && (y = ' '); } break; case 0: y = '\\0'; break; case 12: y = '\\f'; break; case 11: y = '\\v'; break; case 38: 0 === n + b + m && (r = I = 1, y = '\f' + y); break; case 108: if (0 === n + b + m + E && 0 < u) switch (l - u) { case 2: 112 === x && 58 === e.charCodeAt(l - 3) && (E = x); case 8: 111 === K && (E = K); } break; case 58: 0 === n + b + m && (u = l); break; case 44: 0 === b + v + n + m && (r = 1, y += '\r'); break; case 34: case 39: 0 === b && (n = n === g ? 0 : 0 === n ? g : n); break; case 91: 0 === n + b + v && m++; break; case 93: 0 === n + b + v && m--; break; case 41: 0 === n + b + m && v--; break; case 40: if (0 === n + b + m) { if (0 === q) switch (2 * x + 3 * K) { case 533: break; default: q = 1; } v++; } break; case 64: 0 === b + v + n + m + u + k && (k = 1); break; case 42: case 47: if (!(0 < n + m + v)) switch (b) { case 0: switch (2 * g + 3 * e.charCodeAt(l + 1)) { case 235: b = 47; break; case 220: t = l, b = 42; } break; case 42: 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0); } } 0 === b && (f += y); } K = x; x = g; l++; } t = p.length; if (0 < t) { r = c; if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F; p = r.join(',') + '{' + p + '}'; if (0 !== w * E) { 2 !== w || L(p, 2) || (E = 0); switch (E) { case 111: p = p.replace(ha, ':-moz-$1') + p; break; case 112: p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p; } E = 0; } } return G + p + F; } function X(d, c, e) { var h = c.trim().split(ia); c = h; var a = h.length, m = d.length; switch (m) { case 0: case 1: var b = 0; for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) { c[b] = Z(d, c[b], e).trim(); } break; default: var v = b = 0; for (c = []; b < a; ++b) { for (var n = 0; n < m; ++n) { c[v++] = Z(d[n] + ' ', h[b], e).trim(); } } } return c; } function Z(d, c, e) { var h = c.charCodeAt(0); 33 > h && (h = (c = c.trim()).charCodeAt(0)); switch (h) { case 38: return c.replace(F, '$1' + d.trim()); case 58: return d.trim() + c.replace(F, '$1' + d.trim()); default: if (0 < 1 * e && 0 < c.indexOf('\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim()); } return d + c; } function P(d, c, e, h) { var a = d + ';', m = 2 * c + 3 * e + 4 * h; if (944 === m) { d = a.indexOf(':', 9) + 1; var b = a.substring(d, a.length - 1).trim(); b = a.substring(0, d).trim() + b + ';'; return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b; } if (0 === w || 2 === w && !L(a, 1)) return a; switch (m) { case 1015: return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a; case 951: return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a; case 963: return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a; case 1009: if (100 !== a.charCodeAt(4)) break; case 969: case 942: return '-webkit-' + a + a; case 978: return '-webkit-' + a + '-moz-' + a + a; case 1019: case 983: return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a; case 883: if (45 === a.charCodeAt(8)) return '-webkit-' + a + a; if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a; break; case 932: if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) { case 103: return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a; case 115: return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a; case 98: return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a; } return '-webkit-' + a + '-ms-' + a + a; case 964: return '-webkit-' + a + '-ms-flex-' + a + a; case 1023: if (99 !== a.charCodeAt(8)) break; b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify'); return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a; case 1005: return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a; case 1e3: b = a.substring(13).trim(); c = b.indexOf('-') + 1; switch (b.charCodeAt(0) + b.charCodeAt(c)) { case 226: b = a.replace(G, 'tb'); break; case 232: b = a.replace(G, 'tb-rl'); break; case 220: b = a.replace(G, 'lr'); break; default: return a; } return '-webkit-' + a + '-ms-' + b + a; case 1017: if (-1 === a.indexOf('sticky', 9)) break; case 975: c = (a = d).length - 10; b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim(); switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) { case 203: if (111 > b.charCodeAt(8)) break; case 115: a = a.replace(b, '-webkit-' + b) + ';' + a; break; case 207: case 102: a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a; } return a + ';'; case 938: if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) { case 105: return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a; case 115: return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a; default: return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a; } break; case 973: case 989: if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break; case 931: case 953: if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a; break; case 962: if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a; } return a; } function L(d, c) { var e = d.indexOf(1 === c ? ':' : '{'), h = d.substring(0, 3 !== c ? e : 10); e = d.substring(e + 1, d.length - 1); return R(2 !== c ? h : h.replace(na, '$1'), e, c); } function ea(d, c) { var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2)); return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')'; } function H(d, c, e, h, a, m, b, v, n, q) { for (var g = 0, x = c, w; g < A; ++g) { switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) { case void 0: case !1: case !0: case null: break; default: x = w; } } if (x !== c) return x; } function T(d) { switch (d) { case void 0: case null: A = S.length = 0; break; default: if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) { T(d[c]); } else Y = !!d | 0; } return T; } function U(d) { d = d.prefix; void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0); return U; } function B(d, c) { var e = d; 33 > e.charCodeAt(0) && (e = e.trim()); V = e; e = [V]; if (0 < A) { var h = H(-1, c, e, e, D, z, 0, 0, 0, 0); void 0 !== h && 'string' === typeof h && (c = h); } var a = M(O, e, c, 0, 0); 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h)); V = ''; E = 0; z = D = 1; return a; } var ca = /^\0+/g, N = /[\0\r\f]/g, aa = /: */g, ka = /zoo|gra/, ma = /([,: ])(transform)/g, ia = /,\r+?/g, F = /([\t\r\n ])*\f?&/g, fa = /@(k\w+)\s*(\S*)\s*/, Q = /::(place)/g, ha = /:(read-only)/g, G = /[svh]\w+-[tblr]{2}/, da = /\(\s*(.*)\s*\)/g, oa = /([\s\S]*?);/g, ba = /-self|flex-/g, na = /[^]*?(:[rp][el]a[\w-]+)[^]*/, la = /stretch|:\s*\w+\-(?:conte|avail)/, ja = /([^-])(image-set\()/, z = 1, D = 1, E = 0, w = 1, O = [], S = [], A = 0, R = null, Y = 0, V = ''; B.use = T; B.set = U; void 0 !== W && U(W); return B; } /* harmony default export */ __webpack_exports__["a"] = (stylis_min); /***/ }), /***/ "./node_modules/@emotion/unitless/dist/unitless.browser.esm.js": /*!*********************************************************************!*\ !*** ./node_modules/@emotion/unitless/dist/unitless.browser.esm.js ***! \*********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var unitlessKeys = { animationIterationCount: 1, borderImageOutset: 1, borderImageSlice: 1, borderImageWidth: 1, boxFlex: 1, boxFlexGroup: 1, boxOrdinalGroup: 1, columnCount: 1, columns: 1, flex: 1, flexGrow: 1, flexPositive: 1, flexShrink: 1, flexNegative: 1, flexOrder: 1, gridRow: 1, gridRowEnd: 1, gridRowSpan: 1, gridRowStart: 1, gridColumn: 1, gridColumnEnd: 1, gridColumnSpan: 1, gridColumnStart: 1, msGridRow: 1, msGridRowSpan: 1, msGridColumn: 1, msGridColumnSpan: 1, fontWeight: 1, lineHeight: 1, opacity: 1, order: 1, orphans: 1, tabSize: 1, widows: 1, zIndex: 1, zoom: 1, WebkitLineClamp: 1, // SVG-related properties fillOpacity: 1, floodOpacity: 1, stopOpacity: 1, strokeDasharray: 1, strokeDashoffset: 1, strokeMiterlimit: 1, strokeOpacity: 1, strokeWidth: 1 }; /* harmony default export */ __webpack_exports__["a"] = (unitlessKeys); /***/ }), /***/ "./node_modules/@emotion/utils/dist/utils.browser.esm.js": /*!***************************************************************!*\ !*** ./node_modules/@emotion/utils/dist/utils.browser.esm.js ***! \***************************************************************/ /*! exports provided: getRegisteredStyles, insertStyles */ /*! exports used: getRegisteredStyles, insertStyles */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getRegisteredStyles; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return insertStyles; }); var isBrowser = "object" !== 'undefined'; function getRegisteredStyles(registered, registeredStyles, classNames) { var rawClassName = ''; classNames.split(' ').forEach(function (className) { if (registered[className] !== undefined) { registeredStyles.push(registered[className]); } else { rawClassName += className + " "; } }); return rawClassName; } var insertStyles = function insertStyles(cache, serialized, isStringTag) { var className = cache.key + "-" + serialized.name; if ( // we only need to add the styles to the registered cache if the // class name could be used further down // the tree but if it's a string tag, we know it won't // so we don't have to add it to registered cache. // this improves memory usage since we can avoid storing the whole style string (isStringTag === false || // we need to always store it if we're in compat mode and // in node since emotion-server relies on whether a style is in // the registered cache to know whether a style is global or not // also, note that this check will be dead code eliminated in the browser isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) { cache.registered[className] = serialized.styles; } if (cache.inserted[serialized.name] === undefined) { var current = serialized; do { var maybeStyles = cache.insert("." + className, current, cache.sheet, true); current = current.next; } while (current !== undefined); } }; /***/ }), /***/ "./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js": /*!*****************************************************************************!*\ !*** ./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js ***! \*****************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var weakMemoize = function weakMemoize(func) { // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps var cache = new WeakMap(); return function (arg) { if (cache.has(arg)) { // $FlowFixMe return cache.get(arg); } var ret = func(arg); cache.set(arg, ret); return ret; }; }; /* unused harmony default export */ var _unused_webpack_default_export = (weakMemoize); /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSBrowseWrap.js": /*!**********************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/es/PSBrowseWrap.js ***! \**********************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require__ = __webpack_require__(/*! react-proptype-conditional-require */ "./node_modules/react-proptype-conditional-require/dist/isRequiredIf.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PSSnippet__ = __webpack_require__(/*! ./PSSnippet */ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSSnippet.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PSSnippet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__PSSnippet__); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* global _ps */ var PSBrowseWrap = function (_React$Component) { _inherits(PSBrowseWrap, _React$Component); function PSBrowseWrap(props) { _classCallCheck(this, PSBrowseWrap); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); var _this$props = _this.props, psScriptUrl = _this$props.psScriptUrl, groupKey = _this$props.groupKey, accessId = _this$props.accessId; if (!__WEBPACK_IMPORTED_MODULE_3__PSSnippet___default.a.isSnippetLoaded(psScriptUrl)) { __WEBPACK_IMPORTED_MODULE_3__PSSnippet___default.a.injectSnippet(psScriptUrl); } _this.targetSelector = 'psbw-' + groupKey; _ps('create', accessId); return _this; } PSBrowseWrap.prototype.componentDidMount = function componentDidMount() { var _props = this.props, groupKey = _props.groupKey, position = _props.position, badgeText = _props.badgeText, alwaysVisible = _props.alwaysVisible, openLegalCenter = _props.openLegalCenter; _ps('load', groupKey, { target_selector: this.targetSelector, position: position, badge_text: badgeText, always_visible: alwaysVisible, open_legal_center: openLegalCenter }); }; PSBrowseWrap.prototype.componentWillUnmount = function componentWillUnmount() { var groupKey = this.props.groupKey; _ps.getByKey(groupKey).rendered = false; }; PSBrowseWrap.prototype.isSnippetLoaded = function isSnippetLoaded() { var psScriptUrl = this.props.psScriptUrl; var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i += 1) { if (scripts[i].src.indexOf(psScriptUrl) !== -1) return true; } return false; }; PSBrowseWrap.prototype.render = function render() { var _props2 = this.props, link = _props2.link, linkText = _props2.linkText; return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement( 'a', { href: link, id: this.targetSelector }, linkText ); }; return PSBrowseWrap; }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component); PSBrowseWrap.MUST_PROVIDE_LINK_IF_OPEN_LEGAL_CENTER_FALSE = 'PSBrowseWrap Error: You must provide a link prop if openLegalCenter is passed false'; PSBrowseWrap.propTypes = true ? { accessId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired, alwaysVisible: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, badgeText: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, groupKey: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired, link: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, function (props) { return props.hasOwnProperty('openLegalCenter') && props.openLegalCenter === false; }, PSBrowseWrap.MUST_PROVIDE_LINK_IF_OPEN_LEGAL_CENTER_FALSE), linkText: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired, openLegalCenter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, position: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['middle', 'left', 'right', 'auto']), psScriptUrl: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string } : {}; PSBrowseWrap.defaultProps = { psScriptUrl: '//vault.pactsafe.io/ps.min.js', position: 'auto', link: '#', openLegalCenter: true }; /* unused harmony default export */ var _unused_webpack_default_export = (PSBrowseWrap); /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSClickWrap.js": /*!*********************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/es/PSClickWrap.js ***! \*********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require__ = __webpack_require__(/*! react-proptype-conditional-require */ "./node_modules/react-proptype-conditional-require/dist/isRequiredIf.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_uuid_v4__ = __webpack_require__(/*! uuid/v4 */ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/v4.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_uuid_v4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_uuid_v4__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PSSnippet__ = __webpack_require__(/*! ./PSSnippet */ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSSnippet.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PSSnippet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__PSSnippet__); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* global _ps */ var PSClickWrap = function (_React$Component) { _inherits(PSClickWrap, _React$Component); function PSClickWrap(props) { _classCallCheck(this, PSClickWrap); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this._isMounted = false; _this.createClickWrap = _this.createClickWrap.bind(_this); _this.state = { clickwrapGroupKey: null, dynamicGroup: false }; _this.propsEventMap = { onAll: 'all', onSent: 'sent', onRetrieved: 'retrieved', onSet: 'set', onSetSignerId: 'set:signer_id', onValid: 'valid', onInvalid: 'invalid', onRendered: 'rendered', onDisplayed: 'displayed', onScrolledContract: 'scrolled:contract', onScrolled: 'scrolled', onError: 'error' }; var _this$props = _this.props, psScriptUrl = _this$props.psScriptUrl, backupScriptURL = _this$props.backupScriptURL, accessId = _this$props.accessId, testMode = _this$props.testMode, disableSending = _this$props.disableSending, dynamic = _this$props.dynamic, signerId = _this$props.signerId, debug = _this$props.debug; if (!__WEBPACK_IMPORTED_MODULE_4__PSSnippet___default.a.isSnippetLoaded(psScriptUrl, backupScriptURL)) { __WEBPACK_IMPORTED_MODULE_4__PSSnippet___default.a.injectSnippet(psScriptUrl, backupScriptURL); } _ps('create', accessId, { test_mode: testMode, disable_sending: disableSending, dynamic: dynamic, signer_id: signerId }); if (debug) { _ps.debug = true; } return _this; } PSClickWrap.prototype.componentDidMount = function componentDidMount() { this._isMounted = true; this.createClickWrap(); }; PSClickWrap.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { var _props = this.props, clickWrapStyle = _props.clickWrapStyle, renderData = _props.renderData, filter = _props.filter, groupKey = _props.groupKey, signerId = _props.signerId; var _state = this.state, clickwrapGroupKey = _state.clickwrapGroupKey, dynamicGroup = _state.dynamicGroup; var _psLoadedValidGroup = _ps && _ps.getByKey && typeof _ps.getByKey === 'function' && clickwrapGroupKey && _ps.getByKey(clickwrapGroupKey); if (clickWrapStyle !== prevProps.clickWrapStyle && !dynamicGroup && _psLoadedValidGroup) { _ps.getByKey(clickwrapGroupKey).site.set('style', clickWrapStyle); _ps.getByKey(clickwrapGroupKey).retrieveHTML(); } if (renderData !== prevProps.renderData) { if (clickWrapStyle && _psLoadedValidGroup) { _ps.getByKey(clickwrapGroupKey).site.set('style', clickWrapStyle); } _ps(clickwrapGroupKey + ':retrieveHTML', renderData); } if (signerId !== prevProps.signerId) { if (clickWrapStyle && _psLoadedValidGroup) { _ps.getByKey(clickwrapGroupKey).site.set('style', clickWrapStyle); } _ps('set', 'signer_id', signerId); } if (clickWrapStyle !== prevProps.clickWrapStyle && dynamicGroup) { this.createClickWrap(); } if (filter !== prevProps.filter) { this.createClickWrap(); } if (groupKey !== prevProps.groupKey && !dynamicGroup) { this.createClickWrap(); if (_psLoadedValidGroup) _ps.getByKey(clickwrapGroupKey).retrieveHTML(); } }; PSClickWrap.prototype.componentWillUnmount = function componentWillUnmount() { this._isMounted = false; var groupKey = this.props.groupKey; if (_ps && _ps.getByKey && typeof _ps.getByKey === 'function' && _ps.getByKey(groupKey)) { if (_ps.getByKey(groupKey).rendered) { _ps.getByKey(groupKey).rendered = false; } _ps.getByKey(groupKey).resetData(); } this.unregisterEventListeners(); }; PSClickWrap.prototype.registerEventListener = function registerEventListener(eventProp, groupKey) { var _this2 = this; var eventCallbackFn = function eventCallbackFn() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var shouldFireListener = false; args.forEach(function (arg) { // We need to check the context variable and see if it matches the groupKey, if it does -> fire the event (context argument position varies) if (arg && arg.get && arg.get('key') && arg.get('key') === groupKey) { shouldFireListener = true; // Else we should check if the context is for the entire site, and as such the context variable is a Site object. } else if (arg && arg.toString() === '[object Site]') { shouldFireListener = true; } }); if (shouldFireListener) { var _props2; (_props2 = _this2.props)[eventProp].apply(_props2, args); } }; // In order to handle unregistration of event listeners, we override the toString function to identify the // function by a UUID rather than the default toString of a function. var newEventListenerID = __WEBPACK_IMPORTED_MODULE_3_uuid_v4___default()(); eventCallbackFn.toString = function () { return newEventListenerID; }; _ps.on(this.propsEventMap[eventProp], eventCallbackFn); return eventCallbackFn.toString(); }; PSClickWrap.prototype.registerEventListeners = function registerEventListeners(groupKey) { var _this3 = this; var eventListeners = {}; Object.keys(this.propsEventMap).forEach(function (eventProp) { if (_this3.props[eventProp]) { eventListeners[_this3.propsEventMap[eventProp]] = _this3.registerEventListener(eventProp, groupKey); } }); // Store event listeners in state so we can unregister them later on unmount if (this._isMounted) { this.setState({ eventListeners: eventListeners }); } }; PSClickWrap.prototype.unregisterEventListeners = function unregisterEventListeners() { var _this4 = this; if (this.state.eventListeners) { Object.keys(this.state.eventListeners).forEach(function (event) { var eventUUID = _this4.state.eventListeners[event]; // In order to unregister the event, we must create a fake function (typeof passed to _ps.off must be a function), // that returns the UUID we want to unregister. var fakeEventListener = function fakeEventListener() { return eventUUID; }; fakeEventListener.toString = function () { return eventUUID; }; _ps.off(event, fakeEventListener); }); } }; PSClickWrap.prototype.createClickWrap = function createClickWrap() { var _this5 = this; var _props3 = this.props, filter = _props3.filter, containerId = _props3.containerId, signerIdSelector = _props3.signerIdSelector, clickWrapStyle = _props3.clickWrapStyle, displayAll = _props3.displayAll, renderData = _props3.renderData, displayImmediately = _props3.displayImmediately, forceScroll = _props3.forceScroll, groupKey = _props3.groupKey, confirmationEmail = _props3.confirmationEmail; var options = { filter: filter, container_selector: containerId, confirmation_email: confirmationEmail, signer_id_selector: signerIdSelector, style: clickWrapStyle, display_all: displayAll, render_data: renderData, auto_run: displayImmediately, force_scroll: forceScroll }; if (groupKey && this._isMounted) { this.setState({ clickwrapGroupKey: groupKey, dynamicGroup: false }); } var isDynamic = !groupKey; var eventCallback = function eventCallback(err, group) { if (group) { var key = groupKey || group.get('key'); var state = { clickwrapGroupKey: key }; if (isDynamic) state.dynamicGroup = true; if (_this5._isMounted) { _this5.setState(state); } if (!isDynamic) group.render(); _this5.registerEventListeners(key); } }; if (groupKey) { _ps('load', groupKey, _extends({}, options, { event_callback: eventCallback })); } else _ps('load', _extends({}, options, { event_callback: eventCallback })); }; PSClickWrap.prototype.render = function render() { var containerId = this.props.containerId; return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div', { id: containerId }); }; return PSClickWrap; }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component); PSClickWrap.FILTER_OR_GROUPKEY_REQUIRED_ERROR_MESSAGE = 'PSClickWrap Error: You must provide either a groupKey or filter prop in order to use the PactSafe ClickWrap component!'; PSClickWrap.MUST_PROVIDE_RENDER_DATA_ERROR_MESSAGE = 'PSClickWrap Error: You must provide a renderData prop when passing down the dynamic prop'; PSClickWrap.MUST_PROVIDE_SIGNER_ID_OR_SIGNER_ID_SELECTOR = 'PSClickWrap Error: You must provide either a signer ID or a signer ID selector'; PSClickWrap.propTypes = true ? { accessId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired, clickWrapStyle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['full', 'scroll', 'checkbox', 'combined', 'embedded']), confirmationEmail: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, disableSending: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, displayAll: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, displayImmediately: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, dynamic: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, containerId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, filter: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, function (props) { return !props.hasOwnProperty('groupKey'); }, PSClickWrap.FILTER_OR_GROUPKEY_REQUIRED_ERROR_MESSAGE), forceScroll: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, groupKey: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, function (props) { return !props.hasOwnProperty('filter'); }, PSClickWrap.FILTER_OR_GROUPKEY_REQUIRED_ERROR_MESSAGE), psScriptUrl: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, backupScriptURL: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, renderData: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, function (props) { return props.hasOwnProperty('dynamic') && props.dynamic === true; }, PSClickWrap.MUST_PROVIDE_RENDER_DATA_ERROR_MESSAGE), signerIdSelector: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, function (props) { return !props.hasOwnProperty('signerId'); }, PSClickWrap.MUST_PROVIDE_SIGNER_ID_OR_SIGNER_ID_SELECTOR), signerId: __WEBPACK_IMPORTED_MODULE_2_react_proptype_conditional_require___default()(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, function (props) { return !props.hasOwnProperty('signerIdSelector'); }, PSClickWrap.MUST_PROVIDE_SIGNER_ID_OR_SIGNER_ID_SELECTOR), testMode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, debug: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, onAll: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onSent: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onRetrieved: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onSet: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onSetSignerId: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onValid: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onInvalid: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onRendered: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onDisplayed: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onScrolledContract: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onScrolled: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, onError: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func } : {}; PSClickWrap.defaultProps = { psScriptUrl: '//vault.pactsafe.io/ps.min.js', backupScriptURL: '//d3l1mqnl5xpsuc.cloudfront.net/ps.min.js', containerId: 'ps-clickwrap', displayImmediately: true, disableSending: false, displayAll: true, dynamic: false, testMode: false }; /* harmony default export */ __webpack_exports__["a"] = (PSClickWrap); /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSSnippet.js": /*!*******************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/es/PSSnippet.js ***! \*******************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { /* * This file is used to share the snippet injection code between PSClickWrap.js and PSBrowseWrap.js. It is mostly the same as the existing snippet code, only exception is the * PS.JS source location is paramaterized. */ function injectSnippet(scriptURL, backupScriptURL) { (function (w, d, s, c, f, n, t, g, a, b, l) { // Defines the global _ps object and initializes the _ps() function // that will queue commands until the PactSafe Library is ready. w.PactSafeObject = n; w[n] = w[n] || function () { (w[n].q = w[n].q || []).push(arguments); }, w[n].on = function () { // Defines the event functions for the global _ps object. (w[n].e = w[n].e || []).push(arguments); }, w[n].once = function () { (w[n].eo = w[n].eo || []).push(arguments); }, w[n].off = function () { (w[n].o = w[n].o || []).push(arguments); }, w[n].t = 1 * new Date(), w[n].l = 0; // Marks the time that the script is inserted. // Inserts a new script element to load the PactSafe Library JS file (ps.js). a = d.createElement(s); b = d.getElementsByTagName(s)[0]; a.async = 1; a.src = c; // Marks that the script has started loading or failed to load. a.onload = a.onreadystatechange = function () { w[n].l = 1; }; a.onerror = a.onabort = function () { w[n].l = 0; }; // Insert the script tag to the DOM, n a testing context, no script tags exist so b is undefined. if (b) { b.parentNode.insertBefore(a, b); } else { document.body.appendChild(a); } // Retry loading the script from a fallback location after 4 seconds. setTimeout(function () { if (!w[n].l && !w[n].loaded) { w[n].error = 1; a = d.createElement(s); a.async = 1; a.src = f; a.onload = a.onreadystatechange = function () { w[n].l = 1; }; a.onerror = a.onabort = function () { w[n].l = 0; }; b.parentNode.insertBefore(a, b); // Log the loading error via beacon. l = function l(u, e) { try { e = d.createElement("img"); e.src = "https://d3r8bdci515tjv.cloudfront.net/error.gif?t=" + w[n].t + "&u=" + encodeURIComponent(u); d.getElementsByTagName("body")[0].appendChild(e); } catch (x) {} }; l(c); // Call the optional error callback function after a second failed attempt. setTimeout(function () { if (!w[n].l && !w[n].loaded) { w[n].error = 1; if (g && "function" == typeof g) { g.call(this); } l(f); } }, t); } }, t); })(window, document, "script", scriptURL, backupScriptURL, "_ps", 4000, function optionalErrorCallback() { console.log("Unable to load the PactSafe PS.JS Library."); }); } function isSnippetLoaded(psScriptURL) { var scripts = document.getElementsByTagName('script'); if (window._ps && window._ps.loaded && window._ps.realThang === 317) return true; for (var i = 0; i < scripts.length; i += 1) { if (scripts[i].src.indexOf(psScriptURL) !== -1) { return true; } } return false; } module.exports = { injectSnippet: injectSnippet, isSnippetLoaded: isSnippetLoaded }; /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/es/index.js": /*!***************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/es/index.js ***! \***************************************************************/ /*! exports provided: PSClickWrap, PSBrowseWrap */ /*! exports used: PSClickWrap */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__PSClickWrap__ = __webpack_require__(/*! ./PSClickWrap */ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSClickWrap.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__PSClickWrap__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__PSBrowseWrap__ = __webpack_require__(/*! ./PSBrowseWrap */ "./node_modules/@pactsafe/pactsafe-react-sdk/es/PSBrowseWrap.js"); /* unused harmony reexport PSBrowseWrap */ /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/bytesToUuid.js": /*!****************************************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/bytesToUuid.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ var byteToHex = []; for (var i = 0; i < 256; ++i) { byteToHex[i] = (i + 0x100).toString(16).substr(1); } function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 return ([ bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]] ]).join(''); } module.exports = bytesToUuid; /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/rng-browser.js": /*!****************************************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/rng-browser.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via // feature-detection // getRandomValues needs to be invoked in a context where "this" is a Crypto // implementation. Also, find the complete implementation of crypto on IE11. var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); if (getRandomValues) { // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef module.exports = function whatwgRNG() { getRandomValues(rnds8); return rnds8; }; } else { // Math.random()-based (RNG) // // If all else fails, use Math.random(). It's fast, but is of unspecified // quality. var rnds = new Array(16); module.exports = function mathRNG() { for (var i = 0, r; i < 16; i++) { if ((i & 0x03) === 0) r = Math.random() * 0x100000000; rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; } return rnds; }; } /***/ }), /***/ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/v4.js": /*!***************************************************************************!*\ !*** ./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/v4.js ***! \***************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/@pactsafe/pactsafe-react-sdk/node_modules/uuid/lib/bytesToUuid.js"); function v4(options, buf, offset) { var i = buf && offset || 0; if (typeof(options) == 'string') { buf = options === 'binary' ? new Array(16) : null; options = null; } options = options || {}; var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided if (buf) { for (var ii = 0; ii < 16; ++ii) { buf[i + ii] = rnds[ii]; } } return buf || bytesToUuid(rnds); } module.exports = v4; /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json": /*!******************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json ***! \******************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFWdtyGjkQ/RVqnnar8Bb4lpg3jEnCxgEvGDtxKg9iphm01oyILrZxKv++mrGd3az6KC8UnNa0+nrUGr5lI11VVLtskF198FaU1Dns9w9OOkf7/ePDrJu90bWbiorCgpH2RpLZO9WqaCReqZ8lnReJqKTa/SwL8DXJctPs9Lxs4oSS+bAuVVjXC7/tG/lAxYV0+SYbOOOpm402wojckVlQ8+T4wVFdUDHXlaifrTs91Q/Z4PNeMLu7t3/U6746POm+7vW/dLNlWGuUrOlCW+mkrrPBXr/X+4/gciPz25qszQbhyeyKjG2XZb3ewR+9Xi/sMdVO5k+ebHemcaHzW/57p3/y+qQbPk967We//TxoP191hoVeUWexs44q25nUuTZbbYSj4o9OZ6hUZ97osZ05WTJ3AQ37jMOqQtblIt9QG7lWycKJuhCmeJGGhSOxffccyqPj/W728eXX4cFJNxvavAmRyQbH++HnGf34vdc/etXNFq54d50NXh+2X6/C137v+CnQH8gZmYdQfP6WXX8MCppQTYMlditCBL53/wfTQ65EFeNfvQ6erlQsqX21akJc1rGs0EoJE+NbMnlToZFAVEFkQ3iABW2uGH3CUK1ojUTgMWEbjfaWeUp5G6N5aCwRw5vddkOM98EVqRlPrBJ2E8OPZHSM6prJkrtnVrqNIWbtOjQrg8o7Zq2VDwxId5x3xMe0lpzBuVaa0WGpkkCkmgaON/3qBVODpaHQiIybXz3ZliTi3DO2D2PoNIZGMXQWQ+MYehNDb2PoXQxNYujPGHofQ+cx9CGGpjE0i6GLGPorhuYxtIihyxhaxtBVDF3H0McY+hRDNzG0CqfQLTmeNlZBBvr0+TnIKbmUuTS5Z1jUN6xtw8nBtEjLb7wxDOesmB5j+JfpIIYLmIZiWC6GZAz9HUMMvTItzESL6VqG9rZMKGOI4QaGXpjY+xi6i6H7GGKYdMeQPl9foBBW3GHark9Vo5OqgEd9oe+ZOPOnc3NcqmZgiUuomehYnt1xZ8daaSPZ8wBoyb0Jx3jOBLBtGyvbiRNOLXw0Sy+DpNKAAhpxq/gXYhD6NdMda6bwwyTH0kwhypI70p5wdhR7Gjia3JEhpvfDLCRKI7YcqYXJnxgv/g3vSthEhNNSEKIfCQByUkpurWQaNXjqNtqjSfHp0OdLOwSAG31E7h03uLRMvlbEtDPoq0rkhqvhlSFu40I7kfP9VoRLFrH+G7YLcypCQLkJ1delML5SwjPb6DIMmQxL54L1gyq+YIfMyKNNsQ4zHj8UnoMDdoZwfoMqkJxX7A6Cj3czWzLdqcC+GuGM9tCa4RobSp5J2gTnk0D5CVA0Pp1RAqn7hC0o5J3kqvkTsGyY6gwBHlqmHtqBh2x77UI9QimVS75PljgMAjXDEljn0QNjvMlZIAju/pF0NH95VcFshSgnB3Ug+LhMkwYoVKOAUS+T2kZIG2DVcYInLXDTQkKUYHelH6kuGcEcbPE26aRPNklKOEQpNcCQHPp6k4jc5UYbRtkM7T4HcVsAvADWLtEGnq/M9t2G9e2Aw8xEM1CCQ4QDWq28cnKrmDHTAwcvgYNh1HJSqEKumdvVDlPDFOwjU8UyTpZZ4tTBohzYUSMaRAmdggBNgKLmzVsYGLjXbyujb6lm70CGSmnB1PsWJHuSYhQfupq/ioxBTRngkEaRuQEP3ICIPb/kAq/Axo6ZUEaQFFSStxwa/eDpiARDND4kqhIE+BG1Btp7hjKCjh6UKYt2xk7MkmMJ8PCMlGNy5XiSdvc6wYjYtIp5pSGBRTo9Z45R6Asw4bQ8HgrYhEJmTFsk6pWvyPfJOj4HiXNGFFQJw1hOCVaYgChNUOGcA6tD0DZCMSdDczMBDa5TFVWDqWn5i/yB+BByqARcGhx6ziqXVD4Ii2TqZmnLi8AS3L8dGqRoBIzwkM0LmXNpOAOKTNKbKciPBvg8XdZJ6RDoHEKO5meuGdDzmOiQMTrt0d63SVfAIDBJtgIwwaUvN7ps8l1r7v0I5lKPRUEV+rcqfaHlDvJH4FSdVBVCjk8IiXp87Jv/Ib90s/dk6gshTfPv8Zfv/wDUfBK2" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json": /*!*************************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFWdtyGjkQ/RVqnnarcAo7vuE3jEnCxgEvGDtxKg9iRgxaa0ZEF9s4lX/fnrGdTVZ9lBcKTmvU96PW8C0bmqqStc9OsqsPwYlSdnaPDvb6naP+3v5+1s3emNpPRCVpwdAEq6TdOTW6mC61+hpksyBo/euCTrOg89MKUSm9/XUNwddSletGcbOcfo+90Cof1KWmdTu7e4S4N+pBFhfK5+vsxNsgu9lwLazIvbRz2Tw7evCyLmQxM5Won809PTUP2cnnnYOj7s7eQa97fNjvHvd2v3SzBS21WtXywjjllakbRb3eT4LLtcpva+lcdkJPZlfSunZZ1uu9ftXr9UjFxHiVP7my2drGh84f+Z+d3f5xv0uf/V77udt+vm4/jzqDwixlZ751XlauM65zYzfGCi+LV53OQOvOrNnHdWbSSXtHKOkZ0apC1eU8X8s2dO0mcy/qQtjiRUoLh2Lz7jmWB4cUto8vv/Zf97vZwOVNhGx2crhHP8/kj987uxShbO6Ld9fZyfF++/WKvu72Dp/i/EF6q3IKxedv2fVH2qAJ1YQscRtBEfje/R8sH3Itqhj/Ggx5utSxpA7VsglxWceywmgtbIxvpM2bio0EoiKRo/AAC9pcMfsJK2stV0gEHhOu2dHdMk/p4GI0p0YTMbzebtaS8Z5cUYbxxGnh1jH8KK2JUVMzWfL3zEq/tpJZu6JuZVB1x6x16oEB5R3nneRjWivO4Nxow+zhZKWASDcNHCv9GgRTg6WV1IiMm8ReriWJOPeM7YMYOo2hYQydxdAoht7E0NsYehdD4xj6K4bex9B5DH2IoUkMTWPoIob+jqFZDM1j6DKGFjF0FUPXMfQxhj7F0E0MLekQupWep40lyUCfPj8HOSVXKlc2DwyLhoa1HZ0cTIu0/MYbw3DOkukxhn+ZDmK4gGkohuViSMXQPzHE0CvTwky0mK5laG/DhDKGGG5g6IWJfYihuxi6jyGGSbcM6fP1BQphyR2m7fpUNXqlC3jUF+aeiTN/OjfHpW4GlriEmoGO5dktd3astLGKPQ/ALnmwdIznTADbtnGqHTnh1MJHswyKJJUBFNCI241/IwahXzHdsWIKnyY5lmYKUZbckfaEs6PY08DR5E5ayfQ+zUKitGLDkRpdASTjxX/hXQqXiHBaCkL0IwFALrVWG6eYRiVP/doENCk+Hfp8aVMAuNFH5MFzg0vL5CstmXYGfVWJ3HI1vLSSU1wYL3K+3wq6ZUnWf8t2YS4LCig3oYa6FDZUWgRGjSlpyGRYOhesH7LiC3bAjDzGFiua8fih8BwcsFOE8woqIrmgWQ2Cj3czWzLdqYFeg3Bmd2pNusVSyTNJG+N8SlB+AhRNSGdUgtR9whYU6k5x1fwJWDZIdYYADy1SD23BQ669dqEekaktF3yfLHAYBGqGBbAuoAdGWMkZEQR3/0g6mr+8qmBUIcrJQR0IPi6TpAEa1Shg1MvkbkO0G2DVUYInHXDTQUJUQLs2j7IuGcEMqHibdDIkmyQlHKCUWmBIDn29SUTucm0ss9kUaZ+BuM0BXgBrF0hB4CuzfbfhQjvgMDPRFJTgAOGAVqugvdpoZswMwMFL4CCNWl4JXagVc7vaYmqYAD0qVSyjZJklTh0syoEdNaJBlNAJCNAYbNS8eaOBgXv9trTmVtbsHcjKUjkw9b4FyR6nGCVQV/NXkRGoKQscMigyN+CBGxCx55dc4BXYyDMTyhCSgk7ylkejHzwdkWCAxodEVYIAP6LWQLqnKCPo6EGZckgzdmKaHEuAh2dSeyZXnidpf28SjIhNq5hXGgpYZNJz5giFvgATTsvjVMCWCpkxbZ6oV74i3yfr+BwkzltRyEpYxnKZYIUxiNIYFc45sJqCthaaORmamwlocJOqqBpMTYvf5A/ERyKHSsCl5NBzVrmk8kGYJ1M3TVteEEtw/3YYkKIhMCJANi9UzqXhDGxkk95MQH4MwGfpsk5KB2DPAeRofuaagn0eEx0yQqc90n2bdAUMAuNkKwATfPpyY8om37Xh3o9gLg1YRFuhf6vSF1ruIH8ETtXJrSjk+IRQqMdHofkf8ks3ey9tfSGUbf49/vL9XxrnGMA=" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json": /*!*********************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFWVtT2zgU/isZP+3OhE5Iy/UtDaHNFhI2IdDS4UGxFUeLbKW6AKHT/77Hhnbb1fnUFw98x9K5fzpyvmZDU1Wy9tlxdnUenChlZ3e//+awc7B32D/Kutmpqf1EVJJeGJpglbQ706VWX4JshEHrX4Wdn4SiUnr7q5jga6nKdaPvXBYqVISMvdAqH9Slpjd3dvuEuFP1KIsL5fN1duxtkN1suBZW5F7auWxWjx69rAtZzEwl6hc73741j9nx553+QXenv9frHr456h729m672YJetVrV8sI45ZWpG0W93k+Cy7XK72rpXHZMK7MraV37WtbrvX7V6/VIxcR4lT87s9naxovOH/mfnd2jw6MuPY967XO3ffbb5+v2edAZFGYpO/Ot87JynXGdG7sxVnhZvOp0Blp3Zs1urjOTTtp7QknbiN4qVF3O87VsQ9huMveiLoQtvkvpxaHYvH+J6d4+Be/j9//e9Pe72cDlTZxsdrzfP+pmJ/LH/zu7ewfdbO6L99e0crf98+rlzybY59JblVM8Pn/Nrj/S+iZeEzLEbQSF4Vv3f7B8zLWoYvxLMOToUseSOlTLJs5lHcsKo7WwMb6RNm/qNRKIikSOogMsaBPG7CesrLVcIRFYJlyzo7tjVungYjSnNhMxvN5u1pLxnlxRhvHEaeHWMfwkrYlRUzNZ8g/Mm35tJfPuipqWQdU9865Tjwwo7znvJB/TWnEG50YbZg8nKwVEuuniWOmXIJgaLK2kPmTcJBJzLVPEuWdsH8TQ2xgaxtBJDI1i6DSG3sXQ+xgax9BfMfQhhs5i6DyGJjE0jaGLGPo7hmYxNI+hyxhaxNBVDF3H0McY+hRDNzG0pJPoTnqeNpYkA336sg5ySq5UrmweGBYNDWk7OjiYFmn5jTeG4Zwl02MM/zIdxHAB01AMy8WQiqF/YoihV6aFmWgxXcvQ3oYJZQwx3MDQCxP7EEP3MfQQQwyTbhnS5+sLFMKSO0zb91PV6JUu4FFfmAcmzvzp3ByXuplX4hJqpjqWZ7fc2bHSxir2PAC75MHSMZ4zAWzbxql27oRTCx/NMiiSVAZQQCNuN/6NGIR+xXTHiil8GuRYmilEWXJH2jPOjmLPA0eTO2kl0/s0C4nSig1HanQJkIwX/4V3KVwiwmkpCNGPBAC51FptnGIalTz1axPQpPh86POlTQHgRh+RB88NLi2Tr7Rk2hn0VSVyy9Xw0kpOcWG8yPl+K+iyJVn/LduFOV3GaOBmuDvUpbCh0iIwakxJQybD0rlg/ZAVX7ADZuQxtljRjMcPhWfggJ0inFdQEckFzWoQfLyb2ZLpTg30GoQzu1Nr0lWWSp5J2hjnU4LyE6BoQjqjEqTuE7agUPeKq+ZPwLJBqjMEWLRILdqCRa69dqEekaktF3yfLHAYBGqGBbAuoAUjrOSECIK7fyQdzb9/r2BUIcrJQR0IPi6TpAEa1Shg1MvkbkO0G2DVUYInHXDTQUJUQLs2T7IuGcEMqHiXdDIkmyQlHKCUWmBIDn29SUTucm0ss9kUaZ+BuM0BXgBrF0hB4Cuz/bbhQjvgMDPRFJTgAOGAVqugvdpoZswMwMFL4CCNWl4JXagVc7vaYmqYAD0qVSyjZJklTh0syoEdNaJBlNAJCNAYbNR8eaOBgfv8trTmTtbsHcjKUjkw9b4DyR6nGCVQV/NXkRGoKQscMigyN2DBDYjYy0cu8Als5JkJZQhJQSd5y6PRD56OSDBA40OiKkGAn1BrIN1TlBF09KBMOaQZOzFNjiXAwxOpPZMrz5O0fzAJRsSmVcwnDQUsMuk5c4RCX4AJp+VxKmBLhcyYNk/UK1+RH5J1fAYS560oZCUsY7lMsMIYRGmMCucMWE1BWwvNnAzNzQQ0uElVVA2mpsVv8gfiI5FDJeBScuglq1xS+SDMk6mbpi0viCW4XzsMSNEQGBEgmxcq59JwAjaySW8mID8G4LN0WSelA7DnAHI0P3NNwT5PiQ4ZodMe6b5LugIGgXGyFYAJPn25MWWT79pw30cwlwYsoq3Qr1XpCy13kD8Bp+rkVhRyfEIo1OOj0PwOedvNPkhbXwhlm1+Pb7/9C/NFF2U=" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json": /*!*************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json ***! \*************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFWdtSGzkQ/RXXPO1WmZSBEAJvjnESb8AmGENCKg+ypj3Wohk5ugAmlX9fzUCyW6s+ysuUfVqXvh61Zr4XI1PX1PjiuLg6C05U1Ns/Ojx42TsYHB4eFf3irWn8VNQUB4xMsIpsCwatU1DUSm8T+JpUtW7XP6NShToiEy+0ksOm0nHkIP53b9UDlefKy3Vx7G2gfjFaCyukJzundu74wVNTUnlhatE8a/XmjXkojr/s7O33d/YOBv3D3YP+68HB136xiEOtVg2dG6e8Mk1xvLM7GPxHcLlW8rYh54rjOLO4Iuu6YcVgsP9iMBjELabGK/lkymZrWxt6f8g/e7tHr4/68Xk06J673XOve+53z8PesDRL6s23zlPtepNGGrsxVngqX/R6Q617F+1qrndBjuxdRONu4ziqVE01l2vqHNgtMveiKYUtf0rjwJHYvH/26MGrvX7x6ee/l3uv+sXQydZPtjh+tXfUL07o1/+d3YPDfjH35fvrOHO3+3n1/LN19hl5q2T0x5fvxfWnOL/11zQq4jYiuuFH/38wPUgt6hT/Fkw0dKlTSRPqZevnqkllpdFa2BTfkJVtdiYCUUeRi94BGnQBY9YTlhpNKyQC04RrV3S3zCwdXIrKWFQihdfbzZoY66MpyjCWOC3cOoUfyZoUNQ0TJX/PjPRrS8zYVSxZBlV3zFinHhiQ7jjriPdpoziFpdGGWcNRrYBIt1WcbvotCCYHK0uxDhkzvwVyHVOksWd0H6bQmxQapdBJCo1T6G0KvUuh9yk0SaG/UuhDCp2m0FkKTVNolkLnKfQxhS5SaJ5Clym0SKGrFLpOoU8p9DmFblJoGU+iW/I8bSyjDNTp8zzIKVIpqawMDIuGlrRdPDiYEun4jVeG4ZwlU2MM/zIVxHABU1AMy6WQSqG/U4ihV6aEGW8xVcvQ3oZxZQox3MDQC+P7kEJ3KXSfQgyTbhnS5/MLJMKSO0y78bls9EqX8KgvzT3jZ/50bo9L3fYraQq1XR3Ls1vu7FhpYxV7HoBVZLDxGJeMA7uycarrOmHXwnuzCipKagMooBV3C/9GDFy/YqpjxSR+bORYmilFVXFH2hPOtmJPDUcbO7LE1H7shURlxYYjtdj6E2PFv+5dCpfxcF4KXPQrAEBOWquNU0yhRkv92gTUKT4d+nxqRwdwrY+QwXONS8fkK01MOYO6qoW0XA4vLXEbl8YLyddbGa9axNpv2SqU8SoWG26Gu0NTCRtqLQKzjalik8mwtBSsHVTzCTtkWh5jy1Xs8fim8BQcsDOE8xvUkeSCZncQvL/b3pKpTg32NQhnVo+lGa+yMeWZoE1wPAmknwBJE/IRJRC6z1iDUt0pLps/A82GucoQYNIiN2kLJrnu2oVqhHJLLvg6WWA3CFQMC6BdQBPGeJOTSBDc/SNrqPz5voLZClGOBHkgeL9MswpolKOAUS+zq43QaoBVxxmedMBMBwlRgd21eaSmYgQXYIt3WSNDtkhywiEKqQWKSGjrTcZzl2tjmcVmaPcL4Lc5wEug7QJtEPjM7N5tuNA1OExPNAMpOEQ4oNU6aK82mmkzAzDwEhgYWy2vhC7VirldbTE1TME+Kpcs42yaZU4dLJJAjwbRIAroFDhoAhZq37zFhoF7/ba05pYa9g5kqVIOdL3vQLAnOUYJsar5q8gY5JQFBhnkmRsw4QZ47PklF3gFNvZMhzKCpKCzvOVR6wdPRyQYovYhk5XAwY+oNNDeMxQRdPSgSDm0MzZilm1LgIUnpD0TK8+TtL83GUbEqtXMKw0FNDL5PnOMXF+CDqfj8ZjANiYyo9o8k698Rn7I5vEpCJy3oqRaWEZzyrDCBHhpghLnFGgdnbYWmjkZ2psJKHCTy6gGdE2L38QP+IeQQRXg0mjQc1S5oPJOmGdDN8trXkaW4L52GBCiEVAiQDYvleTCcAIWsllrpiA+BuAX+bTOSodgzSHkaL7nmoF1HjMVMkanPdr7NmsKaAQm2VIAKvj85cZUbbwbw70fwVwasCguhb5W5S+03EH+CIxqsktFl+MTQqEaH4f2O+TXfvGBbHMulG2/Hn/98Q/b2xEO" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Encoding.js": /*!*************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Encoding.js ***! \*************************************************************/ /*! exports provided: Encodings */ /*! exports used: Encodings */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Encodings; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/@pdf-lib/standard-fonts/es/utils.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__all_encodings_compressed_json__ = __webpack_require__(/*! ./all-encodings.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__all_encodings_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__all_encodings_compressed_json__); /* tslint:disable max-classes-per-file */ var decompressedEncodings = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* decompressJson */])(__WEBPACK_IMPORTED_MODULE_1__all_encodings_compressed_json___default.a); var allUnicodeMappings = JSON.parse(decompressedEncodings); var Encoding = /** @class */ (function () { function Encoding(name, unicodeMappings) { var _this = this; this.canEncodeUnicodeCodePoint = function (codePoint) { return codePoint in _this.unicodeMappings; }; this.encodeUnicodeCodePoint = function (codePoint) { var mapped = _this.unicodeMappings[codePoint]; if (!mapped) { var str = String.fromCharCode(codePoint); var msg = _this.name + " cannot encode \"" + str + "\""; throw new Error(msg); } return { code: mapped[0], name: mapped[1] }; }; this.name = name; this.unicodeMappings = unicodeMappings; } return Encoding; }()); var Encodings = { Symbol: new Encoding('Symbol', allUnicodeMappings.symbol), ZapfDingbats: new Encoding('ZapfDingbats', allUnicodeMappings.zapfdingbats), WinAnsi: new Encoding('WinAnsi', allUnicodeMappings.win1252), }; /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Font.js": /*!*********************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Font.js ***! \*********************************************************/ /*! exports provided: FontNames, Font */ /*! exports used: Font, FontNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FontNames; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Font; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/@pdf-lib/standard-fonts/es/utils.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Courier_Bold_compressed_json__ = __webpack_require__(/*! ./Courier-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Courier_Bold_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Courier_Bold_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Courier_BoldOblique_compressed_json__ = __webpack_require__(/*! ./Courier-BoldOblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Courier_BoldOblique_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Courier_BoldOblique_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Courier_Oblique_compressed_json__ = __webpack_require__(/*! ./Courier-Oblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Courier_Oblique_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__Courier_Oblique_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Courier_compressed_json__ = __webpack_require__(/*! ./Courier.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Courier_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Courier_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Helvetica_Bold_compressed_json__ = __webpack_require__(/*! ./Helvetica-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Helvetica_Bold_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__Helvetica_Bold_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Helvetica_BoldOblique_compressed_json__ = __webpack_require__(/*! ./Helvetica-BoldOblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Helvetica_BoldOblique_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Helvetica_BoldOblique_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Helvetica_Oblique_compressed_json__ = __webpack_require__(/*! ./Helvetica-Oblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Helvetica_Oblique_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__Helvetica_Oblique_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Helvetica_compressed_json__ = __webpack_require__(/*! ./Helvetica.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Helvetica_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__Helvetica_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Times_Bold_compressed_json__ = __webpack_require__(/*! ./Times-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Times_Bold_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__Times_Bold_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Times_BoldItalic_compressed_json__ = __webpack_require__(/*! ./Times-BoldItalic.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Times_BoldItalic_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__Times_BoldItalic_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Times_Italic_compressed_json__ = __webpack_require__(/*! ./Times-Italic.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Times_Italic_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__Times_Italic_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Times_Roman_compressed_json__ = __webpack_require__(/*! ./Times-Roman.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Times_Roman_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__Times_Roman_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Symbol_compressed_json__ = __webpack_require__(/*! ./Symbol.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Symbol_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__Symbol_compressed_json__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__ZapfDingbats_compressed_json__ = __webpack_require__(/*! ./ZapfDingbats.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__ZapfDingbats_compressed_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__ZapfDingbats_compressed_json__); // prettier-ignore var compressedJsonForFontName = { 'Courier': __WEBPACK_IMPORTED_MODULE_4__Courier_compressed_json___default.a, 'Courier-Bold': __WEBPACK_IMPORTED_MODULE_1__Courier_Bold_compressed_json___default.a, 'Courier-Oblique': __WEBPACK_IMPORTED_MODULE_3__Courier_Oblique_compressed_json___default.a, 'Courier-BoldOblique': __WEBPACK_IMPORTED_MODULE_2__Courier_BoldOblique_compressed_json___default.a, 'Helvetica': __WEBPACK_IMPORTED_MODULE_8__Helvetica_compressed_json___default.a, 'Helvetica-Bold': __WEBPACK_IMPORTED_MODULE_5__Helvetica_Bold_compressed_json___default.a, 'Helvetica-Oblique': __WEBPACK_IMPORTED_MODULE_7__Helvetica_Oblique_compressed_json___default.a, 'Helvetica-BoldOblique': __WEBPACK_IMPORTED_MODULE_6__Helvetica_BoldOblique_compressed_json___default.a, 'Times-Roman': __WEBPACK_IMPORTED_MODULE_12__Times_Roman_compressed_json___default.a, 'Times-Bold': __WEBPACK_IMPORTED_MODULE_9__Times_Bold_compressed_json___default.a, 'Times-Italic': __WEBPACK_IMPORTED_MODULE_11__Times_Italic_compressed_json___default.a, 'Times-BoldItalic': __WEBPACK_IMPORTED_MODULE_10__Times_BoldItalic_compressed_json___default.a, 'Symbol': __WEBPACK_IMPORTED_MODULE_13__Symbol_compressed_json___default.a, 'ZapfDingbats': __WEBPACK_IMPORTED_MODULE_14__ZapfDingbats_compressed_json___default.a, }; var FontNames; (function (FontNames) { FontNames["Courier"] = "Courier"; FontNames["CourierBold"] = "Courier-Bold"; FontNames["CourierOblique"] = "Courier-Oblique"; FontNames["CourierBoldOblique"] = "Courier-BoldOblique"; FontNames["Helvetica"] = "Helvetica"; FontNames["HelveticaBold"] = "Helvetica-Bold"; FontNames["HelveticaOblique"] = "Helvetica-Oblique"; FontNames["HelveticaBoldOblique"] = "Helvetica-BoldOblique"; FontNames["TimesRoman"] = "Times-Roman"; FontNames["TimesRomanBold"] = "Times-Bold"; FontNames["TimesRomanItalic"] = "Times-Italic"; FontNames["TimesRomanBoldItalic"] = "Times-BoldItalic"; FontNames["Symbol"] = "Symbol"; FontNames["ZapfDingbats"] = "ZapfDingbats"; })(FontNames || (FontNames = {})); var fontCache = {}; var Font = /** @class */ (function () { function Font() { var _this = this; this.getWidthOfGlyph = function (glyphName) { return _this.CharWidths[glyphName]; }; this.getXAxisKerningForPair = function (leftGlyphName, rightGlyphName) { return (_this.KernPairXAmounts[leftGlyphName] || {})[rightGlyphName]; }; } Font.load = function (fontName) { var cachedFont = fontCache[fontName]; if (cachedFont) return cachedFont; var json = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* decompressJson */])(compressedJsonForFontName[fontName]); var font = Object.assign(new Font(), JSON.parse(json)); font.CharWidths = font.CharMetrics.reduce(function (acc, metric) { acc[metric.N] = metric.WX; return acc; }, {}); font.KernPairXAmounts = font.KernPairs.reduce(function (acc, _a) { var name1 = _a[0], name2 = _a[1], width = _a[2]; if (!acc[name1]) acc[name1] = {}; acc[name1][name2] = width; return acc; }, {}); fontCache[fontName] = font; return font; }; return Font; }()); /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json": /*!********************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json ***! \********************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyNnVtzG0eyrf8KA0/7RMhzJJK6+U2+zMX2mJYsEuJMzANEtihsgYQMEITaO/Z/P41CV+bKlaug86JQf6uArsrKXNVX8H8m3y9vb7u7+8m3k4t/btazm+7o5PmTZy+PTl88eXk6eTT56/Lu/tfZbTc0+Hu3eOju51ezb75bLq532maxYO2oarPb+aJndRCm3fzm425/Y8N/3M8W86tXdzeLoeXjYXv91/mX7vq3+f3Vx8m396tN92jy/cfZanZ1361+73af/PHLfXd33V2/Wd7O7sY+fvfd8svk239/8+T540ffHB+/ePTk8eOTRy+fHf/n0eR8aLxazO+635br+f18eTf59ptBBuHtx/nVp7tuvZ58+3TgF91qXZpNHj8+/svjx4+Hnfy6HAawG8z3y8/9ajeGo/+6+j9HT16+ePpo9+/z8u/L3b8vH5d/nx+9ul6+745+79f33e366B93V8vV5+Vqdt9d/+Xo6NVicfRm9z3rozfduls9DNTDOF8fzY7uV7Pr7na2+nS0/HD0y/xued9/7r4ZGi2OXv3taHZ3/X+Xq6P58AXrzfv1/Ho+W8279V+Gzv447Op6fnfz+9XHrsxA6cnv98NHZqvrqg4Nv599/vs4Ic+fvHg0eVe3np4cP5q8Wl/tAr0axR862/7m+PHzR5Pf76//Pp18+2QnDv+/2P3/9PF+vv7Z3a/mV0NA//0/k+m7ybfHz4dGvw5dWX+eDXH830d7fHJyssfdl6vF7Nb46fPTPf9jsxzi9X5hytOnz/bK3eb2/W6ibu6ydr1cLGYr4y+GiSn8c7e62qV7FZ4fH++F2e0grYf4mGQdLj0oM557/Xm26u4W3YeWRB+r3Zitd9+4/uQdfzEO9/Nis85duBqqdJZ38bH//LG7y82HocyXYiTrxWz9MQfrz261zHR512V4vxUt7z+uOtH2w3KzEnT+INqu518E7B46MbddiKmnw/xOpNXVcrG8y3jd3c6jZDOw2NlAot0fm9ki45tVN5SzD/PZkyc1abp1sZqqvHz+dJx7kX2vMvouo+8z+sH3/Oz5Hv2YO/NX/2BNhb/l7/p7Tph/5DD/lD/4c97jL156NeT/zB/8NffrLA/ot9zqdf6uN/mDv+d+vc0fPM8fvPBZOx0neppbvcvoMu/xXzn53g+L2afuPtiGhfz9oMU65c9FT7FUnK2v5vOr+epqc5tnbbOz7fWw/nR5j8XfQmfsY7M8nve51VVudZ1bieL8kD94k9HH3OV5Rv+d9/gpt/IStiXhNu/xLqNlRp9F1WerFxa4zpG4z9+1yR98yJWwza2Ek/aOdsc9xfRzV3f5FRPh+MXjmpWrRvtD2Xg/X1w3l/rr5VaYe1idPWL35TjNk+NJrbgPuwND9Fkfs1o7PiyWq7ng667xLVeb1bCMX3kAj0+wbNbzcuCaoluPWnRZ3Wzmg3K7vNdHDju5fPFX5Bh6S5wPc8HE8dNwKCcPB65nNzedSNs9x0MxOuDYzV236kTtD8dCs5vV7DOY2tOaWcNJRCd80MP7frY+EOHD6kofK9gERH04KRg/Pxxizz+v52shDWO9/7jchGPFtOyH5PaZW80eRD3Mrjb36tClePmHRfcla43Kup1drdThzvtVp3Z8vbyfXYWKc2k+zCQGwJQV1qF3trseQqqOUTd3N7PV5nYx24jdLG+Gw8xP4utmOA6Yl9uQsy688sOek+cjW66uPwzHeeHA0I9Q4iLrByCR+x7OYA/Pntoebgen2yxwF7ayzMRie70r+vVaLGCLuGNfeSK3I5KlGNRQn8Mp8ZD34hziH2lK3QliBvryH/PGlyY5qf51cfb86Cj3oC4X1/OHOSS0fyT2zA+YRXF4txsfOj/0ob4Rg3U596IygaHmr/T9hVJx3J6IGdWDfyb2zmeCPuBnAWknfs4weASchBxXJ1YDfX7yvIrjVQ+xK3IdXztjHvgodVx+VR3w8mjlaDRVP9KXw7FTqda3RWOFcCarhAzRw1yzJ/rha9z76ct66rn8s7u7EZn7Ju7Cz+LUID05DhbJocx9xQuJHc02xnrFY/Xznxw5i+rbj8uVGNUZ7d3DQFVgJ3pU8Kd1EaOwWTXRDjxienErFzjWm3KUsxL9jSnoUWzxaKtmgrebxf3886IX/WqU/9s4QEuk4Xjrfj5bXM8/fMhz1bet4de4H09YkSxeGwfT7MCq05auGuO9a9lgK2N+jQHyxZDqHy+/DUcMeA3OToFWy0/dHZ4ImTmuupv5Oh76eonGyYblONdFPdRYb4aqDucjHmw6hrTCbERm2Ur1fzU+8C+q8NOX9di1XOmK18Eszj/ef8zw+6YBLpRv2VjuGybTNVfHlvCqdfhwICtjgP18uVUavG9zhdaMtJae1jK6bu0517Ht++BhCa+Y9bigW9wLA78PJu2euF0ecMTUNfu6240YSWMNX8rjTK8FPvixq0/xCOfFySn4+JDAqyGR1/n7fud8Pa2Tv2gsJD8fXH9/iRPnpxJ2X0eZYrIFt4wYJuetGv8ldtviMETt42wBS0Mt8t2pSaxwnwu1BJgvx8MmT7WvTGCjFLrWgG6imeKAxmlVs6rPRn6XB4iWwbLnlhDXg010KmMbS/731AlbuMhtTs3Or+dXymh/iF8EB2aHDnd/pcNa625j3t4czuuD+3rV+M5XTZOOpwM2A/F73IgPHFD+2Fruad9+iVie3dkBWTwSsG87WAo0QeaXB/e0WN7s5vtuKcK9bJvpJq9jNYOGr2pU8s3Bye1gJfeYN9L3Tq7jdnHnLh80u+e3lrsfN7u7kf95NPm5W939NpuvdveQ/z15tbtbPXn0zenj/zwat/buEdC+nxGNpo7wb8PWU9/au0pAODAUzsL3nOUu4NIbuE1VoPv6Dyg4T1DGkAW2vzoU0L5wEL0OW2+HrZe+VWOGKIzehfMQi/M6ekBh9MBh9EDr6AHR6EGx0QMb6zqwYidILoatF7Y1Hbae2dblsPXkiW/WISGDvgPeDJsnvlU/CCjEAjh8H9AaC0AUC1AsFsAsFsDGWDh5CJmwDVoft/KI+tzzsRGWpiEqDuNUpM65UqsC5WqIata4LNyqnuXv5hI2rurYxFzMJlFFG9dlbTLXtglU4Mapyit/nRHUuyEqeueq8qt6niPKHmBcGYGJ2Q1MIkswrn3BZDYHE9ghTIg2UTF4RUVgGBWhaxhj6zBB+EfVwEQMUd0ZV3ZiYrsy2ViMa3cxmS3GBPYZE6LZVPyQE3KbW/UCNQIhXGg0A3QhQ1TfxsmFnLMLVQVcyBC5kHHpQlU9y9/NLmRcuZCJ2YVMIhcyrl3IZHYhE8iFjJMLVf46I3AhQ+RCzpULVfU8R5RdyLhyIROzC5lELmRcu5DJ7EImsAuZEF2oYnChisCFKkIXMsYuZIJwoaqBCxmi4jOuXMjEdmWyCxnXLmQyu5AJ7EImRBeq+CEn5Da36gVqBEK4EIYGrShyqvQokimRyM4UZLCnyMmjoiiNKjQ5a+yPLSuKyrdii2xeUScHi6K2sdiGvSyqZGhRJFcL4usGB3+LnEyOROV0ocl5Y17Y86KojC+2yO4XdbLAKGofjG3YDKPKjhjVaItBA28MHAwycHTJKLBVRlX4ZWgAphk5GUYUlX3GFl/xFTbSKGo3jW3YUqPKvhrVaK5Be2jUxbbRvm/xQ/ETrusEPRcpGRVK5LdBYrcFEbwWKTktStJnocGZ3A97LErKYVHP/ooquStK2luxBTsrauSrKJGrgvRaUnBUpOSnQVJuCg3OZezZSVFSPop6dlFUyUNR0g6KLdg/UWP3RC16JyjgnEDBN4GiayJmz0RNOCbI4JdIqdpRUl6J+kEvYJ9ESbsktmCPRI0dErXoj6A8yAzfyra9pu1ICVccR4+WaIhMxTiZoXN2wqqADRoiDzQuDbCqZ/m72fqMK98zMZueSeR4xrXdmcxeZwIZnXFyucpfZwT+ZojMzblytqqe54iypxlXhmZidjOTyMqMax8zmU3MBHYwE6J9VQzeVREYV0XoWsbYskwQflU1MCtDVH/GlU2Z2K5MNijj2p1MZmsygX3JhGhKFT/khNzmVr1AjUAIF6p9RRtyRhXuAhkRCOxEJoEVOSMvckGakcln4vvZjlxQfuRqNiTXyJFc0JbkOnuSK2RKLpArmfBaMPAlZ2RMIChnMvlcxJe9yQVlTq5md3KN7MkF7U+us0G5wg7lSrQo4+BRxsCkjKFLOWSbckX4lIlgVM6oQF1QVuXqgfpls3JBu5XrbFeusF+5Eg3L+IPI1a1o1yvWiolwrdoxdC1nZAQukGuBwK5lEriWM3ItF6RrmXwmvp9dywXlWq5m13KNXMsF7Vqus2u5Qq7lArmWCa8FA9dyRq4FgnItk89FfNm1XFCu5Wp2LdfItVzQruU6u5Yr7FquRNcyDq5lDFzLGLqWQ3YtV4RrmQiu5Ywq1AXlWq4eqF92LRe0a7nOruUKu5Yr0bWMP4hc3Yp2vWKtmAjXWo2/6OG7q4RMoGLyK8PsVqMAXlUJOVXF0qdG8Sx9L3tUxcqhqpb9qSrkThVrb6oqO1Pl5EsVkyuN+HUi4EiVkB8ZVm40iucphuxEFSsfqlp2oaqQB1WsHaiq7D+Vs/tUHr1npOA8IwHfGQm6TkXsOZULxxkl8JtKqLIqVl5TtWbNsc9UrF2mquwxlbPDVB79ZaQPKeu2qU2fiR69cJUx19FWDFHhGidjcc7OUhWwFkPkLcaluVT1LH8324tx5S8mZoMxiRzGuLYYk9ljTCCTMU4uU/nrjMBnDJHROFdOU9XzHFH2GuPKbEzMbmMS2Y1x7Tcms+GYwI5jQrScisFzKgLTqQhdxxjbjgnCd6oGxmOIas+4sh4T25XJ5mNcu4/JbD8msP+YEA2o4oeckNvcqheoEYjsQt8N9FXcip8tqDoGIBHSwvUeYiALoiAVRvEpLISmkFq+jnbV9cS3LJ0che4CxwRzWrsLiKYcFBsIMBsIsHEge/LDGPdT34pu+gPGHZDw1h8o7kCjo/4Q4g7Mugts7C6QaJs/jCXvW9OwtSv0575VRwcIuux0/3tsdXJ3ZPzJNUOj/2L4DFEMjVMgjatomphDahLF1TgH1wSOsAkxzIYp1pVfZDTNCEJviOJvPE9ClWgmKk7TUV4IjNNREU9H5TwdlcvpqKKYjirxdFSepqMKaTqqQNNRMU/HyC8ymmaE01ERT0flYjpGiadjxDQdfx1n4oVv1V0BqvEHFEIPHDoEtAYckMUamIUZ2BhhIDW4jnbjPPatOgJAdQSAwgiAwwiA1hEAshEAsxEAG0cApI7AUZ2tJ48N2UyN7Kdxqo59Kw70J5wqQGKgP9FUAY0D/SlMFTAa6E8wVUDiQH+CgTqxcTraxK08zE1jTBs5pk0eEx+SgSJGuxGj3YTR/jzZn/Kc+FY8LipIHAQVng6CCo0HQQXJA8mi0OFRYfV8BlA8Ftqhctzy1LbsWMhRPYFBFA6PnOPhEVB7TTRgO2py5MdGzvzYyNhyNwLfskg7ipF2jpF2apF2xJF2xSPtzCLtyCJtaBPivsn5oc47fp6oU46fJ+ls42eR1aCI/ODTi58nfGaxI70tUGUrLtEFpYU2vIsf6oIECgGpKhrUJAeGGlCMSNXhokYcOZKpyEileosqJD8JVIWkUkGyKmqTmuQy5Qa5YqkFFS+pXMckc0lHGaqbBCp0UlXNU5Nc/tSAnIBUbQrUiP2BZLIKUsk1orppJRJ7CalfLyThMNTgYCE1fIcaHS6k5EYkR2OKIngUCWRXpCbn+mWC1/DKVrx8t0fiyt1O2B3ej5eddptTO0bdbZULWce+aSUODOvScfwFzUE6jZLgfo3nl0m6vPPLRF3Z+SW/o+qIgnDwHVVTMRz4BueLiDAw+Q1OFkSIqtaKU9BbYp8DwWFrv/X4S8wriCAJFEdWVTRjG4xpVCCyUcD4ksJRJlnEOrZoRVy0Otykb4WS56BdwGOD0V5xDgxR9J2ruFcVI14ZxLoijLIxjq8JIrJVa8U06C2xz4HgCBpPsRuO08oJ5lPfirccCop3gwoSNyAKT/ceCo23HQqiWwqF0d2EwsKNhELqeunorZn5Gc45ojDdLlyE75mGrXdhy6/QnE3SxZmzibous6P13Nd3aee+I6oWA9NgiObCOE2IcTUrJuapMYnmxzhPkgk8UybE6TJMc4brDoWBZ6+x7pB6kb97mtG7jGBa00LEPE9wlWiWK+apDi9TwXxHTpMeRZr5KKrpjy1yDkSdEiGKnA1R5ZSIasyLqFFypPc6VfQ4TQ6916maXDT2N23wdw0O+aNfb5RizqSgUzoFjXMKXkSBjEJK+YQSZRNKKpdQz5mEKuURSpxFqHEOoRYzCBXKH3qHLceJc6f9DltucCH3M5X0naSQMerVLiHlbAGVcgUUzpT6pgCkiSHKEeOUIMZVdpiYU8MkygvjnBQmcEaYENPBMOUCvuxDYeAsaLzsQ+pF/u5pRu8ygmlP78YwzxNeJZrtinmq47k5zjgrNPEs0/yzrNKA2+Rs4BaUFCxzbrDOKcJ6zBRWKWFIftuMKadPklUWUaOL5n6nTeVdU4EMY4USjeWcb9SC0o5Uzj57uh/yzhllnAuUay6oLHM155drlFkucE65wtnkSswj55RB4UUejghnTetFHpYvxPdPBXsnGORFft8lCTkXTKMsMM7zX083YfoN0ewbp8k3rubexDz1JtHMG+eJN4Hn3YQ47YZp1vEaBIWB57xxDYLUi/zd04zeZQTTnS5KMM+TXSWa64p5qutTYzDVhmiqjdNUG1dTbWKeapNoqo3zVJvAU21CnGrDNNX44CeFgae68eAnqRf5u6cZvcsIpjo9J8k8T3WVaKorpqn+bZzl8cmE33CGkdXZRUZP1rkQHq1z7M/WOYNH6BzCM3QO7SE6R3UGgflzMmUrXjErKD7RWJC4q1J4uq5WaLx/UhDdDymMboIUFu58FBLvKv4G8zZeTdyh2KDLg7L7iIj0oDo5qHCbEHAeayfG2omxLkOK2f0+QOKRr8LTrZxC44NeBcmHw4tCT38VFh8JLyg+2/UbVscY/dcTfMS0bMVHTAsSj5gWnh4xLTQ+YlqQfMS0KPSIaWH0iGlh4RHT155GPow6tD15M9nfzYet+GxOQeLZnMLTszmFxmdzCpLP5hSFns0prE4RoPjY0ZvRn2GrZj6i4MounMetPN7zxnjP5XjP83h5IkER4z2nZ5HewEQ68WXkzQQfMnwzrhSuXcal+Q2tDyOtVzFh9g1RSIyruJiYg2MSRci4DpPJHCsTKEGMU5bgdWhGlC+N69CkngvUiJXMIRPbseJsMn44VimvTODkMiFmWL7UbghyDa+rUyvOOnVdfZTqg8SQeoYonMZVOE3M4TSJwmlch9NkDqcJlHrGKfUqfysQpZ5zlXpVPReoESuZeia2Y8WpZ/xwrFLqmcCpZ0JMPXy0nTIEUg8fbadWnHrq0fYqpefYjqXAoT3wHJtuIsKsn2PTaiPkjefYtMypqp9jk+rbpsDJe+h5B9nmvCkcjLlO6tjkazFPCR7V/5+Y52SPckr5KFPipwdBZJZiEaTnQOQnUkE0nwLZNximu5z9vfSt+g2A6hkToDApwGEPQGv4AVk4gVkMgY2BA1Lz15G/oPoWSxiQONV4S8UKNJ5qvBVlCQqdarzFAgQUTzV2aHeO98K34rsaBcV3NQoS72oUnt7VKDS+q1EQvatRGL2rUVh4V6OQ+K7GDl0tFzTyeu7qbXafeOZbdZSAqrEgwlECh1EihVNXwHXwgGzwwGzwzj72nz925Zzr2NgyjGqZZ2vZmJqlnJplnho+nQVFTJqdzgLKM2Sns45WcSsPZBW93IV1dzvPU74JpbjJ9rFpeMVGesUmewU/kgqKcJGNcJFNcpFtmPA+buUk7XPm4buILwlRENK7iMxVhNS7iCxRrPK7iCxwbPhdRMbktXj8fkqIXFcfv7OY/TcdvzPXTpyP31kgT07H78TBxQxRrRgnnzauHMHEbAsmkTcYZxswgQ3chOjihsko/LXPhQodmXrFXa4Ftnfj5PHOhdGb2K45Zfmmke8bZ/M3gVeAKqRloArLHAxeEIwfygGxNJjUyIHGImFyK0V4uTDeSAVeOCpfCdQYul5HqioWkyrBimKo4ahybTGx7Zy8yhjXS43JLWNNi44J2li3Odt6gRrlpFajcKCPa1IUOI5R5fUpqjLWsYmIeGzAcY9qCm+UU5CjTKGOIq9k6XLAqRR4VTtwOUA3ESucvhyg1cZq17gcoGVe+fTlAKmi7UeBiz6qvCJGVXpibCKcMTZgf4xqssEop/UyyrRqRpENM6jsaCTGdTS+SNeq5bSmRpVXVlLV+hqbfM1L5FobW/CKG9W07kY5rb5BzmtwfMmuFc60Hkf16xmo1ubY4GAGttbp2OhwmqY1O6oHEzGt30FdNYWDYWus6KGNWtdDA1zdo3BwbdIrfWzytdUnrfpRbaz9sdHhJSofB0T50BK1bdVA3xQOWkM+Sjif4BM953g8ACg+x3OeVn7g6XriOa7xgOiZnfOwmgMLT+qc47rtqNroiRH6IZR6PRnH2nj1xjmN+tCrNy7m8TdevXHOkWi9euNCjEnj1RvjFJ30ysrIG6+sEKdgHXplhUQVtq+8skI6BfDgKyukcigPvLJCGgVVvr2hIsjhlW9vBEqhbb+9ESQV1oNvbwSVQnrg7Y2gcTibb28EhUIpXm3IseIw5lcbHFEAG682OFeha7/a4BIFrfVqgwscLv1qg2MKFL8SQKHgEDVfCUgKBezwKwFJVuH76isBqQUF8yuvBCSdQ3vwlYCkUqAbz8LruHLYxbPwwCjUrWfhQVDhPfAsPGgU0uaz8KBwGBvPwgOn0KVHxzkqHC77iW0IlzMKlwsULhdUuFzN4XKNwuUCh8sVDpcrMVzOKVwmULiMc7jGXw6GYFVCoaqYAlWxClPVcpCqQiGqmANUOYen8hicSik0I6bAjJTCcjGG5IVvxdOVCwwFIHG2d0EhABrP6y7C0IHRNYQLGDKQeJK2Q/6zzGUrzlxB8SzLhbO4FVOhIDHfhae5LjTOc0Hy94KLQrNfWD0/BRSnd4d20/rMt+IpS0E1BIDEdYvC0ylNofH6Q0F00aEwutJQ2DhjQOoIHMXT2YtJekR7h+Kguzw5dqUGkZ6vTs5XuBADOE9jJyarozLdMbu44tm5u6Dy0rfiKXlB4jy88HTyXWg84y5InmYXhc6tC6s5Biheyr2Y5Ke2dyxfiNjRTZjZTc7GTSP1NjL1Njn1+DICKCIpNyIpNyEpp6PrwVbs9RRdD5AYyJRcD2gcyDS4HjDq7hRcD0isoekEH7iboncBEo95Tcm7gMYHuqbCu0ChR7em6F2A4oNx09G7Tn0r3gyYoncBEjcFpuRdQOPl/2nwLmD0q7VT8C4g8Vr+FLzrCRC8Cj0drWv/I2VTtC5A9nYJoPwLbVOyLqT4donj+BNt02BdwPztEmNmXT7UZUi4ZS6SZaMilrIilrki2LpAEbVi1gUoFwZdqJ2Sc/m87Zzr1MZvzgUoJp5zTDynlniO+GaTK56SzjwlndWUNNKHeupz3fepvi9Hwxt/qekSHQ+ZvZEGLL6IAwK+iQPYXsUB5m/cAPRXbgDWd24A2RtpznbW99y34ot8l8n6gKd3+y7R+gDRxIFigwFW8xJQ7bajmS2wl2h9gOLN4stkfcDTscElWh8gOgK4DNYHLFxHv0Trc1RL6CmQW/xl5svR+174VjyfuETvQ5TPJy7J+5CC9wGOpxmXwfuA0WnG5Wh0MARzOmTq1cxL8jrE9GrmpXA7lPitzUv0O2T0hublJP8Y9iVZns/XJjbaiIFuWgPd6IFuxEDZ91BSA3XnQxhfT7206/RgBukmRBLY0/RtiKQKd0s3IpKQfC7fikgKOV66GcECeF96x4y5ckH1jhlL5Ietd8xYZmdM75gxJ4+sHIzSELmlcbJM48o3TczmaRI5qHG2URPYS02IhmqYXNVvMoVS5XtPXANgc4bIaY2T3ToXnmtiNl6XsvuaRhZsnH3YBDbjKizFoJMtmyAty1ThW6axeZnQcDDTk42ZwqZtAjt3upPIgvDwKm1E8+TmJhyMj/J101rxaTm86c34ZK83hQyfbvlVJ1T3/JTGzt+866caCP9X9/2UllYBeedPibQWqHt/QoMVASktCiipdQH1vDSgSqsDSnqBwBa8RqBGywRKtFKABIsFUlovUKIlAyW1aqCeFw5Uae1AiZcP1HgFQS0uIqjQOhJuBgfHELeJRYGBaSOlNQUlWlaCJFYW1PPiEtS8vqBMSwxKvMqgxgsNaEsdkrTcoCYdFRsIU0WZfRW1hrVik+SuKPIChBqvQepRAaGJlQjUjf5QWo9Q+1oA1aqE8oEAttYmbHIogHmFQjEuUkM5TfxXQsqW/66PoXj/yYXd3yTc/5WH3dY2bPl1nrIVr/MUlK7zVNfDHhmibhmXfasqdLCibUZ97gH313ju9Ngx7LQh6rRx2emqQqcr2mbU5x5wp43nTodnlaDnkVP3oyjHEJrAQALfNnjf6B+PK4p5cJDuMDSkNDCU5LCgAQwK6FbSXvaJh4NSHkx9zAdGYoiGYVyOoaowgIq2GfW5B9xv47nT9tgH9NoZddsF2W+ToePGtoL1oh/cdxdy5+0hDOi8M+q8C7Lz4c/Tjx0Nf56eWS/6wZ2Xf55+1MYHJaDrlVDHK5bdhr96PXYQ/up1JH3aN3dX/NXrUam/QAe9NUTdNS77i38kd+we/pFcQn3uAfdZ/ZHcvfR+oAvbc9ny4wRDqpdF8IObijbhq+nv4b1PxxrAZd/o7+G9FwcUoNCN0Pfh8AFY+LWK92OkfauPW3kMOY5XA/VA7LY+Be2T+gGRqzH4sBX3dZWDD0K8xXs1dtx70MeZvKKOj7QeC3zMCIZgSPamqguBaETGD38RjQ2PbaiTPEp1bDNK9uJrRjBUQ7KHVV0IREM1fviLaKj4viR1koeq3pes0nBat1jMaLAGcbgOdT9NX0jIg3bla1/HAzelV11Og3clD39/cjRZf55d7T5yOtJywp3/bM1xlhta/MLh9GxybTstW1f7v10LyE38Ovj3dR2ob9kIHeHQ9nTcA+7YEO298of86W1GvUDUI+OpW7uKG4O03zleSj028hA+sA1bX8JWH7diR1J97yldpx87whd2jyN+yJ/fZvQlo14g6qb0or1EPz4w9pVfTz+O+CF/fpvRl4x6gaiv0kxGSbwmUjus3hI5FtpD4+u2Df6lwfsW5+G0zqpGPV+IG0ckrsEcJ+VBftFW0i+S9prSKBonU1X1a3M8CFB4FCA96O/aavxF476BeSio5bHQayHjOPitkOOIH/Lntxl9yagXiPqrzgdHiV8PGDub3g44Jv4gvmIr2BfBesWoy/I0cNT4Gf2xz+kR/WPiD+IrtoJ9EaxXjPosz/722ocJXiSvpItb8aigoHotHFH+AePC05HDnuKflHUcf9e4IPr14sLo14t3bGlHOWUrHjIVJE6KCk8nGoXGk6KC5ElRUeikqLB46FVQfDr0wyRcgq6IDp1OohDozX6unvjGOGwg40whgTgA9jAg9GkCOsYGSA0AoDpHjvykXVxeaF5aqO1gpEbicA3HMTvOAzctjd6VFAKTYhwMUzCMU0TyZeCbxmXgm4OXgSOEMOkfgdBiDNmBn4DQLVL42j8AoRvEUDZ+/kGrFNao3rTCxCEmVQW6/knNY9+KNsN/SHNPP43utHfcT+hOgKJ9Ok+W/QndCRDfA3LFHdSZXVVyZHfK9ij/SoYWaCyHfiVDN8kjbPxKhlb1uFu/kqFlikbjVzL26iKszouwBi/y6ruQ6+4inwct8knPonHSs2if9MQrAvj1+QchtEC7av8gxNig/v2XbUa9QPT16u/P7qXbCV7pLFux2goSi3rhqQoLjYt6QXJRLwot6oXRlc7CwpXO2wn+2d1bHDEg6N2e3k3qTWXbikddd2mwwNMh1t0k3DA2JP9GxN0k3h42RkdZdxO8GVzJ7uD11LbcHsU9FH335C4+4RURBaH1fFcUczjE012R68CoZ7uiwCHKT3YFDMHKt5LvUrUzz7HD37t7Qohip3/vjsUcu/R7d8x17PLv3bHAsePfuyMMscNLLhQIjp265FKl9JtCT6TAcTzwm0K6iYip/k0hrTbi2/hNIS2nWMvfFJIixj0tITKUaQ6aS8jYoN47gzkwRNE3ruJuYo64SRRr4zrKJnN8TeDImhBjivcbTyPqcyA4gu2bi8sJ3llbhnV4t+V/uGkZdrXMe1nqHaB3EYJd4UXck9iqzx/kPbcdbpmucCoOHUlXOE9E+77xPdyvrzw3Aoeu2DV5uRIpdEs++xEodengsx9LvGpHCLqCV+1OYqs+f5B70H6Kg47FsRekQGdIgT6R0je/jXvIcu5ouF7IDDoXrheeULtefJa7cuCxkXrWgX3IB9OGoAd4fE0f5P2r4+tRQksiBLuvCHafjWvZMK5l27g+T/D84DN+FlA6K6gXzFp3GKPeEuM9RvoqU1+4uug+3Ncv3f//m9NnptYPXscPGa73DIXmN3wjjnGMmrrpG1vEa49BC3ERY1jFsBiuHVJavRostdBZ0WI3t88ErjtUWvzFUtLqTWuthu6oFnnyq+SFMgRp96wHbsUJK6j2EpF1DuB4/f2ZkeugW/o4urF6KFt2KcsRXb8ywV569y9bxq08EHXlvPBU1IXGk+yC5El2Uegku7CYvQXFK+c7ZFfOPWx/hAbrMO51NJcVZhEimx+EjVje11s5ZSO0cv5QL0yu9oYHG+GC7Cra3QjtdrsPzRBNlHFKO+ece3Qvv0ay4uvcklPRnqn2uBiipDQuo2lPSFF6Vr4UqDF+ma0m5pQ1ifLWuE5ekzmDTaA0Nk65zM9O8DT8kZuuc+A4v41TkjvnTHfl0AR5bhtRiQ8nDZTJfSaxDsS5wKjY8xweEUOUDMapGJxzMfBfqngW8XVuycVQORSDISoG4zLW6Y9H0A6WAjXGL4tB/e0IlqgYWn87gmUuhvS3I5hTMaS/HUHT8Eduus6B42IwTsXgnIvBlUMT5PluRBUDXMGiTO4zicUgLl9VJVxUwZKIAidGVLk8SE1FEnUqlSBetz6Vyibfr3uqBC6hg/frVJtUTukGlxYORlAXWPMGl27AxXbwBpdulApP3+DSKhdhUFMpBvWP1sfWrWlIxRlVLlFSU6GS/vU0gLqMXJYuXwqV1de3OBVz6zroXo/Xi2qYEOUHEj0gATbuAcJLjXQKPG6Vv905vuhnyJ/1IU63yIN6YadQlUwT2f0JyvHM3JAlB3G8EBClevY+npa/yOKo7PN3mMOJO1rZigVeUDUbQKLQC0/VXWgs6YKoRAuj+4mFhfuJhcT6fADrfWFk518nvhVvOj4kpwKebkY+oCcBIiMCxX9xzVm1HEB1HI7op8u2MLRTI27N2+zH24YJb6XzbrPdbpseuxXGus1uus0WusWh7Qeyu4Ls9x3KVry1UVB8rm6P8o2OwtM9jj1Nz9UVHO96FER3NAqjmxn9WCsnvhXzqsdaASRSradaARpTrQ+1Asx/ws/ZWCtAYo71qVb6MA99noc+z0PfmIdezkOv56HP89CLeegb81CK4KltWRE4ikXgHIvAqRWBIy4CV7wInFkROLIiMET1XRdEzCpDlFrGKb+MqyQzMWeaSZRuxjnnTODEMyFmn2FKQb7MQqGAdDBEGWmc0tK5yE0Tc4K6lLPUNEpV45yvJnDShms3TyOi9G1cuyExJ3K+dkNcp7S4dkMCJXe+dhM5pzncpINMR0rJjhLlO0oq5VHPWY8qJT5KnPuocfqjFisAFSqC/C6IiBWkG1KqBpSoIIIkagL1XBZBzZWBMhUHSlwfqHGJgAZVgpQKBSVVK6jnckGVKgYlXTTYgusGNSodlKh6xGtAY1L8OYHnmP+EHAASnlj+k2ccMJ9n/UnzCzQ8hfwnziag+Lzxn+DjTGKn2cUTzt0XHp6UNBB2cMY0pOTfI68nm10mcVyG47gc53GZlsblShqXSXFchmlcxmlc+JJUp2kcX5DiGKOUxxn0NNaopvEGOY45SDTuoMHY//O//w/7Vd1G" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json": /*!***************************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyNnVtzG0eyrf8KA0/7RMhzRIq6+U2+zMX2mJYsEuJMzANEtihsgYQMEITaO/Z/P41CV+bKlaug86JQf6uArsrKXNVX8H8m3y9vb7u7+8m3k4t/btazm+7o+PT0xcnRsxdPXzybPJr8dXl3/+vsthsa/L1bPHT386vZN98tF9dn7xfzPzbdrslmseAmR7smR9Bmdjtf9NxqEKbd/Objbve7Dwzb/7ifLeZXr+5uFkPLb45PBrL+6/xLd/3b/P7q4+Tb+9WmezT5/uNsNbu671a/d7vP/vjlvru77q7fLG9nd2Onv/tu+WXy7b+/OX5++uibk5MXj46Pj08fvXx28p9Hk/Oh8Woxv+t+W67n9/Pl3W5Xjx+D8Pbj/OrTXbdeT759OvCLbrUuzSaPH5/85fHjx8NOfl0OQ9gN5/vl5361G8XRf139n6Pjly+ePtr9+7z8+3L378vH5d/nR6+ul++7o9/79X13uz76x93VcvV5uZrdd9d/OTp6tVgcvdl9z/roTbfuVg8D9YDO10ezo/vV7Lq7na0+HS0/HP0yv1ve95+7b4ZGi6NXfzua3V3/3+XqaD58wXrzfj2/ns9W8279l6GzPw67up7f3fx+9bErc1B68vv98JHZ6rqqQ8PvZ5//Pk7J8+MXjybv6tbTJ8NcvFpf7QK9GsUfOtv+5uTx80eT3++v/z6dfHu8E4f/X+z+f/p4P1//7O5X86shoP/+n8n03eTbk+dDo1+Hrqw/z4Y4/u+jPX7y5Mked1+uFrNb46fDPBb+x2Y5xOv9wpSnT5/tlbvN7fvdRN3cZe16uVjMVsZfDBNT+OdudbXL/yo8PznZC7PbQVoP8THJOlx6UGY89/rzbNXdLboPLYk+VrsxW+++cf3JO/5iHO7nxWadu3A1lO0s7+Jj//ljd5ebD0OZL8VI1ovZ+mMO1p/dapnp8q7L8H4rWt5/XHWi7YflZiXo/EG0Xc+/CNg9dGJuuxBTT4f5nUirq+VieZfxurudR8lmYLGzgUS7PzazRcY3q24oZx/ms+PjmjTdulhNVV4+fzrOvci+Vxl9l9H3Gf3ge372fI9+zJ35q3+wpsLf8nf9PSfMP3KYf8of/Dnv8RcvvRryf+YP/pr7dZYH9Ftu9Tp/15v8wd9zv97mD57nD174rJ2OEz3Nrd5ldJn3+K+cfO+HxexTdx9sw0L+ftBinfLnoqdYKs7WV/P51Xx1tbnNs7bZ2fZ6WH+6vMfib6Ez9rFZHs/73Ooqt7rOrURxfsgfvMnoY+7yPKP/znv8lFt5CduScJv3eJfRMqPPouqz1QsLXOdI3Ofv2uQPPuRK2OZWwkl7R7vjnmL6uau7/IqJcPLicc3KVaP9oWy8ny+um0v99XIrzD2szh6x+3Kc5slxXCvuw+7AEH3Wx6zWjg+L5Wou+LprfMvVZjUs41cewJMnWDbreTl0TdGtRy26rG4280G5Xd7rI4edXL74K3IMvSXOh7lg4vhpOJSThwPXs5ubTqTtnuOhGB1w7OauW3Wi9odjodnNavYZTO1pzazhdKITPujhfT9bH4jwYXWljxVsAqI+nBSMnx8Oseef1/O1kIax3n9cbsKxYlr2Q3L7zK1mD6IeZlebe3XoUrz8w6L7krVGZd3OrlbqcOf9qlM7vl7ez65Cxbk0H2YSA2DKCuvQO9tdDyFVx6ibu5vZanO7mG3EbpY3w2HmJ/F1MxwHzMttyFkXXvlhz5PnI1uurj8Mx3nhwNCPUOIi6wcgkfsezmAPz57aHm4Hp9sscBe2sszEYnu9K/r1Wixgi7hjX3kityOSpRjUUJ/DKfGQ9+Ic4h9pSt0JYgb68h/zxpcmOan+dXH2/Ogo96AuF9fzhzkktH8k9swPmEVxeLcbHzo/9KG+EYN1OfeiMoGh5q/0/YVScdyeiBnVg38m9s5ngj7gZwFpJ37OMHgEnIScVCdWA33+5HkVx6seYlfkOr52xjzwUeq4/Ko64OXRytFoqn6kL4djp1Ktb4vGCuFMVgkZooe5Zk/0w9e499OX9dRz+Wd3dyMy903chZ/FqUF6chwskkOZ+4oXEjuabYz1isfq5z85chbVtx+XKzGqM9q7h4GqwE70qOBP6yJGYbNqoh14xPTiVi5wrDflKGcl+htT0KPY4tFWzQRvN4v7+edFL/rVKP+3cYCWSMPx1v18trief/iQ56pvW8OvcT+esCJZvDYOptmBVactXTXGe9eywVbG/BoD5Ish1T9efhuOGPAanJ0CrZafujs8ETJzXHU383U89PUSjZMNy3Gui3qosd4MVR3ORzzYdAxphdmIzLKV6v9qfOBfVOGnL+uxa7nSFa+DWZx/vP+Y4fdNA1wo37Kx3DdMpmuuji3hVevw4UBWxgD7+XKrNHjf5gqtGWktPa1ldN3ac65j2/fBwxJeMetxQbe4FwZ+H0zaPXG7POCIqWv2dbcbMZLGGr6Ux5leC3zwY1ef4hHOiyen4ONDAq+GRF7n7/ud8/W0Tv6isZD8fHD9/SVOnJ9K2H0dZYrJFtwyYpict2r8l9hti8MQtY+zBSwNtch3pyaxwn0u1BJgvhwPmzzVvjKBjVLoWgO6iWaKAxqnVc2qPhv5XR4gWgbLnltCXA820amMbSz531MnbOEitzk1O7+eXymj/SF+ERyYHTrc/ZUOa627jXl7czivD+7rVeM7XzVNOp4O2AzE73EjPnBA+WNruad9+yVieXZnB2TxSMC+7WAp0ASZXx7c02J5s5vvu6UI97Jtppu8jtUMGr6qUck3Bye3g5XcY95I3zu5jtvFnbt80Oye31ruftzs7kb+59Hk525199tsvtrdQ/735NXubvXk0Tenj//zaNzau0dA+35GNJo6wr8NW099a+8qAeHAUDgL33OWu4BLb+A2VYHu6z+g4DxBGUMW2P7qUED7wkH0Omy9HbZe+laNGaIwehfOQyzO6+gBhdEDh9EDraMHRKMHxUYPbKzrwIqdILkYtl7Y1nTYemZbl8PW8bFv1iEhg74D3gybT3yrfhBQiAVw+D6gNRaAKBagWCyAWSyAjbFw8hAyYRu0Pm7lEfW552MjLE1DVBzGqUidc6VWBcrVENWscVm4VT3L380lbFzVsYm5mE2iijauy9pkrm0TqMCNU5VX/jojqHdDVPTOVeVX9TxHlD3AuDICE7MbmESWYFz7gslsDiawQ5gQbaJi8IqKwDAqQtcwxtZhgvCPqoGJGKK6M67sxMR2ZbKxGNfuYjJbjAnsMyZEs6n4ISfkNrfqBWoEQrjQaAboQoaovo2TCzlnF6oKuJAhciHj0oWqepa/m13IuHIhE7MLmUQuZFy7kMnsQiaQCxknF6r8dUbgQobIhZwrF6rqeY4ou5Bx5UImZhcyiVzIuHYhk9mFTGAXMiG6UMXgQhWBC1WELmSMXcgE4UJVAxcyRMVnXLmQie3KZBcyrl3IZHYhE9iFTIguVPFDTshtbtUL1AiEcCEMDVpR5FTpUSRTIpGdKchgT5GTR0VRGlVoctbYH1tWFJVvxRbZvKJODhZFbWOxDXtZVMnQokiuFsTXDQ7+FjmZHInK6UKT88a8sOdFURlfbJHdL+pkgVHUPhjbsBlGlR0xqtEWgwbeGDgYZODoklFgq4yq8MvQAEwzcjKMKCr7jC2+4itspFHUbhrbsKVGlX01qtFcg/bQqItto33f4ofiJ1zXCXouUjIqlMhvg8RuCyJ4LVJyWpSkz0KDM7kf9liUlMOinv0VVXJXlLS3Ygt2VtTIV1EiVwXptaTgqEjJT4Ok3BQanMvYs5OipHwU9eyiqJKHoqQdFFuwf6LG7ola9E5QwDmBgm8CRddEzJ6JmnBMkMEvkVK1o6S8EvWDXsA+iZJ2SWzBHokaOyRq0R9BeZAZvpVte03bkRKuOI4eLdEQmYpxMkPn7IRVARs0RB5oXBpgVc/yd7P1GVe+Z2I2PZPI8YxruzOZvc4EMjrj5HKVv84I/M0QmZtz5WxVPc8RZU8zrgzNxOxmJpGVGdc+ZjKbmAnsYCZE+6oYvKsiMK6K0LWMsWWZIPyqamBWhqj+jCubMrFdmWxQxrU7mczWZAL7kgnRlCp+yAm5za16gRqBEC5U+4o25Iwq3AUyIhDYiUwCK3JGXuSCNCOTz8T3sx25oPzI1WxIrpEjuaAtyXX2JFfIlFwgVzLhtWDgS87ImEBQzmTyuYgve5MLypxcze7kGtmTC9qfXGeDcoUdypVoUcbBo4yBSRlDl3LINuWK8CkTwaicUYG6oKzK1QP1y2blgnYr19muXGG/ciUalvEHkatb0a5XrBUT4Vq1Y+hazsgIXCDXAoFdyyRwLWfkWi5I1zL5THw/u5YLyrVcza7lGrmWC9q1XGfXcoVcywVyLRNeCwau5YxcCwTlWiafi/iya7mgXMvV7FqukWu5oF3LdXYtV9i1XImuZRxcyxi4ljF0LYfsWq4I1zIRXMsZVagLyrVcPVC/7FouaNdynV3LFXYtV6JrGX8QuboV7XrFWjERrrUaf9HDd1cJmUDF5FeG2a1GAbyqEnKqiqVPjeJZ+l72qIqVQ1Ut+1NVyJ0q1t5UVXamysmXKiZXGvHrRMCRKiE/MqzcaBTPUwzZiSpWPlS17EJVIQ+qWDtQVdl/Kmf3qTx6z0jBeUYCvjMSdJ2K2HMqF44zSuA3lVBlVay8pmrNmmOfqVi7TFXZYypnh6k8+stIH1LWbVObPhM9euEqY66jrRiiwjVOxuKcnaUqYC2GyFuMS3Op6ln+brYX48pfTMwGYxI5jHFtMSazx5hAJmOcXKby1xmBzxgio3GunKaq5zmi7DXGldmYmN3GJLIb49pvTGbDMYEdx4RoORWD51QEplMRuo4xth0ThO9UDYzHENWecWU9JrYrk83HuHYfk9l+TGD/MSEaUMUPOSG3uVUvUCMQ2YW+G+iruBU/W1B1DEAipIXrPcRAFkRBKoziU1gITSG1fB3tquvYtyydHIXuAscEc1q7C4imHBQbCDAbCLBxIHvywxj3U9+KbvoDxh2Q8NYfKO5Ao6P+EOIOzLoLbOwukGibP4wl71vTsLUr9Oe+VUcHCLrsdP97bHVyd2T8yTVDo/9i+AxRDI1TII2raJqYQ2oSxdU4B9cEjrAJMcyGKdaVX2Q0zQhCb4jibzxPQpVoJipO01FeCIzTURFPR+U8HZXL6aiimI4q8XRUnqajCmk6qkDTUTFPx8gvMppmhNNREU9H5WI6RomnY8Q0HX8dZ+KFb9VdAarxBxRCDxw6BLQGHJDFGpiFGdgYYSA1uI524zzxrToCQHUEgMIIgMMIgNYRALIRALMRABtHAKSOwFGdrePHhmymRvbTOFUnvhUH+hNOFSAx0J9oqoDGgf4UpgoYDfQnmCogcaA/wUCd2DgdbeJWHuamMaaNHNMmj4kPyUARo92I0W7CaH+e7E95nvhWPC4qSBwEFZ4OggqNB0EFyQPJotDhUWH1fAZQPBbaoXLc8tS27FjIUT2BQRQOj5zj4RFQe000YDtqcuTHRs782MjYcjcC37JIO4qRdo6RdmqRdsSRdsUj7cwi7cgibWgT4r7J+aHOO36eqFOOnyfpbONnkdWgiPzg04ufJ3xmsSO9LVBlKy7RBaWFNryLH+qCBAoBqSoa1CQHhhpQjEjV4aJGHDmSqchIpXqLKiQ/CVSFpFJBsipqk5rkMuUGuWKpBRUvqVzHJHNJRxmqmwQqdFJVzVOTXP7UgJyAVG0K1Ij9gWSyClLJNaK6aSUSewmpXy8k4TDU4GAhNXyHGh0upORGJEdjiiJ4FAlkV6Qm5/plgtfwyla8fLdH4srdTtgd3o+XnXabUztG3W2VC1knvmklDgzr0nH8Bc1BOo2S4H6N55dJurzzy0Rd2fklv6PqiIJw8B1VUzEc+Abni4gwMPkNThZEiKrWilPQW2KfA8Fha7/1+EvMK4ggCRRHVlU0YxuMaVQgslHA+JLCUSZZxDq2aEVctDrcpG+FkuegXcBjg9FecQ4MUfSdq7hXFSNeGcS6IoyyMY6vCSKyVWvFNOgtsc+B4AgaT7EbjtPKCeZT34q3HAqKd4MKEjcgCk/3HgqNtx0KolsKhdHdhMLCjYRC6nrp6K2Z+RnOOaIw3S5chO+Zhq13Ycuv0JxN0sWZs4m6LrOj9dzXd2nnviOqFgPTYIjmwjhNiHE1KybmqTGJ5sc4T5IJPFMmxOkyTHOG6w6FgWevse6QepG/e5rRu4xgWtNCxDxPcJVolivmqQ4vU8F8R06THkWa+Siq6Y8tcg5EnRIhipwNUeWUiGrMi6hRcqT3OlX0OE0Ovdepmlw09jdt8HcNDvmjX2+UYs6koFM6BY1zCl5EgYxCSvmEEmUTSiqXUM+ZhCrlEUqcRahxDqEWMwgVyh96hy3HiXOn/Q5bbnAh9zOV9J2kkDHq1S4h5WwBlXIFFM6U+qYApIkhyhHjlCDGVXaYmFPDJMoL45wUJnBGmBDTwTDlAr7sQ2HgLGi87EPqRf7uaUbvMoJpT+/GMM8TXiWa7Yp5quO5Oc44KzTxLNP8s6zSgNvkbOAWlBQsc26wzinCeswUVilhSH7bjCmnT5JVFlGji+Z+p03lXVOBDGOFEo3lnG/UgtKOVM4+e7of8s4ZZZwLlGsuqCxzNeeXa5RZLnBOucLZ5ErMI+eUQeFFHo4IZ03rRR6WL8T3TwV7JxjkRX7fJQk5F0yjLDDO819PN2H6DdHsG6fJN67m3sQ89SbRzBvniTeB592EOO2GadbxGgSFgee8cQ2C1Iv83dOM3mUE050uSjDPk10lmuuKearrU2Mw1YZoqo3TVBtXU21inmqTaKqN81SbwFNtQpxqwzTV+OAnhYGnuvHgJ6kX+bunGb3LCKY6PSfJPE91lWiqK6ap/m2c5fHJhN9whpHV2UVGT9a5EB6tc+zP1jmDR+gcwjN0Du0hOkd1BoH5czJlK14xKyg+0ViQuKtSeLquVmi8f1IQ3Q8pjG6CFBbufBQS7yr+BvM2Xk3codigy4Oy+4iI9KA6OahwmxBwHmsnxtqJsS5Ditn9PkDika/C062cQuODXgXJh8OLQk9/FRYfCS8oPtv1G1bHGP3XE3zEtGzFR0wLEo+YFp4eMS00PmJakHzEtCj0iGlh9IhpYeER09eeRj6MOrQ9eTPZ382HrfhsTkHi2ZzC07M5hcZncwqSz+YUhZ7NKaxOEaD42NGb0Z9hq2Y+ouDKLpzHrTze88Z4z+V4z/N4eSJBEeM9p2eR3sBEOvFl5M0EHzJ8M64Url3GpfkNrQ8jrVcxYfYNUUiMq7iYmINjEkXIuA6TyRwrEyhBjFOW4HVoRpQvjevQpJ4L1IiVzCET27HibDJ+OFYpr0zg5DIhZli+1G4Icg2vq1Mrzjp1XX2U6oPEkHqGKJzGVThNzOE0icJpXIfTZA6nCZR6xin1Kn8rEKWec5V6VT0XqBErmXomtmPFqWf8cKxS6pnAqWdCTD18tJ0yBFIPH22nVpx66tH2KqXn2E6kwKE98BybbiLCrJ9j02oj5I3n2LTMqaqfY5Pq26bAyXvoeQfZ5rwpHIy5TurY5GsxTwke1f+fmOdkj3JK+ShT4qcHQWSWYhGk50DkJ1JBNJ8C2TcYpruc/b30rfoNgOoZE6AwKcBhD0Br+AFZOIFZDIGNgQNS89eRv6D6FksYkDjVeEvFCjSearwVZQkKnWq8xQIEFE81dmh3jvfCt+K7GgXFdzUKEu9qFJ7e1Sg0vqtREL2rURi9q1FYeFejkPiuxg5dLRc08nru6m12n3jmW3WUgKqxIMJRAodRIoVTV8B18IBs8MBs8M4+9p8/duWc68TYMoxqmWdr2ZiapZyaZZ4aPp0FRUyanc4CyjNkp7OOVnErD2QVvdyFdXc7z1O+CaW4yfaxaXjFRnrFJnsFP5IKinCRjXCRTXKRbZjwPm7lJO1z5uG7iC8JURDSu4jMVYTUu4gsUazyu4gscGz4XUTG5LV4/H5KiFxXH7+zmP03Hb8z106cj99ZIE9Ox+/EwcUMUa0YJ582rhzBxGwLJpE3GGcbMIEN3ITo4obJKPy1z4UKHZl6xV2uBbZ34+TxzoXRm9iuOWX5ppHvG2fzN4FXgCqkZaAKyxwMXhCMH8oBsTSY1MiBxiJhcitFeLkw3kgFXjgqXwnUGLpeR6oqFpMqwYpiqOGocm0xse2cvMoY10uNyS1jTYuOCdpYtznbeoEa5aRWo3Cgj2tSFDiOUeX1Kaoy1rGJiHhswHGPagpvlFOQo0yhjiKvZOlywKkUeFU7cDlANxErnL4coNXGate4HKBlXvn05QCpou1HgYs+qrwiRlV6YmwinDE2YH+MarLBKKf1Msq0akaRDTOo7GgkxnU0vkjXquW0pkaVV1ZS1foam3zNS+RaG1vwihvVtO5GOa2+Qc5rcHzJrhXOtB5H9esZqNbm2OBgBrbW6djocJqmNTuqBxMxrd9BXTWFg2FrrOihjVrXQwNc3aNwcG3SK31s8rXVJ636UW2s/bHR4SUqHwdE+dAStW3VQN8UDlpDPko4n+ATPed4PAAoPsdznlZ+4Ol64jmu8YDomZ3zsJoDC0/qnOO67aja6BMj9EMo9XoyjrXx6o1zGvWhV29czONvvHrjnCPRevXGhRiTxqs3xik66ZWVkTdeWSFOwTr0ygqJKmxfeWWFdArgwVdWSOVQHnhlhTQKqnx7Q0WQwyvf3giUQtt+eyNIKqwH394IKoX0wNsbQeNwNt/eCAqFUrzakGPFYcyvNjiiADZebXCuQtd+tcElClrr1QYXOFz61QbHFCh+JYBCwSFqvhKQFArY4VcCkqzC99VXAlILCuZXXglIOof24CsBSaVAN56F13HlsItn4YFRqFvPwoOgwnvgWXjQKKTNZ+FB4TA2noUHTqFLj45zVDhc9hPbEC5nFC4XKFwuqHC5msPlGoXLBQ6XKxwuV2K4nFO4TKBwGedwjb8cDMGqhEJVMQWqYhWmquUgVYVCVDEHqHIOT+UxOJVSaEZMgRkpheViDMkL34qnKxcYCkDibO+CQgA0ntddhKEDo2sIFzBkIPEkbYf8Z5nLVpy5guJZlgtncSumQkFivgtPc11onOeC5O8FF4Vmv7B6fgooTu8O7ab1mW/FU5aCaggAiesWhadTmkLj9YeC6KJDYXSlobBxxoDUETiKp7MXk/SI9g7FQXd5cuxKDSI9X52cr3AhBnCexk5MVkdlumN2ccWzc3dB5aVvxVPygsR5eOHp5LvQeMZdkDzNLgqdWxdWcwxQvJR7MclPbe9YvhCxo5sws5ucjZtG6m1k6m1y6vFlBFBEUm5EUm5CUk5H14Ot2Ospuh4gMZApuR7QOJBpcD1g1N0puB6QWEPTCT5wN0XvAiQe85qSdwGND3RNhXeBQo9uTdG7AMUH46ajd536VrwZMEXvAiRuCkzJu4DGy//T4F3A6Fdrp+BdQOK1/Cl41zEQvAo9Ha1r/yNlU7QuQPZ2CaD8C21Tsi6k+HaJ4/gTbdNgXcD87RJjZl0+1GVIuGUukmWjIpayIpa5Iti6QBG1YtYFKBcGXaidknP5vO2c69TGb84FKCaec0w8p5Z4jvhmkyueks48JZ3VlDTSh3rqc933qb4vR8Mbf6npEh0Pmb2RBiy+iAMCvokD2F7FAeZv3AD0V24A1nduANkbac521vfct+KLfJfJ+oCnd/su0foA0cSBYoMBVvMSUO22o5ktsJdofYDizeLLZH3A07HBJVofIDoCuAzWByxcR79E63NUS+gpkFv8ZebL0fte+FY8n7hE70OUzycuyfuQgvcBjqcZl8H7gNFpxuVodDAEczpk6tXMS/I6xPRq5qVwO5T4rc1L9Dtk9Ibm5ST/GPYlWZ7P1yY22oiBbloD3eiBbsRA2fdQUgN150MYX0+9tOv0YAbpJkQS2NP0bYikCndLNyKSkHwu34pICjleuhnBAnhfeseMuXJB9Y4ZS+SHrXfMWGZnTO+YMSePrByM0hC5pXGyTOPKN03M5mkSOahxtlET2EtNiIZqmFzVbzKFUuV7T1wDYHOGyGmNk906F55rYjZel7L7mkYWbJx92AQ24yosxaCTLZsgLctU4VumsXmZ0HAw05ONmcKmbQI7d7qTyILw8CptRPPk5iYcjI/yddNa8Wk5vOnN+GSvN4UMn275VSdU9/yUxs7fvOunGgj/V/f9lJZWAXnnT4m0Fqh7f0KDFQEpLQooqXUB9bw0oEqrA0p6gcAWvEagRssESrRSgASLBVJaL1CiJQMltWqgnhcOVGntQImXD9R4BUEtLiKo0DoSbgYHxxC3iUWBgWkjpTUFJVpWgiRWFtTz4hLUvL6gTEsMSrzKoMYLDWhLHZK03KAmHRUbCFNFmX0VtYa1YpPkrijyAoQar0HqUQGhiZUI1I3+UFqPUPtaANWqhPKBALbWJmxyKIB5hUIxLlJDOU38V0LKlv+uj6F4/8mF3d8k3P+Vh93WNmz5dZ6yFa/zFJSu81TXwx4Zom4Zl32rKnSwom1Gfe4B99d47vTYMey0Ieq0cdnpqkKnK9pm1OcecKeN506HZ5Wg55FT96MoxxCawEAC3zZ43+gfjyuKeXCQ7jA0pDQwlOSwoAEMCuhW0l72iYeDUh5MfcwHRmKIhmFcjqGqMICKthn1uQfcb+O50/bYB/TaGXXbBdlvk6HjxraC9aIf3HcXcuftIQzovDPqvAuy8+HP048dDX+enlkv+sGdl3+eftTGByWg65VQxyuW3Ya/ej12EP7qdSR92jd3V/zV61Gpv0AHvTVE3TUu+4t/JHfsHv6RXEJ97gH3Wf2R3L30fqAL23PZ8uMEQ6qXRfCDm4o24avp7+G9T8cawGXf6O/hvRcHFKDQjdD34fABWPi1ivdjpH2rj1t5DDmOVwP1QOy2PgXtk/oBkasx+LAV93WVgw9CvMV7NXbce9DHmbyijo+0Hgt8zAiGYEj2pqoLgWhExg9/EY0Nj22okzxKdWwzSvbia0YwVEOyh1VdCERDNX74i2io+L4kdZKHqt6XrNJwWrdYzGiwBnG4DnU/TV9IyIN25WtfxwM3pVddToN3JQ9/f3I0WX+eXe0+cjrScsKd/2zNSZYbWvzC4fRscm07LVtX+79dC8hN/Dr493UdqG/ZCB3h0PZ03APu2BDtvfKH/OltRr1A1CPjqVu7ihuDtN85Xko9MfIQPrANW1/CVh+3YkdSfe8pXacfO8IXdk8ifsif32b0JaNeIOqm9KK9RD8+MPaVX08/ifghf36b0ZeMeoGor9JMRkm8JlI7rN4SORHaQ+Prtg3+pcH7FufhtM6qRj1fiBtHJK7BnCTlQX7RVtIvkvaa0igaJ1NV9WtzPAhQeBQgPejv2mr8ReO+gXkoqOWx0Gsh4zj4rZCTiB/y57cZfcmoF4j6q84HR4lfDxg7m94OOCH+IL5iK9gXwXrFqMvyNHDU+Bn9sc/pEf0T4g/iK7aCfRGsV4z6LM/+9tqHCV4kr6SLW/GooKB6LRxR/gHjwtORw57in5R1HH/XuCD69eLC6NeLd2xpRzllKx4yFSROigpPJxqFxpOiguRJUVHopKiweOhVUHw69MMkXIKuiA6dnkQh0Jv9XB37xjhsIONMIYE4APYwIPRpAjrGBkgNAKA6R478pF1cXmheWqjtYKRG4nANxzE7zgM3LY3elRQCk2IcDFMwjFNE8mXgm8Zl4JuDl4EjhDDpH4HQYgzZgZ+A0C1S+No/AKEbxFA2fv5BqxTWqN60wsQhJlUFuv5JzRPfijbDf0hzTz+N7rR33E/oToCifTpPlv0J3QkQ3wNyxR3UmV1VcmR3yvYo/0qGFmgsh34lQzfJI2z8SoZW9bhbv5KhZYpG41cy9uoirM6LsAYv8uq7kOvuIp8HLfJJz6Jx0rNon/TEKwL49fkHIbRAu2r/IMTYoP79l21GvUD09ervz+6l2wle6SxbsdoKEot64akKC42LekFyUS8KLeqF0ZXOwsKVztsJ/tndWxwxIOjdnt5N6k1l24pHXXdpsMDTIdbdJNwwNiT/RsTdJN4eNkZHWXcTvBlcye7g9dS23B7FPRR99+QuPuEVEQWh9XxXFHM4xNNdkevAqGe7osAhyk92BQzByreS71K1M8+xw9+7OyZEsdO/d8dijl36vTvmOnb59+5Y4Njx790RhtjhJRcKBMdOXXKpUvpNoWMpcBwP/KaQbiJiqn9TSKuN+DZ+U0jLKdbyN4WkiHFPS4gMZZqD5hIyNqj3zmAODFH0jau4m5gjbhLF2riOsskcXxM4sibEmOL9xtOI+hwIjmD75uJygnfWlmEd3m35H25ahl0t816WegfoXYRgV3gR90ls1ecP8p7bDrdMVzgVh46kK5xPRPu+8T3cr688NwKHrtg1ebkSKXRLPvsRKHXp4LMfS7xqRwi6glftnsRWff4g96D9FAcdi2MvSIHOkAJ9IqVvfhv3kOXc0XC9kBl0LlwvfELtevFZ7sqBx0bqWQf2IR9MG4Ie4PE1fZD3r46vRwktiRDsviLYfTauZcO4lm3j+jzB84PP+FlA6aygXjBr3WGMekuM9xjpq0x94eqi+3Bfv3T//29On5laP3gdP2S43jMUmt/wjTjGMWrqpm9sEa89Bi3ERYxhFcNiuHZIafVqsNRCZ0WL3dw+E7juUGnxF0tJqzettRq6o1rkya+SF8oQpN2zHrgVJ6yg2ktE1jmA4/X3Z0aug27p4+jG6qFs2aUsR3T9ygR76d2/bBm38kDUlfPCU1EXGk+yC5In2UWhk+zCYvYWFK+c75BdOfew/REarMO419FcVphFiGx+EDZieV9v5ZSN0Mr5Q70wudobHmyEC7KraHcjtNvtPjRDNFHGKe2cc+7RvfwayYqvc0tORXum2uNiiJLSuIymPSFF6Vn5UqDG+GW2mphT1iTKW+M6eU3mDDaB0tg45TI/O8HT8Eduus6B4/w2TknunDPdlUMT5LltRCU+nDRQJveZxDoQ5wKjYs9zeEQMUTIYp2JwzsXAf6niWcTXuSUXQ+VQDIaoGIzLWKc/HkE7WArUGL8sBvW3I1iiYmj97QiWuRjS345gTsWQ/nYETcMfuek6B46LwTgVg3MuBlcOTZDnuxFVDHAFizK5zyQWg7h8VZVwUQVLIgqcGFHl8iA1FUnUqVSCeN36VCqbfL/uqRK4hA7er1NtUjmlG1xaOBhBXWDNG1y6ARfbwRtculEqPH2DS6tchEFNpRjUP1ofW7emIRVnVLlESU2FSvrX0wDqMnJZunwpVFZf3+JUzK3roHs9Xi+qYUKUH0j0gATYuAcILzXSKfC4Vf525/iinyF/1oc43SIP6oWdQlUyTWT3JyjHM3NDlhzE8UJAlOrZ+3ha/iKLo7LP32EOJ+5oZSsWeEHVbACJQi88VXehsaQLohItjO4nFhbuJxYS6/MBrPeFkZ1/PfGteNPxITkV8HQz8gE9CRAZESj+i2vOquUAquNwRD9dtoWhnRpxa95mP942THgrnXeb7Xbb9NitMNZtdtNtttAtDm0/kN0VZL/vULbirY2C4nN1e5RvdBSe7nHsaXquruB416MguqNRGN3M6MdaeeJbMa96rBVAItV6qhWgMdX6UCvA/Cf8nI21AiTmWJ9qpQ/z0Od56PM89I156OU89Hoe+jwPvZiHvjEPpQie2pYVgaNYBM6xCJxaETjiInDFi8CZFYEjKwJDVN91QcSsMkSpZZzyy7hKMhNzpplE6Wacc84ETjwTYvYZphTkyywUCkgHQ5SRxiktnYvcNDEnqEs5S02jVDXO+WoCJ224dvM0IkrfxrUbEnMi52s3xHVKi2s3JFBy52s3kXOaw006yHSklOwoUb6jpFIe9Zz1qFLio8S5jxqnP2qxAlChIsjvgohYQbohpWpAiQoiSKImUM9lEdRcGShTcaDE9YEalwhoUCVIqVBQUrWCei4XVKliUNJFgy24blCj0kGJqke8BjQmxZ8TeI75T8gBIOGJ5T95xgHzedafNL9Aw1PIf+JsAorPG/8JPs4kdppdPOHcfeHhSUkDYQdnTENK/j3yerLZZRLHZTiOy3Eel2lpXK6kcZkUx2WYxmWcxoUvSXWaxvEFKY4xSnmcQU9jjWoab5DjmINE4w4ajP0///v/AGoZ428=" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json": /*!***********************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json ***! \***********************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyNnVtzG8mxrf+KAk/nRGh8eBWleZPnItsaD0dXWNvhB5BsUdgC0TLAFgjt2P/9AI2uzJUrV7X8olB/q4CuyspaVX0p8H8mP7V3d83yfvLj5P3fu/Xstnl0fPbsydGjJ89Oz55MHk9+bZf3v8/uml2BvzSLr839/Hr2w+XVYv7vrtnL3WLB8iOQZ3fzxZYL7IRpM7/9tD/r35ubeXe3I3+9ny3m18+Xt4td2R+OT3Zk/ev8obn5Y35//Wny4/2qax5Pfvo0W82u75vVm2b/6V8e7pvlTXPzur2bLYfa/vnP7cPkx3/+cHxx9PiHk5Pzx8fHx08ePzs9/tfjybtd4dVivmz+aNfz+3m73J/q6AiEt5/m15+XzXo9+fF8x983q3VfbHJ0dPKno6Oj3Ul+b3eN2Dfop/bLdrVvx6P/c/1/Hx0/e3r+eP/vRf/vs/2/z476fy8ePb9pr5pHb7br++Zu/eivy+t29aVdze6bmz89evR8sXj0ev8960evm3Wz+rqjHs35+tHs0f1qdtPczVafH7UfH/02X7b32y/ND7tCi0fPXzyaLW/+X7t6NN99wbq7Ws9v5rPVvFn/aVfZX3anupkvb99cf2r6Xuhr8uZ+95HZ6qaou4I/zb78ZeiUi+Onjyf/KEfnJ6ePJ8/X1/tArwbx58aOfzg5ung8eXN/85fpTnzS//f97r9Pnx566+/N/Wp+vQvnP/9nMv3H5MeTi53w+64i6y+zXRT/9zHh5uF6Mbszfnp+fuD/7tpdtK4WppyfPzkoy+7uat9Nt8us3bSLxWxl/OmuW3r+pVld79O+CE+eXByE2d1OWu+i4zU7OYEa9P3ttTs9Hb5vtmqWi+ZjTaKPlWrM1vtvXH/2ij89Gz616NY5ONe70TrLp/i0/fKpWebiu6bM25vM14vZ+lMO1rdm1WbaLpsM7zei5P2nVSPKfmy7laDzr6Lsev4gYPO1EX3bhJh6OsyXIq2u20UrIrRu7uZRsh5Y7E0g0ebf3WyR8e2q2Q1m0cydD657oynK8dHxkNEzkX7PM/qzoYuSiT9l9HP+4C+Ojo8P6Ff/YInAi/xdf8lx+qu3bG+Xe/S3fMaXuf2/+dgr2fr3fMbfc70u89f/kUu9yt/1On/wTY7E2/zBd/mD7w09Oxt6eppL/SOjD/mM/5WjerWbyz4398E3XNxpcaDy56KpnD0xU7mez6/nq+vuLvdHt3ft9W76gTESDC5Uxj42y+gqp8S1MGAxbnODPuZStxl9ylWeZ/TfuV6fc6lFzksRLeE6wve+iGGfTXqV6yUcXsS+yx/8mrN3k0s9ZLTN6BtU9czzKybCyZOjkpWrSvmYjeaMfTbezxc3TQ7JYa6/aTcizmF69qngvl+meXIclxH3cb8uRKO1z2zV5PFx0a7mgq+byrdcd6vdPH7tATx+dgzDZj3vV66piWXZoofVbTffKXftvV467OX+i78jU+hLz36cCyYWULuVnFwP3Mxub9WcduC4FqMVx77vmlUDY//0whZDs9vV7Iuf7fS8ZNbuUqKBjAuu1DfzarYeifC4utKLBeuAqO+uCYZa7VbY8y/r+VpIu7bef2q7sFg0ty/zfkhu77nV7Kuo7Oy6uxf44OUfF81D1ioj6252vWrFia9WjTrxTXs/uw4jzqX5ricxAG5oOA69srsLut2aWyxSu+XtbNXdLWadOE17u1tnfhZfN1uFxZP1y13IWRee+7Ln9GJg7erm426hF1aGvkKJk6wvQCL3M1zCGZ6c2xnudk7XLfAUdrUxE1PezX7Qr9diAlvEE1tKtZHbiqRtctnd+NxdEe/yXkwxf01d6k4QM9Cn/5g3PjXJTvWvi73nq6NcgzJd3My/ziGh/SOxZr5gFoPDqx0/5Cs99SGbIikGNln3F180TKCp+Sv9fGGoOK53xIzGg3+m0kMdfcCvAtJJ/Jph5xFwEXJSnFg19KI4+HW56SFORa7j68KYB95KHZffVQV8eNRyNJqqr/Rlc+xSqvZt0VghnMkqIUNmsvlr9kQbivN49rOLoc6L9luzvBWZ+zqewq/iRpOzGx0kQvThVZtIVpW2XnNb/fonR85O8/ZTuxKtuqSzexgqbvCG+FmZxChsNpo4Yy1ienLr73Csu36VsxL1pRS0KNY42WoxwbtucT//stiKelEDPclDA88uyqXJbHU/ny1u5h8/5r7a1q3h93geT9ixZPllNM1GZp0sWTpVhueyZoO1jPk9BsgnQ/oivP+2WzHgTTi7BFq1n5slXgiZOa6a2/k6Ln19iMbOhuk4jwtzjm43qsP1iAe7soZcVSLTUmR8XFZS6r9ohJ89K2vX/lZXvBFmcf7l/lOGPyUDNDNXvnV6PLTxvjJvNNXZsTYLPq8tH0ayMgbYr5dpaNitCK6UuUKtR2pTT20aXdcGZR7Hdu7RZQnPmGVd0CzuxQ2f+2DS7ombdsQR6/G960RLKOYWKrnO9LFAofcr1bjCeVpuWPQ+vkvg1S6R1/n73qR8ffas5Kte0b4cnX9/ix3nlxL2WEeZYrIFt4wYJue16ey3WG2Lwy5qn2YLmBrKIN9fmtCtbuuLMZdfxmWTp9p3OrAyFJpag26jmWKDhm5Vvar77o1cIFoGy5qflR682dmEeujRxi4CK9SW1sXyZ+dm5zfza2W0P8cvgoXZ2HL399g/Xt1Kv70ez2ulurdWltDPqyYdLwesB6jOZsQjC8pfatM9O4XdIpYNtQVZXAnYt40OhUoV7kfPtGhv9/29bEW427qZdlkqQ3n3VZWRfDt+RQszuce8kr5LOY/bzZ1lXjS759fG+C/d/nHkvx5PXjar5R+z+Wr/EPmfk+f7h9WTxz+cHv3r8XB0cI+ADvWMaDB1hC/i0cFVAsKGoXAZj3IVcOoN3Loq0MP4Dyg4T1CGkAV2uDsU0GHgIHoVjt7ujo5P/LAELbDQflDe7Q7P/agEAFAIAHAIANASAEAUAFAsAMCGoR1Y7yhI3u+OLuxoGrQP+wYe+WFpEjKoO+AuhLXLydBVkqGTydDlZOiqydCJZOgsFsCGWDj5ujs6s6NNONrGo9IiQFDzgQ6FcHQaopAYp3HqnAdrUV4IRMPWuBy7Rb0UqFJLOZRNzF1oEvWjcd2ZJnOPmkBj3DgN9MJfZYRD3hiPexfk4C8yOIAhsgHjygtMzIZgErmCcW0NJrM/mMAmYUJ0ioLBLgqa5lJoHMbYPUwQFlK0LncYm4nxsZwUtmJSJScrBmNyLSeT1ZgQ/aZgMJ2CNhltBSIPMp6NaPADNCJDFE7jZETO2YiK8kIgMiLj0oiKeilQpZbSiEzMnW4Sdbpx3ekmc6ebQEZknIyo8FcZoREZYyNyQRpRkcGIDJERGVdGZGI2IpPIiIxrIzKZjcgENiITohEVDEZU0DSXQiMyxkZkgjCionW5w9iIjI/lpDAikyo5WTEik2s5mYzIhGhEBYMRFbTJaCsQGZHxbEQYGnSjyCmwUSRfIpHNKcgvapxsKorSq0KRyxofa4i0rlgi50rUKWGiqLMmluHUiSp5WhTJ2IL4qsLR4qLAPkeqNLtQBhwvcrK9KCrviyWyAUadXDCK2gpjGfbDqLIpRjU6Y9DAHgOfVsqjUUaB3TKqwjJDga6SCmyeUfzu0BA2GvWxoVEx1FhmdGgka41q9NeggckGvqnwbY2T50YxG68TtF2k1CEokeUGiQ0XxBeaktmiJK0WClxqWq+6NFnUcx6hSlmEks4hLMEZhBpZK0pkrCC9khRNFTFbatCkoUIJsFOkZKYoKStFPRspqmSjKGkTxRJsoaixgaIW7RMUME+gU1kWjRMx2yZqwjRB7mQ3s2Gi9J0kF2aJaj3JK0aJJUaSPJkkatEiQQGDBLqRdKspWSNK2RiH1qMrGqKQGyc/dM5mWJQXApENGpceWNRLgSq1lNZnYk4JkygfjOtkMJkzwQTyOuNkdIW/yggtzhj7mwvS3IoMzmaIbM248jQTs6GZRG5mXFuZyexjJrCJmRAdrGCwr4KmuRQalzF2LROEZRWtyx3GZmV8LCeFTZlUycmKQZlcy8lkTSZEXyoYTKmgTUZbgciLjGcjKnVFJ3JGAXWBvAgENiOTXihGduSC9COTLxWrVVZakqu5/12jBHBBZ4DrnAKukC+5QMZkwivB0JocsjeBIs3JdHAnZ2RPLih/cjUblGvkUC5oi3KdPcoVNilXoksZB5syNhXl0KgcslO5IqzKxE50IZuVC6PpKuzKtVq6VgzL9Wq6JstyJXqWcTAtYxvBtoqRb7mQjatUDI3LGQXXBTIuENi4THqhGBmXC9K4TL5UrFZZaVyu5kxwjTLBBZ0JrnMmuELG5QIZlwmvBEPjcsjGBYo0LtPBuJyRcbmgjMvVbFyukXG5oI3LdTYuV9i4XInGZRyMy9hUlEPjcsjG5YowLhM70YVsXC6MpqswLtdq6VoxLter6ZqMy5VoXMbBuIxtBNsqRsblQjau1fBDH16FQiiwBZNlGWbDGoQXmZBZFSytahAvM9HVkyZVtNznRaEeL1j3d1G5twsnayqYjGnArxJBUyqILcm4NKRBBTsqhMyoYGVFRctGVBSyoYK1CRWVLahwNqDCo/0MFMxnINNUBo2nILadwoXpDFKXuocNp+CRxBNmUxSdeBWjKWol8ZLJFB4tZqBgMAPZJLLNhKyl4GwsQ7qjsxiiEBonb3HO5lKUFwKRvRiX/lLUS4EqtZQWY2LuapOor43rzjaZe9sE8hnjZDSFv8oIrcYYe40L0myKDG5jiOzGuPIbE7PhmESOY1xbjsnsOSaw6ZgQXadgsJ2CprkUGo8xdh4ThPUUrcsdxuZjfCwnhf2YVMnJigGZXMvJZEEmRA8qGEyooE1GW4HIh4wnI/rzkJvHfuSdYSjED3joHqMlaoAoYKBYrIBZmIANEXJy+F2vxz+cGBl+uqugn6DQqRErNKDyShyVLJiLD8OfixecihdrTh8wgT7y8w49t+7pj2Jn9qi4OKDQR8BTl/e09BEg6wlg1hPAhp4AUizVkXvBz4MNuLZ3gGd+VFoHCKrstATQv9YiN6DSCRA+QxRD4xRI4yqaJuaQmkRxNc7BNYEjbEIMs2GKdeHvcximuRSE3hDF33juBM59Ol/qjn4fYeyOgrg7CufuKFx2RxFFdxSJu6Pw1B1FSN1RBOqOgrk7Bv4+h2GaS2F3FMTdUbjojkHi7hgwdcevQ0889aNyKkAl/oBC6IFDhYCWgAOyWAOzMAMbIgykBNfRzBYU/VFcQfWotACQWE/1PC2lehpXUT2iFVLPaHHUs7Au6klpgaPSW8eOfIXRH8VFTI/iyv+A8pKm52k1c6C27S/guL7pEa1dekbLlj1r41Guc1upYCsr2OaatHKR1Suijm1c7vcorvR/xTEB0V/tx+W5HZkzOSrRRxQW+wfhb8MIO6w+/oYjDFDJT0AhUsAhUkBLpABZPIBZnwEb8hNICZGjWTzKLZjlFswqLZjJFsxyC2aiBTPRgllqwSy3IK60/paXWHvUhY90uZldpU2dbFOX28QXCaCI1naitV1o7cvJ4Tr83I+i/fVIeF3Pk9f1NHpdj+TFYq+QC/asjDpA0fJeDv525kdx7n+J/oYoz/gvyd+Qgr8BjtP/y+BvwGjSfzn4GxzlOreVCraygm2uCfsbKKKO5m+A4trj5QSviV9O0uXwy5TVwJMrv5yk69+XIqtBIVd+OckXvC8nfK27J9uQLduc1ducvcGAcVyQQF9GqhotVOS7p6YxRKoeTlSIRxbJNMhIpfEWVUgPEiijSaUByapIfSqSRwEXyCOWStCQIZXHCMk8pKPcVoXRsMgxT0W+13B2AlK1KVCh8bazVZBKrhFVMBASyEtIVbZCRbLDUAEyG1K171AhtiCS2Y1IjsYUxW1thLFdkZrs47fJcGP52A/tnjKyeDvZlffxcH9ZeWFH/d3VMz+0e3nA8Kad4/ijr1ky/sT41oL1GwYCUOrz38Ke6mNiHIfanmqS3wsGYQk7js+IcYDkjmPSaqEKOscLd+lSLDhyapfuIJV7LRg+Yxw+F2T48NYRMwgf3jsqLU03j5Igwle0WviCzuEr4jbHgsNnXIQvDM4QxKikUJKsAxoKva8qGNwghBBHJQU6yircoUQ16LlUCn0yQhnN1A1VIxwKDNNU6AZj3AEuyNAX+b1gEO6CMNDGOMQmiOAWrRbWoHNAi7jNseAgGk/h2y154W5DfxQvYnsUr9V7JK5re56ua3sar2t7RFevPaOr156Fq9eexGv1y6Hvz/woLjsvc3+78N5m1Muhjz0u/9gdPbGjD9b/l9jNgKDpTsttBD+l3UYYUPFp6AZD1BfGqUOMq14xMXeNSdQ/xrmTTOCeMiF2l2HqM5y/KQzce5XZm1ToR5y7TyOCHsXp/IIQ9a2azEmiXk6P/QYe9k5Cf0dOnR5F6vkoqu6PJXIORJ0SIYqcDVHllIhqzIuoUXKkndwqepwmY/u4VRFImLRt+VRwSJ20nflCcUqi6mZmpVM6BY1zCjadQUYhpXxCibIJJZVLqOdMQpXyCCXOItQ4h1CLGYQK5Q9tWc1x4typb1jNBSBvaMfmaaKQM7SP8yJTypfKLs6sUq6AwplStgRBmhiiHDFOCWJcZYeJOTVMorwwzklhAmeECTEdDFMu4MY+CgNnQWVbH6nQ/7jl7TQi6HncBXdBiPpc7YEjiXq7YO7qeJsDe5wV6niWqf9ZVmnAZXI2cAlKCpY5N1jnFGE9ZgqrlDAkv63GlNMnySqLqBAkEymQU6RAapECGcYKJRrLOd+oBKUdqZx9tocH8s4ZZZwLlGsuqCxzNeeXa5RZLnBOucLZ5ErMI+eUQWHHHkeEs6a2X49lyJSwhe2UGGRH2NZ2wYwyQm5qY42ywDj3f7nchO43RL1vnDrfuOp7E3PXm0Q9b5w73gTudxNitxumXsfbEBQG7vPKTQhSocfxFsRpRNDfeFfighD1tronQRL1dcHc1eWVUOhqQ9TVxqmrjauuNjF3tUnU1ca5q03grjYhdrVh6mp8sZvCwF1dea2bVOhqfOX5NCLoanwL+oIQdbV6B5ok6uqCqav/GHp5eCX9D+xhZKV3kcUXf0HAe2KA7dVfYP6GL0B/xRdgeccXUOlBYLPQMntDBVB8i7BH4sldz9Pjup7GZ3Q9omduPaOHjD0L7wn2JD5w+wP67fipocYyqT+KD5V6VBIUUX583fP00OlA4Ykr4Pj8ukf0PLpn9L7bnrXxKNe5rVSwlRVsc034cSgooo724BNQfDr+B46OIfqvJvgGfH8U34DvkXgDvufpDfiexjfgeyTfgO8VegO+Z/QGfM/CG/CvJ4e3Hk78KLp2j4Qx9zx5ck+jHfdIvsPUK+TRPSvxBxQd+PVgvqd+FF9tfJ0t14V3NoheYy8BEqP8NfUS0DjKX4teAoXG/+vQS8DC+H8d5ojXYXp4PUwDrn2II+g1mf9Ayy1K6H1DlALGVR6YmJPBJMoI4zotTObcMIESxDhlCd5kPiVE+VK5yUwqZI4hSh/jKodMzIlkEmWTcZ1SJnNemcDJZULMsHwf3dA0B+JDLsVZp26aD1J5sgqpZ4hSz7hKPRNz6plEqWdcp57JnHomUOoZp9TDB+ynhCj1Ko/XSYXUM0SpZ1ylnok59Uyi1DOuU89kTj0TOPVMiKmHLxBQhkxzID7kUpx66u2BIqX3/U6kwGk48r6fLiJSUr/vp9VKelbe99Myp6p+30+qmLb6jYaKKlM4lMFEjgKnc1RlUsciIrVjAU7wqFbSPBZKyR7llPJRpsRPL3rILJ3WQvmh9ok0IKpveRwKvJnwPsg3k7QP8g0/6yTMxXmbF+FUPG1xTEL6SGgWfyyI9NFdfuO1bH9I17I9o2vZnqlr2V7I17I9pmvZnvG1bA/5WraH8Vq2R3Qt+3YwsjM/iiPpbbIs4GnMvEVzAiRHx9tgQ8Diu6Nv0XAczWIjZqIH7Br8iaNaB8x0B8xEB/hlOHyviv8sx98uxP2j1+0CfPgtJCN8jqrQiNbaxXlgleY2urnh+hx5CYNXuxFRaFQUPm2/fGr6ennntbFIK5rT1qre6qq3oqf40h0lUX27dsdyucP84t2LrehQNGgl+of2cIGybu7mOTO6WKgTp+lqcet03DoRN37RGSURt051e5eTfxMPt3QoGoOvnA3nww3WpWTaYZ0E9mK9xzqpImRpl3USkj/nfdZJoWClndYsgGenqx/myr3V1Q9L5OO1qx+W2dHT1Q9z8vbCZ6LZyeVNIKs3Ptq/yvRNq/Vvsn8Tqt3LE4FxMhdf9YSBz4sh/hpVyzRDmMA25MJYqNSE4ZqYNUykqcN4LYx5EilKmkmK0IrCaU4xYbSdanYxrZYStXnG9Fpb04xjQiUz0txThJVitRCkqcgFOR8VWUxKRepE8TQ9mTDaBWqiMq3WBbUpy/RaF+TJy5TKqN0ItlWs1nw1q4ULjjC3RSV9Z5TTPBdlHfdYRkU/lkh9EOU8/0U9BzzqHPaophkx3ZQ5kwLPjiM3ZXQRMVPqmzJarcyalZsyWuYZVN+UkeqsGrI8p0aZZ9ao/gcZJWfZWGI8o/KMG+XvJFSafaPKTkv3BaLbyZsG+ovr7clzc5STO5P8/ZDL2ZpKqDk7FuGZO6rjnSJm8aDnuTzIbfWDeV6P8n8QHTnHxxLjCVmd72Op8QjluT/Ko3mZ1wFBXtWV8fDllQHJen0QCqlVQijQVT+aVwxR/g86V64eYonxzq2uJGKp8c4Vq4qoj3rSpqps68p46PKa492w0DjzozhHvsMFBSAxV76jhQPQOCu+CwsEYHTv+x0sBIDEKe7dhF8/ejdJbx6VJwPY1rRDijm1Wu+QYjG3P+2QYs6RyDukWIgxSTukiFN0KjuLwuMRjJPeWSRFitjIziJZIsdO7yySIkexsrNIqjGeemeREimyY5ts4NESBldtshESBba6yUboOahqk42QOKByk43QYjDVJpssUSDrO1DKAziMYdqBwpyip3egsJjjlnagMOeI5R0oLMRYpR0oxClKlZ0b73h7Ql2hgNV2blRkFb6RnRuVEhTM6s6Nis6hrezcqKgU6NEtC6xy2MOWhcQo1HnLQhJUeOWWhaRRSMWWhaRwGNOWhcQpdJU3/J1zuOyPHTxXjMLlAoXLBRUuV3O4XKNwucDhcoXD5UoMl3MKlwkULuMcruEH3J9nQqEqmAJVsApT0XKQikIhKpgDVDiHp/AYnEIpNAOmwAyUwvJ+CMlTPyrhABR/S/R9CgPw9Fui77H5gOi3RN+HZgMLvyX6Hpvr6EVoz4vYcz2KV1wuXMajmAo9Ev3d89TXPY393CN5y6pXqPd7Fm9O9Sh27x75b8T2R3G7QY9KCACFhgBPmxJ6WhoCyKoLzHoM2NBjQEoLHJUr2zMg5TbQeUGxk5ucmHaPB5FOzEYmZrh/AzjnayPytRH5andkHLXxKDejrdS5lXVuc+X4Tgoootp2ywRQHlNwb8Q6BO9JeM91oWe7nI1dJfU6mXpdTj2+mQCKSMpOJGUXknI6uN65H8XXtaboeoDELogpuR7QuAtiGlwPGO3HmILrAYnbH6YTfHVyit4FSLwkOSXvAhpfh5wK7wKFXnyconcBiq84Tie452eK3gUo2vc0eRfwZMJT9C5AZLXT4F3AwgQ7Re9yVJzqqZG9fupHpU2A4jub02RUwNPvA03ZqADHX9qbBqMCRj+XN0Wj8oa1oUCbm6F+CXpKRgU0V07/EvQ0GBWw+EvQUzQqR2ZU3h9dKNDlhqhfOZySIwHNDdE/YjgNjgRMxD/+RuGebMM42ebxvE3j9sNgZMMPZX1AJ0NmDzSBxbvAIOCtX8B2vxeYP6QE6DdtAZY7tYDsGaSzvaU9PbcjmyodxanSOU6VTm2qdMRTpSs+VTqzqdKRTZWG+mXLmTXCHwUCiwuyD8nUsGz+lbIPaGvIaPr7EHwNC5b4A7L4OyuT+xMgw7LMC9FnGtFcf/iGrNLeRrc3PlsDLuLQiDg0Kg78wGzP5mE4zeO46xFtVv4weCV8RyuC0NYa3OoGt6Jh6RkZSD74ANrjMGCio3115wxXd54AXRyhnbCXrmYlnbaSTlhJel4EknKZTrlMRy6DDy0S44akxxZJkM1UDy6Sxg3Ojy6SktrHDy8SZz/F7YWDWaXthcyVvarthSyR0da2F7LMlpu2FzIn8y0cHcoYD0kTyIuNy/Fqqhi0pvHINYF9yYRkTqaQUxuPF9HGacTyMyv+GlXL5OAmsI27MBYqZeiuCVc3sRbH5O8mVOOYnL4IYPeGyPONs/EXoRXfm6YAE0aDpSYD02rxqE0LptfileYHE3iSSE85WRDTRZFwzjBW81s9e5g6YqtpHjGhMpmYXrXdPK2YQrZLjyMV5harB5JKkwGpPJJUModFPpRUYmq8eCypJJ55QIPJBynNPyipKQj1PAuhShMRSnouwhI8HaFGMxJKNCmBhA6MmK0CNZqdUJJGggWEl6DMdoIaOwZqyWRRpPkKJZqywvPqYBziSbb4vkrV0/SFGs9gQftOONU8FmQxlaE+Eu40oaE2Fu40rYEGMxtSmtxQ4vkNtFafI81yqH0voGquQ3kkYLUZD4ukCyIUeeJDjec+9fqE0MQMCCpOgohHZgU9FWKBcedPEyJqlTkRi4xNDnlmRDFODvudwl8tq/ZHm3DkP5feH8X7cz1K9+GKZeL3FrTJaJs/yKcxns81WDCeq6BNRtv8QT6X8Xyu8M4TnDDwTYVvK9/D549irgR0JVQB6EbSrfwGPjlK+dTlJRw4b0GbjLb5g3w64/lc9i4FnMzYRrCt+Cyfz4V8QnsbAU5obCPYVnyWT+hCPiH8zfuTQDaJbNOn+ETib94PCv5Z65OINhlt8wf5VOrPWh+kqx292luLHcUXG/ZkYefsj+KE16P4/B+E+MzqapLekLia4J8YvEIHBySetF2RXwONT9quhDuDQk/aroIXAws/nHgVOudqgk8XrjD+gFJdr3E5dl7I56B/VpG9TnchzgP+nEvq70l7Ns8D/pxLVr4n/bJF+SYTPqvS+tsOU/5k/WV2vQ/h+UD7L85/R+Qoy6TlSMULb0NfbVTEkbY/egjaNmjU2zzQBqo7zTDXByfk0/gNm/ylD7nUNpfiiqo5epB0ahjm2hYOtcWdiPSlD7nUNpfi2qqdiUVSbz2Xqsm3npWIldfLg8gfKuW3lfKpQbVlw6Cry7ZzVrhFtNY4TV+1kSd4kGW3siy3o7ICKapfxqVmgJTaARo2BPBGn+RBl97q0qkxqOXW8LvOQ23Tu87EoQV5+WXoIZfa5lJcY7UiG6T01utQrfzWKwtQYbGEc/Ygym1FOa60XNYNWnr5dKhcfvmUBai1WAc6exDltqIc11quDQ/ax8nhftSpH8VFWI/K3SdA4l2JnqelWk/juxI9ojciekZvRPQsvBHRk/i2x0eIuJPdeFg063V/8+NpgfFDTW4ovZFzQLqh+Y2cA01v5PQ4t5/fyOmZaH8bj3Kd1es3PZcVbHNN9Os3vSLqSK/f9Ch3CP1F7o95CfQkCgM9rJr21xf9Nks/svsjjuwmHqC4hfIglMvslUD0tcbpu52rE4j9oVKgk9V2h2pVnDj+jTnx5+X0X5b7PIyEEz+KfvEZRwKifDnzmUYCUhgJgONVzucwEoDRtcznYSTAUa5zW6lgKyvY5prwSABF1LGNV4mfcSQMKO9a1wK1pbJnvaKKRtd3rFcK5L6q7FfXKkentl9dym1VGA2L7O36ZnRdYLRZlXSo7UTXMiVJZSP6Qb2bDDeI/Sh6Ro/ET5X3HO8CO40/Vd4j+VPlvUI/Vd4z+qnynoWfKr8bbOiwqrlDGwKEtevpMjR2mRu7rDR2KRu7zI1dVhu7FI1disYuU2PjfcJlaPoyN52XigMNj8SPIqIgVB6Ik5jDkR+HE9eBEQ/DSeAQpUfhEUOw8BKfAsFhU5f4gxR+FekoIopd5TeRSMyxy7+IRFzHLv8eEgscu/RzSBFD7MKPIcVAcOzUDYci5d+KOFICx3HslyJkERHTyu9ESLUS38qvRGg5xVr/SIQSMe75JyJUKFMfVH8gYihQbm1DHxii6BtXcTcxR9wkirVxHWWTOb4mcGRNiDHNjwOWeO+fAsERVPf+D9JuvUB3+/eEbtC3w4n9I5tw5NdKbVhFt3kV3cpVdFmccFXSjVHiUCm8MUroIZ9nKxBVtP7wspW3Gs+ExvVOtxqHmqZbjYo/VCqwrXFq0HeeUML6jtukbjVmCdpDtxozfZCn3WpK7Rh92NnyzbmziLn+eHNuqCbenCP0kM+zFYgqXH9c2o7u5meV604yNIGUTVV5qFZlW1eoeSznVlY23rf5FiQL0KZwC5LZgzjZVjGq+8iT5XKx0d/ROz+PqHwNc9vQSDzuaiQRTs2S7W8k7pscSfCdjiSU7Y6Ebc9j5FcZXQtUCUN5VJh5eeyXlCExnkV8k0ve7Bo+u89cVKOpVK+pVK8Z66Wm3kvxj4WRVunBptaDTa0HP2YkOvS2koHxFhirnzKaC1SJ53wsbvN63OaV2MxrsZnXYvPfGYlSn0djsBCo0uDF+BfZX1aL/C4j0cZl5ZzLStIuR+uyrIzvVqDKidux3m3rvdtWejf9mTqSa53fVsLaVpr4RaAyzZDN/DsXXQlUCdCq0jOr0Z4REVtXTrCunGBdtdP16KkVGv1AJ1Clrt1YtnT1bOkq2cLXVSzXsqWrWUWnJ8L9QuMizvubjPx9eUPbXMoWGcyh+SR9yzX6Vonwt0o2fBOzkP7bp4Z52YUXmcfxGzYZwZorv4bWVl5Da+uvoX2Bip6eF+IPvwxtw0foBF/0dw/fUnt3KOo1sbyOdHjcRl9l6pmri+bjffnSw/9/OL8wtXywX+UcZWwrnayFaoqvXOmPuYUJzfJKadEecol1BY+ccD1yQrQ2pX63OkNfHIbZaljFH/tRvC20wrU7IHGTaEUrdqDx1tAqrNOB0R2fFazOgdgL84aGl+JOARwGy7mR3aLtMEhXsFwDgu0B7M0BOLQGSGkMoNIWR/EgdJTzRThI9VzUPjZ4nZPdmurEDpbhYPhWIEO+IcHzAB+C7+QLxt0syQMP+xS83O47z/wgnMt5h83pUig63WWd6rIudRnNniDkvuxyXw5zpYOv2LxtOBhqDsSrOMByRw2GoiEaj8ZpUBpXI9PEPDxNojFqnAeqCTxaTYhD1jCNW7+xicnBtzvPI/ZhbCQmhmGRHaalFDEl5olhygnjlBjwijETNW6LuMhEN0qOfhOjBRTsPlDIMpPoCIajLTgW3mBiNAi7TZ06mK2i8OwXRXFzMKKcAx56Uig6HVVlJOKJJys6VbSvpMedzCuJFG0G7u1TaLaZRNcRt+wHJfytJkJkPekvNTFX1iP/UBNJZD35zzSxwNaT/koTYbIe+iNNp0yD9RTs1mMk5pNhkU+mpXwyJeaTYcoY45QxsCuBiTKNIi4y0Y2S1mNitJ6C3XoKWWYSrcdwtB7HwnpMjNZjL+OnDmbrEX8biT7h7mJEWQ+8M0Ch6HRUlfWIFwZY0amirSe9LcC8kkjReuBVAQrNNpNoPeI9gaKEp9doQFFgG4oqm1FUpSXFIsKYYgG2p6gmk4pysqook2FFkW0rqJSppEULCyIYWeSUo1FUmRpL5HyNOmVtFDk7o8o5GtQql5YViixqfCwU2gpjETLEIIItBr6scbLIKJJRkqjsMhYh0wzil0p6JQMNqrDRoINfRi4tlV8lkiFle62/SKRLfCd12XDH3iLSZUbTO1mweoVIal8rId7WOFlz7fWhg563VoktVeVNhuEjfP02FEqrfuLwDXpv3TpN3sTxGyobLtfiT4knBb9Hemr5hB4RUoXv9LFBWziHo/3fzGUS7wY6Frf6ivg+kandfy1k/+fjn0VSZlrCMENGpdzoHe7gnmZxUA73hb8O0/zBbL7i3A6oTOiA4jvYzvHFa6f2trUjf3vamb8u7qzsY3Zir04bKonw1NoU9Sa3yd+tB6Tb1Mg2xVfnHeemNqKpjWhqG49yndtKBVtZwTbXJL3X7oqoo7/B7ijHnn5vd1PWjed2FN/v24QVoqO4LHSe3gLchAWgI1/1OfOlnrOyvnNiizpDJaGeWJt80bfBhAIUt/FsUkIBT+vbDScU4LjW3YSEAkar2s2QUHCU69xWKtjKCra5JulneFwRdfQf3XEUF9QbTKhD8B8muH3vAYMPKG7fe0jBB56etz1w8AHHTXMPIfjAaPvetriqH9lodmSu6kjsbNmyqzqNe1i20VWd0SacLbqqk7ghZYvT65GhWKDJjaItS9tsq85lo8SOpG2wVUeirbzhaFts1Y9yndV+oi3bqtNcE71daBtt1VncGLQNtmrIly9D9PGBxAkhalN6IMFcNVg9kGCJmp4fSLDA3cEPJBhTHNLSlWIhinJOGqfEdD4SC5GiLuU8Na0Sp5SxJtTi1ApUaaDMYhPrDeF8Nq6T2uRaWzi9jVf6NiU6vDINuY6UIoASZTxKKj6o5xChSlFCiSOBGncsanEMoEKhUr+rkYOlP8DjASUaEkEaD5YYGEHNYwPleizTCEFtJJatpvW2y9GC+mgDecygpIcNlhhpIw8elOpJwUPoW1mvnttRXIN/C+tVQHkN/o3Xq0Bxveo4Ls2/xfWqM1qafyvrVT/KdW4rFWxlBdtck7RedUXU0derjuK1wjeciRhR/dNMlLhonJqJkpT7Ic1EzLm1eSYioRWo0kDZS2omYqlS2Uqn5ZmIBeq+NBMNvNyvUoiaaJz60Llouom56S7lPjSNwmKc220C92ERWoEqDZR9aGK9IdyHxnUfmlxrC/ehcepD/BWkGqamBo36M2oiFKFADkeUc98GnUIWNI5LELmfUWwreCQIss9DgfGGct8HTfd/KDLWVs6DoEEu/Ot//z8nhUqv" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json": /*!***************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json ***! \***************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyNnVtzG8mxrf+KAk/nRGh8eBWleZPnItsaj0ZXWNvhB5BsUdgE0TLAFgjt2P/9AI2uzJUrV7X8olB/q4CuyspaVX0p8H8mP7V3d83yfvLj5MPfu/Xspnl0enH05Nmjs6dHz84mjye/tsv732d3za7AX5rF1+Z+fjXb426xUHh2N19shTBt5jef92f5e3M97+525K/3s8X86vnyZrEre7Q7Xv86f2iu/5jfX32e/Hi/6prHk58+z1azq/tm9bbZf/aXh/tmed1cv2nvZsuhbn/+c/sw+fGfPxw/efL4h5OT88fHR0dHj5+dHv/r8eT9rvBqMV82f7Tr+f28XU5+/GEng/Du8/zqdtms15Mfz3f8Q7Na98UmR0cnf9p90e4kv7e7Juyb81P7Zbvat+LR/7n6v4+Onz09f7z/96L/99n+32dH/b8Xj55ft5fNo7fb9X1zt3701+VVu/rSrmb3zfWfHj16vlg8erP/nvWjN826WX3dUQvVo/n60ezR/Wp23dzNVreP2k+Pfpsv2/vtl+aHXaHFo+cvHs2W1/+vXT2a775g3V2u59fz2WrerP+0q+wvu1Ndz5c3b68+N30f9DV5e7/7yGx1XdRdwZ9mX/4ydMnF8dPHk3+Uo/OT08eT5+urfaBXg/hzY8c/nBxdPJ68vb/+y3QnPun/+2H336dPD7319+Z+Nb/ahfOf/zOZ/mPy48nFTvh9V5H1l9kuiv/7mHDzcLWY3Rk/PT8/8H937S5alwtTzs+fHJRld3e576abZdau28VitjL+dNctPf/SrK72SV6EJ08uDsLsbietd9Hxmp2cQA36/vbanZ4O3zdbNctF86km0cdKNWbr/Teub73iT8+GTy26dQ7O1W5szvIpPm+/fG6WufiuKfP2OvP1Yrb+nIP1rVm1mbbLJsP7jSh5/3nViLKf2m4l6PyrKLuePwjYfG1E3zYhpp4O86VIq6t20YoIrZu7eZSsBxZ7E0i0+Xc3W2R8s2p2g1k0899ds+6NpijHR8dDRs9E+j3P6M+GLkom/pTRz/mDvzg6Pj6gX/2DJQIv8nf9Jcfpr96yvV3u0d/yGV/m9v/mY69k69/zGX/P9XqVv/6PXOp1/q43+YNvcyTe5Q++zx/8YOjZ2dDT01zqHxl9zGf8rxzVy91cdtvcB99wcafFgcqfi6Zy9sRM5Wo+v5qvrrq73B/d3rXXu+kHxkgwuFAZ+9gso8ucElfCgMW4zQ36lEvdZPQ5V3me0X/net3mUouclyJawnWE730Rwz6b9CrXSzi8iH2XP/g1Z+8ml3rIaJvRN6jqmedXTISTJ0clK1eV8jEbzRn7bLyfL66bHJLDXH/dbkScw/TsU8F9v0zz5DguI+7Tfl2IRmuf2arJ49OiXc0FXzeVb7nqVrt5/MoDePzsGIbNet6vW1MTy7JFD6ubbr5T7tp7vXTYy/0Xf0em0Jee/TQXTCygdis5uR64nt3cqDntwHEtRiuOfd81qwbG/umFLYZmN6vZFz/b6XnJrN0FRAMZF1ypb+blbD0S4XF1pRcL1gFR7y8ZDrFZLOZf1vO1kHZtvf/cdmGxaG5f5v2Q3N5zq9lXUdnZVXcv8MHLPy2ah6xVRtbd7GrVihNfrhp14uv2fnYVRpxL811PYgDc0HAcemV3l3O7NbdYpHbLm9mqu1vMOnGa9ma3zrwVXzdbhcWT9ctdyFkXnvuyZ3fdOnz56vrTbqEXVoa+QomTrC9AIvczvIIzPDm3M9ztnK5b4CnsamMmprzr/aBfr8UEtogntpRqI7cVSdvksrvxubsi3uW9mGL+mrrUnSBmoE//MW98apKd6l8Xe89XR7kGZbq4nn+dQ0L7R2LNfMEsBodXO37IV3rqQzZFUgxssu4vvmiYQFPzV/r5wlBxXO+IGY0H/0ylhzr6gF8FpJP4NcPOI+Ai5KQ4sWroRXHwq3LTQ5yKXMfXhTEPvJU6Lr+rCvjwqOVoNFVf6cvm2KVU7duisUI4k1VChsxk89fsiTYU5/HsZxdDnRftt2Z5IzL3TTyFX8WNJmc3OkiE6MOrNpGsKm294rb69U+OnJ3m3ed2JVr1is7uYai4wVviZ2USo7DZaOKMtYjpya2/w7Hu+lXOStSXUtCiWONkq8UE77rF/fzLYivqRQ30JA8NPLsolyaz1f18trief/qU+2pbt4bf43k8YceS5ZfRNBuZdbJk6VQZnsuaDdYy5vcYIJ8M6Yvw/ttuxYA34ewSaNXeNku8EDJzXDU383Vc+voQjZ0N03EeF+Yc3W5Uh+sRD3ZlDbmqRKalyPi4rKTUf9EIP3tW1q79ra54I8zi/Mv95wx/SgZoZq586/R4aON9Zd5oqrNjbRZ8Xls+jGRlDLBfL9PQsFsRXClzhVqP1Kae2jS6rg3KPI7t3KPLEp4xy7qgWdyLGz73waTdEzftiCPW43vXiZZQzC1Ucp3pY4FC71eqcYXztNyw6H18l8CrXSKv8/e9Tfn67FnJV72ifTk6//4WO84vJeyxjjLFZAtuGTFMzmvT2W+x2haHXdQ+zxYwNZRBvr80oVvd1hdjLr+MyyZPte90YGUoNLUG3UQzxQYN3ap6VffdW7lAtAyWNT8rPXi9swn10KONXQRWqC2ti+XPzs3Or+dXymh/jl8EC7Ox5e7vsX+8upV+ezOe10p1b60soZ9XTTpeDlgPUJ3NiEcWlL/Upnt2CrtFLBtqC7K4ErBvGx0KlSrcj55p0d7s+3vZinC3dTPtslSG8u6rKiP5ZvyKFmZyj3klfZdyHrebO8u8aHbPr43xX7r948h/PZ68bFbLP2bz1f4h8j8nz/cPqyePfzg9+tfj4ejgHgEd6hnRYOoIX8Sjg6sEhA1D4VU8ylXAqTdw66pAD+M/oOA8QRlCFtjh7lBAh4GD6HU4erc7Oj7xwxK0wEL7QXm/Ozz3oxIAQCEAwCEAQEsAAFEAQLEAABuGdmC9oyD5sDu6sKNp0D7uG3jkh6VJyKDugLsQ1i4nQ1dJhk4mQ5eToasmQyeSobNYABti4eTr7ujMjjbhaBuPSosAQc0HOhTC0WmIQmKcxqlzHqxFeSEQDVvjcuwW9ZVAlVrKoWxi7kKTqB+N6840mXvUBBrjxmmgF/46IxzyxnjcuyAHf5HBAQyRDRhXXmBiNgSTyBWMa2swmf3BBDYJE6JTFAx2UdA0l0LjMMbuYYKwkKJ1ucPYTIyP5aSwFZMqOVkxGJNrOZmsxoToNwWD6RS0yWgrEHmQ8WxEgx+gERmicBonI3LORlSUFwKRERmXRlTUVwJVaimNyMTc6SZRpxvXnW4yd7oJZETGyYgKf50RGpExNiIXpBEVGYzIEBmRcWVEJmYjMomMyLg2IpPZiExgIzIhGlHBYEQFTXMpNCJjbEQmCCMqWpc7jI3I+FhOCiMyqZKTFSMyuZaTyYhMiEZUMBhRQZuMtgKRERnPRoShQTeKnAIbRfIlEtmcgvyixsmmoii9KhR5VeNjDZHWFUvkXIk6JUwUddbEMpw6USVPiyIZWxBfVzhaXBTY50iVZhfKgONFTrYXReV9sUQ2wKiTC0ZRW2Esw34YVTbFqEZnDBrYY+DTSnk0yiiwW0ZVWGYo0FVSgc0zit8dGsJGoz42NCqGGsuMDo1krVGN/ho0MNnANxW+rXHy3Chm43WCtouUOgQlstwgseGC+EJTMluUpNVCgVea1qsuTRb1nEeoUhahpHMIS3AGoUbWihIZK0ivJUVTRcyWGjRpqFAC7BQpmSlKykpRz0aKKtkoStpEsQRbKGpsoKhF+wQFzBPoVJZF40TMtomaME2QO9nNbJgofSfJhVmiWk/yilFiiZEkTyaJWrRIUMAggW4k3WpK1ohSNsah9eiKhijkxskPnbMZFuWFQGSDxqUHFvWVQJVaSuszMaeESZQPxnUymMyZYAJ5nXEyusJfZ4QWZ4z9zQVpbkUGZzNEtmZceZqJ2dBMIjczrq3MZPYxE9jETIgOVjDYV0HTXAqNyxi7lgnCsorW5Q5jszI+lpPCpkyq5GTFoEyu5WSyJhOiLxUMplTQJqOtQORFxrMRlbqiEzmjgLpAXgQCm5FJLxQjO3JB+pHJrxSrVVZakqu5/12jBHBBZ4DrnAKukC+5QMZkwmvB0JocsjeBIs3JdHAnZ2RPLih/cjUblGvkUC5oi3KdPcoVNilXoksZB5syNhXl0KgcslO5IqzKxE50IZuVC6PpKuzKtVq6VgzL9Wq6JstyJXqWcTAtYxvBtoqRb7mQjatUDI3LGQXXBTIuENi4THqhGBmXC9K4TH6lWK2y0rhczZngGmWCCzoTXOdMcIWMywUyLhNeC4bG5ZCNCxRpXKaDcTkj43JBGZer2bhcI+NyQRuX62xcrrBxuRKNyzgYl7GpKIfG5ZCNyxVhXCZ2ogvZuFwYTVdhXK7V0rViXK5X0zUZlyvRuIyDcRnbCLZVjIzLhWxcq+GHPrwKhVBgCybLMsyGNQgvMiGzKlha1SC+ykRXT5pU0XKfF4V6vGDd30Xl3i6crKlgMqYBv04ETakgtiTj0pAGFeyoEDKjgpUVFS0bUVHIhgrWJlRUtqDC2YAKj/YzUDCfgUxTGTSegth2ChemM0hd6h42nIJHEk+YTVF04lWMpqiVxEsmU3i0mIGCwQxkk8g2E7KWgrOxDOmOzmKIQmicvMU5m0tRXghE9mJc+ktRXwlUqaW0GBNzV5tEfW1cd7bJ3NsmkM8YJ6Mp/HVGaDXG2GtckGZTZHAbQ2Q3xpXfmJgNxyRyHOPackxmzzGBTceE6DoFg+0UNM2l0HiMsfOYIKynaF3uMDYf42M5KezHpEpOVgzI5FpOJgsyIXpQwWBCBW0y2gpEPmQ8GdGfh9w89iPvDEMhfsBD9xgtUQNEAQPFYgXMwgRsiJCTw+96Pf7hxMjw010F/QSFTo1YoQGVV+KoZMFcfBj+XLzgVLxYc/qACfSRn3fouXVPfxQ7s0fFxQGFPgKeurynpY8AWU8As54ANvQEkGKpjtwLfh5swLW9Azzzo9I6QFBlpyWA/rUWuQGVToDwGaIYGqdAGlfRNDGH1CSKq3EOrgkcYRNimA1TrAv/kMMwzaUg9IYo/sZzJ3Du0/lSd/T7CGN3FMTdUTh3R+GyO4oouqNI3B2Fp+4oQuqOIlB3FMzdMfAPOQzTXAq7oyDujsJFdwwSd8eAqTt+HXriqR+VUwEq8QcUQg8cKgS0BByQxRqYhRnYEGEgJbiOZrag6I/iCqpHpQWAxHqq52kp1dO4iuoRrZB6RoujnoV1UU9KCxyV3jp25CuM/iguYnoUV/4HlJc0PU+rmQO1bX8Bx/VNj2jt0jNatuxZG49yndtKBVtZwTbXpJWLrF4RdWzjcr9HcaX/K44JiP5qPy7P7cicyVGJPqKw2D8IfxtG2GH18TccYYBKfgIKkQIOkQJaIgXI4gHM+gzYkJ9ASogczeJRbsEst2BWacFMtmCWWzATLZiJFsxSC2a5BXGl9be8xNqjLnyky83sKm3qZJu63Ca+SABFtLYTre1Ca19ODtfh534U7a9Hwut6nryup9HreiQvFnuFXLBnZdQBipb3cvC3Mz+Kc/9L9DdEecZ/Sf6GFPwNcJz+XwZ/A0aT/svB3+Ao17mtVLCVFWxzTdjfQBF1NH8DFNceLyd4Tfxyki6HX6asBp5c+eUkXf++FFkNCrnyy0m+4H054WvdPdmGbNnmrN7m7A0GjOOCBPoyUtVooSLfPTWNIVL1cKJCPLJIpkFGKo23qEJ6kEAZTSoNSFZF6lORPAq4QB6xVIKGDKk8RkjmIR3ltiqMhkWOeSryvYazE5CqTYEKjbedrYJUco2ogoGQQF5CqrIVKpIdhgqQ2ZCqfYcKsQWRzG5EcjSmKG5rI4ztitRkH79NhhvLx35o95SRxdvJrnyIh/vLygs76u+unvmh3csDhjftHMcffc2S8SfGtxas3zAQgFKf/xb2VB8T4zjU9lST/EEwCEvYcXxGjAMkdxyTVgtV0DleuEuXYsGRU7t0B6nca8HwGePwuSDDh7eOmEH48N5RaWm6eZQEEb6i1cIXdA5fEbc5Fhw+4yJ8YXCGIEYlhZJkHdBQ6ENVweAGIYQ4KinQUVbhDiWqQc+lUuiTEcpopm6oGuFQYJimQjcY4w5wQYa+yB8Eg3AXhIE2xiE2QQS3aLWwBp0DWsRtjgUH0XgK327JC3cb+qN4EdujeK3eI3Fd2/N0XdvTeF3bI7p67RldvfYsXL32JF6rvxr6/syP4rLzVe5vFz7YjPpq6GOPyz92R0/s6KP1/yvsZkDQdKflNoKf0m4jDKj4NHSDIeoL49QhxlWvmJi7xiTqH+PcSSZwT5kQu8sw9RnO3xQG7r3K7E0q9CPO3acRQY/idH5BiPpWTeYkUS+nx34DD3snob8jp06PIvV8FFX3xxI5B6JOiRBFzoaockpENeZF1Cg50k5uFT1Ok7F93KoIJEzatnwqOKRO2s58oTglUXUzs9IpnYLGOQWbziCjkFI+oUTZhJLKJdRzJqFKeYQSZxFqnEOoxQxChfKHtqzmOHHu1Des5gKQN7Rj8zRRyBnax3mRKeVLZRdnVilXQOFMKVuCIE0MUY4YpwQxrrLDxJwaJlFeGOekMIEzwoSYDoYpF3BjH4WBs6CyrY9U6H/c8nYaEfQ87oK7IER9rvbAkUS9XTB3dbzNgT3OCnU8y9T/LKs04DI5G7gEJQXLnBusc4qwHjOFVUoYkt9VY8rpk2SVRVQIkokUyClSILVIgQxjhRKN5ZxvVILSjlTOPtvDA3nnjDLOBco1F1SWuZrzyzXKLBc4p1zhbHIl5pFzyqCwY48jwllT26/HMmRK2MJ2SgyyI2xru2BGGSE3tbFGWWCc+79cbkL3G6LeN06db1z1vYm5602injfOHW8C97sJsdsNU6/jbQgKA/d55SYEqdDjeAviNCLob7wrcUGIelvdkyCJ+rpg7urySih0tSHqauPU1cZVV5uYu9ok6mrj3NUmcFebELvaMHU1vthNYeCurrzWTSp0Nb7yfBoRdDW+BX1BiLpavQNNEnV1wdTVfwy9PLyS/gf2MLLSu8jii78g4D0xwPbqLzB/wxegv+ILsLzjC6j0ILBZaJm9oQIovkXYI/HkrufpcV1P4zO6HtEzt57RQ8aehfcEexIfuP0B/Xb81FBjmdQfxYdKPSoJiig/vu55euh0oPDEFXB8ft0jeh7dM3rfbc/aeJTr3FYq2MoKtrkm/DgUFFFHe/AJKD4d/wNHxxD91xN8A74/im/A90i8Ad/z9AZ8T+Mb8D2Sb8D3Cr0B3zN6A75n4Q34N5PDWw8nfhRdu0fCmHuePLmn0Y57JN9h6hXy6J6V+AOKDvxmMN9TP4qvNr7JluvCextEb7CXAIlR/oZ6CWgc5W9EL4FC4/9N6CVgYfy/CXPEmzA9vBmmAdc+xhH0hsx/oOUWJfS+IUoB4yoPTMzJYBJlhHGdFiZzbphACWKcsgRvMp8Sonyp3GQmFTLHEKWPcZVDJuZEMomyybhOKZM5r0zg5DIhZli+j25omgPxMZfirFM3zQepPFmF1DNEqWdcpZ6JOfVMotQzrlPPZE49Eyj1jFPq4QP2U0KUepXH66RC6hmi1DOuUs/EnHomUeoZ16lnMqeeCZx6JsTUwxcIKEOmORAfcylOPfX2QJHS+34nUuA0HHnfTxcRKanf99NqJT0r7/tpmVNVv+8nVUxb/UZDRZUpHMpgIkeB0zmqMqljEZHasQAneFQraR4LpWSPckr5KFPipxc9ZJZOa6H8WPtEGhDVtzwOBd5OeB/k20naB/mWn3US5uK8zYtwKp62OCYhfSQ0iz8WRProLr/xWrY/pGvZntG1bM/UtWwv5GvZHtO1bM/4WraHfC3bw3gt2yO6ln03GNmZH8WR9C5ZFvA0Zt6hOQGSo+NdsCFg8d3Rd2g4jmaxETPRA3YN/sRRrQNmugNmogP8Mhy+V8V/luNvF+L+0at2AT78DpIRPkdVaERr7eI8sEpzG93ccH2OvITBq92IKDQqCp+3Xz43fb2889pYpBXNaWtVb3XVW9FTfOmOkqi+XbtjudxhfvHuxVZ0KBq0Ev1De7hAWTd385wZXSzUidN0tbh1Om6diBu/6IySiFunur3Lyb+Jh1s6FI3BV86G8+EG61Iy7bBOAnux3mOdVBGytMs6Ccmf8z7rpFCw0k5rFsCz09UPc+Xe6uqHJfLx2tUPy+zo6eqHOXl74TPR7OTyJpDVGx/tX2X6ptX6N9m/CdXu5YnAOJmLr3rCwOfFEH+NqmWaIUxgG3JhLFRqwnBNzBom0tRhvBbGPIkUJc0kRWhF4TSnmDDaTjW7mFZLido8Y3qtrWnGMaGSGWnuKcJKsVoI0lTkgpyPiiwmpSJ1oniankwY7QI1UZlW64LalGV6rQvy5GVKZdRuBNsqVmu+mtXCBUeY26KSvjPKaZ6Lso57LKOiH0ukPohynv+ingMedQ57VNOMmG7KnEmBZ8eRmzK6iJgp9U0ZrVZmzcpNGS3zDKpvykh1Vg1ZnlOjzDNrVP+DjJKzbCwxnlF5xo3ydxIqzb5RZael+wLR7eRNA/3F9fbkuTnKyZ1J/n7I5WxNJdScHYvwzB3V8U4Rs3jQ81we5Lb6wTyvR/k/iI6c42OJ8YSszvex1HiE8twf5dG8zOuAIK/qynj48sqAZL0+CIXUKiEU6KofzSuGKP8HnStXD7HEeOdWVxKx1HjnilVF1Ec9aVNVtnVlPHR5zfF+WGic+VGcI9/jggKQmCvf08IBaJwV34cFAjC69/0eFgJA4hT3fsKvH72fpDePypMBbGvaIcWcWq13SLGY2592SDHnSOQdUizEmKQdUsQpOpWdReHxCMZJ7yySIkVsZGeRLJFjp3cWSZGjWNlZJNUYT72zSIkU2bFNNvBoCYOrNtkIiQJb3WQj9BxUtclGSBxQuclGaDGYapNNliiQ9R0o5QEcxjDtQGFO0dM7UFjMcUs7UJhzxPIOFBZirNIOFOIUpcrOjfe8PaGuUMBqOzcqsgrfyM6NSgkKZnXnRkXn0FZ2blRUCvTolgVWOexhy0JiFOq8ZSEJKrxyy0LSKKRiy0JSOIxpy0LiFLrKG/7OOVz2xw6eK0bhcoHC5YIKl6s5XK5RuFzgcLnC4XIlhss5hcsECpdxDtfwA+7PM6FQFUyBKliFqWg5SEWhEBXMASqcw1N4DE6hFJoBU2AGSmH5MITkqR+VcACKvyX6IYUBePot0Q/YfED0W6IfQrOBhd8S/YDNdfQitOdF7LkexSsuF17Fo5gKPRL93fPU1z2N/dwjecuqV6j3exZvTvUodu8e+W/E9kdxu0GPSggAhYYAT5sSeloaAsiqC8x6DNjQY0BKCxyVK9szIOU20HlBsZObnJh2jweRTsxGJma4fwM452sj8rUR+Wp3ZBy18Sg3o63UuZV1bnPl+E4KKKLadssEUB5TcG/EOgTvSXjPdaFnu5yNXSX1Opl6XU49vpkAikjKTiRlF5JyOrjeuR/F17Wm6HqAxC6IKbke0LgLYhpcDxjtx5iC6wGJ2x+mE3x1coreBUi8JDkl7wIaX4ecCu8ChV58nKJ3AYqvOE4nuOdnit4FKNr3NHkX8GTCU/QuQGS10+BdwMIEO0XvclSc6qmRvX7qR6VNgOI7m9NkVMDT7wNN2agAx1/amwajAkY/lzdFo/KGtaFAm5uhfgl6SkYFNFdO/xL0NBgVsPhL0FM0KkdmVN4fXSjQ5YaoXzmckiMBzQ3RP2I4DY4ETMQ//kbhnmzDONnm8bxN4/bjYGTDD2V9RCdDZg80gcW7wCDgrV/Adr8XmD+kBOg3bQGWO7WA7Bmks72lPT23I5sqHcWp0jlOlU5tqnTEU6UrPlU6s6nSkU2Vhvply5k1wh8FAosLso/J1LBs/pWyj2hryGj6+xh8DQuW+AOy+Dsrk/sTIMOyzAvRZxrRXH/4hqzS3ka3Nz5bAy7i0Ig4NCoO/MBsz+ZhOM3juOsRbVb+OHglfEcrgtDWGtzqBreiYekZGUg++ADa4zBgoqN9decMV3eeAF0coZ2wl65mJZ22kk5YSXpeBJJymU65TEcugw8tEuOGpMcWSZDNVA8uksYNzo8ukpLaxw8vEmc/xe2Fg1ml7YXMlb2q7YUskdHWtheyzJabthcyJ/MtHB3KGA9JE8iLjcvxaqoYtKbxyDWBfcmEZE6mkFMbjxfRxmnE8jMr/hpVy+TgJrCNuzAWKmXorglXN7EWx+TvJlTjmJy+CGD3hsjzjbPxF6EV35umABNGg6UmA9Nq8ahNC6bX4pXmBxN4kkhPOVkQ00WRcM4wVvNbPXuYOmKraR4xoTKZmF613TytmEK2S48jFeYWqweSSpMBqTySVDKHRT6UVGJqvHgsqSSeeUCDyQcpzT8oqSkI9TwLoUoTEUp6LsISPB2hRjMSSjQpgYQOjJitAjWanVCSRoIFhJegzHaCGjsGaslkUaT5CiWassLz6mAc4km2+L5K1dP0hRrPYEH7TjjVPBZkMZWhPhLuNKGhNhbuNK2BBjMbUprcUOL5DbRWnyPNcqh9L6BqrkN5JGC1GQ+LpAsiFHniQ43nPvX6hNDEDAgqToKIR2YFPRVigXHnTxMiapU5EYuMTQ55ZkQxTg77ncJfLav2R5tw5D+X3h/F+3M9SvfhimXi9xa0yWibP8inMZ7PNVgwnqugTUbb/EE+l/F8rvDOE5ww8E2Fbyvfw+ePYq4EdCVUAehG0q38Bj45SvnU5SUcOG9Bm4y2+YN8OuP5XPYuBZzM2Eawrfgsn8+FfEJ7GwFOaGwj2FZ8lk/oQj4h/M37k0A2iWzTp/hE4m/eDwr+WeuTiDYZbfMH+VTqz1ofpMsdvdxbix3FFxv2ZGHn7I/ihNej+PwfhPjM6nKS3pC4nOCfGLxEBwcknrRdkl8DjU/aLoU7g0JP2i6DFwMLP5x4GTrncoJPFy4x/oBSXa9wOXZeyG3Qb1Vkr9JdiPOAb3NJ/T1pz+Z5wLe5ZOV70i9blG8y4VaV1t92mPIn6y+zq30Izwfaf3H+OyJHWSYtRypeeBv6aqMijrT90UPQtkGj3uaBNlDdaYa5Pjghn8Zv2OQvfciltrkUV1TN0YOkU8Mw17ZwqC3uRKQvfciltrkU11btTCySeuu5VE2+9axErLxeHkT+UCm/rZRPDaotGwZdXbads8ItorXGafqqjTzBgyy7lWW5HZUVSFH9Mi41A6TUDtCwIYA3+iQPuvRWl06NQS23ht91Hmqb3nUmDi3Iyy9DD7nUNpfiGqsV2SClt16HauW3XlmACoslnLMHUW4rynGl5bJu0NLLp0Pl8sunLECtxTrQ2YMotxXluNZybXjQPk0O96NO/SguwnpU7j4BEu9K9Dwt1Xoa35XoEb0R0TN6I6Jn4Y2InsS3PT5BxJ3sxsOiWa/7mx9PC4wfanJD6Y2cA9INzW/kHGh6I6fHuf38Rk7PRPvbeJTrrF6/6bmsYJtrol+/6RVRR3r9pke5Q+gvcn/KS6AnURjoYdW0v77ot1n6kd0fcWQ38QDFLZQHoVxmrwSirzVO3+1cnUDsD5UCnay2O1Sr4sTxb8yJPy+n/7Lc7TASTvwo+sUtjgRE+XLmlkYCUhgJgONVzm0YCcDoWuZ2GAlwlOvcVirYygq2uSY8EkARdWzjVeItjoQB5V3rWqC2VPasV1TR6PqO9UqB3FeV/epa5ejU9qtLua0Ko2GRvV3fjK4LjDarkg61nehapiSpbEQ/qHeT4QaxH0XP6JH4qfKe411gp/Gnynskf6q8V+inyntGP1Xes/BT5XeDDR1WNXdoQ4Cwdj1dhsYuc2OXlcYuZWOXubHLamOXorFL0dhlamy8T7gMTV/mpvNScaDhkfhRRBSEygNxEnM48uNw4jow4mE4CRyi9Cg8YggWXuJTIDhs6hJ/kMKvIh1FRLGr/CYSiTl2+ReRiOvY5d9DYoFjl34OKWKIXfgxpBgIjp264VCk/FsRR0rgOI79UoQsImJa+Z0IqVbiW/mVCC2nWOsfiVAixj3/RIQKZeqD6g9EDAXKrW3oA0MUfeMq7ibmiJtEsTauo2wyx9cEjqwJMab5ccAS7/1TIDiC6t7/QdqtF+hu/57QDfp2OLF/ZBOO/FqpDavoNq+iW7mKLosTrkq6MUocKoU3Rgk95PNsBaKK1h9etvJW45nQuN7pVuNQ03SrUfGHSgW2NU4N+s4TSljfcZvUrcYsQXvoVmOmD/K0W02pHaMPO1u+OXcWMdcfb84N1cSbc4Qe8nm2AlGF649L29Hd/Kxy3UmGJpCyqSoP1aps6wo1j+XcysrG+zbfgmQB2hRuQTJ7ECfbKkZ1H3myXC42+jt65+cRla9hbhsaicddjSTCqVmy/Y3EfZMjCb7TkYSy3ZGw7XmM/DKjK4EqYSiPCjMvj/2SMiTGs4ivc8nrXcNn95mLajSV6jWV6jVjvdTUeyn+sTDSKj3Y1HqwqfXgp4xEh95UMjDeAmP1c0ZzgSrxnI/FbV6P27wSm3ktNvNabP47I1HqdjQGC4EqDV6Mf5H9ZbXI7zISbVxWzrmsJO1ytC7LyvhuBaqcuB3r3bbeu22ld9OfqSO51vltJaxtpYlfBCrTDNnMv3PRlUCVAK0qPbMa7RkRsXXlBOvKCdZVO12Pnlqh0Q90AlXq2o1lS1fPlq6SLXxdxXItW7qaVXR6ItwvNC7ivL/JyN+XN7TNpWyRwRyaT9K3XKNvlQh/q2TDNzEL6b99apiXXXiReRy/YZMRrLnya2ht5TW0tv4a2heo6Ol5If7wy9A2fIRO8EV/9/AttXeHol4Ty+tIh8dt9FWmnrm6aD7dly89/P+H8wtTywf7Vc5RxrbSyVqopvjKlf6YW5jQLK+UFu0hl1hX8MgJ1yMnRGtT6nerM/TFYZithlX8sR/F20IrXLsDEjeJVrRiBxpvDa3COh0Y3fFZweociL0wb2h4Ke4UwGGwnBvZLdoOg3QFyzUg2B7A3hyAQ2uAlMYAKm1xFA9CRzlfhINUz0XtY4PXOdmtqU7sYBkOhm8FMuQbEjwP8CH4Tr5g3M2SPPCwT8HL7b7zzA/CuZx32JwuhaLTXdapLutSl9HsCULuyy735TBXOviKzduGg6HmQLyKAyx31GAoGqLxaJwGpXE1Mk3Mw9MkGqPGeaCawKPVhDhkDdO49RubmBx8u/M8Yh/GRmJiGBbZYVpKEVNinhimnDBOiQGvGDNR47aIi0x0o+ToNzFaQMHuA4UsM4mOYDjagmPhDSZGg7Db1KmD2SoKz35RFDcHI8o54KEnhaLTUVVGIp54sqJTRftKetzJvJJI0Wbg3j6FZptJdB1xy35Qwt9qIkTWk/5SE3NlPfIPNZFE1pP/TBMLbD3przQRJuuhP9J0yjRYT8FuPUZiPhkW+WRayidTYj4ZpowxThkDuxKYKNMo4iIT3ShpPSZG6ynYraeQZSbRegxH63EsrMfEaD32Mn7qYLYe8beR6BPuLkaU9cA7AxSKTkdVWY94YYAVnSraetLbAswriRStB14VoNBsM4nWI94TKEp4eo0GFAW2oaiyGUVVWlIsIowpFmB7imoyqSgnq4oyGVYU2baCSplKWrSwIIKRRU45GkWVqbFEzteoU9ZGkbMzqpyjQa1yaVmhyKLGx0KhrTAWIUMMIthi4MsaJ4uMIhklicouYxEyzSB+qaRXMtCgChsNOvhl5NJS+VUiGVK21/qLRLrEd1KXDXfsLSJdZjS9kwWrV4ik9rUS4m2NkzXXXh866HlrldhSVd5kGD7C129DobTqJw7foPfWrdPkTRy/obLhci3+lHhS8Hukp5ZP6BEhVfhOHxu0hXM42v/NXCbxbqBjcauviB8Smdr910L2fz7+WSRlpiUMM2RUyo3e4Q7uaRYH5XBf+OswzR/M5ivO7YDKhA4ovoPtHF+8dmpvWzvyt6ed+evizso+Zif26rShkghPrU1Rb3Kb/N16QLpNjWxTfHXecW5qI5raiKa28SjXua1UsJUVbHNN0nvtrog6+hvsjnLs6fd2N2XdeG5H8f2+TVghOorLQufpLcBNWAA68lWfM1/qOSvrOye2qDNUEuqJtckXfRtMKEBxG88mJRTwtL7dcEIBjmvdTUgoYLSq3QwJBUe5zm2lgq2sYJtrkn6GxxVRR//RHUdxQb3BhDoE/2GC2/ceMPiA4va9hxR84Ol52wMHH3DcNPcQgg+Mtu9ti6v6kY1mR+aqjsTOli27qtO4h2UbXdUZbcLZoqs6iRtStji9HhmKBZrcKNqytM226lw2SuxI2gZbdSTayhuOtsVW/SjXWe0n2rKtOs010duFttFWncWNQdtgq4Z8+TJEHx9InBCiNqUHEsxVg9UDCZao6fmBBAvcHfxAgjHFIS1dKRaiKOekcUpM5yOxECnqUs5T0ypxShlrQi1OrUCVBsosNrHeEM5n4zqpTa61hdPbeKVvU6LDK9OQ60gpAihRxqOk4oN6DhGqFCWUOBKocceiFscAKhQq9bsaOVj6AzweUKIhEaTxYImBEdQ8NlCuxzKNENRGYtlqWm+7HC2ojzaQxwxKethgiZE28uBBqZ4UPIS+lfXquR3FNfi3sF4FlNfg33i9ChTXq47j0vxbXK86o6X5t7Je9aNc57ZSwVZWsM01SetVV0Qdfb3qKF4rfMOZiBHVP81EiYvGqZkoSbkf0kzEnFubZyISWoEqDZS9pGYiliqVrXRanolYoO5LM9HAy/0qhaiJxqkPnYumm5ib7lLuQ9MoLMa53SZwHxahFajSQNmHJtYbwn1oXPehybW2cB8apz7EX0GqYWpq0Kg/oyZCEQrkcEQ5923QKWRB47gEkfsZxbaCR4Ig+zwUGG8o933QdP+HImNt5TwIGuTCv/73/wO+9kRf" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json": /*!************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json ***! \************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJx9WFlv2zgQ/iuGnnYBt5DkS85bmk13g27SoEkPbNEHWqIlIhSpklSuov99R7JIkSLtFyGZjxzN8c0h/4oueF1jpqKz6Mt1K1GJZ4s4S+PZYrvdbqJ59J4zdYNqDAfuXuodp52spdSToZrQl6n0KyZl1Sm/xgVpa5BcKURJfs5KCgdj+F++J8+4uCUqr6IzJVo8jy4qJFCusLjD3d27BucE0cGYd+/4c3T2/U2SxfM36XYxT+JtDI8k/jGPPrMCC0oYvuWSKMJZdPYmiWMLuK9I/sCwlNHZCuRfsJD9sSiOk7dxnMFbbrgieefGBW9eROfA7I/8z1myzVbz7rnpn9vuCW/unpvZecF3eHb3IhWu5eyK5Vw0XCCFi7ezc0pnvRo5E1hi8QhCeM0lHCoIK+/yCvdR67zrfd2THPA7VfzzNTrbpv2fX+BPeH8fm2usBMnBg++/oq/forO08+QGNMgGgeG/5wfxYrE4iPFzTlFt5JtkkLeMPIL/EFoNreJBE2vrXReako3YcqvVEXCTKWJdzPS7Gizyjk/mZZvsAKC66d7FCgMtF4NC2eaVqpDyLW+QwIzi/TGoD6tvPQL7BJEPNVKVb39DW2mkJnY5FALyD9eEhU6DL4SPrqTaS0mRrHyDXrHgvpQz7AvVU+CkqgQOnN3zVgSkkFVfKslzQIgfMfPFOBxWRiyDjcs5p5wFIoFr4kImprQrP59WP1ubiVpcCgxlNLq5XC4PwM8Wy77EvSs5ZyU0EpuFaXqAzmlTjVlerzcH8TuskH/4oiLj0WQQ/oWpdXadJAfxZSOJ7exmPfD01lYSD8K/kU0288JLS7Mh+hW337dINCPA5MRX8QE1jXU8Wx/E/6J6V4zyLBtCdd36Km4Cso+QTOG4N6T5dvRusxxsu6/scK5Wgw2fKovZ20HxHSnrQDjv0WjEejvw7/MkxmMD6ZQkvnEfa1xayperg/ibZfN2kN1K4lvxHw4lZAfD6QErpy1lOt2QF4H3XATa8HDP7VnrVWY6SoNZQfKWokBRt90Ak7mt2GACwTVE8bNPE+Tw3VTIzkmQqRuLqsvtUGaFw3cTcjzJxSod3tjYSnQgS4fvpgyc8KaDZuLwXR8FtYlv8YPD9rHBuGxfbQYG1q1vL2v9+3zC9nF0EF+BqoLBFBbbjRfSYbsJprLYboxtpx1Fj23esXoMhqlx7rB9uR2OPxP/aCMDmX61/Vhm8cha7HA91bzbWUR1z0/m8tLUKSyJ1qWNHqeXrTUf16lb76Or6XIzTmWFA4mHyeLOkUS3+H23UpJQPAnbE0bUS2CSUi6IdWM13Mhpu/OlBUE1t/YbA1QYCeWLYVsrRh+SeDm0RCQEf9pxa3Xpds4RcpJhqNVDbXPkzqTpOJcK/mT1VO17gUtn57C3J3cpMlUucW77Px3hRwZ83VJFGvriJ6YRHJboLmnWPUNXWAC7FbQg+/0IrjUL4RMFBxhYkEdSBLxiXB0xD8TkEZorywPXoP0I/jxhXGzWKEoJUFgeiTvs3srq2eO9Hq2Aeq92S9eDIgeYwIeawKoVY+KyVOumuBmpY0r+CgrgQVn7ohl9n6aIoc4TJjB0lEDWvmaGa05ETrGfPRd3lm1jI64b9SKtBJlbhAFTgEhuqWoUvlhCFdwRBW613cNWqnGYyDAdj+OQfdnugpBWHUa14jAKbbN2tlDrfR6mXUT9p7F3peyGvHNBb0UCl933GHgmyN6Hc/0R6+KZxiG7Ba6ReJjg6RiAos0DpTRsHWNz1s284Mr58DI+UF52N8B7vyIGzP4+nGJcWLXiNMtiR0/0S0BPtExAj3ZNwE42zh11e6duTZS/YlZaK6DebfrkOsb4aURMnsqiA+viHpPowDrwsoX1y6moRTZ20cMXtmpOgFYf8sGd8kFrRw4ptuCQagu2lJvwmpXEUu2DNSlOoEf12vY4aXOZkG6WY8OC4hzrwHRcjVhWepjd4KdYKK7jrx5H89WjRxPWoycydlS3jZ/I2VS/G9yp9gB6PG1T1aY4YAp3LfPHPPqABbtFRHS/jf34/T82FAfb" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json": /*!****************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json ***! \****************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFnVtzG0eShf8KA0+7EfKseJXkN9nj0Vj0yNaNEHZiHkCySWEJsmmAIA1PzH/fRqMr8+TJU9CLQv2dYqMrK/NU9Q349+jH9va2uXsYfT86+8dqOb1u9o72Tw5P9o4PTk72R89Gf2vvHt5Nb5uuwafZbbP87od2frnhq/kc+V7h09vZfI1KB8fN7Prr5jOGRj8/TOezi9d31/Ou1fNue/m32R/N5W+zh4uvo+8fFqvm2ejHr9PF9OKhWXxsNn/50x8Pzd1lc/mhvZ3eDcf1ww/tH6Pv//nd/snLZ98d7L98tv/8+fNnrw6P//Vs9LlrvJjP7prf2uXsYdbejb7/rpNB+PR1dnFz1yyXo++PO37WLJZ9s9Hz5wd/6XbUfci79mF2senIj+39erHpw95/Xfz33v6rl8fPNv++6P99tfn31fP+38P+3xd7ry/b82bv43r50Nwu936+u2gX9+1i+tBc/mVv7/V8vvdhs7fl3odm2SweO7oN4my5N917WEwvm9vp4mavvdr7ZXbXPqzvm+/+3nR/9frN3vTu8n/axd6s++Pl6nw5u5xNF7Nm+ZfucH/qPuZydnf98eJr08e/P4qPD92fTBeXRe0a/ji9//swJCcvTp6NvpSto5P9Z6PXy4tNqBed+PLw2eivjW13QX7xbPTx4fLv467tUf/fs+6/+4evtgP2j+ZhMbvoIvrPf4/GX0bfH2wi+647kuX9tAvkf55t8eHh4RY3f1zMp7fGj4+Pt/z3VduF6nzuyvNhR3er2/PNSF3fZe2ync+nC+N9NvTCfbO42CR5UV6Wz5/edtKyi08+tP4Q+jHP2v100dzNm6uaFP/Mjm+63OxxeePKi3KA89XSqAXtoqvNaf6Ir+v7r81dbt51ZdZ6Tw5evBxiP58uv+aj+bNZtJm2d02GD0+i5cPXRSPaXrWrhaCzR9F2OftDwOaxEYPb6Jjeze5EXl208/Yu42VzO4uSjcB8YwSJNr+vpvOMrxdNV8qim7+vmmVvNkV5dVjG3o/9xcHBlr02dHLyYot+yK1+zOiv+Q9/crS/v0V/8z8sqfAmo797mDon69HPuWNv8x+e5oP4xfu9cYcN+kc++nd5X7/mo/8tt3qf9/UBvONkiz7m4/qU//BzRmfCOca52ZeMJvkj/zdn33k3n900D8E3rEjPOy0WKv8dmcrL/WIqF7PZxWxxsbrNw7ba+Paym3xEjfQGFw7GjSpH9dzQURnai9zqMrcSn3yVP/E67+trDtIs7+v/8h/e5D/0Gjbrv81/KFynza3uM/o9d9vNwcpqmY/+Ie9rlQ/iMWfcU24lrHSdj+tPP4hXR55fMREODp6XrFxU2lM2HjyHbHyYzS+rk/1l+yTiHKZnnwoe+qWaJ8d+Ka+rzdoQjdb7rCaPq3m7mAm+bCp7uVgtunn8Yp1TqS+b5axfuwr/365bdFldr2adcts+6KXDRu53/A2ZQl8S52ommFhBdWs5uR64nF5fqzlty3ExRiuOzdg1i8Zr//io6N0S/noxvQdTK3963p0/NKKXHt7z6XJHhHerlQWYDUDU3e67NfbsfjlbCqnr68PXdhUWi2neD8ntI7eYPop6mF6sHtTapffyq3nzR9YqlXU7vVio9c75olEffNk+TC9Cxbk060YSA2DKAuvQD7a57EKqFqmru+vpYnU7n67Ex7TX3TrzRuxuiv2AcbkNOevCa1/3HJpnLy6vuoVeWBn6EiVOsr4Cidw/4Vf4hEP/hNvO6VZz/Ajz5qkzc43LTdEvl7OszCvL85YOtOy9hbQvZd7VZ3dW3OU9jJst5tKQ+tQcM9Cn/5g3PjXJQfXdxdHz1VE6AltIX84eZ5cihJN4ZL5iFsXhh135o8+7/mhNVWiTdX/yRWUCXc279M8LpeI4h8GOnOrB/4ZGyEaC/sBPA9KH+ElD5xFwFhLPMqmjL45eFHG48CE+ilzH14UxD7yXOi7v1AF4edRyNJqqL/Vld+xcqra3aKwQzmyVniGhm8DJE335Gj/9qCyo5u2fzd21yNwPVFF2Gqc66cmxs0h2Ze7r2pAu4oHAUFNf/fwnR85O7T59bReiV7/Sp3sYKlXwMfKTF0P7y4oRfaYP8IjFyS1c4Viu+lXOQhxvTEGPYo2TrRYTvF3NH2b387U4LuqgJ3kcjpJI3XrrYTadX86uxCnWum4N7+LneMKKZPHa2JlmO2adunRRGei7mg3WMuZdpTZ/ph3h9bduxYAX4ewUaNHeNHd4ImTmuGiuZ8u49PUSpbWXT8e5LuxsZNVVdTgf8WDHnPLCrBhaS5Hxuqyk1P+SaR+9KmvX/lJXvBBmcf7pQaxQfqwa4FxOqvvDaD5UTKapzo414XVt+bAjKysB/rNWGvzZ5gq1EalNPbx4t3mk9sm5ju2zdy5LaMbcL+uCZv4gLvg8BJN2T3xqdzhiXuKU3d2uRE/iEXmo5DrTa4FC71ef4grnxTH6eJfAiy6RxaF9TCcxNjFX5t9Tlcd+ihEHzk8l7MaOMsX6QuNnOn80XqvxX+iwSxy6qH2dzmFqKEW+OTWhS902FsrlzZfjsslT7RsDSOsgCwLPz3beHs0UOzQMqxrVqZzrP8oFomWwPsWxayGdTaibHm1lyv+xchAryvwyEF2CzC6U0f614o2Lncvdd3F8/HAr4/Zhd17v/KzXlX2+rpp0PB2wEYj7cSMWE6cvRSrTfc0pbuQC2hZkYSXge9tZCnQIdsVm5yfN2+vNeN+14mJVWzfTVZZKBnW7qlTytTwSu8ICM7nHvJK+d2pXfv3lLi+a3fNrNf7TanM78l/PRqfN4u636WyxuYv8z9Hrze3q0bPvjo//9WzY2rpHQNvjjGgwdYRv4tbWVQLCjqHwa7d15FvlEABBcgRuQxXotv4DCs4TlCFkgW2vDgW0LRxE78PWp27rlW+VmCEKvXfh8yYWz23LBsBR6D1w6D3Q0ntA1HtQrPfAhroOrLcTJGfd1r53f7zZPDR1stl87pulU8jg6AHfd5sHtlt4TuDZdy+OCl6FQ1nlkK0qIVvJkK1yyFbVkK1EyFYiZKsUssfY06dNFtjWOnRwXboECA59oEMjLGFDVMfGqZidc0UX5Y1AVNvGZYEXFarcEJW6cVXvJuaiN4kq37guf5PZA0wgIzBOblD4+4zAFwyROThXDlFUsAlDlPjGVfabmEvAJKoD47oYTOaKMIHLwoRYGwWjpxSGxlIYuosxthgThM8UDcymIOU4RVvlQ2bvMb5rCIQLmVQZgoofmVwbguRMJugheBRRAqMqaJ2Dw5ZlPPvWYB/oW4bIt4yTbzln3yrKG4HIt4xL3yoq+JYh8i3jyrdMzL5lEvmWce1bJrNvmUC+ZZx8q/D3GYFvGSLfcq58q6jgW4aoaIyrojExF41JVDTGddGYzEVjAheNCbFoCkbfKgx9qzD0LWPsWyYI3yoa+FZByreKtsqHzL5lfNcQCN8yqTIEFd8yuTYEybdM0EPwKKIEvlXQOgeHfct49i2MDZpX5ORgUSQbI5G9LMhvapxcLYrS2kIT8LfIyeSiqJwutsh2F3XyvChq44tt2P2iShYYRfLBIL6vcHDEyMkWSVTeGJqAQUZOJRpFVaexRS7WqFPFRlGXbWzDtRtVLuCoxioOGrppENBSg4C+GgU216gKhw0NwGYDV14bGqwqXWPXjeI3h1T4b9R3DWnFiWObnUOaPDmqO4b0sRZhsOjA15XAsllHMTu2E/RrpOTWKJFXB4mdGsQ3mpJLoyQ9GhqAQyMlf0ZJuTPq2ZtRJWdGSfsytmBXRo08GSVyZJDeSwpujJS8OEjKiaEB+DBSKlmUVMGinssVVSpWlHSpYgsuVNS4TFGLRQoKui5g9FzA6LiI2W9RE24LMngtUOW0IK9kV9hlUfrGkAmHRbU+ZBV3xRY7hiw5K2rVIXvUkQRPBbqWAWQ/RSm76dB9tFJD5KPGyUSds4MW5Y1A5J3GpXEWFVzTEFmmceWXJmazNImc0ri2SZPZI00ggzRO7lj4+4zAFw2RKTpXjlhUsENDVFjGVVWZmEvKJKon47qYTOZKMoHLyIRYQwWj5xWGhlcYup0xtjoThM8VDUyuIOVwRVvlQ2ZvM75rCISrmVQZgoqfmVwbguRkJugheBRRAgMraJ2Dw9ZlPPtWOVg0LmfkXC6QdYHA3mXSG8XIvVyQ9mUy+JczMjAXlIO5mi3MNfIwF7SJuc4u5grZmAvkYya8FwyczBlZGQjKy0wGM3NGpeSCqiVXczG5RtXkgi4n17meXOGCciVWlHF0NYNoawbR1xyysbkinM1EsDZjyttMXIlDZ3dzYeeQCH9zrTYkFYdzvTokyeNcqQzJo4oY2JyxtQgUG50L2enKkaHTOSOnc4GcDgR2OpPeKEZO54J0OpPB6ZyR07mgnM7V7HSukdO5oJ3OdXY6V8jpXCCnM+G9YOB0zsjpQFBOZzI4nTMqKxdUWbmay8o1KisXdFm5zmXlCpeVK7GsjKPTGUSnM4hO55CdzhXhdCaC0xlTTmfiShw6O50LO4dEOJ1rtSGpOJ3r1SFJTudKZUgeVcTA6YxtnO6QAmVOlwTo9qAthi9bcTsphFyuYPI4w+xwg/AmE3K3gqW3DSI4WyHkawUrVyta9rSikKMVrP2sqOxmhZOXFUxONuD3iYCLFUIeZlg52CCCfxVCpVKwKpSi5TIpChVJwbpEisoFUjiXR+GxOAaKbjUg9KoBoVMVxD5VuHCpQQKPGohyqEFapUNldyp4R8iFMxVFh7ziSkWthDw5UuEy5I85MuBFA1mngPCKq+C83hpqA23IEPmQcTIi5+xERXkjEHmRcWlGRQU3MkR2ZFz5kYnZkEwiRzKuLclk9iQTyJSMkysV/j4j8CVDZEzOlTMVFazJEBWKcVUpJuZSMYlqxbguFpO5WkzgcjEh1kvB6FGFoUkVhi5ljG3KBOFTRQOjKkg5VdFW+ZDZq4zvGgLhViZVhqDiVybXhiA5lgl6CB5FlMC0Clrn4LBtGU++9UNHX2/WUs9ty5ZejorHAAoxBY7rM6clkoAsSsAsQMCG2AApBe/ocx8p2/L0MxQOF3hISKPlcAHRmINiHQFmHQE2dGRL/lrifmxbFndHFndHMe7OMe5OLe6OPO7OPO7OStydWNwNbUziyPozDluTuGWziyOcO4wO367XecEWDf6MwTJEETNOYTOuYmdiDqBJFEXjHEoTOJ4mxKAapsgWDuEtaJzRRCCKtvEc8iKluPfveMa4F8RxL5zjXriMexFF3IvEcS88xb0IKe5FoLgXzHEfOMZ9QOOMJgJx3AsXcR8kivvfhpC/8q2yT0Al0IBCjIHDJwMtkQVkQQVm8QQ2hBJIiaKjqc3l/VbpAaDSA0ChB8ChB0BLDwBZD4BZD4ANPQBSeuBo+52gXZ8OCol6k/vUlKUkIt2nRvYJXk4OOHe1EV1tRFfbuJWPua0cYCsPsM1H0tK8CIo4xras4QHl2FtJ7G/nyrdhjfI2r1He5jXK28oa5a1co7zNa5S3Yo3yVqxR3qY1ytu8Rnk71MT+sW3ZGsVR6QGguGxxjssWp7ZsceSLE2e+OHFWFidOSg8c0VbugVUAIt2DRvYgVADg3LFGdKwRHWvjVj7mtnKArTzANh8JVwAo4hitAgDlSNOksEGr0GCVO7KqdGQlO7LKHeHTGlBER1Yi2KuQRaej7XWGbQn0W7FseyRqtOepRnsaa7RHdNSgUPX2rIQfUCzV02D1p9nqT7PVn1as/lRa/am2+tNs9afC6k+F1Z8Gqz/NVn9asfpTafWn2epPq1Z/Kqz+NFv9abb605DVpzmrTytZfSqz+jRn9Wk1q09FVp+KrD6VWb054z7yrXjhrEfpslj4KpNQFyRQiZCqqoWa5MKhBlRDpOpyokZcWSRTkZFK9RZVSA8SKKNJpYJkVaQ+NclVwA1yxVILKhlSuUZI5pKOclsVdoZF1jw1+VbH2QlI1aZAjXb3na2CVHKNqIKBkEBeQqqyFWqSHYYakNmQqn2HGrEFkcxuRHI0piiCR5FAdkVqcq5fRsOF8wPbsmvmgOLlchPOwtY4bE3ilp3nOsKTV6Pxy4fLGsmUgoeTh1+GWBxbZywAgPAi8JaGt/YPIqL+197aj+pZRuOMJgJRYNTr7CRVQiTfbC9xwhe6KQYcMfVC9yDFbILgkUAhZFUFMrY5qwnjmjCpChRgUnOYY4NKsEUjDnmuWBlFDn+9YocGg59i+A1R4J2rkBf1LKNxRhOBKLTGc1CLVAlnkDmQRVznGHDwjKewvRttLzNsP7DfssnVkV24chQnWec4szq16dSRT4/OfD3grFy4cmJz4xaVwnwtEPXFOHXIuOqViblrJlH/jHMnTeCemhC7a5j6jDcIGFGf0w0C5qrP6gYBS9TnfIOABe4z3yBgzH0ODvC6KnD/o8pRiKqMRWwiIhIbcFyimqIT5RSjKFOkokjxKvc/XwtEMTJO0TGu4mJijohJFAvjHAUTuP8mxJ4bjn3+dejukW/FmxO/YicBxcc9nKdbGL9irwD5AxzOrC/Ahm4AsSc5DH2KW2XyQhTmLRc2U9axbY3D1pfQchI0m7EApUcEfkWjPSJEYU5Gy1wFXBktSxT6bLQs8CCw0TKm4cAVMSMamMqKmNSzHM9xRl/yH05yKx42tUgepPCmOAxg5DSKUaShjKIaz9giD2rUaWSjyMMbVR7jqMaBjhqNdvrCC8lp3Hd94YVqclYZlXGFf6nsZ1Jpz1lR/dKHQYeXXiExkFJaoERJgZJKCdRzQqBK6YASJwNqnAqoxURAhdKA3rMXlFKg/p59bnAmIz+W9Ivcw0S25WGvvHs+qOV1QRhxQzTcxmmsjauBNjGPskk0xMZ5fE3gwTUhjqxhGlZ8R5gRDWjlHWFSz3I8xxl9yX84ya14+NT7tIMUL7LhELJCI8kyDSjLaly5TR5ebkGjzDIPNus85qzHoWeVMoDkT3WF8iHJKi2o0Vl1xMZV5Ut1b5Pq33DmsJwTyF6hg9RxRknjAqWLCypRXM0p4holhwucFq5wQrgSU8E5JUF4wzYxGvjaG7Ysn4nojgX7Iv52ItrxoMq3UAetXN2B0TREg2mcxtK4GkoT80iaRANpnMfRBB5GE+IoGqZBxKt9jGgIK1f7SD3L8Rxn9CX/4SS34sFTFwAHCU/SjwjR2KWTdOZq7NRJOks0dvkknQUeOz5JZ0xjh28mMKKxq7yZQOpZjuc4oy/5Dye5FY+deop/K/02DNv2mfLfcMQAlcECFMYJeHpO/TccHUA2MMBsTIANwwGkjISj/gkt648/oeXIntByJB4s73l6sLyn8cHyHtHj4z2jx8d7Fh4f74k9N2QoPrW4IX5BqN+KF7t6ZHfOAeVLXD1PV7e2FG+MO47Xu3pEl7p6Rle5NqyNW/mY28oBtvIA23wk6a61K+IY/f60o3ixbYP4qcX3I3wvod+KGdUjkT49T+nT05g+PZLvJfQKJVbPKLF6FhLr/Sg9ffZhhM+r9FvxIZUeiSdTep4eR+lpfAalR/LBk16hp016Fh8x6VF8ruRDcNUP2VA/1Lz0wzBwvp/Pub+fK/39LPv7OfeXBw4U0d/P9NTpBxg4J735H5etje8f2tYkbsVH+D+Qqw+0XESD0TdEITGu4mJiDo5JFCHjOkwmc6xMoAQxTlmSL2o6onzZeVHT1M9535w+xnfFSiSSSZVYVVLK5FqsUnKZEDMsXLeNGTLOSTMRiLJOXaQdpHLnC1LPEIXTuAqniTmcJlE4jetwmszhNIFSzzilXuGQeoYo9Zyr1Cvq57xvTj3ju2IlUs+kSqwqqWdyLVYp9UyIqYdvRB3HDBnnpJkIRKmn3ogqUuVJTRY4tN98UpObiDDvelKT1UrIdz6pyTKn6q4nNUnFtNXP9lRUmcKhzefaZ6Z0juq3Y65SOzbYGfNamsdGu2OeUz7KlPjpoadjlaXjWvpOqgIXRPWhp22DbrjhxbR+y57tcRRfTOuReDGt5+nFtJ7GF9N6RC+m9YxeTOtZeDGtJ/HFtE9DNe+/tC1bkDuKC3LnuCB3agtyR7wgd8UX5M7sdRBHdlpnyE/p+q34TFWP7EsgHMWX3p3jybtTe9Xdkb/G7szj7qzE3Unpgf/hRTuHs/Qt2Z6qOoldanIv7VQVUcgu57KX4VQVGufON6Lzjej81/X91yYe0iwM3Syn2MxPwoy1YRdt7ntb6Sie8gK1MnJEeQmKF5izkpeArJoM2YmiF9giDOkiXgXqURlERGFKcGHZ3M5y5qzCMaxyrFaVWK1krFY5VvzsNigiViuRF6tUFE+hD/6dV/2WebGj9D1XZVpFF04PujEnP9YPurGYnTk96MacPTo/6MZCdOv0oBtx8O10GsBcObg6DWCJvLx2GsAyu3o6DWBO/l44mLwhym3jZPfGleebmC3RJDJA4+yCJnDKmxDz3jDNCIVTcTsOc0PBIhI8SxinqcK5sAYT6xFSM4dpleilOcSEWvR4Nil8lrOF5xXjPLkUoc275WnG+K4giQnHJHJS49pOTWZPNYEmIeM0ExXO01Hhi5xKPDEZp9nJuZqiiirmqSKt8mHyjGV8V9jF3GVSJeyVWczkWtjTfGaCLu6n3GuY3gzRHGdcTHTp6eYyoPrpZq3y1Lfj6WbdREyD+ulmraYpsfJ0s5ZpetRPN0sVp0p9wUKrctqsXrDQDXgK3XnBQjdK06m+YKFVnlqDihNsFLggo8qTbVTllBubiGklNuAJJKppGolyqtYoU81GkafloLKjkRin6Pgya+0D03QdVZ60SVX2GJt8K9JyGo8tdo5FntKjvHss0vQe1Fktb9NUH9U04Qe5rX1cmvyj+u1gq4VAbMDzUlQrs1NslOaoKPMCIaq8TAhqWiwEdVFL7bRwiCovH0iVi4jQRi0lQoNVrUNpWRHVbw+oWmLEBjsHtLbciI12D2heekR5l5k91SKGi5Eo8JIkqmlh8nlYjZw8t62yB0BlugAUYg8cPgFoiTIgixowCxWwIT5ASg04Ks59bMRKYUD4cssJIepwermFueq6ermFJQpCfrmFBQ4Hv9zCmAJTOEWnYA5ReofkRHEKln6HRIoqbNV3SKROAay8QyJVDqV8h0RqFNQgUmSDxuGl9zBOMqXQqvcwhKTCWnkPQ6gUUvkehtA4nOI9DKFQKEGiQILCYcQ3G04IUQDTmw3MVejUmw0sUdDymw0scLj4zQbGFKjCKUoFc4jECwQnWqGA1V4gqMgqfDteIKi0oGBWXyCo6BzaygsEFZUCTTLFm1QOe3js/oQZhTo/dp8EFV752H3SKKTisfukcBjTY/eJU+hMoKAZ53DZz19AuJxRuFygcLmgwuVqDpdrFC4XOFyucLhcieFyTuEygcLlv8NC4Rq+pR+CVQiFqmAKVMEqTEXLQSoKhahgDlDhHJ7CY3AKpdAMmAJTfvohhuVsCMn+9ob+GcYDmT3kDCxeHAIBLwkBtgtBwPzKDkA/ewVYnkgFZFd2nG1+DOHQema/gwAonm+54L9+0G/ZywWOxG8e9Dx9O1JP4y8d9Ej+yEGv0O8b9Cz+tEGP4q8abJBfv+q34ulej+ySpyNx2tfzdK7X03iC1yM6YesZnaX1LJya9SSefp+N/IoSkm3i7h+8Kqgf5ec2Vv41o8DKaXZg8UlqF8Kj1IDxq0aB+zPWzuBRaofwLLVBu8SzPRPdoM11ncMXtmXnnI7iY0vO8QTUqT2g5MgfOHLmTxkZa+OxtiKybS2KrY5iK6KVvhAVJBVI/0pUYP5ugzF/wN5rAi+XeFat4lauFHU1pOeyLFa5LPTFjl4RBcOXNXoWCmZcvHn7yP04eDMw82ZgcchAwCEDbEMGzMcFoCc4wOLNgGysnPU3IXwrvvgwTg4LPL34MEaHBSRffBgHhwXmOWYovj4zHhz25Ni2bLHgyBYKjuIiwTkuEJza4sCRLwyc+aLAWVkQOLHFgKFSC8dA8JWg8WCw/hdN7qXZKyLdy0b2Mngr4Nz5RnS+EZ03X9262XiE18vHo3SRfDzKV8bHgwW+sL2aAwKKb6Q5xzfSnNobaY4oL0Hxd9WclbwEZC+mGfJr1TaIaHw+2P6jOGM0PkDip3DGZHxA4w/gjIXxgUI/ezMOxgcs/NjNhmwu0J74Vlyj9ygttifFL/d90zIAmPklsOg8IKD1ADbvAeYWA9DzDWDxS0BmPM76p8yPbSs+mztJfgk8Pag7Qb8ExI8uu0I/pzFBvwQUfyxjMvjlS98qRw2oxB9Q6Ahw6AjQ0hFAdrjALPTAhsgDKT1wFNcOk+SXk8Ev9/f3bdPzzJktSJHFPHMBrQQorkehtVmMIzcSZ5B8BumG42SEq9HJKK1GJ6O8cJwMrgm7bUUE2lpvw8IRsFeVM57SQYKCc2iTOjAvLmNkn5ORWjdORrhunIzSunGS7BN4WjdORmndOBH2CQqtGyejvG6cjHjdOLH7GeAn6WZNEtgW9e2apAqDTDdskpCsMt+ySQqZZrppwwLYZ35BkbgyUvmCIklkqdUXFElmc80vKBInmy0cvNYQGa5xcl3jynpNzP5rEpmwcXZiE9iOTYiebJiM2W/GhQrle3SEseqNsVWZwI7tgjIyU7N3uyQM3ERyceNs5SYkPy8Km3rh4OyGyN6Ns8cXoRWfl9zehJ2RUr5vGpu/CZUZwPQ0DZjCc4EJPCGkW7oURzE1FGklEE0SxtVMYWKeLkyiOcO4njhM5tnDBJ5CTIjzCN1xLQarbrkqjSeU6k1X1UBMK+q2q9LS5CJvvCqRphh161VoMNEgpbkGJTXdoJ5nHFRp0kFJzzvYgqce1Gj2QYkmIJBgDkJK0xBKNBOhpCYj1PN8hCpNSSjxrIQaT0yoxbkJFZqewr34YBTiLn1W0IwQs8+ixrNV0JQNY4M8ZwVVTFuo08yFEk9eqKX5C0SewkCCWQwpTWQo8VwGWqs/Ps1oqH0rmmpeQ5mnNtQqsxs2SRMcijzHocbTnHosJIdbTHagrjSlKQ8lNeuhnic+VGnuQ0lPf9iCZ0DUeBJELcyDXcX2P7u8/a2Z4myIBkdDFB5lAg6fArQ8iQLI7vsDs5vbwOC37AeCPxW9Refd1vmoXNU+x+E/MrQZ2APfKgMKSHzD0jkNIND4DUvnYsBAoW9YOg8DBCx8zfn50Mntb90M5pp+K+Ioq0XaXiTtwtA/KLrdzeXF8COsjprwOQ0mwIDKiyuIOAEGTglQqBsuYsyLAYW8GFjIiy27gunGSfcx82a5nNlMfjXY64FttXHL0sCR+P2oKzJBoPGXoq6E5YFCvwl1hQYHKP760xXms/eV8mB7afmKUmCbAdd5D9elpplXnhjfquX3RmDL5hVHOFv0dFaGrj/GWUiwLcrZtOWcTVsa0maLYtpsWUybnt2UtYhvxft0N2HlASjfuruhdQbScJ/dcLyjdxOWE8DoC8tuyqx+bFsx6Dd5DneeBuMmzNiO5G933cT52Vn8Sc+bMBsbWsetfNQ5VW7yWzVDFCpv1WiVRnDXWzW6SR7XHW/V6BY02rW3arTMOZDfcJHx4szY9YaLbvKtEeHU2f2Gi27ECVV5w0WrlGb5vQct7AxMzsNiJdv1wx1a1oBwTiwo7BQEXLJsURtsqS3z8XYrG6QhaFXxzMihvfRSpNA2O6whaEUPvD5WFfgbYdTOoF350tzHjKAVBpaQtyqTWFo6bWfHKEet/MW8uSqPSm/3yUK0I1bjd6iyKuyImyQ74gbRbFgls2GZzIbl8GWZLMYnSnpVB2tHpHaE6Vsx2h2gHdHZFZpdcakH5dsRgf9/d3Jo6pByI//60YiHFbvSQsqKXS70ny3i2U/UytwptfB0qWjhD+5FHC9mRK18oNS6mXg+n9bU+LCraHE/vegv5Bwl6dE60AVpdLEZsJe2FZ+s6ZEtKQDZwQEM18AWZQ1jepN33eRd0xLFOeY5UFyMOI6vpi/issMZPTO0YZ7a/VYszB7F0LtATy1tkM/0/VaciXtkAQAU9+9CnP8XZTVkh97mALeVaLYymm0OW1rWuCIC2sYX9hdh1WLoPoTNT7SeG/s9tPcprlQvJq0h6r1xyjHnnMP6jqNhsW9O6Xy/kbkYDnW3MUk5zdPNRuY8PuJmYxSuc5w5/43LIkg3LYdKKBwS3RDVhHEqDOeqOkylEgl3OmNnuVgq9zlJrA8R1071JifJtVHiUsp3OCO/z8OQKqsIv+c/hxqz72XyVoYoaMYp351zjfGXPg01hl/6RC25xtKXPiUuBlB96VOSco2lL31izqOXv/SJhOscZ64x47LG0rdHDTVWONSMIaox41RjzlWNmUo1hl85RZ3lGtNfOcVifYi4xmpfOcVybZS4xtJXThG/z8OQaqwIv+c/xxqLX68CbaPAAYwqVwCpqfbkd7qUCsxXn9RfpWqsXH3Sqhr2+tUn3UBUaeXqk1RTLtSuPin5ujaCqYajqitZf11MqeegYpVGgWs7qlzhpMo6j2242vPVOBWoVPm7rsbJJt9KhOQFu6/GyUa7cyG5Q+VqnFLva8Oc/SLIv9d26N4xnNj1Fxm2l2qMlKATtq+0iji+HBA1fEEgKvaSQMT+OkDk/kpA5OW1gEjtG6oC/jQqr3MasRNnwuIV0CJuvk37KOx3nNpM0mdPdEwnKUDdAMFPCvVb8XpPj6JN9Ehc3+l5uq7T03g9p0d0HadndP2mZ+G6TU/i9ZpHmBS8T1Fvcp/ojsNjNnrnsk/ihsJj8HFHoqt8v+Cx2JJv5WPmFx+NywNs85Hktx5NEcfYxvfRHoN9GDJreNGjpzQcT6FrT7lrT5WuPcmuPeWuPVW79iS69pS79pS79pS7tk5dW4dMW+dMW+dMW1cybS0zba0zbZ0zbS0ybS0ybT3Ce+prHA5A4p76moYDaLynvhbDAQrdU1/jcACK99TXYjj4wscwJuHCR2zJo5MvfDAX4yQvfLCURyxf+CDOYycufEQBRjFdHmCuxlNdHmCJRrZ2eYBlHuN0eYA5jXa6FjAMuXh2cRh1fnYxteexl08uCklkQOW5RaXmPFCPLQqJs0E/tpg0yAn1MKGQVGZUHiUUKuXHjgcJRQvOEvUYoZAoV9RDhF26/Os//w8s8zdF" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json": /*!**********************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFnV9TG0myxb8K0U/3RjC7NgZj5o0ZZnYGz5pZGyH3bsyDEA3oImhWfxCajf3ut1Xqyjx5Mkt+cbh/p9RdlZV1qrrVJf5T/dg+PjZPi+r76urvy/nortk7PPpwfLh39P7DyUm1X/3cPi0+jR6brsDl5LGZf/dDO735dTGaTsYbdTmdorq3UfdUHj1Opmss0MFhM7m731xwU7Y73pY+fbqbdqW+e3vUkfnPk9fm5vfJYnxffb+YLZv96sf70Ww0XjSzL83msz+9Lpqnm+bmc/s4euqr+cMP7Wv1/b++O3jzZv+7g7cf9k9O3u+fHLz9Y78adGVn08lT83s7nywm7dPmSl0xFS7vJ+OHp2Y+r74/6vhVM5unYtWbNwd/efPmTXeNT+1iMt605Mf2eT3bNGLvf8b/u/f25MPR/ubf4/Tvyebfkzfp33fp3+O905v2utn7sp4vmsf53q9P43b23M5Gi+bmL3t7p9Pp3ufN2eZ7n5t5M3vp6DaYk/neaG8xG900j6PZw157u/fb5KldrJ+b735puk+d/m1v9HTz13a2N+k+PF9ezyc3k9Fs0sz/0lX3p+4yN5Onuy/j+yZ1QKrFl0X3kdHsJqtdwR9Hz7/0ffL+/cl+9TUfHb4/2K9O5+NNpGed+OHdfnXWyHEX4+P96svi5pdhV/Yg/feq++/bg7fb/vp7s5hNxl1E//Wfavi1+v5gE9lPXU3mz6MukP/d3+J3XcwSbl7H09Gj8KOjoy3/97LtQnU9VeVNf6Kn5eP1pqfunrx2006no5nwD+/ebflzMxtvMj4Lx8cftsLosZPmXXi0ZvkzqQapy732PJo1T9PmtiTZj0n1RvPNGecPqhz3yvN0ORcqMRt3A3XkL3G/fr5vnnzxrimTVltykBs5n47m9742fzaz1tP2qfFwsQpKLu5nTVD2tl3OAjp5CcrOJ68BbF6aoG+bOKZPE6iwhGjcTtsnj+fN48RK0gPTjQ842vx7OZp6fDdrupEcNPPfy2aevEZT8KDve637+/fHW3bq0Q8e/ahpe9Cf7MyX+smjn/0H/+aHwC9+UP7qG3buT/9R0du3W/Sbtjuf6+++Ep88uvDn+t2X+oevxGewjvdb9MWf69Kfa+DPdeVrP/SlvvrT1x790yffdTeZPTQLYxsyRq87zY5T/hx5yrF4yngyGU9m4+Wj77XlxrXn3dQTDJHkb6Yy6lMeXQs6PDzsx1jgv75UcOVb/8E73433PkgTj/7Pn+vBl9IhLGn/6K8YmE5ge8/BqPdDaObR3Ndr4Sux9CF88Um48pV49R9c+0r8qejwg+aXTYSDg9zrMJna8ruycTGZ3hSn+pt2FcTZzM46EyzSQk2T421u/+1mYYg+K59ZR3PH7bSdTQI+bwpnGS9n3TQ+XvsuS8NmPklL18D+t6uWeFjdLSed8tgu4pXDRk4n/oZMoc+JczsJWLB+6lZy4XLgZnR3F01pW45LMVpwbPqumTU3/qPdWmh0Nxs9g6nlj153dxFN0EoN7/VoviPCu9XC+ks6wOrdXUGOzXQ6eZ5P5oHUtXVx3y7NWtFN+ya5tedmo5fABkfj5SJauiQvv502r16jkZXx42g8i5Y717MmuvBNuxiNzYhTadL1JAZAlBmOQ61sc9OFNFqjLp/uRrPl43S0DC7T3nXLzIfgdCNsB/TLo8nZk2xwp7rqOXjf53w7u7ntlnlmXagLFDvH6vrDcrnAhV7gncwJs5vHzueWU7yCnGmkTDzjZjPk5/Ng+poW1uZtoZ5tkPTd6OxuiLush16TlZzrUJ2Ybf7p5G+zRiemsEv1dLbvdG3kaiCTxc3kZXITdFJta6bL5WBoaLXth3SdF3xIJ0gagzJVpzsvGiTQVH9KvZ4ZKIp9GKTmNBr0M9RD0hP0Ab0HcBfRO4bOIeAWxN5iUkOPD4+z2D/0CC5FnqOrQpsH2so4Lp+iCujwKOWotVRd50dn0xup0tmsrUI4vVFqhphmAidH1MWrvfrhSR+waftn83QXXP6zvYTew0WN1OTYOUgCUYcXTyOylrUVga6mturdj4+c9tF9OwtadUFX1zAURsEXcok32WwLYRvQBTRidmozjzfmy7TGmQX1pRSUKJY42Wo2wcfldDF5nq6DelEDNcltd+RE6lZbi8loejO5vfV9tS5bwyd7HU3YXcny08402zHrlKVxoaOfSjZIHQqeEo/NX+lE+PCtWzDgEzi5AZq1D80T3gaJOc6au8ncLnx1iNLKS6djPy7kXmTZjWpzN6LBphWkDMyCobU8lmRcFlLqn2Tahyd55Zqec9mnYNLKnxb3vq4/Fg1wGvnWu7xsWxRMpinOjqVZ8LS0fNiRlYUA/1kaGqVKXZR6pDT1lDx3XrpyeRxf7FyW8IyZ1wXNdBE87lkYk1ZPXLU7HDFY6b3PJhe0xNZIQxWuM3UsUOj1PtWucI6P0Me7BJ51iQxVk2nE3cJ8OMj5OgonpI/hIkPuMGzH6T2MfKkTmWJ5ofFrITV/LY3x32j+y3HoonY/msKztzzIN7cm9Jxb+iJyefFlu2zSVPtGB9I6SILA87Pc31gzxQb13Rr16iic67+E613J4PgWRzKss4noG4+2MOX/WKjEkjL/UOz8ZjKOjPasMKHNdrbmk+0frW5huft5d17vXFqfFs55WjTp+HbgovDs8M9g4tSlSGG6LznFQ9iUN9mrzEpAz7ZzKNgq6PPdnVeatneb/n5qg0dVrTdTSR8v5QzqTlUYyXfhTYM8X4GZXGNeSN+ncB6H7w/dFKGeXxrjPy0330X+sV99bGZPv48ms803yP+qTjdfVVf7370/+mO/P9q6h0HbelrUmzrCv22O3sjR1lUMwoahcNEdHelRrgIgSA7DpasM3Y5/g4zzGKUPmWHbp0MGbQcOon9sjqT1l/YoxwyRab0KA3PWgW/9oND6Qdj6gW/9oNj6QdD6vPAzLNkJkqvu6ETaMOyOuqk4H9bd4bEe5SYBgqorhVcCOnyY8bI7eieFlvlsgEyAgMNVgOYAAaIAgSIBAiYBAtYHSMmLacPKHK3tkcRHEcZnS/tCOF4F0aAVTiNXOQ/frMAYFkQDWXg4mrMKQ1oQZbbwKL1F9DkuEiW68DjbReaUF4FGvXAa+pnD+M/oMkDkBMojO8jqwF+OjUH4rvAFFiFSIXwFsxC5FD5nGyJY78gYDCQjdJHMwEoEkZ8I96aSpchZsgb2Iog8RnhkNCJ6txGJLEd47Dsis/mIwA4kgrWhjF98q1cerQNE1iTc+1NvE+hPgsifhJM/KWd/ygr4kyDyJ+GhP2UV/EkQDTDh0QAT0Q8wkWiACY8HmMg8wEQgfxJO/pQ5+FNGlwEif1Ie+VNWB/5y7E/Cd4Uv8CeRCuEr+JPIpfA5fxLB+lPG4E8ZoT9lBv4kiPxJuPenLEX+lDXwJ0HkT8IjfxLR+5NI5E/CY38Smf1JBPYnEaw/ZfziW73yaB0g8ifh3p8wNGhSlpNTWZHsikT2LCODcVlO7mXF0MJMEfAxy2k0WjEakraEH5dWp8FpxXiE2jI8TK1KVmdF8jsjgukZflniZH8kRh5oigwK9WA3tOI34x/4otV3xb/gkLbMzvg7r7SqNUyjgWsajtZpBPBPy8lEreid1OiRnZoC4KmWk7FaMXJXW8JbrNXJZ60Ym60tw45rVbZdq1rvNdpLIU6rAl+XOPmxFb0pK0FLRkqGjBLZsZHYjEEEK0ZKRoxSaMNQAEwYKVkASpEBoO6HP6o0+FGKhz6W4IGPGtkuSmS6IIHlAr2MKdmtkSKzhQKD8OpstCh9I8qByaJajnLBYLHEjig7c0XNWisoYKxA0VYBg6kiJUtFyRsqqJGdggxmipSsFKXISFH3NooqmShKsYViCTZQ1Ng+UbPmCcpLGJNVSNcxJdNEyVtm33r0S0FklsLJKZWzTWYFPFIQGaTw0B2zCtYoiEas8Gi4iujHqkg0UIXHo1RkHqIikAsKJwvMHPwvo8sAkfMpj2wvqwN/OTY84bvCF1idSIXwFUxO5FL4nL2JYL0tYzC2jNDVMgNLE0R+JtybWZYiJ8sa2Jgg8jDhkYGJ6N1LJLIu4bFvicymJQI7lgjWrjJ+8a1eebQOEFmUcO9Pua5oUMrIoVQgiwKBPUokMCll5FIqhDYlMviUMhppKkRDTVU/1lSjwaZCPNpU5+GmCtmVCuRXIoBhCbuMGFkWCJFniTwIrsmupcLOWAa+pVoplgXnUr0YS+ddqljzEg7uJQztSyD4lzIyMBW8g4kWWZiI4GHKyMRUiFxMVW9jqpGPqRAbmersZKqwlalivUz4S9D+VcDWESM/U8EbWq4YGpoyMjQVyNBAYEMTCQxNGRmaCqGhiQyGpowGoQrRIFTVD0LVaBCqEA9C1XkQqkKGpgIZmghgaMIuI0aGBkJkaCIPgmuyoamwM5aBoalWimXB0FQvxtIZmirW0ISDoQlDQxMIhqaMDE0Fb2iiRYYmIhiaMjI0FSJDU9UbmmpkaCrEhqY6G5oqbGiqWEMT/hK0fxWwjaG9YyYxYQFbvdVm/W+UqANlQmaWMVmZYDayXgAby4RMLOPQwnoRDCwTGnIZRwMua364ZYUGW8bxUMsqD7TMybIyJsPqMdhVTy49IasSHBlVLw7cldikMt4RscCgshJHrGBOWS1EzBlT5taWegqm1BO0pB6BIWVCdpSxN6Neiayol8CIMiEbyjgyoax5C8oKGVDGsf1klc0nc7aezK3x9PTFtXXlyNoTWkFl7NdP/SBAvxFEhiOcHEc5W05WwHMEkekID10nq2A7gmgUCY+GkYh+HIlEA0l4PJJE5qEkArmPcLKfzMF/MroMEDmQ8siCsjrwl2MTEr4rfIENiVQIX8GIRC6Fz1mRCNaLMgYzygjdKDOwI0HkR8K9IWUpcqSsgSUJIk8SHpmSiN6VRCJbEh77kshsTCKwM4lgrSnjF9/qlUfrAJE9CXf+9ENHT7ujgyM5yp8FlL0EkAkpcLgC0BxIQBIkYBIfYH1ogOSBrWiQMlCOcgsAmeoCh+oCzdUFRF0OijQEmDQEWN+QLTkzcT/zcT/zcT8rxP0sjPuZj/tZEPezIO5nLu5nPu5nvRkcSXs2PnAoR7XRamuDZzTue9qbLkZGEIVHOMVIeBQoEX20RKKQCee4icDBE8FGUDCFMfMrHwYIaEa1L8WhFR7EN21itPHNiOObOcc38zC+WQzimyWOb+Yuvllw8c0CxTdjjm/Pr3wYML49qn0pF9/MXXx/7kPbT4Y/Y1iR5ZAiI4NSwTiUYrUoZeBECsGKFIoXKcphAzaSuT4d5aYAyi0BZBoCHNoBNDcDkLQCmDQCWN8GILkJira/cdk16uAkI2pjE3RQkxd/hhU6qIk7CHbdWh50XBN1XBN13EQyNh3lugMy1QQOtQSaKwNI6gJMqqKsldVaOrJru4RMTYC75V6iuSaAaMoFReoILN8GAMr5oKj/EVOTEDMzfmd2tCck9wKA7G1AEs6Ns557Uz33fnpesNLz0EXPvYGeB955HtjmuXPMc2+W5/2gP5T2jGyKneOgBxRk3TkNeqA2687NoAdGWXcOgx5IboEiGfRCrN74NsmIRxS3qQnbZIY7YN/UJmhqEzS1tUe+zm2hgm1YwdbXhAcYKEEdZYAB8rHXASZoaQosfUOWhYYsw4YsfUP4fgyUoCHLINhLk1cfq+2TkHd6ZO8sEwpuKhN395OJ2lvJhMK7yKTQDWRiOfyAcvgV6VD+iIkOKCc6Im8/HynRkUKiA7au9NEkOjBypY99osORr3NbqGAbVrD1NeFEByWooyQ6IGuTH/usPpC4S1YDsrVWjrVWKrVWxLVWRWutTCOrLPu9kLU98rVe+9qZqQ7HBQk0REiNRgsV8QOHCtAYIjUeTlSIRxbJNMhIpfFmVUgPEiijSaUByWqQ+lTEjwIu4EcslaAhQyqPEZJ5SFu5LQo7wxKOeSryrYazE5AamwIV2t12tgpSyTWsuiyNMPYSUiNboSLfGsNsNqTGvkOF2IJIZjci2RqTFddFYWdgvHP9Vm0f7b/9IEdyYwfIrORV2DwveHecj4bmqLZH4nyK0MuEmsfZ268OfusbrIXW/mxrfzbcc9/X2e25dzxqKW5Ip3MPPaoDRPWN9qOTFMUBt2FTcY5ItA27l2xKQHBIoBCxGgXKlrkqXXNYEuqiQM0j9VuNjILpB1T4UQ5seUD1BXq7w8AKopAqj4KZ1St/7qFHdYCo6sLLlY4ClbW1L87BEe6u8Kna3vdvlwXpyK6FEsp3zYCCNVHibiGUqF39JESrmcToO6bEzNdLidilzKc8pE4DRG0RTg0SHrVKRN80kah9wrmRInBLRbDNFUxtxi8bGFGb3ZcNzKM2R182sERt9l82sMBt5i8bGHObzQg/LQrcfqtyFKwaxsIWCSJiC3BcrOqiY2UXIytTpKxI8cpfnJ4GiGIknKIjPIqLiD4iIlEshHMUROD2i2BbLti2+aJv7qEe2Uc2F9hIQMFTnAtqGlD7FOfCNAgYPau5gGYAsc+hLvoZCo7s470LPy+poN8TXfSzkR59NSVro9HXRBdV9A3RBRrtISEKszNa5lHAI6NliULvjZYF7gQ2WsbUHbhWZUQdU1irknrl4zn06Kv/YO1LcbdFy9deMtu5oQMtp160InWlFaP+tCV8p1qdetaK3L1W5T62qu1oq1Fvux+eCDn1+64fnoiKXBV6ZVjgXwvnqQvlOSuKv7/Q67BpFRIDKaUFSpQUKEUpgbpPCFQpHVDiZECNUwE1mwioUBrQZviAUgqUN8P7Aldh5Ich/RqeoQ7LcrcX9oj3at4GCD0uiLpbOPW18KijRfS9LBJ1sXDuXxG4c0WwPSuYuhX3+DKiDi3s8SX1ysdz6NFX/8Hal+Lui7bE9pJ9xoVdyAr1JMvUoSxH/cplfPdyCepllrmzWec+Z912PauUASRflhXKBydHaUGFroo9NiwqX4tnq4uf4cxh2SeQ7JmD1FFGSaMCpYsKUaKo6lNENUoOFTgtVOGEUMWmgnJKArNz1jHq+NLOWZavgugOA/Y1+GwdlONODTeY9lp+ugO9KYg6Uzj1pfCoK0X0PSkSdaRw7kcRuBtFsL0omDoRn+Yxoi4sPM0j9crHc+jRV//B2pfizose8PUS3qQfEqK+czfpzKO+i27SWaK+8zfpLHDf8U06Y+o73LrAiPqusHWB1Csfz6FHX/0Ha1+K+y56038r/d5324cjOcqfBZQ7C5DpJ+BwBaC5dwBJxwCTPgHWdweQ3BOK9JWpdGRzLiGbbgkFmZa4S7JEbX4lRKmVGGVVYiahErG5tEH0nuQGNaaTGtulCdnX4rbIb2pJPOx488U0YLvDJSHavZIYbVzZsM2XzUfSLfINMyBbQeVYQaVSE0W8zUYVraMy2ZukSLYlCeKXEv9R4Y6GdGR3NCQU7GhI3O1oSNTuaEgo3NGQFNrRkBjtaEjM7Gj4XG1fDjnUIzsQEgqyPnGX9YnarE8ofNUrKTQeErPvrCVkk/9z76Hv9CinNSLjnCoMzHkGvr2DQnsHYXsHvr3cS6AE7R3Q+P8MvaRkY/Xb7+E+9y6vR7U9krxThPm1pfmRGfS+IAqJ8CguIvrgiEQREh6HSWSOlQiUIMIpS/AR5jtClC+FR5ikDvy5OX2E74pVkEgiFWJVSCmRS7FyySWCzTB8SksZMvSoDhBlXfRItpfy91yQeoIonMKjcIrowykShVN4HE6ROZwiUOoJp9TLHFJPEKWe8ij1sjrw5+bUE74rVkHqiVSIVSH1RC7FyqWeCDb1cC8VZcjQozpAlHrRXqosudcicyXi1yJjNQxw8bXIuAAHe+drkXEhF/j4tchY5YR17+C8CwVO3l3v4IRlBqVrunS26rdjHqW2LbAz5qU0t4V2x9ynvJUp8d3LSWGWDktCXRR4QBRfTtoW6Lo73dBtV7fpyK7CE8q3Q4CChXnibmGeqF2YJ0TL78T0FkFZ3tauxK7IL/vRrO25sDG4dOMWeBgQGaGAePWtiq6+leUBCEj26wlK2/UO5CjXGpBs11Nkt+spx+16SmW7niLdrqdMt+spy9v1lMh2PUHjdrrd1nWoZHtjqmXsJxrfSrkvRRS30tyXAoX7UigsSadIk05Z0Pj79fN9Y6u02cm3fX0sHdmXzRLS1ziEbe5vTyRL5f4WULD7MnG3+zJRu/syIcpLUGhfZmI5LwHZTZgbJPe32vqZadbMt1723CGyU4II8+Zx4jNnacos/SXoVyGUuxf8EpXXcBTxjgNV9N0cZUF/yu8+CFmZo7U98m3wLyPmaRVd2L3Wxpz8OH6tjUXvzO61Nubs0f61NhasW7vX2oiDb7vbAOaRg0e3ASyRl5duA1hmV3e3AczJ3zMHMxREHiic7F545IYieuMXidxfOE8BIrAVimAnA8E0I2ROg1uxmRsyDk7As4RwmiqU74hQMGmo5GcO0Wj6EM5ziAil6PFskjlMKYLIMoSzGWUBZhhBNM0Ij+YaEf2EIxLNOsLjqUdknn9EoElIOM1EmfN0lPnMR4MnJuE0OymPpqisBvNUlpa+NM9YwqNpS8TyfMATmPB4FhOZpzIRSilEk1rGK4/WASq0Opro3LvMeTaI32WOVZ76drzLHBcJpsH4XeZYdVNi4V3mWKbpMX6XOVRxqowfWMRqOG0WH1jEBXgK3fnAIi7kptP4gUWs8tRqVJxRrMCTiFV5srVqOKHYIsHEawvw9GtVNwlb2U0mVqYJ2Yo8LRuVHY1EO0XbnaNFYWek3aRN6jcjHU3gVCCYxm0Jnsyt6qZ0K+/uCze9GxUneSuwc1rVubXdqgrTpBV48rdquASwRYKFgC3AywGrFhYFtpBbGliZFwhW5WWCUd1iwaizUjzdwsGqvHwgNVxEmDLRUsIUWJY+6ZYVVg0XF7bIt2Zit9CwamG5YQu5RYeVdyczL0CMuCoJ66KwM2J+YTLoVyOHR3Ikz6MVyRshiuxzaeX4MFqpPIFWpE+UleljZGX52bESeYS/RWaXCiFqi9+lQjxqVbhLhSRqX7BLhQRuqdulQpja7Hd3RJxaX9jdEYlRHMq7OyKdIlLa3RGpHJt4d0ekUZR4o4OnFKFwo4OXouiUNjp4lSITb3TwGkcl2ujgFYqI2QVAiGLhdwEQj6IQ7gIgidof7AIggVvudgEQpjZHb8/HCkWg+PZ8LEfx2PX2fFyColN+ez7WOValt+djlSJnXxtnRtEKXhtnIYpQ/No4axSV6LVxVjgS/rVx5tR6+bsMpxGj1qtArVchar2qvvWqUetV4Narwq1XxbZeObW+/5H4U0+o5RlTuzOOWp013+asUIsz5vZmzq3N3LY1U9vSq76VH/TIvtV7ha0DFLzVe0WtAmrf6r0yrQFGb/VeQSuA2Ld6N2jzo/rbVxvTkf5oqyC7UFdBfyMrHdmN4gkFe8ETd9vAE7U7wBMKf+wqKbQtPDH7s1YJ2U3fG5Te/337Vg7lORAwCQIw+0QIBHwOBFie/gDTxzkA9ZVTgPmdU0DyOEeZvTfaEvOG8wbRZ5qgwfpLsMgKDcbnCsdA8YdgobT84qki/V1TZVEU5BHBsfTe5rnAkeTuxD70TIgeJW5Ya0/bBhFoS61t4+5tg+7lm3iUop6XG3ZkQS/zi9Mb5u+MN3Rpmr300VkGT3oTd493E7XPdBMKXwxPCj3iTSzojKV5mDvsPXTbhiF6KKA8HgHZn91VjsmpVJJQkSahMqkusL66QOT3dgWlp8zSHn20rMiml3LMLqWSXIo4t1TR1FImmaVIEkvQSOaBIRohIDt3DZ0NAndz1xBNEBDNXUNjgcDM3DVEA1SUR8ARkK3/ad+kZ15v5Ege9CmSB62AzAM/5W6Dx5CtDwrbDR5D43zA9DGpMDE+LaYPRIeVewo6rPyjz2FvfB/kFOJ7gGx3KsfuVCrdqYjyEhTtaGU5LwFJrwoSv9NORLvTzl7aI2t3w4LdDUO7G3q7GxbtbhjY3TCwu2Fod2t75Gu9drWrjUvW3iVr75J1wSXr0CVr75J14JJ14JK1c8nau2Tdu+SBtEdcElDwa5g1uSRQ+7uXdeCSoNAvXNbokoDsb1nWFX5RVlfu27G6cl+J1c4lgbsvv+rKfeNVV/5rrrry323VFX+hVVfuW6waXBIJfl9VV2aRWFd+kVhXfpFYO6M8Vu7WiDUbJZ7FrhHryq8R6ypYI9aV+xqprnCNWFdujVhXfo1YV2aNWFd+jVg7s0TBrxHryq8R68AvUeI1Yl35NWJd+TVi7T2zJs/U4CztkU/nZSF3l2HuLn3usmeCEmT1Msjqpc1qfEzfN889pmdOXhg/pmfRu6J7TM+c/dE/pmfBOqV7TE8cPNNtNmMeuWe02Ywl8tHSZjOW2VHdZjPm5K2Zj3xPs8sKJ6sVHuWsiD5xRaLsFc6JKgJnqwhxyrIbZ07jUrHx5YxxrAtjgxKBbVqFwKtF9IatUuDaIpJ1C2f/FsGZeFbYyTMHOxdEni6cjT0LbXA9Z/EihD4vamD2orHji1CwfdGd94vCE4AIPAtkgaeCzIP5IEvLABWGYDg9iFgeajxRCI9nC5FLI9HNGyLYkUjf5PUxib7JCySaRYrf5AW6n0uib/ICiWeU8Ju8QLPzSvRNnpdgdkFKEwxK0RyDup9mUKWZBqV4ssESPN+gRlMOSjTrgDQKs4TnHpRo+kEpGhao+5GBKg0OlHgAoMZjALXiMOA5CSSyB6OYmQkUtCDE7K6o8RRltGCWQt1PVEYN5irUabpCiWcs1NykBSLPWyDB1IWUZi+UeAIDrY0v76Yx1MKZDAsEkxnKPJ+hVpjSsIib1VDkiQ01nttA4+kNpGCGA3UZ0/JwD6c61HeOaZ7wUIrnPCyxY9S7mQ81M+qvO3Jd5a/srjF4h4L0D3RcYzgABX+K45qaD9T+0Y3roLmg0J/XuDbNA2b+kMZ4M+ikWZujB3sUfWE5lmWmRw8BCs8hW1M8eghQfI78183NWQQ+hDA809aStz/4f3M9zb/5v33B06hWakxaZKNGlFuACF+XAg7Jh1RtGHF+0QaQvEQBTF4tUHZb8R+825DuMtNmPk/PxgU2pgj84UtB9m9WCqbf/tmw2yq/Pn+bHVi01p+Z/Fa5/V2i28g+VRFjVKR/tTQj+gt0t9TV2+njoQ/HNjgPGA5A9hcKHtwkDNx9cf/A8QRsv89/MHMsMPod9wcT6Acf6IdCoB94PlNqw/9QDP+DnbSU2S558F1iRygGvfDOf6xSV+x65z8u4jtoxzv/cQnqttI7/7HMnenfvw/jxV286/37uIjv+ML797Eap0Pp/ftYpiQpvH+/VTeO9yLz8FP2YEDZgxGZM4KQf3lQUdsfbb/t3Rxt3gg/kCMN5OZobY9sZyTkwttilfurZASXyujVf3AdILqycH95Mx9BHQyHihj+WjjPusSpXlb0lYNJEaoGFCoG9DU8wzqmVCWUfIXyxAu1yQiqktGr/+A6QFQD4f7y9LYo1IIUqAwpr8WzrcsK1ZBlX1FZjUAVhUHlhL0Gn11HjKqigq9E/g1YqENGUIWMXv0H1wGi60d/5qmX0Ez6y2cEl8/o1X9wHSC6vHB3+byuKSxrrWy1hKbN7SLL2//3N4r4gepG2mbxePtH7yPNXDA45Sz+mGyRijR5DhJpdsnvS8zjeszt80yr5QuGWr7diFVTnajE82hcuKxugLI42gFmSmgKdtGV9f97IbII7hF/j0KYi/MvLBB2xcM9n6FIH+1js/37SseG2Bd5BMtfV7I42LcmGi79rGJ3qgmm3WfC6UUi4Wa/mVB5w9bgzW9zbd/azGToSO2J5K7F+MwvKS/QAdsLv/Sr7m26vOBSG5AdcC9uUQ3cvZn3wstnwPaFvRezUAamd5jCWnvk69wWKtiGFWx9TdzaVpWgjq19dfDFLF0FSX5vg9/NC5Xemacja/gJ2VfLEwoW9om7aSFRu4RPiJbkidF9fGLmN3wTsevxlUuoVYWPElaVe5SwMgkFKG5TE7YpeBaxMgmlKGgqP7JYmYRa+YRaFRJqFSbUyifUqphQqyChVj6hVj6hVj6hXk3wX33wX33wXwvBfw2D/xoH/9UH/zUI/msQ/LVLobVv2JqnKMJcPPgKxiv4oT/++/9jjgIE" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json": /*!******************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json ***! \******************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyNnV1320aWtf+KF6/mXcvpsWTJsnPnTtLdsdNx7ESGMb36gpZgmSNKcEhRCjNr/vsLgqhz9tlnFz03XsaziwDqVNWuDxSg/5l919/cdLd3s29n7/+5Wc+vukcnZ2fHZ49On5+dHs8ez/7W3979PL/phgS/LW669Tc/3s2Xi4udslkuUXnkyvxmsdyiNsCmW1x93l3nn93lYnMzkH36l7dXyyHdN0enfzkd2Ppviz+6y18WdxefZ9/erTbd49l3n+er+cVdt/q12/3+hz/uutvL7vJdfzO/ne7wr3/t/5h9+69vjp69ePzN8dHZ46MnR08eP3/+9N+PZ+dD4tVycdv90q8Xd4v+dnexJ09A+O3z4uL6tluvZ9+eDvx9t1qPyWZPnhz/5cmTJ8NFfu7vFhe77HzXf9mudjl59B8X/+/R0Yvnp493/56N/77Y/fviyfjv0/Hfs0cvL/uP3aNft+u77maI0e1Fv/rSr+Z33eVfHj16uVw+erc72/rRu27dre4Hug/mYv1o/uhuNb/sbuar60f9p0c/LW77u+2X7pt/dMOvXv790fz28j/71aPF8OP15uN6cbmYrxbd+i/D7f4wXOZycXv168XnbiyF8S5+vRt+Ml9dFnVI+N38yz+mgnl2+vTx7EM5Ojk5ejx7ub7YhXo1iM8H8fvOjscgz369u/xHM/v26fH43/fDf8+e7cvrn93danExBPRf/zNrPsy+Pd4F9ufhRtZf5kMc//fxHj99+nSPuz8ulvMb4yfHU/LfN/0QqY9LU06fTMrt5ubjrqCubrN22S+X85Xx5+UqX7rVxa6yF+Hs7PlemN8M0nqITr6z8Q7GEs/al/mqu112n2pS/Jnd3ny9O+P62pRnZ6fTr5abtVGL2cXQRuf5Ep+3Xz53tzn5kJVF7zk5LplcL+frz/lu/uxWfab9bZfh3YNIefd51Ym0n/rNStDFvUi7XvwhYHffibLtdExvF7eiWl30y/4243V3s4iSlcByZwOJdr9v5suMr1bd0JBFNn/fdOvRaoryolToud/7s6OjPXuZ0V8dPTvbo++82h4f79H3+Yc/ZPS3/MO/Z/SPHKYfvT2enOzRq3xfrz37p8/26Kfc9P6Zf/hzvok3+e5/yane5lTvchn8mu/rt3yu83yu9/num5zqQz59m9F/eVSH3mFEH4fO7Lq7C7ZhbfTjoMV2yr+LnnJS8jFfXywWF4vVxeYmh2KzM+310POIJjL6W7gZ96mMPuYqcSH8N6fqcl4/5R9eZfQ5/3CR0X/nK17nVMtc/iJawnSE7X0RrT4X2iqjdb4vEftNztB9bkIPOdUfGW3zTfzpqaxoh/rVUa08LbVyVUlPPdzJEdTGu8XyssuX3nf1l/2DiHPonb0nuBvHaV45jkr+P+0Ghuiz9put6js+LfvVQvB1VznLxWY1dOMXHsDjoxNoNuvFOHhNrb6MWnSzutosBuWmv9Mjh508nvgrcmVw8Wmh8i360WEoqIYDl/OrK9Wl7TkOxWjAsSu7btV52z899rHQ/Go1/wKmVn76cZhEdCKXHt6P8/WBCB9WKyGyAoj6c6uhy+Xiy3rhDXWYLnhW7z73mzBUTL1+qNtecKv5vfDf+cXmTo1cRiv/tOz+yBo1rIJv5hcrNdr5uOrUhS/7u/lFaHAuLYaCxACYssJm6Dc7TOmGEbcYom5ur+arzc1yvhGX6a+GUea1ON0c8+HFchNqrPGXPuY5PptqQL+6/DQM8sKo0IcnsYf10UfkL4p/vvELPD16Yhe4GVxus8QrmC/PRXd3uWvw67XovJaVkXkfuZ29F0PooW0O0+GhzotC+zGVp3fLsfp51x8rjXdLskT9dLHofGSU7sDG0JeL+8WlKKQ23pkPlkXL8NuOP/JRnviRd4/UBK2jHudd1EYgq/mUfr3QThynMPidU2Pw31RKaEM/8BlAuojPFwaDgAlInGBSRs+emTiteIhLkeX4mJDqgeUyxMVnAuoGvHnU6mh0VB/lq7P5NKp2tuiqEM7sk15DQjaBkyH60DVe/eRsusqy/7O7vRKXfxcv4TM4lUmvHAcbiRC9eXEvYiPZeCNQ1JRXn/vkyNllfvvcr0Su3tDVPQyVUvuVeLmry0rYzukCHrHYs4XFjfVmHOGsxP3GKuhRrPFoq2aCN5vl3eLLcivuizLolTwWR+n4hrHW3WK+vFx8+pTLaptt2JpgvI5X2EOV5YeD1exAr1OXLioFfVuzQa4x7ilzORr6kfoVXHobBgy4/mbTn1V/3d3iJMjMcdVdLdZx2OtNtDLw+lG0C5uJbIZWHeYiHmwaQFrDrESm56pu7bJSpf6LTPvkRRm4jqtccQ3McvnDnRihfFc1wKXyLW9uFZPpqr1jrRd8WRs+HKiVlQD/WWsatZt6UyuRWtdT89x17cr1Lv7NwWEJ21IZF3TLO7HYcxdM2gvpoT/giPUhzs1G5IT6cAuVHGd6W6DQ+yw1jnDOTtHHhwq8GiqyuLVf0wymKMtYI33VU/a/NsOIBffiebmN8kBHeWJ9PvZjZe74Y627/Im6vxKGIWif50tYeCttfDcziQ3ci+KQyd/GUZPXtK+UHw2DLAi17vkqeilmaCpVVah6EPqrHO5aBdYzHKtgg0uoxx09NS13Qn0Tm5j+5LRMsIdu80L57PeVsebq4Gj351g+fruV0e67w9VaXsustXLOl1WP1rOkN5WFwz8PjCd/qPX2dG1fHZZZsfFYGAj42Q42hXgLvrh78ErL/mpX3re9GMX3dS/dZKk05eFUlZZ8dXDO0N2Jhw5/Vqrv7cFufAh56iHc8mtt/IfN7kHkvx/PXner21/mi9Xu8fG/Zi93j6lnj795+uTfj6ejvXsEtL/PiCZPR/j33dGpHe1dJSDMGApvhqMTO8+bcguAoHIEbkUV6L79BxScJyhTyALbLw4FtG84iN6Go992OTqzI4sZoJh7E86Ho1M7z3nJPaCQe+CQe6Al94Ao96BY7oFN7Tqw0U6QvB+Ojp5YETbD4Qs7andJ/ciy5Ahv3SjsB8AAbYajY7vwppwNUAgQcLgK0BIgQBQgUCxAwCxAwKYAObkPWXsIR9t4lOOzzfGZEmF7NUSN1ji1XOfcfIsCbdgQNWTjsjUXFZq0IWrXxlXjNjG3cJOomRvXbd1kbvAmUKs3Tk2/8LcZgQkYIidwruygqOAJhsgYjCt3MDFbhEnkE8a1WZjMjmEC24YJ0TsKRgMpDFykoDa3APYT4/VGo5ylaGAvhshjjCujMTG7jUlkOca175jM5mMCO5AJ0YYKvs8RechoK1Al1MKfJptAfzJE/mSc/Mk5+1NRwJ8MkT8Zl/5UVPAnQ+RPxpU/mZj9ySTyJ+Pan0xmfzKB/Mk4+VPhbzMCfzJE/uRc+VNRwZ8MkT8ZV/5kYvYnk8ifjGt/Mpn9yQT2JxOiPxWM/lQY+FNBbW4B7E/G641G+VPRwJ8MkT8ZV/5kYvYnk8ifjGt/Mpn9yQT2JxOiPxV8nyPykNFWoEqohT9haNCkIieniiLZFYnsWUEG44qc3CuK0sJCEvCxyMnMoqgcLabIthZ18rYoaoOLadjlokpWF0XyuyC+rXBwvsjJ/khUHhiSgBFGTm4YRWWJMUX2xaiTOUZRO2RMwzYZVfbKqEbDDBq6ZhDAOgNvKy2UTTSKX2neyk5DAvDUyMlYo6jcNabIFht18tkoarONadhxo8q2G9XovUG7rwTyocK3NX6o1IQpO0FLRkqGjBLZcZDYjEEEK0ZKRoyStGFIACaMlCwYJWXAqGf7RZXMFyVtvZiCjRc1sl2UyHRBeispGC5SstsgKbOFBGC1SMloUVI2i3o2WVTJYlHSBosp2F5RY3NFLVorKGisgMFWgbayhbGlonSwaSo7BRnMFClZKUrKSFHPNooqmShK2kIxBRsoamyfqEXzBOVehuxB0q2m9XIRljnlHv3SEJmlcXJK52yTRQGPNEQGaVy6Y1HBGg2RLxpXpmhidkSTyA6Nay80mY3QBHJB42SBhb/NCMzPEDmfc2V7RQXPM0SGZ1y5nYnZ6kwinzOuTc5kdjgT2N5MiN5WMBpbYeBqBbW5BbCfGa83GuVkRQMbM0QeZlwZmInZvUwi6zKufctkNi0T2LFMiHZV8H2OyENGW4EqoRb+VO4VDcoZOZQLZFEgsEeZBCbljFzKBWlTJoNPOSOjckE5lavZqlwjr3JBm5Xr7FaukF25QH5lwlvBwLGckWWBoDzLZDAtZ+RaLijbcjX7lmtkXC5o53KdrcsV9i5XonkZR/cyCPZlrBUthA3MhQPNSlmYieBhzsjEXFAu5mq2MdfIx1zQRuY6O5krbGWuRC8zfi+C8yDYVrFa5IWhlRtDQ3NGhuYCGRoIbGgmgaE5I0NzQRqayWBozsjQXFCG5mo2NNfI0FzQhuY6G5orZGgukKGZ8FYwMDRnZGggKEMzGQzNGRmaC8rQXM2G5hoZmgva0FxnQ3OFDc2VaGjG0dAMgqEZa0ULYUNz4UCzUoZmIhiaMzI0F5ShuZoNzTUyNBe0obnOhuYKG5or0dCM34vgPAi2VawWeWFoq+n7JO5AhZCZFUxWZpiNbBLAxgohEytYWtgkgoEVQvZVsDKvomXrKgoZV8HatorKplU4WVbBZFgTfpsImFUhZFWGlVFNIthUIWRSBSuLKlo2qKKQPRWszamobE2FszEVHm1pomhKEwJLmkibajjbUcHVJqGsaJLAiAohGypYmVDRsgUVhQyoYG0/RWXzKZytp/BoPBO9T2F4SGSbiY6tsJupEaDfGCLDMU6O45wtpyjgOYbIdIxL1ykq2I4h8h3jynhMzM5jElmPce09JrP5mEDuY5zsp/C3GYEBGSIHcq4sqKjgQYbIhIwrFzIx25BJ5EPGtRGZzE5kAluRCdGLCkYzKgzcqKA2twD2I+P1RqMcqWhgSYbIk4wrUzIxu5JJZEvGtS+ZzMZkAjuTCdGaCr7PEXnIaCtQJdTZn/460Je7K/uRBdFR8RJAMaTOMZpOLZCOPEjOPD7OSmiclIbt6HyslHZUcgAo3C5wuF2g5XYBUZGDYhkBZhkBNmVkT76f4r733+8x7oCih3+f4g4cMgK0ZASQ3S4wu11g0+0CKXF39N689PvJBvyojUexF/me2v1EJ9PFyBii8BinGBlXgTIxR8skCplxjpsJHDwTYgQNUxgLf5/D0GTUCkShNS7iO77DGONbEMe3cI5v4TK+RRTxLRLHt/AU3yKk+BaB4lswx3fi73MYmoxagTi+haf4/m0K7dHRqR2aFwErIUUWDQoEdCjAZlHA3IkAuhUBLF4EqIQN2G6keeZHJSuASk4AhYwAh3wALdkAZLkAZpkANuUBSMmCo/0HLodMPTUUE3Q5U10Z+iHSmepkpuCF24BzXjuR107kdbGrYn5kFdJRHIw7xzrq1Ibgjnx47czuxFnvw7/x0LtaZ9TXuhA6W8fe2zpL3a1L0N86LJMAZFajnU1fMA0VYmWDofEoDp1GVCoEojAN2Auvpua/N4NX2PoBlSYDSMykXlHTBxrnT69CwwfmhedsajJA4iTp1dTon1p+5rFbeIWNHpDoDF5Rowcau4BXodEDI+N/BY0eSLT7V9Doj4108SiOcF9hm0eUR7ivqM0jhTYPOA58X4U2D4wGvq+mlgZH+Z77yg328gb7fCfcyEAR92hNDFAcib/CBuZoEwpnkyvUplJ7NrL2bHLt4fkYKKJebUS92oR69Xq2XwnZT33HoziLH5GYwI88zd1HGqftI5Iz9lGhyfrISvgBlfA76kIeuhjr11jREeXwv6aKjhQqOuBYKq9DRQdGsX89VfQTy0EfLfN1qujAkz++xooOSC4tvQ4VHVhcUHqNFd3RJh7lu95U7noj73qT75prNSjirjfk96+hVjvZxqN819t8d6Grw3ZBAjURUlVroSS54VACakOk6uZEibhlkUyNjFRqb1GFyk8CtUJSqUGyKtomJcnNlBPkFkspqPGSyu2YZG7SUe5rFYkbOqmq9VCSr1VVdgJSdfOiRNzSSCarIJVcI6qbqnAwMNJWKMnXAsNmQ+r/JTDJgkhmNyI5GlMUt1XhYGCyc/002y/tH/uRDfMAhZG8C7v1gv24fnfUhKM2pGzjsvOI0qLyjorl7J+mDD+1RJZLQNjE9xTfuT8mRJmsvHNPKmQX30cn1OYfcu7V++gkqTjga9iUR46Ieg17kmKVgOCQQCFiVQUqpoFwRaGpCW3tVBxAUnMYYwIVzNygZHw4sPUGNSWY7A4Da4hC6lwFs6gQxoKajNr8Qw6a8RyuIqlAFW2b88jBMZ7C8vNseoZyZkd2d47sGYqjOIFzjnlwahM4Rz5Nc+ZTSWflGYoTm7ntUWlSLwWivBinDBlXuTIxZ80kyp9xzqQJnFMTYnYNU57xYQMjynN62MBc5Vk9bGCJ8pwfNrDAeeaHDYw5z6GFv6wKnP+ochSiKmMRk4iIxAQcl6im6EQ5xSjKFKkoUrzKg9OXAlGMjFN0jKu4mJgjYhLFwjhHwQTOvwkx54Zjnt9M2d178BvMKaCSSUBxhuc8PXN+g7kC5HMzZ747wVnZmODEJmaGfrNR4BvsnBCFfsmFsUuyoyYcfQgp26D59gZHaUb7Bo12uttktMwp1tpoWcxRT0bLnOOfjZaFWBLJaIlDmaSxauKqdMJYNaImow/5h21OxcWmhq+TFF7nhgKMnEoxilSUUVTlGVPkQo06lWwUuXijymUc1VjQUaPSTh+eOBHR43I/9OEJleR9pVSaCv9QOU9bSc+1ov79hb0OL61CxUBK1QIlqhQoqSqBeq4QqFJ1QIkrA2pcFVCLFQEVqgb0MvxJihNXgfrL8DnBexn5RtIP8gytTMvFXntHfK+W1wChxA1RcRunsjauCtrEXMomUREb5/I1gQvXhFiyhqlY8R3fkxgGLtDKO76kvs/xbDL6kH/Y5lRcfPKV2L0U17iwCFmhkmSZCpRlVa6cJhcvp6BSZpkLm3Uuc9Zj0bNKNYBkqAisUH1IsqoWlOh9tcSaqvKhera2+huuOSznCmTvzEHVcUaVxgWqLi6oiuJqriKuUeVwgauFK1whXIlVwTlVgvDm7AlFhAu+9uYsy+9FdBvBPojftiIdF6p+wXSvldUdKE1DVJjGqSyNq6I0MZekSVSQxrkcTeBiNCGWomEqRFzNO4lh4CKsrOaR+j7Hs8noQ/5hm1Nx4akFvknCSfqUtTRJZ05lpyfpLOayS5N05lx2eZLOQiy7NEknDmWXXl1IXJUd7uuneDYZfcg/bHMqLju503+UfpmK7YUfld8CKoUFKJQTcLgC0FI6gKxggFmZAJuKA0gpCUe7zUbP/ajkAFDJAaCQA+CQA6AlB4AsB8AsB8CmHAApOXBE+yR3KCbocqbsyTUinalOZio8mAac89qJvHYir308yvfcV26wlzfY5zvhp8agiHu058OAcvB5U+LbGb7RMB7FNxpGJN5oGHl6o2Gk8Y2GEck3GkaF3mgYGb3RMLLwRsO7Gb4+Nh7F57UjEk+vR54e3o40PqcekXw4PSr0RHpk8fn8iOJD+XdTrOEo3/V55a7P5V2f57vmWIMi7vqcHp6/g1g7GV/Eel6OmnDUxiOrPY6wluxpWfiCMjREITGu4mJiDo5JFCHjOkwmc6xMoGI2TmVd+LlAlSzKojexnkWuBMYPZzFVBxO4TpgQKwYukVLBNhm1AlFlUeuhk1QeMkGNMUThNK7CaWIOp0kUTuM6nCZzOE2gGmOcakzh5wJVsihrjIn1LHKNMX44i6nGmMA1xoRYY/D9IyrYJqNWIKox6v2jIqWthOUm9FZCrcoAV7cS6gQc7INbCXWiFHi9lVCrXM+Cel4VDgZG17yY5GuBSbUwqv+XwOQaGeVUL6NMtTPtupFVqakJbVXgWlvddbNPMEy09hPMJ3YUZzkjsmmlI7HxdeRpLjTSuMV1RLRldWT00vbIwvvaI4n7VX+bmpzn502MwW+pcQGXAbFmBIiHla74sNKZvbfjyF7bMbSbmbw4tiObITqyGaKjOEN0jjNEpzZDdOQzRGc+Q3RWZohObIZo6KJfwirAnuxnXGcnhcRfdDmXNuFCFGqXc6xdQGHCBSexSufIK50zkfnP2y+fu9uQjUXIpr2rBoiWPnasD2ftc977SnH2sjj7XJw8cQNFFLRN3ADlUrWJm+d+FbK1yrmnl8n2SLxMthPW3c2i1JxnRjchzSZfYiMWsUae1q9GGpeuRsRb6V2h9ayRifLchFWsHXkIYdrGo5IHQLjLbk9xv9bkaGm/FnPyY71fi8XszGm/FnP26Lxfi4Xo1mm/FnHw7TTEZq4cXA2xWSIvrw2xWWZXT0Ns5uTvhYPJGyIfME52b1yZhInZKUwiuzDOzmACW6EJsTMwTN5ROHULjkPfULA4AfcSxqmrcC76CxNzp+FS7jlMo+7DOPchJtSix71J4YscIu5XjLMZFaHPl+NuxvihaiQ6HJMq1ajS9Zhcq2XcCRmv1Cbujgpf5Whwx2SceifnqosqquinirTJqbnHMq66LRNz32USdWDGdS9mMndlJtSqEHVqBT/kiG8Foj7OuOjo0ibd0hvoTbpa5a7vwCZdnUR0g3qTrlZTl1jZpKtl6h71Jl2pYlepVxW0KrvN6qqCTsBd6MFVBZ0odad6VUGr3LUGFTvYKLAPRpU726hKr4xJhGPGBOybUU32GOXUmUSZOuQospEGlTtnEmMXnV4FladM3bV+FbSiqq67+ipoJYHoxvWroPr3qUuvvAoqz52696AuaqFOXX1Uk1vHdzBrN5M6/6h+vVqrgUBMcLBa1wYFMdHhup8GCFE9WLvTYCGoq1o808Ahqjx8IFUOIkIaNZSIr47WfpmGFVGVg4uYRAwxYgIeaES1MtyIidKgI8qHKzMPQIL4UCvLbVXgIUn99b8xwfk0GtkvzZ7jEARQ/L7NeRpsAE+L0ec4rABEK8rnYQABLKwdn+NQwVFx7v0HSs5n6ZslZZEd85re0WBOudbvaLCY85/e0WDOkcjvaLAQY5Le0SBO0SmYQ5RehZhOo1+FkCJF7MCrEDJFjp1+FUKKHMXKqxBSjfHUr0IokSIbNA4vvU4wnU69TiAkCmz1dQKh56Cq1wmExAGVrxMILQZTvU6QJQokKBxG3KA/nSdt0GdO0dMb9FnMcUsb9JlzxPIGfRZirNIGfeIUpYI5RGIf/HSi2j74ikxxO7gPvpImR7G2D74ic0yr++AreoxwbR+8linepHLYw+7x6YR593gSKMiV3eNJzYHNu8eTwMEUu8eTEgOYd4+zQEEzzuGyv+cA4XJG4XKBwuWCCperOVyuUbhc4HC5wuFyJYbLOYXLBAqXcQ7X9DV6CFYhFKqCKVAFqzAVLQepKBSigjlAhXN4Co/BKZRCM2EKzEQpLO+nkDx7YkclHIBKKACFMACHEAAt2QdkWQdm2QY2ZRlIya6j3fLWUz8qOQAUPxnlPH23YqT26SdH/DU9V/xLUM7KHBSQfZLR0Li3+OjIDm0pDph/FdcZfRXXBVyKA+xfxXUGX8V1CF/FdWhfxXXkX8U1Fqen76H6HR2/KIh+04kM23JPYJUMhy/NAoX1HExtn5p15J+adaaiYKs0p5a/3dLMfo44HsVp44hinXOe5pAjtTrnyGuWM/8QrrE+3msvwtrXQtjrOtOLOpM+PwuSqk7++Vlgour4Tm+vKbji4RndxKMc8rigARwrilOrEI4oj6B4VXEmCqMsR+xJE+y1yfbaZHttKvbaSHttsr02wl4bYa9Nstcm22sz2eu+u2jQXgGJr642ZK9A41dXG2GvoNBXVxu0V0Dxq6vNDJf2m1laz29maRG/Sd4KPK1rNrO0Rt/M8sJ8M8ur8c2Ml+CbWVp3b5KpNmCqnib+osu5pAX0Jhkq8LRU3rCfQuK4KN7M8kp4M8vL3w266f6DU80MF7qbWVrdbmZ5SbuZ4Tp2M0uL102yPeCyOPtcnHpBupnlVehmlpaem1lab27Q7xzlBd5mhqu6zSwt5TbJ7oCnRdtmllZqG2F3oNCabDPLC7HNjFdfd2RcWTXr8OVUR2jGI21n+ES3RZcEFJ/dtsklgaentC26JCB6HtsGlwQWnry26JKOxmesp3ZkvbCj2Ak7xz7YqXXBjrgHdsU7YGfW/zqy7teQu0mbXbLNLtlWXLKVLtlml2yFS7bCJdvkkm12yTa5ZJtcsg0u2WaXbLNLthWXbKVLttol2+ySrXDJVrhkO0tPBtsZjjnbWRpzjkiMOUeexpwjjWPOEdGYs53lMWcbrLfN1ttWrLeV1ttm622r1tsK622z9bbZettsva203nayXk+zydnbVLK3kdnb5Oyx9YIisrcR9WMTGwc+oJlMKT2gYU6Wqh/QsJjNNT2gYc42mx/QsBANNz2gIQ7Wm17PY65MWL2exxLZce31PJbZmNPreczJoguf55JmszZOjm1c1VkTc8U1iWqvca6oJnBtNUFXWTZ1f+4W2iU/jqPU4gRs9MbJ7Z0fiJDwfZey+ZtGPYBx7gZMqEWPO4TCFwJR12Bc9Q8m5k7CJOopjHN3YQL3GUXoc7649zB+qDREP2JSpb5WehSTa9WZ+xbjlWrLvUzhoqsp0ian5k7H+KGoiO7HpEpUKh2RybWopC7JhNjI+StwTxKl3kl+BS5Lqo+qfQUuq9RT6a/AZY37K/UVuKxQrwUSdFxIqe9CSXVfqOceDFXqxFDS/Rim4K4MNerNUKIODaS5rCXcraFEPRtKqlmgnlsGqtQ4UOIGgBq3AdSqzYC7u/AYP9iDeMCff6PPxF0fStT7BelwFEUfGNTcDaJMPSFK3BmidiDI3CWCtNCUOkaUVN+Ieu4eUaUeEiXuJFHjfhK0XmaZe0uUvlJ6os9Etd4GKj0npjjQSrj/RKneFLgXBUl0pKBu5G+4O0XpK2ETnSqq9bBVulZMcSBsqYNFLZjL4Asz/+bMeGTPDR3FjaaTUDrtK4HoHMbliabEeCJDdCLj8kRhD9hVjdMpoyjPC9G70pTOiZI8Y9k+dCUQncu4PJFt8bhSjE7lgjyX7X+4UozO5YI817Rl4CoTOk/B8izlQ2dXAtF5jKsTfURTODHkf/L8IzZzQPHhlHN8OOXUHk45kn/Z/GNovsDo75l/hOa6Jxe7jssGRLuj66Bdx9xPgs0C/ZcFXedU+hz2TqGfo6DrnKpyjmEMsFzO6SwGr1VKfab9iGb/J0guPy7LXyE5OskyabgKcGTEd8aEugUo3oYL/gj6tKD7cPQQjrwe7Y78z6SMR3HzyYjSJpMyOONMoBufEKLsVNyYVM5Y4fcZPWQE+Sxom/PAOTaes83v8h5FDNk2RNk2LrOdXvqcMlT4fUYPGUG28d1FygNnW767OElqy/OR0DAAsruTog6F3EpdcorifYU/VDiGB/m2kuEUqCDmaIlJz1FSIFKqCxeSjJIab055Bule0gdJITpAtzJ7HBmURFx8cpUCAxJGBjGHBjUdG0iRggPavcYPGmN8AG91PlOEUMsh4n3eRxFDaNJAjbkMSdowPmWw8PuMHjKCEBS0zXngrBvP2U5bh4+IQ8bzuDIJMut5G/KUKxPuBXsQDLJvbCsywwFwIUcg7QY+Ig4RyKPhJMgI5J3FU85MuBfsQTCIgLGtyAxHwIUUgU8p7zsyNJdlt17vlkKeGfw0K+9C744Wdi/jEQ1eP+XsfqIx2X4KepWuvyNdPLJlTUe23RNQ/obryHFlEyhu9nQcP+06IvqA68joA65xtiNmOtVZzlUOVPkpx6XgTiCKkHEKk3MRKxNzwFzKUTONQmec42cCBzEvBVxVlgKuDi4FmMqB1W+dTz/Kb51rgUJdeeu8ooqw1986ryTIRVB561yrXBy1t86lfFUVqIBIlcVUeYd6X1jXoRCuc+Svc7ivKzG+loG91tG8ziG8FnG7FsHasT4e5XvuKzfYyxvs852k/dSuiHv03dSO7MmKoW08yne9zXdXazAs0MkONpikilh9rcGkBLmIDzYYVjmohxsMyX1VOBgWWUnqn0zQCQ5mq1KLap9M0DLVrconE6S6rQoHA5PrYRlC7kdbt7hSMSGcxRcUTgpCWUl01Afb67PX9TWD68vQbn+Ul8z7tEjDXJ42LMbsUWXxuz+0+N1/ffG7zxP+PZeL4r2aUQtJXomnzXual8r7ylJ5f3CpvA8zrT2it0qv6gpdiWV5QUoE1xWr9n1t1b4/vGrfx0nUnpU/7nIlEJ3duDx5UeHceU2+r6zJ9wfX5HtsZ3tU+v/aum7USRzZsvt0V/T9/8vrQviTmb/EGPEQyfmd1uIlxTlX+nf2gRellZ5PanHdO6dYmz9FXC6otHJBqZU1d62KeW1M8WV+0VVis/vJ0/yTu3hSkcLrxhDe/VuPp3YUt7qMyCqgI7HrZeRpt8tI4y6XEdHelZF5j++svO3oJG5f2aGLWXlzZTyySbqjUkKIrGAAlpnLPtqrqVJ7AqvLjuKVunzxLl88Dr+A4zICUBhoAbYNDo58Y4Mzi6qzq3hUyhcQ1SETbH/HsdWf3UjsxMrChl+A4hvaziG3QO3NbEf8QXdX/H1tZ/ZNe0f2QrYhnxV5Wf8esuojoRUaAKA4xF7F5o5QGHVxMGx+aR8xc2qIeh8xi7lJpn3EzLlx5n3ELMRmmvYRE4cGa4gajnFqPc65/aZHeFPBFn6Zk3Jzxp3LjCr3x61b71xmMbdzuXOZNWrxeecyC9z2cajMiFygMlQmlf0AdxWfxEJnZ9C7ilnMHpF2FTPXbpF3FbNAvpF2FRNPDlKE33OYwEsMkaEYJ1dxztbiivIX/GL11PzSF6uZk7/oL1azmP0lfbGaOftL/mI1C9Ff0heriYO/GKL2a5zar3P2l/SsfCr2wi9zUvYX/EY2o8r9sb/ob2SzmP1FfiObNfKX/I1sFthfcOMAI/KXysYBUtlf8EPZJ7HQ2V/0h7JZzP6SPpTNXPtL/lA2C+Qv6UPZxJO/FOH3HCbwF0PkL8bJX5yzv7gi/SWs9KDLRIG9JqrsOFGVvhOTCPeJCdiDopqcKMrJj6JMrhRF9qb4jATKMArsA1FlNyA1eZZ+MFMqVFAvaz9LLpbWp7VwMCfJ1w6sT+skwuPq69M6BftdZX1ay8n70gMdLbAPHnqgI9MkT0wL4yeqyiV/PLAwrpMIr9QL41qt+GZlYVzL7KF6YVyq2U+D/Hst3OitUWCHjSr7LKnJbUkXnjstBo2vbe03DBixW4nY7DVi8RV509BQoxK/G2+YvgVv3L0z8mKakcaPwhf8WyYWVsIxXkHc/UG2/R+tLWT3l9hOQkx3f4LtLKSxv71GGAK0V+7BWvcvjdxjddujh5ToISfaQqL9Bzy2mGhCPNElzMnF9r2s4I/+/b//H63X5Vs=" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json": /*!*****************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json ***! \*****************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJyFnVtzG0mOhf+Kgk+7Ee5ZSdbN/aa+ebzuMdvupmjORD9QUlnmmmJpSMoSZ2L++9YNwMEBkn5xuL6TdUkkgLxUFvXv0Y/1/X212o6+H1397XEzv6sOTl6+Onx1cHry6uXJ6MXol3q1fTe/r5oCfyzuq813H+r7+aoVHpdLFA5UmN8vljuUGjitFnef27tIqTfb+XJxc7m6WzbFDpvjzS+L5+r2t8X25vPo++36sXox+vHzfD2/2Vbr36v21J+ft9XqtrrVGzWP9sMP9fPo+398d3R28eK746OLF0eHh4cvLl5d/PliNGkKr5eLVfVbvVlsF/Vq9P13jQzCH58XN19W1WYz+v604VfVetMVGx0eHv+luVBzk3f1dnHT1uTH+mG3bitx8F83/31w9Ori9EX773n376v231eH3b8vu3/PDy5v6+vq4PfdZlvdbw7erG7q9UO9nm+r278cHFwulwcf2qs1dqs21fprQ3szLjYH84Pten5b3c/XXw7qTwe/Llb1dvdQfffXqjnr8vXBfHX7P/X6YNGcvHm83ixuF/P1otr8pXncn5vb3C5Wd7/ffK66Buie4vdtc8p8fStqU/DH+cNfhzY5Ozt+MfooRyetJS43N62p14148fLF6KdKjxsjn78Y/b69/et09P3xRfffq+a/Fyd9e/2t2q4XN41B//Hv0fRjU6S93LvmQTYP88aO/3nR45cvX/a4er5Zzu+Vnxxe9Pyfj3VjqeulKqeHw4VWj/fXbUPdraJ2Wy+X87XyC7nLQ7W+ab1chPPz4Tbz+0baNNaJT9Y9QdfiUXuYr6vVsvpUkvxp+njzTXvFzRdTzk6Gs5aPG6Vqs5smOOfxFp93D5+rVSzeVGVRW02OpZKb5XzzOT7Nv6p1HWm9qiLcPiUlt5/XVVL2U/24Tujia1J2s3hOYPW1Stq2ym26WsADa5Vv6mW9SixR3S+8pC2wbNNAoNU/H+fLiO/WVRPIVs2TkxNxmmrTpRpRXh0fDW0P3nd83LNLRWdn5z36IaIf44k/Wamj4fo/21OenvXol3ji64j+Gh3sjaEmtXXof+OJb+ND/GqhJyf+LZ74LqJxfPrfYqn30Tgf4om/x+f6I15rEtGVtZq05zSW+hjRLN7x79Gq101n9qXaurShnnndaD5O+TyfU07OXklOuVksbhbrm0fLohocj23S3jQ9T5J5u/zmHka9eB6vdB1L3ST5N5ZK7vwpnngX0edopEVE/xdP/BJLWQhr5k+slSSdJO09RPTPWEfLDRpCm/hcST57jOhr9LinWCrJpLvYHP8ydHFo/uUd4VhbHTpTX556uJMj8MbtYnlb7Opv66fEzq53tp5g243TzDmOJOw/tQNDzLNW56zv+LSs14uEb6rCVW4e1003fmMGPJLad2GzWXQD1yT996MWZ01z8sdFo9zX23zk0Mrdhb8hk+kl7X1aJCwZPzUDuXQ4cDu/u6uSnrvnOBSjAUfbdtW6gtg/tbHQ/G49f4CkJqdeN9OHKqmlmfd6vtlj4f1qYfylDeD1bs7Q22a5XDxsFptEauq6/Vw/urFi6Padc1vLredfk3iY3zxuE9zn8k/L6jlqhci6n9+s6+TG1+squ/FtvZ3fuIgzadG0JBrAEhrGoT1sdduYNBujPq7u5uvH++X8MblNfdcMM78kl5tjPaBd7p3P6uDi0kY9x+eDz9fr20/NMM+NC22A4vtYG394rjcY2w1eHh3qDe6bPPe4dHeQzDRPRqO3bchvNkn3tSyMzevCc9bJILqJzmZC3Hh90mpvQoNax+z9zzp/7zXWMaVNapfzbWdjo/AEOoq+XXxdgDvbKf7JbLichIY9duGkSXKSdRYUg9pVdzMvChKoaryk3c8FiuFyQ8wpGuwc/3TWEnSCzQHCTWzG0GQImIL4KSZV9PxMxWHNI7kV5RwbFXo/sFrmdnmXPYCFR8lHfUq1cX52NZtIla7m0yqYMyZK8xBXTeCUEW3wSnc/H+6yrP9Vre6STPKhEFGvs0qac+wNkn2ee1nqRtaFJr3hutrsJ1pOxyR/fK7XSa3GdHczA0WBTvOIX0iyLZhtQjcwi/muzS1vbB67Mc46eV7vgmbFEqe0Kknw/nG5XTwsd8lz+QqCk/vmkI6vGW1tF/Pl7eJTMsHalVPDO38fc9jEWSw29rrZnl6nLN0U0t2qlAapQSGnzFM/fkMXwsW3ZsCAK3A6AVrXX6oVToM0Oa6ru8XGD3wtRAsjrzcxLs50LvLYRLWbjZixCyPIdcEyNceSxmXBpf7uLXZ68kpGrt06l18F01r+vLURiiXZYgJcZnnr5fHgvdtCkqmKvWNJuCwNH/Z4pTewzZZLoVG697jUIqWuh3Ou9iOlO5fjeLx3WMI9powLquU2We7ZuiRtOfGp3pMR40hPzrt/TGrin8hMlY4zLRbI9DZP9SOc81PM440DrxtHhkfTbiRMYaRtloWO5G06yNAZhm+4V7JuoK90spxYnpC9KYT+m1KI/0pPLWZojPZ5voSeQWK8nZnQMrc2xb6x88qPmszTvtF+hUioSt3znc+lWKGhVbNG9fnMeDbcVQfOZzjqYE2WyF541BRalgnn+XiDks2pZvPbxU2WZ38q9GfrvbV559vHHpdGuzbc3OvWe+91WfCFy2KOzmcDY38dy8NJv2kjkUJvX0oUX9Lxs47H3EDArrY3FPwj2PLu3jst67u2vVd1Moqvy7n0MUoSys2lCpF8t3fOUEFHbjYvuO8q7cbh9WHoISzll2L858f2VeSfL0Zvq/Xqt/li3b5A/sfosn1RPXrx3cnhny+Goz57ONQ/p0dDTkf42h/1WcUhrBgK4+bo9FSP5BEAgXM4rk3laB//DrnM45TBZI71i0MO9YGD6L07+qM5Ojo60kMxmmOu/qBM3KUm0QCTggEmqQEm0QCTogEmiQFk6OdYl1GQXLWVeKmH0+bwlbbprBUPVZxJnZDBwwOGfQHOSF+bw/MTOXpq73YsRzt/JDcDBPca6FAIA0ARRYFyCgXjHA+ivE4QRYbyNDxEhRhRRH6iPHMWFaPHqERuozz3HZXZgVSgMFJOsST8fUQYVco4tExI40vkSbw8R5ryfRZMYk6lggUL0adyyYIhDlXwwSgYI1IYhKUgjE1lHKAqJFEqWhqqIkK8CoKgFbRLEIWv8hjDQyhhDCuiGFZOMWycY1iU1wmiGFaexrCoEMOKyAOVZx6oYvRAlcgDleceqDJ7oAoUw8ophoW/jwhjWBnHsAlpDIs8iZfnGFa+z4JJDKtUsGAhhlUuWTDEsAo+hgVjDAuDGBaEMayMY1iFJIZFS2NYRIhhQRDDgnYJohhWHmMY2wkD2XOKZi9SSJPIce3k1yVOEe7FNMxdEYh1z8ldvZj5rC8RHdfr5L1ezF3Yl2E/9iqlAy9STnDi+wLH7OAFThGkpnnClZkUbskZw4vfbIIkd3h9XxMUsogvs7cJQj7xqk8qTsPM4gRIL45jjvECJxqvJtnGFUhTjisBecdxSD6O70qc0pAXYy4ygpkIKeUhlCgLOYlzEIivc0r5B6U0+0AByD1Iye1Rypwe9ejyqJLDo5S7O5ZgZ0eNsg1KlGtAep9SzDOIOcs4Lc0xUGKS3orzC0rfMHSSW1AtG7qQV7DEHkOHnIKazyigYD4BDNkEKOYSxJxJUEvyCMhpFgEdcghQyCBAdzml7IFSzB1D42DiUERZQzmlDOOcL0R5nSDKFMrTNCEq5AhF5LfKM6dVMXqsSuSuynNfVZkdVQVKB8opFwh/HxFmAWWcAkxI41/kSbw8R77yfRZMYl6lggUL0a5yyYIhzlXwQS4YI1wYhLcgjG1lHNgqJFEtWhrSIkI8C4JgFrRLEIWx8hjDYjgMYmMUxSZQGIPAcazS64xRJJuQhrLKEMvGyBVNyHzR1OiMppE3mpC7o+nsj6ZQSJtAMa3C+4RhVBvksAYljWvVJ8ktOLJN2GvOJLZNK5mzEN2mF80Z4tsUH+DKMcIVQogrwxg3yEFuShLlKqZhrirEuTIIdGW7jFGomxBjXWyFsW6MYt0EinUQONZVep0xinUT0lhXGWLdGDmnCZlzmhqd0zRyThNy5zSdndMUinUTKNZVeJ8wjHWDHOugpLGu+iS5Bce6CXvNmcS6aSVzFmLd9KI5Q6yb4mNdOca6Qoh1ZRjrBjnWTUliXcU01lWFWFfWxvopheguY9pMLGBD9Np6+CjbAkoIxblginLFHOOD8DoSim/BaXQPIsS2EHJFwZkjihbdUBRyQsG5C4rKDiicolkwxfKA3weCcSyIo1h5GsODOgmX5vgVvMdoSeyKkhutELeiFowWYla4j9iBYrwOCKJ1IBirgjhShSdxOkhplA4axOhAoDceyC4S6okFx3548BgMTkUUncopPI1zfIryOkEUocrTEBUVYlQR+ZvyzOFUjB6nErmc8tznVGanU4FCVTnFqvD3EWG0KuNwNSGNV5En8fIcscr3WTCJWZUKFixErcolC4a4VcEHrmCMXGEQuoIwdpVx8KqQRK9oafiKCPErCAJY0C5BFMLKQwz/0NDL5qivcnck5wKSeAPk2hc43AGotCogbTFg2ljAhnYCIs5vaNJZVo+sIRS5xwXumkapPC4g8j9QtCLAtCLAhor05KfB7id25DPmT2h3QK4iwKEiQKUigPRxgenjAhseF4jY3dCVO2rj5KUezTS4fsLgABSywLCb11lGEZlHOdlIeWYoFaO1VCKTKWe7qcDGU8FbUDGZUfhVRGBQQbNoLDat8sS+3XcA3r6C2L7C2b7CU/uKmNhXJLav8GBfEYJ9RSD7Cmb7DvwqIrTvgGbRWMG+woN9fxlM2+fsX9CqgMSggJwtgcMdgIoFAanxgKndgA0mAyLWMtSOwY60PnNNpoakBoB8fjWO+dWo5ldDlkWNWRY1JlnUiNTAUP/jUC++uzgUUju9jnWqCxWo0wrUsQI1dxCmJFWrZWAHKNZj+NUqqcj/Du51ZkdSEUDSOIBc3YBD3YBK3QBpDYBp4wAbGgeIVKpHb0f9MPylHelow5AfWhjHoYVRHVoYoqYAxQYdxqQpAOkIQ1F7dHyqR/LUgGRMjQgrAhwqglQ/5HBY6gdIawFMm8NYrWOkt+j0gJJB3FtyeqB+EPc2cXpQaHj3Fp0ekB/LtehRQ6A78qHaoSRUOx5CtaM+VDuUhmqnUKh2jLJQx1wWasnOWX4X/WMXG91NtjAuSKAQITWLFioSA4cKUAyRmocTFeLIIpmCjFSKN69WJYtxFJJKAclqEptU5FstlkUslaDgJZXjmGQOaS9DdJNAgU5qFvNUJIY/FaBMQGqeFKgQ5weSKVWQSlnDq5BASKBcQmqWVqhIzDBUgJINqXneoUKcgkjmbESyT0xe3JVcidMVqSEOfh3160r9EkJ3JMGGyK0lmdAtsRweyuFUB5+/jmRhRUVYUzHm5uyK3UqK3a17/6BPvfNj+V+pegPFb1iGK4VPWALPauu+7hgeFb/uGOrtv+7wxYIF8q87vJbZAj/boHqyVbLPNgZJJpfZHUTbxeJ8B+XJHZzzQROQQA3BatYcvgw2ilegabwwK54SmonkpLF8idSgIXxTGwXjFsN3KDAkVzSuIjKr8cygoqIphYERBc2SYsFwKiQmEy0zlmi7WE82kPJgmncjXA7tjnxv2iG/HNqhpFfteOhKO+r7zw5Rf9gxWg7tmFsO7YjvDN9J8F4miOqinCqkPKuVirFqKlH9lHMlVeCaquCrq5jqjOuGjKjOYd2QeVbnbN2QJapzXDdkgevM64aMuc4uyi+LAtffq2wFr6a28EUSi/gCbBevBut4OdjIy2QpL5K95B3IZYLIRsrJOsozu6gYLaIS2UI5W0EFrr8KvuaKfZ3HrrrjWNNxrOS4UL9xWrVxrNU4qdA4qcs4VGOc16DtpfqF2zF2UIiS177joVs61aOpu+pHV3LmStqKryHsKnoaE+24kGjHhUQ73pdox+VEOy4k2nEp0Y5LiXacJ9pxIdEqhzYJI+PAs9bBkTHZcxpv9zGeOIsncrNlI+VBcl8TQQN6Tq3oRWpKL2bt6UvERvU6tawXuXm9ym3sVd/QXqPWDp/7nSTW43bf97FfVuSq0CrTwnN8LFxnVrgOe0Xxg7dBh09FwDGQklugRE6BUuYSqEeHQJXcASV2BtTYFVDzjoAKuQF9i3US7MQuUP4SKxa4Si0/Te/+Mb3CLL0CN3vh66RBlQ8LoMUVUXMrp7ZWnjW0irGVVaImVs7tqwI3rgq+ZRVTs+KXNSfeDNyghe9qSL2K9pzG232MJ87iidx82Tcog+RX1bAJWaGWZJkalOWsXblMbF4uQa3MMjc269zmrPumZ5U8gGRwBFbIH4KcuQUVuiq22LT4RB+LV5sVr8aew3J0IP3UAFzHGDmNCeQuJmSOYmp0EdPIOUxgtzCFHcIU7wrGyQnctzgnZBFu+NKXOCxfJdadJvf8mJw7S87lRk2/Vhk0Wd2B1lREjamc2lJ51pQqxpZUiRpSObejCtyMKvhWVEyNiCt6J94M3ISFFT1Sr6I9p/F2H+OJs3giN162wjdIcZI+LkzSx4VJ+njfJH1cnqSPC5P0cWmSPi5N0sf5JH1cmqTjTt0TbwZuu8I+XVKvoj2n8XYf44mzeCK3XbantZd+G5qtX479DVsMkDQWINdOwMNe1d+wdQBpwwDTNgE2NAcQaQlDtvmpO/JvDDvkNz91KHlz2PHwurCj/h1hh+idX8foRV/H3Nu9jvhNQy2SzU/DZuIW6T6igb0f4ZbZ7shvme1QsmW242HLbEf9ltkOpVtmO4W2zHaMtsx2zG2Z/TDqN0mc2JHfs9ihZFtix8OOxI76zYgdoqcGhXYodkzeUwPy+w8/DJF9ZkcS1IhcPJswcdeZxPpOCvWdpPWdxPpyK4GS1HdCmzE/QCsZaRPQhR61uad/u/JhyDFndqQb2AzhrrSeykIOtL4iMonyzC4qRuOoRBZSnptJZbaVCuQgyslLcGHtjBD5S2FhjdRJvDa7j/J9tkocSaWCrQoupXLJVsG5VPAehmuHFx6Br+FCIfkRe122UDhI8vYFXE8RmVN5Zk4VozlVInMqz82pMptTBXI95eR6wsH1FJHrGc9cT9RJvDa7nvJ9tkpcT6WCrQqup3LJVsH1VPCuh5v1LzwC18PN+uRH7HrZZn2RwvZAeYh8e2CupgYubg/MC7Cx924PzAsFw+fbA3OVHTbsEDlLBXbefTtE0jKT0j2DO3v12zbPXNsX2Gvzkpv7QvttHl3ey+T4YevMRSZgEISdM6lfh4Ao7pvpC/wxGqYZL/VIpxmGdJphyE8zjOM0w6hOMwzZNMOYTTOMyTTDiE4zFLXRfHShRzr6NuRH38Zx9G1UR9+GePRtio2+jen3CIZ0aqHIvqnojuSpAYndAbmKAA8R0FHv9h0iN+6Y2h0uONgdiM8bLer/wrVMWXvST5f6rUotac84V103GQOSxILIfcFjPGy97ilsHIbC+mGPIdpW3TH7sEfZ8HfPZSbbosVIpvzdkV896RCtW7SsdgasYwvXhebEPcNApUaAyC9B0boCE78EJK1qSOe31ohrV611rP1aGhGR6xJMsL+NLtmtpe0+4xM70i7BkO8HjKPrG1XXN8Rp3hQLCmOW0I1JFlfy5Cy380exvXexXXGz1ZDRwmYr5pSP881WLMbMHDZbMeccHTdbseCzddhsRRzydpgGMM8yeDYNYIlyeWkawDJn9TANYE75Xfg8tjRneuWU7pVnSULFmPhVouyvnLsAFbgfUMF3BoqpRxBO3YJh1zcIhhStiHoJ5dRVGI9f7ZgYOw2TYs+hGnUfyrkPUYE7EhG4NxEOXYoiyqzKuXMRoY6twt2M8n1ulHQ4KlGvozzvelTm/kcF6oSUU08knLsj4etoDe6YlFPvZDzrokRN+imRoLNSRD2W8qzbUjH2XSpRB6Y878VU5q5MBe7PVPCdmuCn2BK7BBWcLevowg5b6Q3yHba5yl3fnh22eZGkG8x32OZq6BILO2xzmbrHfIdtqmJXmS9Y5GrabRYXLPIC3IXuXbDIC4XuNF+wyFXuWp06L3lY6Ga9yp2tV9Nc6YskHa8vwN2vV0Mn7OXQFXuZOmQvcrfsVO6cSfRdtP+CEro2L3B37VXutEnNum5fJOnAqUDSjfsS/pNcVu33HlI5dOxODt27U7GT9wL3VV4NHb7/ZLPU9qHz9+q33TobCPgCPBzwamFQ4AuFoYGXeYDgVR4mODUMFpy6LtkzDBy8ysMHUtNBhCuTDSVcARxQeIGHFV5NBxe+SDLE8AV4oOHVwnDDFwqDDi+HoYeXaQDixKdSS++Kwt4QiAOTyTAaObEjvx49wXEHoGRdekIjDKC+N5i4sQQwWkaewKgBiM/wsn6O1QjfTjCnCuXfTrAYqxa+nWDOlYzfTrDgqxu+nRh4+OYg5VT7/JuDVMzsUPzmINXJIoVvDlKVbZN+c5BqZCXafp9QslC2/T6RMusUtt8nKlkm3X6faGyVZPt9opBFcG86I7JF2JvOPLNCtjedJap/3JvOAtec96Yzpjone7oLClmgtKe7IGf22LOnu1CCrFPc013Q2VaFPd0FlSznNjMHRtaKm5mDkFko3cwcNLJKspk5KGyJsJk5cKq9/pL0Zcao9iZQ7U3Iam9qrL1pVHsTuPamcO1N8bU3TrUffqn3MhKquWCqt+Cs1qLFOotCNRbM9RXOtRXu6yrU1/RqqOXwS61XWEVkulcTmF9fAAFXFQDrWgIwWxwAaBsYAcoORkC6OGCs/Y3jIzvyW0w75IfsJoydTWgvSIeSxux4aMiO+kbsULrXoFOoaTvmd3J0KLYd7E/tDrXtgKkRgPm3rMbxdxKN6nq4IZs3G7N2gztJuwHSX0pUJBOkfurWk2Hz7fErQVSHKqmrLTgAyqtapVV16wl44WiCKjFBlZlAVwmGH99oWbs2cGZHunXDkP9ZLeP4G0JG9eexDNlvYhmjnxpsWe2NbL/oCMxHOgg4ozKqywSGeKUQrmErAsZ0URDK6eRfke3GtmI43TZvaufY5xrqOrEG5L3EOHqJUfUGQ1RDUMxPjNm6kjH5SdGOTCUx9603dYkZmAY3MGouEzAxA9bEDMwSM0DzboAS4IA0MRvrFrHtyO+Sn4b0Cjzskp9iegWU7pKfuvQKTF3MkD62Ilthno7CsvJ0FNaSpyG3Ag/LD1PMrYBojWw6iovC0xGvBE8xsxqSWHh5bqTPrP2a5XRIrHZGFWupaRVRXssq9IZTTqtQ2HeSU5dVgSWV16R6puGycCctfA8+denPWO2uWse6ZwunU859RmNz5uui01FcDJ2OwgrodBSWPaeY+awRMfFZY7eJ71RP08QHyP95AePhs6QpJj5A/PcETLE/JWDM/oqAMfkDAkraBb7zl3qk6doQpuWOzny+nCX5cpbky1kpX87yfDlL8uUsy5ezLF/OYr6cJflyNsIfMZ1hvgSUvD2ZUb4E6t+CzJJ8CQrtc5hhvgTkf2x0NuTLYZQzw4SJTFsAGOV+E3DXqlH/w8ozlzOBwYdQBvVLKEP+p5VnkDX78JqNwnh0NqRNuEyVVFYTp2OFylZpZf2IFEpHI1SJEarMCDYi7UepsyF79u8nZpg9AdEfAJkN2fPoSK9rg0dgvrogYAwb9XtvZkkCxWvQ67sZZlAsp1MORTx4nFEOtaZ/9IZ6pHnHLGRRFMIsY4ZpFFCopEk00Zi5PIoF/VxrpuvnkFrCy4EgcIbMXw8ENcmV4QVBEELWjK8IgkL5M7wkYAEyafjWjXmWU7Nv3Vii7Fr61o1lzrPhWzfmlHGFY9pVxulIBU7AKqSJSdWYnVSiVKSc85EKISmpQulZOeVo4RSthn22Fp5VO+RtFTh5m7DPUEkaNynJ5SoWrBiyugpFK4b8LgIkeUWU6ZVzuhcBc74yTvwqpNlf1dgFqET9gPJCZ6A69wgqcLegAvUNwkMHIULSS4j0mNg89BcqpJ2GqrHnUIm6D+WFPkR17khUCL2JKtSl0EtFybXZW8VM476l+F4xK5D0MNmbxUwL/Uz6bjETqbfJ3i4mGvQ5SKnbQSnreVCPnQ+q1P+glHdBWIJ7IdSoI0KJ+iKQsDtCzIkWNe6UUEvTLRaIGRdVyqsocWpFLWRXFKmbQslWkYJGWcMpvsMCqXCt0G2hxj2X075hzaT/cmrShaFetnboyFDbZ+3QnYEGPRpS6tRQ4n4NNOzaEHPvhlrawWGB2MehSt0cSoWeDotwZ4ca93eoUZcHUuj1QEs6PlAf8wYK3R9qaQ+IBWIniCr1gygVukIswr0haqFDRNH3iU3Ydn9fsu8F2qN241r/YlFSHhYQBKWG5IelBEEpt9sHijoO5eGRoTRQKCvbR6CgICiluwWgmDIo5/629VDO/W3roRz8dd2hFPx13aEM/gnPoRD+Cc++1DV6br+4ez245LEdiScCSt6yXZPfAfVv2a4TPwOF3r9dO7cCNniTka9arZtRvxYKRxpNhnBc1FNxsV2C6ALK41Xw2w9GdJXs2w+R5M8Ru+sY5CuZEq/Vd5L9Hy24vV7K3y3os5hTvdRW0H7uqTvyOwM6lO0MUM/Toyd39OxK7vyRr1puZenG8fkU0UMqT5/UpRqPniJ6jifuEkRVKHuLDDmwHoqoHsrTeogK9cAPkwg9xxN3CaJ6lP3VDY9cZRznGjkxr1bI3gl/KvDnwnV2Jc71dWKsNHQKdzmlCqOUVpc7n0CfUvqcXmGXU6okSkkVbdzq6oiYK4laXksogdUE/JTj5/wiuwLmqqIW6ypd912CqI7K0/q5YYFHTxE9xxN3CaK6KI/10LHFXcaoJiakVfFjF2JPCXtOzt1ljOpjQqyQDoLuMkYVMiGtkB9kEXtK2HNy7i5jVCETQoU+jWS2r0d+Z0eHbG6vKNns0fGw2aOjfrNHh2hLR8fohw875n74sCN+l0eLmmhaVptNN5VU+Ekt2B4tdITWHfmR5CcadfQTy7vBNnagk1IlYhkj/nW8Ynwbr1BfxiuxN+6KbLqrSN63KxCT9ESmHvNIfA0U+2ooTuqiWqiQKr5Wiqlqyql+yl0llfqaxs9JU+5rXfiYNBUTC5Q/JU11b43Sh6SpSpbJPyNNNWcl/VNgeuDsEf78VwsXLi0t4tB0URgOLdJxwyL2Q4skny+SlNgeWbR3Rz5DdcjWywzFDNXxkKF66lbFFPvE1SFKXB2jxNWy2h/FZ64LD1inD1jHJwnrS6Ykz1j7/XId8pnUdydJR5J3IV/il8bD9QpfGucqteC+L43zItFse740zkuQjUtfGucy+0D86jcX9poldZLyV795gb3VKnhR6avfXCbfKnz1m6q7kiOx85W/Be0LLIdRU3+XpVul61H8OnUQ5GfYDUleOtEje85kzJiPFleYNocrxbn6qjBXX5Xn6iucYg8XjpPnVWHyvCpPnlfeRHj5QqOxwLf6RqOtcHVwuJWgXSzFl1ceLlyPcB2udiPqWi5+qEc+CGu+ZE+xOYfrxgWa2rWwP5Fvk7ZwL4XudbhhYbWhjqsKyXX4/uVVhV6nvnx4hHQNoObZfrgC37w02+9VHDAM940T19rNUv2JfLt0ltpL9B0h3JIUuDMpu+LV+DlYjo/jBkbDgyQT3dpPaulcvm0+qe01SX9wP8yIxx7t4ol8s+yvyg4SxvtwL3wbcOzRLp7I90pTQCc9uAs8xHMf8tOG1xCFVWove03OWFaf5Fvdi1SQ58hV/0kCq8l2di4CdcoL+E3urNKudpZpMz/L7qMGFv1O+E7NjbXHUnvM9C0b7TfQHuvsM80+u5SN8m2LwP+HL6HQ5Ubtm7LTw4ibB5xvc22pTu6xDwuv0dJVUsIP/pzmYyTWYZ0/p/6kS6bJRCHV3MMmJboJ7mnEfruB1/SGmSZvu3LVP05S4mF+U+Wm6ax9ETG1RyzxVWveWFf3pZwoudPTuiNd2zOU3aIVdBvHsV5M39n2lZOG49u6d2QXHtEDlN6ReZUfJez5G56Hf79yeB73ruvCI3qe0rsur/LzhB9AlOdJf7JLnsqJ+Gxe4Cf0av6c+c9eHWc3pmcefLRL0ER81CjWFTWP/Vqa13D9ySu6fuaxrZx5TpuDlMtqmae6TubwH2o3Jbo6QTixtYj2t6eEdH96ypH2t+BfeSI2JQwG6pUmzLsFz37E1B3porYhaQpAfseEcdwxYVR3TBiyfRHGbF+EMdkXYUTMbUgi4EyJze66Iz/h65C2BaD4Z6c6HqaFPcWFIMP+r1F1iP4aVcfor1G1rNZQ6o78y4UOJdtUOh62qXTUb1PpULpNpVNom0rHpEsGpLZXpHHeG/9phK+CntChAPlXQU/BoYCHkfUTOhQgWlx6cg4FzL0KekKHMuQd6mmEK29Po7Dc9hQaB3hagTpWIF9CexrFdbOnUVgsexqFFbKn2DjPLjKeY2Q8x8h4LkTGcxoZz3lkPMfIeE4i4zmJjF1ojl2s2I5HDIS5eLLlNip40p//+X+DG1I7" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json": /*!******************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json ***! \******************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJxtmNtu20YQhl+F4FULyMGeD7pz3AY1ChtG7NpFA18w1NomIlECSRcxgrx7SVk7+wOdG8H5OJydf2Z2d5gf9cV+t0v9VK/r+6vXsXlOlbHe28paq229qj/t++m62aXZ4J/m8PRb1z9/baZxefK63Z6eXN5dVMvTCh83u277xr/6kLrnl2XNq7TpXnczuZyabdee98/b2VzM/x4/dd/T5qab2pd6PQ2vaVVfvDRD005puE3Lu7eH1HbN9hTjx4/77/X6y5lcnUmjVzHIVVDicVX/1W/SsO36dLMfu6nb9/X6TAoBD+5euvZbn8axXtuZ36dhPJrVQqgPQoh5hev91LWLkIv94W1Ygq9+aX+tZAx2tfz64284/sblN/rqfLP/mqrbt3FKu7G67Nv9cNgPzZQ2H6rz7bb6vLgZq89pTMO/M/xfEqturJpqSM/d7GJIm2oamk3aNcO3av80O5xh3yyKmm1193ZIT02bqovTKjP+MAf++7zsZvZ3276kYyWWXB0z99S18/PbafPHQ71W4fjn/fxnFO+ZvkrT0LVzTr78qB/+nk38bHM9exgP8zr1z9U7jt6840YW5uSJKcZOCaBBnKgm5mU8MVNYyMwWFvO7Ukagkmgg6sDWQ5yFFqjzUrLEaQ3BEmiwNsMSaZS0vgWfOkPHWQowNeTUc0kumnxZvsgPxlGai6VTGUqAVCTQ6QkWnc77DKEiLktSUBJKqHIQZ86d8gCpHYoiEzMsb1ubYy8vW50DChB5ZhGqrijD0EqUIeiaEHIfCg5Kpuu0ApiToaGPSY0uaQsyr65L2oKi1yFt1PLaQ3lzfXTgXodGoJYzglndSLDMPg1sTPJpQJHJigw0QrGERqD9YhyTOgONQDUyuF1zaxuokc/BW2ztXCMrGZ9WMW1oQZHIXWNBkSCfRZEL5BMUiZw6CzVSFCfUSGZFNjIldoKDkonTKQiJIGzWmFd3BizJJ9SINoLDriOfUCOZS+zg+KGD1qGiLNMLxtJD1/ns00ON6EzyUCM6vbxhoBKaqbG3DFQCNiL1iHccBPV0DHhQH/JW8EW90dkyFKGywCJU0WkVSvSGeiSUODWFFD0HYdPQVoiRgfPMA+/nnRgiAyNYSjpWNQcNSMrtFCUH4ZIRpSCWocFCSuhCEY6hoUClc0WC52BJlCYYLQdhN+hygRRRlo5BKRRLS6oihSqh+ZzzRGG1Mo4Iz1LoP0qsxDGFzk0JE42ji0jCPejomJKCuwil4m5CiRMEUMVSzVLDUstSx1Juc0oVWMpqY295qVltmtWmWW2a1aZZbZrVplltmtWmWW2G1WZYbYbVZlhthtVmWG2G1WZYbYbVZlhtltVmWW2W1WZZbZbVZlltltVmWW2W1QYjQCh7E2aAQHeGhCFgPoNoy8KNb2wxBhmGKBxoUZXlLGsLI6AsftEDHV0wIURVbANLcTKlGGBIKPOAxCmhePCKUwFzAmpDFRQvjA9R06Hq8TONvshgKDCuRAZTXigUxjxNFfKRo3CLhnIJBMFRvMZpqpNBMlQJzGT5WFQMVQI/AikPMIhEU1aDjqJvQwmjSHB05cC9jbYwc5UtAHNLhDw41ha+lEqF4JaH3gmB61SYcqInxTDmQK8v08vjqv4zDf1N0w3Lf4A8/vwPpfK11w==" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json": /*!*******************************************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json ***! \*******************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports = "eJztWsuy48iN/Ret74KZfHtX47meqfGjPHaXx4/wgpJ4JbooUU1JVXXb0f9u4JwESF13R7TD29koIpFi8gCJBHDA/Pvm+nraTuPmZ3/f5HHzs7/k8WlzvXS7fvPXp02eqyR/2vRfd2N3gqhUUfm0Od9P236+DoczxLWK66fNpZ93/fkGWaOy5mnTnUR67c57lRaZSItM/tnN/XnsX/DfIqg0JOk8HI4UK4BCAFzG+xWCQgXF02Y3nU4dJJVKKrx5mPgKBVMImOvYXY+QKJRCoHzXzxMErQrap810hqaloioF1e0L5kvFUwqe23Hu+Q+1TinWeZnuMwSKrRRsL8Nn/kOxlYLtOnzFWE1Viqmu/eceVioVaylYe1OwVKilQD0PCYgiLRtVcJz4kEItW13mNLi0UsCVAB77KyxTKeJKEPff3rsREkVcCeLD3He3HqArBV0J6G/v/fU2cK1WH23l0e3c7T71N9uUVv/c5i73bWlVs1Y0u5/3srO7aQb2EPUB+eUTva0TYgG5mGbbzZSUkJTpn75ygF4PThhq1SMGMds4HYZdN54n/rdWc8rv02bfH9I2hbqGsKbPnIYzHSc0qmTIxI6nuwpiAIQmU8F4Gy7jK8RwntAI1v3wedj39FmFECp508s4zUOyGmwpKrwbL8eOIlVU//Yf/S1J9C212Pa/uuSwbVDYlWzxf/aj/UtfWgm258t1GG1X1BVawfdnX0xdoRbjPCdBVGs1svo3R/tPVD1r2YL3k0kUfC04f9ldLkmk0NVwv+pO232SKXa126/vHAO5wPxNGivsRsZ/HDhWzLVg/iBuOSfMUTGrTX+b/qSIG0H8u+NEl1J4jcD7/XBI9kDcUYN/0/FNCDuNAP64skYOeLrykUsjElWC9+cmAEAB9NtrEijCplaE/YHvKuC5Iup8zxBAWtFrayakC2QC8uCbhggSskx9zXYNQSRkeuZWQBFKQowabNIfS/qeqOgSOFTINcC4DKcnE70H2zqElJAJ3k++dwgrIRPA47J5iCwr724RWELINFBTAAWiCL7SOogrIQj6abWBOH8hCPoL/4a4EoJgn9MWIq40lcY52cJAGbCHMgkpA3g9t7e0sRWgB1HnvjJYRez6yrSTlYJvRZmdCQhe80Pa24roNYL75uLo10WyKYHVeFLjYnImilM0qPDOJOKWNGlFCJsIrw/qsNv7OPY3SnNYSQ9DP46DLHylvGCcEFU08Nz6JIVx9Chd+93ENNhEWroSuC8SAi0WNznNpqH9+c5k1RQ0nIbi9/LnTzdmoKZAaAwaib/0g0Ti29wxG8gUgLey/O8eHmmqt4eiKTNYo416LPrLkcIWa2u06eZ5+mLBXCaoTp4m7pckBm41P8Qe0mUG6DUCYWY/fTmnCQbwkCa2043vrhA2gqakncwM3aGfe9GAj1Vw9qiuzPW2o4Or4PcxhmUu4atwAGKMy8wCscJhiDFfJh1lhY2K6mo250DrTJXOC82EUgVIkTMmOd0moqC5Dd24H15e0hRKJS0Cvg7Xm9RKgz9ErdWrTpfb6zV5Wx2ytwlDZLplUQ/8Ye72Qyq5RI5kqY4t6fe0iHOItdCYbo8zKOi0vLjvjrdjZ2IYRAPUZZ72910SI7vEiL9LaHSvrZFkipKOf02y8gc9vEbmKHQjRP95uH6ShZI9c9pao41otTPLICMETXSC5jLNupbP8bxo2Dy/DOfh9prk8BKNk935MPIo1jiKUSNQqiVSVSozBWYan5nmNMGz1+r6AleO8KJJwXdk2H8XwgVVP31AticBhdvqIZPwNPcvqWhqah74iIB6GsYuvbdGeYFS93yY775hPNh6giUlzNNXr/eaJmNYKrnLKznOt4ZsEQ6f5ZCfWVvJFK2Xs5BcP8ND23r5uJqDyaPmM90Oscl9a87aIC3HLCxz+uOzNFgOhA+P4XRq8hPTjP3Xhzn4oiYIm1svybSpOX03zDuJX4kqyAx3rrKZdZ3XNMggGh9lsUt/Fm+7m+1bGCxqOttPN/fOFiExKh+xnb1d0gz8qiiXmS0r5YxLaaULN/TaOsu4WEgTS3Fd1TCvlsvj9F1/PvQpPzHAZqiN9yZEntcyaDfet0mGOKLl5LGX6EMhU5ZGkf3QnVIWqvJA5FoG7KbLK1BcBcyLTfNYZGr7g8ar+WEWm63VgmSefX/q5k+r6Rplrdo/Heb+q00gKzcWUiVy3pY5RkGL7kept7/zSRS8Uc+Kw+nOV5ukqeu1KqtZ2Ds2a6yrWZghX/NS7q3OwQZ5WM0tgGCBPK7muPM6B2fP8wditayKMKG5YzW7rIvzkJcPs8vKOBGaRJxo+boMocrFfe407G0SJlJS7pO+KOrwqKkAcw4lp28Xi28vU7AM2Lfz9gUITKM8fJlcnoRtlJIvkwsSRtD2kXkuC8M2ytbX08vSME4ZHqd9cTQgojL5hXr60uhDxDJfTy7WQ3kXy2I9q+t+L7V+d3nZD+fDtrtdf7iZ8gPUNhVNSLOdFKmrqgg5UGR5ktUWkERW4ETnYSnQpK5PsqU2k3I5yZbCTGhJki0lmbJ2ypxOd8rYKXM23Slnp6yxclZkVZK1li1EVlMWmY0yyJokC5bIRdYm6sDCW/9X54knZEYnurpKJCEzNtHVdYqTmdGJrm6SiJRMsdWJmTS1MYWuSZwAHg3D5dSJO6tnpqPiNXIHapSQHkL9WNCyDwEZymTtQzyGcfx/rQVukWUP4RgGS29oG5RieEMSVKm67GISoHZUs0g6TKImlZMdbde2cDMFUCZBSBWevKlNIlRrBNQkEVpt0CXUSYTWGvzG1q5TldeFIklgFfiMvQ6tNXgMtk5IM+qSAjbJSpOh4wdUtYnQYgOqxkRosgFVayK02SJsYCJ02tRw9HkVodUG00UTodcG4+UmQrdN0dPhVYR2m8KPBhX1t/bkumgaofzWplwXDT2Oo9K2Lhp6dogUvT+HBpGC98fQxlDs/lSVCr/OVGZ7CGY3lXEIKyD3fylyrQS63P4VjTl0uRkGJxB+l5th2CBS5LkZhg0iRZ6bYdgPUqC5aYMEh8CSmzrsCinU3PRBKkNYyQ0qTgSiSmFQcSAQVAqDimSFmFIYVPaKFGphUNktUqiFQUVaUvLVFbaHSEZK47vC0LNfpOgLQ8+OkaIvDD2SjZbOXWHokWBQgJeGHkmlwaEz9EglKHFKQ48og8qmNPQgJEp0u9LQg4mAjJeGnm0rRV8aeratFH1p6EE8tBnQlYYebSutwLrS0KNrhRZYZegRbpV3dpWhR8tKSU9XGXr2rJTsdJXBTz0ruLjhT00rVaAyBVLTSjWoTIPUs1IVKlOBbSulAV1lOrBzpZS2q0wJNq8yhH7TovIOb1cb5tSXUny14Ut9KUYQUyS1phRgbaDZmEIiFrKThCnpIMMYGrZh0JBo7M01e+H65sZeUpPp6ZsbX4+dcH1xa1YgxYsIAWYF9rXBI1p/L9tiiL6ZmYGtrYpZybaz8caUCA1iA4iIPcEN0ZAQIuq70g2ZPCOQ7R+yE5riIjTojfMRESbsge1zHMhgsSlk5PR4u0WnQDraMOdEE7JTj7dbhAqpw4K3W4wKGZv3eHtempBkA+nHQldgrwXHM1jwCgj0pB7BwlcIbI7BnhbAAmsvHNJgISyw+MIxDRbEAqsvHNRgYSyw/GqZSE0j1l84rMFCWWABhuMaLJgFVmA4sMHCWUi8CRpZQAvkSzizwUJaIE/CoQ0W1ALpEU5tsLDGDzqg6yI0jaKzfxGaRuRBOLjBglsgAcpYHZhG5D04usECXCDdQd0WLMQFshwc6GBBLqQOETSyMBdIa3DMgwW6QD6Dcx4s1AXyDpSRYmoTsrpmzWKQyDJw0GWjTci2GCBZIAtkFDj+wSJZIJPA+Q8WygIJRCQkw8meFCJAsGAWCu8BiNAsjzTAXkKwEBfYg2IQqM3y7EFFauT/ZAcUGlk0DAU7nyzETPeSHBIa1aZmSe4IjWpTsyRphEa1qVmSTFMjU7Mki4ZGreEsSZ+hUWO6s7+bc4/8cdJlaNSYQdjTRbEbM3+c5BgaWTgOSA7stkSLiqFiCwbgLUiHinQX4C1Kh4pEl+BN94oEl+DNdBWJLcH74yS0AG8RPeCjRmRZ3JiR0ZWKrItbW7MmZWVlbG+vSVWxHY2tyW+lJTUy0yEVgdTKmmYlNplKagSDCMFlTIaH8GmVMWkpIj6sMsQv+Ae3UmUIX3AP6q0yRC94x/IOBC84B4+VyhC7yHTIELQRhGgM32hchmAM14hMRCpEMIZrNC6DJvAMWkxl0ASOQYOpDJqACrX+EmgCX9EQ8f3T5stwlggXf/otCfss8O19uvX7LfqmP3Z1AiRPP2JPY2pA/vTbFIhHqhFedB2s0/2v3bIAG1z14yH8CVcvwJFFoePr5cgbDv9/G+Pfvo2BUIP6ix0r8EO9ZYARuKFeMMAIvFA/gWMESqifiTACG9QrBTpCBFGK9wuMQKz0UgJGoH+C7L8xAvPTL40Y4au7gPkfjEAB9SYBRmB/eokAIxA/vT6AETifXh7ACHRPrwroqAFX0i/5GIEmCZb/xQj8Tu8LYARqp5cFMAKr03sCGIHQ6SUBjMDlBMsfMLIP//+HERicXlzACORNsPxJR2iW4I4FRj92EQa8TTuGInY3/vHrMSBwuoPX3TDot4c7osKPXJtBm0XLvsPc0XfRZkHNhxE4nLZsMQJ902/jDOQIkriXkAL7JhEyNh1ZemtZ98IxCZvebeCYZE3AHjkmUdMPGRyTpAm6v3FMgqY3EjgmOdPPZhyTmOlFBIwZxHEPgWNeJ9BbBxyz+af9c45J2PRMcEyyph8EOSZP03PMMTmaXjLgmN0+vWLAMfBpFfeZY7838AVjNilxLYJj4NOy7ZVjUju9zcHxv3/FiVcKULCpf9yGcb9qEOPL/6pp7GyO2cU+S7N2AaOzDMHKBXxO4/goyYBiZ3S7+yxxf0fNKud0r31a0gnddp4+9WfTpHJOt/r4yfIlfVDq5z7dgWABg8amf4SBnLxZQ9A0718keFqMZSGDNurhPoxjf5r84LGeQY/77d0vb3QvyYc1DTrd9nWo56movd196uyqy792faz2prfkJHyAHPiBONTe+kZ2ephrlhb4Ll0HSRfRNOLxqk5onB1LWu4kCPAGRmicIDOZ6j67Ro0T5V2/F6t1lDpTlkz6iMTpspj/JI53H83+jZNmt/+ybY2TZ1lRctmcUldonEDLxLEbGV5aZ9AwRnqAJmydSFu6c2dunU6/8yDIL5Og0+8W67VOp98xsL6kr1H8FglO/W45Uq1z6ncPXto6rX432zlpnVW/e6bAGfXPV0aOmXPqZwcbM+fUzw42Zs6pnx/BxsyJ9fMaV8ycW79fre3c+v1qbefW79+u7QT7/ePazrGf+UE7Zk6wf+Mmi8EJ9ocFQnCC/WGBEJxgf3gDgddNNIp/WC3Mb12i24cHXIEfkcs3FzGDM/UPnnJjcKb+cQXOmfrHFThn6h/fgItO1z8+4IjO2P+0LBOdsX9znHgBKUYn7Id+Pkklvh3TCgtpX9DFhbSvll1I+1t0C3NfTBcX5v4IeSHv5sYxX7g7H86dt+/Wbpw7c+8XsLkz934Bmztz79+AzZ2+9w+4cmfww2ptZ/DDam1n8MPbtZ3GDw9rs9ui3KZPblw4tz8vJiuc208LhMK5/bRAKJzbT28gFE7wp9XCTvCnR1zO8ZeLw7Fwjj8tTlw4x78v0Ern+PcFWukc//4GWulE//6AonSu/7paxrn+zZ2YnRclRK/rBXJsCAjxh2cKEAWVJ02ku/wOoFv2+12XkmnODwHgW4uQGVbZ0uM7mAJ1b/68/JlpUMnWdy5MF6/Vd5eL19YYSPd6FqPwBkNQo/h2NQxdQQ3bn/dpCxrGrqCW7U8rKZl/mfi0Xytk3Am66ZhYbg4y+KAVslDwbXdNL2d5qU5hnYBlTZaa6hs2t1qWdaeeTptcLco+hl5R7w4H5uOGcQbtEkpT18GusOI2xT9dYcVJf7zCSjmbD+Iud2s1NPRb9E+0UICmizb8ZK/+5JOLOulSqwaw5VJr2vB8dSFn89fvv/8H0oq1dA==" /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/index.js": /*!**********************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/index.js ***! \**********************************************************/ /*! exports provided: FontNames, Font, Encodings */ /*! exports used: Encodings, Font, FontNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Font__ = __webpack_require__(/*! ./Font */ "./node_modules/@pdf-lib/standard-fonts/es/Font.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__Font__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__Font__["b"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Encoding__ = __webpack_require__(/*! ./Encoding */ "./node_modules/@pdf-lib/standard-fonts/es/Encoding.js"); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__Encoding__["a"]; }); /***/ }), /***/ "./node_modules/@pdf-lib/standard-fonts/es/utils.js": /*!**********************************************************!*\ !*** ./node_modules/@pdf-lib/standard-fonts/es/utils.js ***! \**********************************************************/ /*! exports provided: decompressJson */ /*! exports used: decompressJson */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return decompressJson; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_base64_arraybuffer__ = __webpack_require__(/*! base64-arraybuffer */ "./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_base64_arraybuffer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_base64_arraybuffer__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_pako__ = __webpack_require__(/*! pako */ "./node_modules/pako/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_pako___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_pako__); var arrayToString = function (array) { var str = ''; for (var i = 0; i < array.length; i++) { str += String.fromCharCode(array[i]); } return str; }; var decompressJson = function (compressedJson) { return arrayToString(__WEBPACK_IMPORTED_MODULE_1_pako___default.a.inflate(__WEBPACK_IMPORTED_MODULE_0_base64_arraybuffer__["decode"](compressedJson))); }; /***/ }), /***/ "./node_modules/add-dom-event-listener/lib/EventBaseObject.js": /*!********************************************************************!*\ !*** ./node_modules/add-dom-event-listener/lib/EventBaseObject.js ***! \********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * @ignore * base event object for custom and dom event. * @author yiminghe@gmail.com */ Object.defineProperty(exports, "__esModule", { value: true }); function returnFalse() { return false; } function returnTrue() { return true; } function EventBaseObject() { this.timeStamp = Date.now(); this.target = undefined; this.currentTarget = undefined; } EventBaseObject.prototype = { isEventObject: 1, constructor: EventBaseObject, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse, preventDefault: function preventDefault() { this.isDefaultPrevented = returnTrue; }, stopPropagation: function stopPropagation() { this.isPropagationStopped = returnTrue; }, stopImmediatePropagation: function stopImmediatePropagation() { this.isImmediatePropagationStopped = returnTrue; // fixed 1.2 // call stopPropagation implicitly this.stopPropagation(); }, halt: function halt(immediate) { if (immediate) { this.stopImmediatePropagation(); } else { this.stopPropagation(); } this.preventDefault(); } }; exports["default"] = EventBaseObject; module.exports = exports["default"]; /***/ }), /***/ "./node_modules/add-dom-event-listener/lib/EventObject.js": /*!****************************************************************!*\ !*** ./node_modules/add-dom-event-listener/lib/EventObject.js ***! \****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * @ignore * event object for dom * @author yiminghe@gmail.com */ Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _EventBaseObject = __webpack_require__(/*! ./EventBaseObject */ "./node_modules/add-dom-event-listener/lib/EventBaseObject.js"); var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject); var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); var _objectAssign2 = _interopRequireDefault(_objectAssign); var TRUE = true; var FALSE = false; var commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type']; function isNullOrUndefined(w) { return w === null || w === undefined; } var eventNormalizers = [{ reg: /^key/, props: ['char', 'charCode', 'key', 'keyCode', 'which'], fix: function fix(event, nativeEvent) { if (isNullOrUndefined(event.which)) { event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode; } // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs) if (event.metaKey === undefined) { event.metaKey = event.ctrlKey; } } }, { reg: /^touch/, props: ['touches', 'changedTouches', 'targetTouches'] }, { reg: /^hashchange$/, props: ['newURL', 'oldURL'] }, { reg: /^gesturechange$/i, props: ['rotation', 'scale'] }, { reg: /^(mousewheel|DOMMouseScroll)$/, props: [], fix: function fix(event, nativeEvent) { var deltaX = undefined; var deltaY = undefined; var delta = undefined; var wheelDelta = nativeEvent.wheelDelta; var axis = nativeEvent.axis; var wheelDeltaY = nativeEvent.wheelDeltaY; var wheelDeltaX = nativeEvent.wheelDeltaX; var detail = nativeEvent.detail; // ie/webkit if (wheelDelta) { delta = wheelDelta / 120; } // gecko if (detail) { // press control e.detail == 1 else e.detail == 3 delta = 0 - (detail % 3 === 0 ? detail / 3 : detail); } // Gecko if (axis !== undefined) { if (axis === event.HORIZONTAL_AXIS) { deltaY = 0; deltaX = 0 - delta; } else if (axis === event.VERTICAL_AXIS) { deltaX = 0; deltaY = delta; } } // Webkit if (wheelDeltaY !== undefined) { deltaY = wheelDeltaY / 120; } if (wheelDeltaX !== undefined) { deltaX = -1 * wheelDeltaX / 120; } // 默认 deltaY (ie) if (!deltaX && !deltaY) { deltaY = delta; } if (deltaX !== undefined) { /** * deltaX of mousewheel event * @property deltaX * @member Event.DomEvent.Object */ event.deltaX = deltaX; } if (deltaY !== undefined) { /** * deltaY of mousewheel event * @property deltaY * @member Event.DomEvent.Object */ event.deltaY = deltaY; } if (delta !== undefined) { /** * delta of mousewheel event * @property delta * @member Event.DomEvent.Object */ event.delta = delta; } } }, { reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i, props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'], fix: function fix(event, nativeEvent) { var eventDoc = undefined; var doc = undefined; var body = undefined; var target = event.target; var button = nativeEvent.button; // Calculate pageX/Y if missing and clientX/Y available if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) { eventDoc = target.ownerDocument || document; doc = eventDoc.documentElement; body = eventDoc.body; event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); } // which for click: 1 === left; 2 === middle; 3 === right // do not use button if (!event.which && button !== undefined) { if (button & 1) { event.which = 1; } else if (button & 2) { event.which = 3; } else if (button & 4) { event.which = 2; } else { event.which = 0; } } // add relatedTarget, if necessary if (!event.relatedTarget && event.fromElement) { event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement; } return event; } }]; function retTrue() { return TRUE; } function retFalse() { return FALSE; } function DomEventObject(nativeEvent) { var type = nativeEvent.type; var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean'; _EventBaseObject2['default'].call(this); this.nativeEvent = nativeEvent; // in case dom event has been mark as default prevented by lower dom node var isDefaultPrevented = retFalse; if ('defaultPrevented' in nativeEvent) { isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse; } else if ('getPreventDefault' in nativeEvent) { // https://bugzilla.mozilla.org/show_bug.cgi?id=691151 isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse; } else if ('returnValue' in nativeEvent) { isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse; } this.isDefaultPrevented = isDefaultPrevented; var fixFns = []; var fixFn = undefined; var l = undefined; var prop = undefined; var props = commonProps.concat(); eventNormalizers.forEach(function (normalizer) { if (type.match(normalizer.reg)) { props = props.concat(normalizer.props); if (normalizer.fix) { fixFns.push(normalizer.fix); } } }); l = props.length; // clone properties of the original event object while (l) { prop = props[--l]; this[prop] = nativeEvent[prop]; } // fix target property, if necessary if (!this.target && isNative) { this.target = nativeEvent.srcElement || document; // srcElement might not be defined either } // check if target is a text node (safari) if (this.target && this.target.nodeType === 3) { this.target = this.target.parentNode; } l = fixFns.length; while (l) { fixFn = fixFns[--l]; fixFn(this, nativeEvent); } this.timeStamp = nativeEvent.timeStamp || Date.now(); } var EventBaseObjectProto = _EventBaseObject2['default'].prototype; (0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, { constructor: DomEventObject, preventDefault: function preventDefault() { var e = this.nativeEvent; // if preventDefault exists run it on the original event if (e.preventDefault) { e.preventDefault(); } else { // otherwise set the returnValue property of the original event to FALSE (IE) e.returnValue = FALSE; } EventBaseObjectProto.preventDefault.call(this); }, stopPropagation: function stopPropagation() { var e = this.nativeEvent; // if stopPropagation exists run it on the original event if (e.stopPropagation) { e.stopPropagation(); } else { // otherwise set the cancelBubble property of the original event to TRUE (IE) e.cancelBubble = TRUE; } EventBaseObjectProto.stopPropagation.call(this); } }); exports['default'] = DomEventObject; module.exports = exports['default']; /***/ }), /***/ "./node_modules/add-dom-event-listener/lib/index.js": /*!**********************************************************!*\ !*** ./node_modules/add-dom-event-listener/lib/index.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = addEventListener; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _EventObject = __webpack_require__(/*! ./EventObject */ "./node_modules/add-dom-event-listener/lib/EventObject.js"); var _EventObject2 = _interopRequireDefault(_EventObject); function addEventListener(target, eventType, callback, option) { function wrapCallback(e) { var ne = new _EventObject2['default'](e); callback.call(target, ne); } if (target.addEventListener) { var _ret = (function () { var useCapture = false; if (typeof option === 'object') { useCapture = option.capture || false; } else if (typeof option === 'boolean') { useCapture = option; } target.addEventListener(eventType, wrapCallback, option || false); return { v: { remove: function remove() { target.removeEventListener(eventType, wrapCallback, useCapture); } } }; })(); if (typeof _ret === 'object') return _ret.v; } else if (target.attachEvent) { target.attachEvent('on' + eventType, wrapCallback); return { remove: function remove() { target.detachEvent('on' + eventType, wrapCallback); } }; } } module.exports = exports['default']; /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js": /*!*****************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js ***! \*****************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var AuthenticationDetails = function () { /** * Constructs a new AuthenticationDetails object * @param {object=} data Creation options. * @param {string} data.Username User being authenticated. * @param {string} data.Password Plain-text password to authenticate with. * @param {(AttributeArg[])?} data.ValidationData Application extra metadata. * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth. */ function AuthenticationDetails(data) { _classCallCheck(this, AuthenticationDetails); var _ref = data || {}, ValidationData = _ref.ValidationData, Username = _ref.Username, Password = _ref.Password, AuthParameters = _ref.AuthParameters, ClientMetadata = _ref.ClientMetadata; this.validationData = ValidationData || {}; this.authParameters = AuthParameters || {}; this.clientMetadata = ClientMetadata || {}; this.username = Username; this.password = Password; } /** * @returns {string} the record's username */ AuthenticationDetails.prototype.getUsername = function getUsername() { return this.username; }; /** * @returns {string} the record's password */ AuthenticationDetails.prototype.getPassword = function getPassword() { return this.password; }; /** * @returns {Array} the record's validationData */ AuthenticationDetails.prototype.getValidationData = function getValidationData() { return this.validationData; }; /** * @returns {Array} the record's authParameters */ AuthenticationDetails.prototype.getAuthParameters = function getAuthParameters() { return this.authParameters; }; /** * @returns {ClientMetadata} the clientMetadata for a Lambda trigger */ AuthenticationDetails.prototype.getClientMetadata = function getClientMetadata() { return this.clientMetadata; }; return AuthenticationDetails; }(); /* harmony default export */ __webpack_exports__["a"] = (AuthenticationDetails); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js": /*!****************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js ***! \****************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer___ = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer____default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_buffer___); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_crypto_js_core__ = __webpack_require__(/*! crypto-js/core */ "./node_modules/crypto-js/core.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_crypto_js_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays__ = __webpack_require__(/*! crypto-js/lib-typedarrays */ "./node_modules/crypto-js/lib-typedarrays.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_crypto_js_sha256__ = __webpack_require__(/*! crypto-js/sha256 */ "./node_modules/crypto-js/sha256.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_crypto_js_sha256___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_crypto_js_sha256__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256__ = __webpack_require__(/*! crypto-js/hmac-sha256 */ "./node_modules/crypto-js/hmac-sha256.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__BigInteger__ = __webpack_require__(/*! ./BigInteger */ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ // necessary for crypto js var randomBytes = function randomBytes(nBytes) { return __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(__WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.random(nBytes).toString(), 'hex'); }; var initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF'; var newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.'; /** @class */ var AuthenticationHelper = function () { /** * Constructs a new AuthenticationHelper object * @param {string} PoolName Cognito user pool name. */ function AuthenticationHelper(PoolName) { _classCallCheck(this, AuthenticationHelper); this.N = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](initN, 16); this.g = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */]('2', 16); this.k = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](this.hexHash('00' + this.N.toString(16) + '0' + this.g.toString(16)), 16); this.smallAValue = this.generateRandomSmallA(); this.getLargeAValue(function () {}); this.infoBits = __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from('Caldera Derived Key', 'utf8'); this.poolName = PoolName; } /** * @returns {BigInteger} small A, a random number */ AuthenticationHelper.prototype.getSmallAValue = function getSmallAValue() { return this.smallAValue; }; /** * @param {nodeCallback} callback Called with (err, largeAValue) * @returns {void} */ AuthenticationHelper.prototype.getLargeAValue = function getLargeAValue(callback) { var _this = this; if (this.largeAValue) { callback(null, this.largeAValue); } else { this.calculateA(this.smallAValue, function (err, largeAValue) { if (err) { callback(err, null); } _this.largeAValue = largeAValue; callback(null, _this.largeAValue); }); } }; /** * helper function to generate a random big integer * @returns {BigInteger} a random value. * @private */ AuthenticationHelper.prototype.generateRandomSmallA = function generateRandomSmallA() { var hexRandom = randomBytes(128).toString('hex'); var randomBigInt = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](hexRandom, 16); var smallABigInt = randomBigInt.mod(this.N); return smallABigInt; }; /** * helper function to generate a random string * @returns {string} a random value. * @private */ AuthenticationHelper.prototype.generateRandomString = function generateRandomString() { return randomBytes(40).toString('base64'); }; /** * @returns {string} Generated random value included in password hash. */ AuthenticationHelper.prototype.getRandomPassword = function getRandomPassword() { return this.randomPassword; }; /** * @returns {string} Generated random value included in devices hash. */ AuthenticationHelper.prototype.getSaltDevices = function getSaltDevices() { return this.SaltToHashDevices; }; /** * @returns {string} Value used to verify devices. */ AuthenticationHelper.prototype.getVerifierDevices = function getVerifierDevices() { return this.verifierDevices; }; /** * Generate salts and compute verifier. * @param {string} deviceGroupKey Devices to generate verifier for. * @param {string} username User to generate verifier for. * @param {nodeCallback} callback Called with (err, null) * @returns {void} */ AuthenticationHelper.prototype.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) { var _this2 = this; this.randomPassword = this.generateRandomString(); var combinedString = '' + deviceGroupKey + username + ':' + this.randomPassword; var hashedString = this.hash(combinedString); var hexRandom = randomBytes(16).toString('hex'); this.SaltToHashDevices = this.padHex(new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](hexRandom, 16)); this.g.modPow(new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) { if (err) { callback(err, null); } _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded); callback(null, null); }); }; /** * Calculate the client's public value A = g^a%N * with the generated random number a * @param {BigInteger} a Randomly generated small A. * @param {nodeCallback} callback Called with (err, largeAValue) * @returns {void} * @private */ AuthenticationHelper.prototype.calculateA = function calculateA(a, callback) { var _this3 = this; this.g.modPow(a, this.N, function (err, A) { if (err) { callback(err, null); } if (A.mod(_this3.N).equals(__WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */].ZERO)) { callback(new Error('Illegal paramater. A mod N cannot be 0.'), null); } callback(null, A); }); }; /** * Calculate the client's value U which is the hash of A and B * @param {BigInteger} A Large A value. * @param {BigInteger} B Server B value. * @returns {BigInteger} Computed U value. * @private */ AuthenticationHelper.prototype.calculateU = function calculateU(A, B) { this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B)); var finalU = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](this.UHexHash, 16); return finalU; }; /** * Calculate a hash from a bitArray * @param {Buffer} buf Value to hash. * @returns {String} Hex-encoded hash. * @private */ AuthenticationHelper.prototype.hash = function hash(buf) { var str = buf instanceof __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"] ? __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(buf) : buf; var hashHex = __WEBPACK_IMPORTED_MODULE_3_crypto_js_sha256___default()(str).toString(); return new Array(64 - hashHex.length).join('0') + hashHex; }; /** * Calculate a hash from a hex string * @param {String} hexStr Value to hash. * @returns {String} Hex-encoded hash. * @private */ AuthenticationHelper.prototype.hexHash = function hexHash(hexStr) { return this.hash(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(hexStr, 'hex')); }; /** * Standard hkdf algorithm * @param {Buffer} ikm Input key material. * @param {Buffer} salt Salt value. * @returns {Buffer} Strong key material. * @private */ AuthenticationHelper.prototype.computehkdf = function computehkdf(ikm, salt) { var infoBitsWordArray = __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].concat([this.infoBits, __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(String.fromCharCode(1), 'utf8')])); var ikmWordArray = ikm instanceof __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"] ? __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(ikm) : ikm; var saltWordArray = salt instanceof __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"] ? __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(salt) : salt; var prk = __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default()(ikmWordArray, saltWordArray); var hmac = __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default()(infoBitsWordArray, prk); return __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(hmac.toString(), 'hex').slice(0, 16); }; /** * Calculates the final hkdf based on computed S value, and computed U value and the key * @param {String} username Username. * @param {String} password Password. * @param {BigInteger} serverBValue Server B value. * @param {BigInteger} salt Generated salt. * @param {nodeCallback} callback Called with (err, hkdfValue) * @returns {void} */ AuthenticationHelper.prototype.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) { var _this4 = this; if (serverBValue.mod(this.N).equals(__WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */].ZERO)) { throw new Error('B cannot be zero.'); } this.UValue = this.calculateU(this.largeAValue, serverBValue); if (this.UValue.equals(__WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */].ZERO)) { throw new Error('U cannot be zero.'); } var usernamePassword = '' + this.poolName + username + ':' + password; var usernamePasswordHash = this.hash(usernamePassword); var xValue = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](this.hexHash(this.padHex(salt) + usernamePasswordHash), 16); this.calculateS(xValue, serverBValue, function (err, sValue) { if (err) { callback(err, null); } var hkdf = _this4.computehkdf(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this4.padHex(sValue), 'hex'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this4.padHex(_this4.UValue.toString(16)), 'hex')); callback(null, hkdf); }); }; /** * Calculates the S value used in getPasswordAuthenticationKey * @param {BigInteger} xValue Salted password hash value. * @param {BigInteger} serverBValue Server B value. * @param {nodeCallback} callback Called on success or error. * @returns {void} */ AuthenticationHelper.prototype.calculateS = function calculateS(xValue, serverBValue, callback) { var _this5 = this; this.g.modPow(xValue, this.N, function (err, gModPowXN) { if (err) { callback(err, null); } var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN)); intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) { if (err2) { callback(err2, null); } callback(null, result.mod(_this5.N)); }); }); }; /** * Return constant newPasswordRequiredChallengeUserAttributePrefix * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value */ AuthenticationHelper.prototype.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() { return newPasswordRequiredChallengeUserAttributePrefix; }; /** * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing * @param {BigInteger|String} bigInt Number or string to pad. * @returns {String} Padded hex string. */ AuthenticationHelper.prototype.padHex = function padHex(bigInt) { var hashStr = bigInt.toString(16); if (hashStr.length % 2 === 1) { hashStr = '0' + hashStr; } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) { hashStr = '00' + hashStr; } return hashStr; }; return AuthenticationHelper; }(); /* harmony default export */ __webpack_exports__["a"] = (AuthenticationHelper); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js": /*!******************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/BigInteger.js ***! \******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/ // // All public methods have been removed except the following: // new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported) // toString (only radix 2, 4, 8, 16 and 32 supported) // negate // abs // compareTo // bitLength // mod // equals // add // subtract // multiply // divide // modPow /* harmony default export */ __webpack_exports__["a"] = (BigInteger); /* * Copyright (c) 2003-2005 Tom Wu * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * In addition, the following condition applies: * * All redistributions must retain an intact copy of this copyright notice * and disclaimer. */ // (public) Constructor function BigInteger(a, b) { if (a != null) this.fromString(a, b); } // return new, unset BigInteger function nbi() { return new BigInteger(null); } // Bits per digit var dbits; // JavaScript engine analysis var canary = 0xdeadbeefcafe; var j_lm = (canary & 0xffffff) == 0xefcafe; // am: Compute w_j += (x*this_i), propagate carries, // c is initial carry, returns final carry. // c < 3*dvalue, x < 2*dvalue, this_i < dvalue // We need to select the fastest one that works in this environment. // am1: use a single mult and divide to get the high bits, // max digit bits should be 26 because // max internal value = 2*dvalue^2-2*dvalue (< 2^53) function am1(i, x, w, j, c, n) { while (--n >= 0) { var v = x * this[i++] + w[j] + c; c = Math.floor(v / 0x4000000); w[j++] = v & 0x3ffffff; } return c; } // am2 avoids a big mult-and-extract completely. // Max digit bits should be <= 30 because we do bitwise ops // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) function am2(i, x, w, j, c, n) { var xl = x & 0x7fff, xh = x >> 15; while (--n >= 0) { var l = this[i] & 0x7fff; var h = this[i++] >> 15; var m = xh * l + h * xl; l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff); c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); w[j++] = l & 0x3fffffff; } return c; } // Alternately, set max digit bits to 28 since some // browsers slow down when dealing with 32-bit numbers. function am3(i, x, w, j, c, n) { var xl = x & 0x3fff, xh = x >> 14; while (--n >= 0) { var l = this[i] & 0x3fff; var h = this[i++] >> 14; var m = xh * l + h * xl; l = xl * l + ((m & 0x3fff) << 14) + w[j] + c; c = (l >> 28) + (m >> 14) + xh * h; w[j++] = l & 0xfffffff; } return c; } var inBrowser = typeof navigator !== 'undefined'; if (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') { BigInteger.prototype.am = am2; dbits = 30; } else if (inBrowser && j_lm && navigator.appName != 'Netscape') { BigInteger.prototype.am = am1; dbits = 26; } else { // Mozilla/Netscape seems to prefer am3 BigInteger.prototype.am = am3; dbits = 28; } BigInteger.prototype.DB = dbits; BigInteger.prototype.DM = (1 << dbits) - 1; BigInteger.prototype.DV = 1 << dbits; var BI_FP = 52; BigInteger.prototype.FV = Math.pow(2, BI_FP); BigInteger.prototype.F1 = BI_FP - dbits; BigInteger.prototype.F2 = 2 * dbits - BI_FP; // Digit conversions var BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz'; var BI_RC = new Array(); var rr, vv; rr = '0'.charCodeAt(0); for (vv = 0; vv <= 9; ++vv) { BI_RC[rr++] = vv; }rr = 'a'.charCodeAt(0); for (vv = 10; vv < 36; ++vv) { BI_RC[rr++] = vv; }rr = 'A'.charCodeAt(0); for (vv = 10; vv < 36; ++vv) { BI_RC[rr++] = vv; }function int2char(n) { return BI_RM.charAt(n); } function intAt(s, i) { var c = BI_RC[s.charCodeAt(i)]; return c == null ? -1 : c; } // (protected) copy this to r function bnpCopyTo(r) { for (var i = this.t - 1; i >= 0; --i) { r[i] = this[i]; }r.t = this.t; r.s = this.s; } // (protected) set from integer value x, -DV <= x < DV function bnpFromInt(x) { this.t = 1; this.s = x < 0 ? -1 : 0; if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0; } // return bigint initialized to value function nbv(i) { var r = nbi(); r.fromInt(i); return r; } // (protected) set from string and radix function bnpFromString(s, b) { var k; if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported'); this.t = 0; this.s = 0; var i = s.length, mi = false, sh = 0; while (--i >= 0) { var x = intAt(s, i); if (x < 0) { if (s.charAt(i) == '-') mi = true; continue; } mi = false; if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) { this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh; this[this.t++] = x >> this.DB - sh; } else this[this.t - 1] |= x << sh; sh += k; if (sh >= this.DB) sh -= this.DB; } this.clamp(); if (mi) BigInteger.ZERO.subTo(this, this); } // (protected) clamp off excess high words function bnpClamp() { var c = this.s & this.DM; while (this.t > 0 && this[this.t - 1] == c) { --this.t; } } // (public) return string representation in given radix function bnToString(b) { if (this.s < 0) return '-' + this.negate().toString(); var k; if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported'); var km = (1 << k) - 1, d, m = false, r = '', i = this.t; var p = this.DB - i * this.DB % k; if (i-- > 0) { if (p < this.DB && (d = this[i] >> p) > 0) { m = true; r = int2char(d); } while (i >= 0) { if (p < k) { d = (this[i] & (1 << p) - 1) << k - p; d |= this[--i] >> (p += this.DB - k); } else { d = this[i] >> (p -= k) & km; if (p <= 0) { p += this.DB; --i; } } if (d > 0) m = true; if (m) r += int2char(d); } } return m ? r : '0'; } // (public) -this function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this, r); return r; } // (public) |this| function bnAbs() { return this.s < 0 ? this.negate() : this; } // (public) return + if this > a, - if this < a, 0 if equal function bnCompareTo(a) { var r = this.s - a.s; if (r != 0) return r; var i = this.t; r = i - a.t; if (r != 0) return this.s < 0 ? -r : r; while (--i >= 0) { if ((r = this[i] - a[i]) != 0) return r; }return 0; } // returns bit length of the integer x function nbits(x) { var r = 1, t; if ((t = x >>> 16) != 0) { x = t; r += 16; } if ((t = x >> 8) != 0) { x = t; r += 8; } if ((t = x >> 4) != 0) { x = t; r += 4; } if ((t = x >> 2) != 0) { x = t; r += 2; } if ((t = x >> 1) != 0) { x = t; r += 1; } return r; } // (public) return the number of bits in "this" function bnBitLength() { if (this.t <= 0) return 0; return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM); } // (protected) r = this << n*DB function bnpDLShiftTo(n, r) { var i; for (i = this.t - 1; i >= 0; --i) { r[i + n] = this[i]; }for (i = n - 1; i >= 0; --i) { r[i] = 0; }r.t = this.t + n; r.s = this.s; } // (protected) r = this >> n*DB function bnpDRShiftTo(n, r) { for (var i = n; i < this.t; ++i) { r[i - n] = this[i]; }r.t = Math.max(this.t - n, 0); r.s = this.s; } // (protected) r = this << n function bnpLShiftTo(n, r) { var bs = n % this.DB; var cbs = this.DB - bs; var bm = (1 << cbs) - 1; var ds = Math.floor(n / this.DB), c = this.s << bs & this.DM, i; for (i = this.t - 1; i >= 0; --i) { r[i + ds + 1] = this[i] >> cbs | c; c = (this[i] & bm) << bs; } for (i = ds - 1; i >= 0; --i) { r[i] = 0; }r[ds] = c; r.t = this.t + ds + 1; r.s = this.s; r.clamp(); } // (protected) r = this >> n function bnpRShiftTo(n, r) { r.s = this.s; var ds = Math.floor(n / this.DB); if (ds >= this.t) { r.t = 0; return; } var bs = n % this.DB; var cbs = this.DB - bs; var bm = (1 << bs) - 1; r[0] = this[ds] >> bs; for (var i = ds + 1; i < this.t; ++i) { r[i - ds - 1] |= (this[i] & bm) << cbs; r[i - ds] = this[i] >> bs; } if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs; r.t = this.t - ds; r.clamp(); } // (protected) r = this - a function bnpSubTo(a, r) { var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { c += this[i] - a[i]; r[i++] = c & this.DM; c >>= this.DB; } if (a.t < this.t) { c -= a.s; while (i < this.t) { c += this[i]; r[i++] = c & this.DM; c >>= this.DB; } c += this.s; } else { c += this.s; while (i < a.t) { c -= a[i]; r[i++] = c & this.DM; c >>= this.DB; } c -= a.s; } r.s = c < 0 ? -1 : 0; if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c; r.t = i; r.clamp(); } // (protected) r = this * a, r != this,a (HAC 14.12) // "this" should be the larger one if appropriate. function bnpMultiplyTo(a, r) { var x = this.abs(), y = a.abs(); var i = x.t; r.t = i + y.t; while (--i >= 0) { r[i] = 0; }for (i = 0; i < y.t; ++i) { r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); }r.s = 0; r.clamp(); if (this.s != a.s) BigInteger.ZERO.subTo(r, r); } // (protected) r = this^2, r != this (HAC 14.16) function bnpSquareTo(r) { var x = this.abs(); var i = r.t = 2 * x.t; while (--i >= 0) { r[i] = 0; }for (i = 0; i < x.t - 1; ++i) { var c = x.am(i, x[i], r, 2 * i, 0, 1); if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { r[i + x.t] -= x.DV; r[i + x.t + 1] = 1; } } if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1); r.s = 0; r.clamp(); } // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) // r != q, this != m. q or r may be null. function bnpDivRemTo(m, q, r) { var pm = m.abs(); if (pm.t <= 0) return; var pt = this.abs(); if (pt.t < pm.t) { if (q != null) q.fromInt(0); if (r != null) this.copyTo(r); return; } if (r == null) r = nbi(); var y = nbi(), ts = this.s, ms = m.s; var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus if (nsh > 0) { pm.lShiftTo(nsh, y); pt.lShiftTo(nsh, r); } else { pm.copyTo(y); pt.copyTo(r); } var ys = y.t; var y0 = y[ys - 1]; if (y0 == 0) return; var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0); var d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2; var i = r.t, j = i - ys, t = q == null ? nbi() : q; y.dlShiftTo(j, t); if (r.compareTo(t) >= 0) { r[r.t++] = 1; r.subTo(t, r); } BigInteger.ONE.dlShiftTo(ys, t); t.subTo(y, y); // "negative" y so we can replace sub with am later while (y.t < ys) { y[y.t++] = 0; }while (--j >= 0) { // Estimate quotient digit var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out y.dlShiftTo(j, t); r.subTo(t, r); while (r[i] < --qd) { r.subTo(t, r); } } } if (q != null) { r.drShiftTo(ys, q); if (ts != ms) BigInteger.ZERO.subTo(q, q); } r.t = ys; r.clamp(); if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder if (ts < 0) BigInteger.ZERO.subTo(r, r); } // (public) this mod a function bnMod(a) { var r = nbi(); this.abs().divRemTo(a, null, r); if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r); return r; } // (protected) return "-1/this % 2^DB"; useful for Mont. reduction // justification: // xy == 1 (mod m) // xy = 1+km // xy(2-xy) = (1+km)(1-km) // x[y(2-xy)] = 1-k^2m^2 // x[y(2-xy)] == 1 (mod m^2) // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. // JS multiply "overflows" differently from C/C++, so care is needed here. function bnpInvDigit() { if (this.t < 1) return 0; var x = this[0]; if ((x & 1) == 0) return 0; var y = x & 3; // y == 1/x mod 2^2 y = y * (2 - (x & 0xf) * y) & 0xf; // y == 1/x mod 2^4 y = y * (2 - (x & 0xff) * y) & 0xff; // y == 1/x mod 2^8 y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff; // y == 1/x mod 2^16 // last step - calculate inverse mod DV directly; // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints y = y * (2 - x * y % this.DV) % this.DV; // y == 1/x mod 2^dbits // we really want the negative inverse, and -DV < y < DV return y > 0 ? this.DV - y : -y; } function bnEquals(a) { return this.compareTo(a) == 0; } // (protected) r = this + a function bnpAddTo(a, r) { var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { c += this[i] + a[i]; r[i++] = c & this.DM; c >>= this.DB; } if (a.t < this.t) { c += a.s; while (i < this.t) { c += this[i]; r[i++] = c & this.DM; c >>= this.DB; } c += this.s; } else { c += this.s; while (i < a.t) { c += a[i]; r[i++] = c & this.DM; c >>= this.DB; } c += a.s; } r.s = c < 0 ? -1 : 0; if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c; r.t = i; r.clamp(); } // (public) this + a function bnAdd(a) { var r = nbi(); this.addTo(a, r); return r; } // (public) this - a function bnSubtract(a) { var r = nbi(); this.subTo(a, r); return r; } // (public) this * a function bnMultiply(a) { var r = nbi(); this.multiplyTo(a, r); return r; } // (public) this / a function bnDivide(a) { var r = nbi(); this.divRemTo(a, r, null); return r; } // Montgomery reduction function Montgomery(m) { this.m = m; this.mp = m.invDigit(); this.mpl = this.mp & 0x7fff; this.mph = this.mp >> 15; this.um = (1 << m.DB - 15) - 1; this.mt2 = 2 * m.t; } // xR mod m function montConvert(x) { var r = nbi(); x.abs().dlShiftTo(this.m.t, r); r.divRemTo(this.m, null, r); if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r); return r; } // x/R mod m function montRevert(x) { var r = nbi(); x.copyTo(r); this.reduce(r); return r; } // x = x/R mod m (HAC 14.32) function montReduce(x) { while (x.t <= this.mt2) { // pad x so am has enough room later x[x.t++] = 0; }for (var i = 0; i < this.m.t; ++i) { // faster way of calculating u0 = x[i]*mp mod DV var j = x[i] & 0x7fff; var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM; // use am to combine the multiply-shift-add into one call j = i + this.m.t; x[j] += this.m.am(0, u0, x, i, 0, this.m.t); // propagate carry while (x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } } x.clamp(); x.drShiftTo(this.m.t, x); if (x.compareTo(this.m) >= 0) x.subTo(this.m, x); } // r = "x^2/R mod m"; x != r function montSqrTo(x, r) { x.squareTo(r); this.reduce(r); } // r = "xy/R mod m"; x,y != r function montMulTo(x, y, r) { x.multiplyTo(y, r); this.reduce(r); } Montgomery.prototype.convert = montConvert; Montgomery.prototype.revert = montRevert; Montgomery.prototype.reduce = montReduce; Montgomery.prototype.mulTo = montMulTo; Montgomery.prototype.sqrTo = montSqrTo; // (public) this^e % m (HAC 14.85) function bnModPow(e, m, callback) { var i = e.bitLength(), k, r = nbv(1), z = new Montgomery(m); if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6; // precomputation var g = new Array(), n = 3, k1 = k - 1, km = (1 << k) - 1; g[1] = z.convert(this); if (k > 1) { var g2 = nbi(); z.sqrTo(g[1], g2); while (n <= km) { g[n] = nbi(); z.mulTo(g2, g[n - 2], g[n]); n += 2; } } var j = e.t - 1, w, is1 = true, r2 = nbi(), t; i = nbits(e[j]) - 1; while (j >= 0) { if (i >= k1) w = e[j] >> i - k1 & km;else { w = (e[j] & (1 << i + 1) - 1) << k1 - i; if (j > 0) w |= e[j - 1] >> this.DB + i - k1; } n = k; while ((w & 1) == 0) { w >>= 1; --n; } if ((i -= n) < 0) { i += this.DB; --j; } if (is1) { // ret == 1, don't bother squaring or multiplying it g[w].copyTo(r); is1 = false; } else { while (n > 1) { z.sqrTo(r, r2); z.sqrTo(r2, r); n -= 2; } if (n > 0) z.sqrTo(r, r2);else { t = r; r = r2; r2 = t; } z.mulTo(r2, g[w], r); } while (j >= 0 && (e[j] & 1 << i) == 0) { z.sqrTo(r, r2); t = r; r = r2; r2 = t; if (--i < 0) { i = this.DB - 1; --j; } } } var result = z.revert(r); callback(null, result); return result; } // protected BigInteger.prototype.copyTo = bnpCopyTo; BigInteger.prototype.fromInt = bnpFromInt; BigInteger.prototype.fromString = bnpFromString; BigInteger.prototype.clamp = bnpClamp; BigInteger.prototype.dlShiftTo = bnpDLShiftTo; BigInteger.prototype.drShiftTo = bnpDRShiftTo; BigInteger.prototype.lShiftTo = bnpLShiftTo; BigInteger.prototype.rShiftTo = bnpRShiftTo; BigInteger.prototype.subTo = bnpSubTo; BigInteger.prototype.multiplyTo = bnpMultiplyTo; BigInteger.prototype.squareTo = bnpSquareTo; BigInteger.prototype.divRemTo = bnpDivRemTo; BigInteger.prototype.invDigit = bnpInvDigit; BigInteger.prototype.addTo = bnpAddTo; // public BigInteger.prototype.toString = bnToString; BigInteger.prototype.negate = bnNegate; BigInteger.prototype.abs = bnAbs; BigInteger.prototype.compareTo = bnCompareTo; BigInteger.prototype.bitLength = bnBitLength; BigInteger.prototype.mod = bnMod; BigInteger.prototype.equals = bnEquals; BigInteger.prototype.add = bnAdd; BigInteger.prototype.subtract = bnSubtract; BigInteger.prototype.multiply = bnMultiply; BigInteger.prototype.divide = bnDivide; BigInteger.prototype.modPow = bnModPow; // "constants" BigInteger.ZERO = nbv(0); BigInteger.ONE = nbv(1); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/Client.js": /*!**************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/Client.js ***! \**************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__UserAgent__ = __webpack_require__(/*! ./UserAgent */ "./node_modules/amazon-cognito-identity-js/es/UserAgent.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** @class */ var Client = function () { /** * Constructs a new AWS Cognito Identity Provider client object * @param {string} region AWS region * @param {string} endpoint endpoint */ function Client(region, endpoint) { _classCallCheck(this, Client); this.endpoint = endpoint || 'https://cognito-idp.' + region + '.amazonaws.com/'; this.userAgent = __WEBPACK_IMPORTED_MODULE_0__UserAgent__["a" /* default */].prototype.userAgent || 'aws-amplify/0.1.x js'; } /** * Makes an unauthenticated request on AWS Cognito Identity Provider API * using fetch * @param {string} operation API operation * @param {object} params Input parameters * @param {function} callback Callback called when a response is returned * @returns {void} */ Client.prototype.request = function request(operation, params, callback) { var headers = { 'Content-Type': 'application/x-amz-json-1.1', 'X-Amz-Target': 'AWSCognitoIdentityProviderService.' + operation, 'X-Amz-User-Agent': this.userAgent }; var options = { headers: headers, method: 'POST', mode: 'cors', cache: 'no-cache', body: JSON.stringify(params) }; var response = void 0; var responseJsonData = void 0; fetch(this.endpoint, options).then(function (resp) { response = resp; return resp; }, function (err) { // If error happens here, the request failed // if it is TypeError throw network error if (err instanceof TypeError) { throw new Error('Network error'); } throw err; }).then(function (resp) { return resp.json().catch(function () { return {}; }); }).then(function (data) { // return parsed body stream if (response.ok) return callback(null, data); responseJsonData = data; // Taken from aws-sdk-js/lib/protocol/json.js // eslint-disable-next-line no-underscore-dangle var code = (data.__type || data.code).split('#').pop(); var error = { code: code, name: code, message: data.message || data.Message || null }; return callback(error); }).catch(function (err) { // first check if we have a service error if (response && response.headers && response.headers.get('x-amzn-errortype')) { try { var code = response.headers.get('x-amzn-errortype').split(':')[0]; var error = { code: code, name: code, statusCode: response.status, message: response.status ? response.status.toString() : null }; return callback(error); } catch (ex) { return callback(err); } // otherwise check if error is Network error } else if (err instanceof Error && err.message === 'Network error') { var _error = { code: 'NetworkError', name: err.name, message: err.message }; return callback(_error); } else { return callback(err); } }); }; return Client; }(); /* harmony default export */ __webpack_exports__["a"] = (Client); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js": /*!**************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js ***! \**************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__CognitoJwtToken__ = __webpack_require__(/*! ./CognitoJwtToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoAccessToken = function (_CognitoJwtToken) { _inherits(CognitoAccessToken, _CognitoJwtToken); /** * Constructs a new CognitoAccessToken object * @param {string=} AccessToken The JWT access token. */ function CognitoAccessToken() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, AccessToken = _ref.AccessToken; _classCallCheck(this, CognitoAccessToken); return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, AccessToken || '')); } return CognitoAccessToken; }(__WEBPACK_IMPORTED_MODULE_0__CognitoJwtToken__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (CognitoAccessToken); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js": /*!**********************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js ***! \**********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__CognitoJwtToken__ = __webpack_require__(/*! ./CognitoJwtToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoIdToken = function (_CognitoJwtToken) { _inherits(CognitoIdToken, _CognitoJwtToken); /** * Constructs a new CognitoIdToken object * @param {string=} IdToken The JWT Id token */ function CognitoIdToken() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, IdToken = _ref.IdToken; _classCallCheck(this, CognitoIdToken); return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, IdToken || '')); } return CognitoIdToken; }(__WEBPACK_IMPORTED_MODULE_0__CognitoJwtToken__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (CognitoIdToken); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js": /*!***********************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js ***! \***********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer___ = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer____default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_buffer___); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoJwtToken = function () { /** * Constructs a new CognitoJwtToken object * @param {string=} token The JWT token. */ function CognitoJwtToken(token) { _classCallCheck(this, CognitoJwtToken); // Assign object this.jwtToken = token || ''; this.payload = this.decodePayload(); } /** * @returns {string} the record's token. */ CognitoJwtToken.prototype.getJwtToken = function getJwtToken() { return this.jwtToken; }; /** * @returns {int} the token's expiration (exp member). */ CognitoJwtToken.prototype.getExpiration = function getExpiration() { return this.payload.exp; }; /** * @returns {int} the token's "issued at" (iat member). */ CognitoJwtToken.prototype.getIssuedAt = function getIssuedAt() { return this.payload.iat; }; /** * @returns {object} the token's payload. */ CognitoJwtToken.prototype.decodePayload = function decodePayload() { var payload = this.jwtToken.split('.')[1]; try { return JSON.parse(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(payload, 'base64').toString('utf8')); } catch (err) { return {}; } }; return CognitoJwtToken; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoJwtToken); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js": /*!***************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js ***! \***************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoRefreshToken = function () { /** * Constructs a new CognitoRefreshToken object * @param {string=} RefreshToken The JWT refresh token. */ function CognitoRefreshToken() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, RefreshToken = _ref.RefreshToken; _classCallCheck(this, CognitoRefreshToken); // Assign object this.token = RefreshToken || ''; } /** * @returns {string} the record's token. */ CognitoRefreshToken.prototype.getToken = function getToken() { return this.token; }; return CognitoRefreshToken; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoRefreshToken); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js": /*!*******************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUser.js ***! \*******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer___ = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_buffer____default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_buffer___); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_crypto_js_core__ = __webpack_require__(/*! crypto-js/core */ "./node_modules/crypto-js/core.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_crypto_js_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays__ = __webpack_require__(/*! crypto-js/lib-typedarrays */ "./node_modules/crypto-js/lib-typedarrays.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_crypto_js_lib_typedarrays__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_crypto_js_enc_base64__ = __webpack_require__(/*! crypto-js/enc-base64 */ "./node_modules/crypto-js/enc-base64.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_crypto_js_enc_base64___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_crypto_js_enc_base64__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256__ = __webpack_require__(/*! crypto-js/hmac-sha256 */ "./node_modules/crypto-js/hmac-sha256.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__BigInteger__ = __webpack_require__(/*! ./BigInteger */ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__ = __webpack_require__(/*! ./AuthenticationHelper */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__CognitoAccessToken__ = __webpack_require__(/*! ./CognitoAccessToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__CognitoIdToken__ = __webpack_require__(/*! ./CognitoIdToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__CognitoRefreshToken__ = __webpack_require__(/*! ./CognitoRefreshToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__CognitoUserSession__ = __webpack_require__(/*! ./CognitoUserSession */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__DateHelper__ = __webpack_require__(/*! ./DateHelper */ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__CognitoUserAttribute__ = __webpack_require__(/*! ./CognitoUserAttribute */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__StorageHelper__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ // necessary for crypto js /** * @callback nodeCallback * @template T result * @param {*} err The operation failure reason, or null. * @param {T} result The operation result. */ /** * @callback onFailure * @param {*} err Failure reason. */ /** * @callback onSuccess * @template T result * @param {T} result The operation result. */ /** * @callback mfaRequired * @param {*} details MFA challenge details. */ /** * @callback customChallenge * @param {*} details Custom challenge details. */ /** * @callback inputVerificationCode * @param {*} data Server response. */ /** * @callback authSuccess * @param {CognitoUserSession} session The new session. * @param {bool=} userConfirmationNecessary User must be confirmed. */ /** @class */ var CognitoUser = function () { /** * Constructs a new CognitoUser object * @param {object} data Creation options * @param {string} data.Username The user's username. * @param {CognitoUserPool} data.Pool Pool containing the user. * @param {object} data.Storage Optional storage object. */ function CognitoUser(data) { _classCallCheck(this, CognitoUser); if (data == null || data.Username == null || data.Pool == null) { throw new Error('Username and pool information are required.'); } this.username = data.Username || ''; this.pool = data.Pool; this.Session = null; this.client = data.Pool.client; this.signInUserSession = null; this.authenticationFlowType = 'USER_SRP_AUTH'; this.storage = data.Storage || new __WEBPACK_IMPORTED_MODULE_13__StorageHelper__["a" /* default */]().getStorage(); this.keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId(); this.userDataKey = this.keyPrefix + '.' + this.username + '.userData'; } /** * Sets the session for this user * @param {CognitoUserSession} signInUserSession the session * @returns {void} */ CognitoUser.prototype.setSignInUserSession = function setSignInUserSession(signInUserSession) { this.clearCachedUserData(); this.signInUserSession = signInUserSession; this.cacheTokens(); }; /** * @returns {CognitoUserSession} the current session for this user */ CognitoUser.prototype.getSignInUserSession = function getSignInUserSession() { return this.signInUserSession; }; /** * @returns {string} the user's username */ CognitoUser.prototype.getUsername = function getUsername() { return this.username; }; /** * @returns {String} the authentication flow type */ CognitoUser.prototype.getAuthenticationFlowType = function getAuthenticationFlowType() { return this.authenticationFlowType; }; /** * sets authentication flow type * @param {string} authenticationFlowType New value. * @returns {void} */ CognitoUser.prototype.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) { this.authenticationFlowType = authenticationFlowType; }; /** * This is used for authenticating the user through the custom authentication flow. * @param {AuthenticationDetails} authDetails Contains the authentication data * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {customChallenge} callback.customChallenge Custom challenge * response required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @returns {void} */ CognitoUser.prototype.initiateAuth = function initiateAuth(authDetails, callback) { var _this = this; var authParameters = authDetails.getAuthParameters(); authParameters.USERNAME = this.username; var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); var jsonReq = { AuthFlow: 'CUSTOM_AUTH', ClientId: this.pool.getClientId(), AuthParameters: authParameters, ClientMetadata: clientMetaData }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('InitiateAuth', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } var challengeName = data.ChallengeName; var challengeParameters = data.ChallengeParameters; if (challengeName === 'CUSTOM_CHALLENGE') { _this.Session = data.Session; return callback.customChallenge(challengeParameters); } _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult); _this.cacheTokens(); return callback.onSuccess(_this.signInUserSession); }); }; /** * This is used for authenticating the user. * stuff * @param {AuthenticationDetails} authDetails Contains the authentication data * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {newPasswordRequired} callback.newPasswordRequired new * password and any required attributes are required to continue * @param {mfaRequired} callback.mfaRequired MFA code * required to continue. * @param {customChallenge} callback.customChallenge Custom challenge * response required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @returns {void} */ CognitoUser.prototype.authenticateUser = function authenticateUser(authDetails, callback) { if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') { return this.authenticateUserPlainUsernamePassword(authDetails, callback); } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') { return this.authenticateUserDefaultAuth(authDetails, callback); } return callback.onFailure(new Error('Authentication flow type is invalid.')); }; /** * PRIVATE ONLY: This is an internal only method and should not * be directly called by the consumers. * It calls the AuthenticationHelper for SRP related * stuff * @param {AuthenticationDetails} authDetails Contains the authentication data * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {newPasswordRequired} callback.newPasswordRequired new * password and any required attributes are required to continue * @param {mfaRequired} callback.mfaRequired MFA code * required to continue. * @param {customChallenge} callback.customChallenge Custom challenge * response required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @returns {void} */ CognitoUser.prototype.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) { var _this2 = this; var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](this.pool.getUserPoolId().split('_')[1]); var dateHelper = new __WEBPACK_IMPORTED_MODULE_11__DateHelper__["a" /* default */](); var serverBValue = void 0; var salt = void 0; var authParameters = {}; if (this.deviceKey != null) { authParameters.DEVICE_KEY = this.deviceKey; } authParameters.USERNAME = this.username; authenticationHelper.getLargeAValue(function (errOnAValue, aValue) { // getLargeAValue callback start if (errOnAValue) { callback.onFailure(errOnAValue); } authParameters.SRP_A = aValue.toString(16); if (_this2.authenticationFlowType === 'CUSTOM_AUTH') { authParameters.CHALLENGE_NAME = 'SRP_A'; } var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); var jsonReq = { AuthFlow: _this2.authenticationFlowType, ClientId: _this2.pool.getClientId(), AuthParameters: authParameters, ClientMetadata: clientMetaData }; if (_this2.getUserContextData(_this2.username)) { jsonReq.UserContextData = _this2.getUserContextData(_this2.username); } _this2.client.request('InitiateAuth', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } var challengeParameters = data.ChallengeParameters; _this2.username = challengeParameters.USER_ID_FOR_SRP; serverBValue = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](challengeParameters.SRP_B, 16); salt = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](challengeParameters.SALT, 16); _this2.getCachedDeviceKeyAndPassword(); authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) { // getPasswordAuthenticationKey callback start if (errOnHkdf) { callback.onFailure(errOnHkdf); } var dateNow = dateHelper.getNowString(); var message = __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].concat([__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this2.pool.getUserPoolId().split('_')[1], 'utf8'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this2.username, 'utf8'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(challengeParameters.SECRET_BLOCK, 'base64'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(dateNow, 'utf8')])); var key = __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(hkdf); var signatureString = __WEBPACK_IMPORTED_MODULE_3_crypto_js_enc_base64___default.a.stringify(__WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default()(message, key)); var challengeResponses = {}; challengeResponses.USERNAME = _this2.username; challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK; challengeResponses.TIMESTAMP = dateNow; challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString; if (_this2.deviceKey != null) { challengeResponses.DEVICE_KEY = _this2.deviceKey; } var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) { return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) { if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) { challengeResponses.DEVICE_KEY = null; _this2.deviceKey = null; _this2.randomPassword = null; _this2.deviceGroupKey = null; _this2.clearCachedDeviceKeyAndPassword(); return respondToAuthChallenge(challenge, challengeCallback); } return challengeCallback(errChallenge, dataChallenge); }); }; var jsonReqResp = { ChallengeName: 'PASSWORD_VERIFIER', ClientId: _this2.pool.getClientId(), ChallengeResponses: challengeResponses, Session: data.Session, ClientMetadata: clientMetaData }; if (_this2.getUserContextData()) { jsonReqResp.UserContextData = _this2.getUserContextData(); } respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); } return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback); }); return undefined; // getPasswordAuthenticationKey callback end }); return undefined; }); // getLargeAValue callback end }); }; /** * PRIVATE ONLY: This is an internal only method and should not * be directly called by the consumers. * @param {AuthenticationDetails} authDetails Contains the authentication data. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {mfaRequired} callback.mfaRequired MFA code * required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @returns {void} */ CognitoUser.prototype.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) { var _this3 = this; var authParameters = {}; authParameters.USERNAME = this.username; authParameters.PASSWORD = authDetails.getPassword(); if (!authParameters.PASSWORD) { callback.onFailure(new Error('PASSWORD parameter is required')); return; } var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](this.pool.getUserPoolId().split('_')[1]); this.getCachedDeviceKeyAndPassword(); if (this.deviceKey != null) { authParameters.DEVICE_KEY = this.deviceKey; } var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); var jsonReq = { AuthFlow: 'USER_PASSWORD_AUTH', ClientId: this.pool.getClientId(), AuthParameters: authParameters, ClientMetadata: clientMetaData }; if (this.getUserContextData(this.username)) { jsonReq.UserContextData = this.getUserContextData(this.username); } // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password, // Cognito UserPools verifies password and returns tokens. this.client.request('InitiateAuth', jsonReq, function (err, authResult) { if (err) { return callback.onFailure(err); } return _this3.authenticateUserInternal(authResult, authenticationHelper, callback); }); }; /** * PRIVATE ONLY: This is an internal only method and should not * be directly called by the consumers. * @param {object} dataAuthenticate authentication data * @param {object} authenticationHelper helper created * @param {callback} callback passed on from caller * @returns {void} */ CognitoUser.prototype.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) { var _this4 = this; var challengeName = dataAuthenticate.ChallengeName; var challengeParameters = dataAuthenticate.ChallengeParameters; if (challengeName === 'SMS_MFA') { this.Session = dataAuthenticate.Session; return callback.mfaRequired(challengeName, challengeParameters); } if (challengeName === 'SELECT_MFA_TYPE') { this.Session = dataAuthenticate.Session; return callback.selectMFAType(challengeName, challengeParameters); } if (challengeName === 'MFA_SETUP') { this.Session = dataAuthenticate.Session; return callback.mfaSetup(challengeName, challengeParameters); } if (challengeName === 'SOFTWARE_TOKEN_MFA') { this.Session = dataAuthenticate.Session; return callback.totpRequired(challengeName, challengeParameters); } if (challengeName === 'CUSTOM_CHALLENGE') { this.Session = dataAuthenticate.Session; return callback.customChallenge(challengeParameters); } if (challengeName === 'NEW_PASSWORD_REQUIRED') { this.Session = dataAuthenticate.Session; var userAttributes = null; var rawRequiredAttributes = null; var requiredAttributes = []; var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix(); if (challengeParameters) { userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes); rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes); } if (rawRequiredAttributes) { for (var i = 0; i < rawRequiredAttributes.length; i++) { requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length); } } return callback.newPasswordRequired(userAttributes, requiredAttributes); } if (challengeName === 'DEVICE_SRP_AUTH') { this.getDeviceResponse(callback); return undefined; } this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult); this.challengeName = challengeName; this.cacheTokens(); var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata; if (newDeviceMetadata == null) { return callback.onSuccess(this.signInUserSession); } authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) { if (errGenHash) { return callback.onFailure(errGenHash); } var deviceSecretVerifierConfig = { Salt: __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'), PasswordVerifier: __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64') }; _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier; _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey; _this4.randomPassword = authenticationHelper.getRandomPassword(); _this4.client.request('ConfirmDevice', { DeviceKey: newDeviceMetadata.DeviceKey, AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(), DeviceSecretVerifierConfig: deviceSecretVerifierConfig, DeviceName: navigator.userAgent }, function (errConfirm, dataConfirm) { if (errConfirm) { return callback.onFailure(errConfirm); } _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey; _this4.cacheDeviceKeyAndPassword(); if (dataConfirm.UserConfirmationNecessary === true) { return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary); } return callback.onSuccess(_this4.signInUserSession); }); return undefined; }); return undefined; }; /** * This method is user to complete the NEW_PASSWORD_REQUIRED challenge. * Pass the new password with any new user attributes to be updated. * User attribute keys must be of format userAttributes.. * @param {string} newPassword new password for this user * @param {object} requiredAttributeData map with values for all required attributes * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {mfaRequired} callback.mfaRequired MFA code required to continue. * @param {customChallenge} callback.customChallenge Custom challenge * response required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) { var _this5 = this; if (!newPassword) { return callback.onFailure(new Error('New password is required.')); } var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](this.pool.getUserPoolId().split('_')[1]); var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix(); var finalUserAttributes = {}; if (requiredAttributeData) { Object.keys(requiredAttributeData).forEach(function (key) { finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key]; }); } finalUserAttributes.NEW_PASSWORD = newPassword; finalUserAttributes.USERNAME = this.username; var jsonReq = { ChallengeName: 'NEW_PASSWORD_REQUIRED', ClientId: this.pool.getClientId(), ChallengeResponses: finalUserAttributes, Session: this.Session, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); } return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback); }); return undefined; }; /** * This is used to get a session using device authentication. It is called at the end of user * authentication * * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} * @private */ CognitoUser.prototype.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) { var _this6 = this; var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](this.deviceGroupKey); var dateHelper = new __WEBPACK_IMPORTED_MODULE_11__DateHelper__["a" /* default */](); var authParameters = {}; authParameters.USERNAME = this.username; authParameters.DEVICE_KEY = this.deviceKey; authenticationHelper.getLargeAValue(function (errAValue, aValue) { // getLargeAValue callback start if (errAValue) { callback.onFailure(errAValue); } authParameters.SRP_A = aValue.toString(16); var jsonReq = { ChallengeName: 'DEVICE_SRP_AUTH', ClientId: _this6.pool.getClientId(), ChallengeResponses: authParameters, ClientMetadata: clientMetadata }; if (_this6.getUserContextData()) { jsonReq.UserContextData = _this6.getUserContextData(); } _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } var challengeParameters = data.ChallengeParameters; var serverBValue = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](challengeParameters.SRP_B, 16); var salt = new __WEBPACK_IMPORTED_MODULE_5__BigInteger__["a" /* default */](challengeParameters.SALT, 16); authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) { // getPasswordAuthenticationKey callback start if (errHkdf) { return callback.onFailure(errHkdf); } var dateNow = dateHelper.getNowString(); var message = __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].concat([__WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this6.deviceGroupKey, 'utf8'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(_this6.deviceKey, 'utf8'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(challengeParameters.SECRET_BLOCK, 'base64'), __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(dateNow, 'utf8')])); var key = __WEBPACK_IMPORTED_MODULE_1_crypto_js_core___default.a.lib.WordArray.create(hkdf); var signatureString = __WEBPACK_IMPORTED_MODULE_3_crypto_js_enc_base64___default.a.stringify(__WEBPACK_IMPORTED_MODULE_4_crypto_js_hmac_sha256___default()(message, key)); var challengeResponses = {}; challengeResponses.USERNAME = _this6.username; challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK; challengeResponses.TIMESTAMP = dateNow; challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString; challengeResponses.DEVICE_KEY = _this6.deviceKey; var jsonReqResp = { ChallengeName: 'DEVICE_PASSWORD_VERIFIER', ClientId: _this6.pool.getClientId(), ChallengeResponses: challengeResponses, Session: data.Session }; if (_this6.getUserContextData()) { jsonReqResp.UserContextData = _this6.getUserContextData(); } _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); } _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult); _this6.cacheTokens(); return callback.onSuccess(_this6.signInUserSession); }); return undefined; // getPasswordAuthenticationKey callback end }); return undefined; }); // getLargeAValue callback end }); }; /** * This is used for a certain user to confirm the registration by using a confirmation code * @param {string} confirmationCode Code entered by user. * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number. * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) { var jsonReq = { ClientId: this.pool.getClientId(), ConfirmationCode: confirmationCode, Username: this.username, ForceAliasCreation: forceAliasCreation, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('ConfirmSignUp', jsonReq, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); }; /** * This is used by the user once he has the responses to a custom challenge * @param {string} answerChallenge The custom challenge answer. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {customChallenge} callback.customChallenge * Custom challenge response required to continue. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) { var _this7 = this; var challengeResponses = {}; challengeResponses.USERNAME = this.username; challengeResponses.ANSWER = answerChallenge; var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](this.pool.getUserPoolId().split('_')[1]); this.getCachedDeviceKeyAndPassword(); if (this.deviceKey != null) { challengeResponses.DEVICE_KEY = this.deviceKey; } var jsonReq = { ChallengeName: 'CUSTOM_CHALLENGE', ChallengeResponses: challengeResponses, ClientId: this.pool.getClientId(), Session: this.Session, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } return _this7.authenticateUserInternal(data, authenticationHelper, callback); }); }; /** * This is used by the user once he has an MFA code * @param {string} confirmationCode The MFA code entered by the user. * @param {object} callback Result callback map. * @param {string} mfaType The mfa we are replying to. * @param {onFailure} callback.onFailure Called on any error. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) { var _this8 = this; var challengeResponses = {}; challengeResponses.USERNAME = this.username; challengeResponses.SMS_MFA_CODE = confirmationCode; var mfaTypeSelection = mfaType || 'SMS_MFA'; if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; } if (this.deviceKey != null) { challengeResponses.DEVICE_KEY = this.deviceKey; } var jsonReq = { ChallengeName: mfaTypeSelection, ChallengeResponses: challengeResponses, ClientId: this.pool.getClientId(), Session: this.Session, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) { if (err) { return callback.onFailure(err); } var challengeName = dataAuthenticate.ChallengeName; if (challengeName === 'DEVICE_SRP_AUTH') { _this8.getDeviceResponse(callback); return undefined; } _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult); _this8.cacheTokens(); if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) { return callback.onSuccess(_this8.signInUserSession); } var authenticationHelper = new __WEBPACK_IMPORTED_MODULE_6__AuthenticationHelper__["a" /* default */](_this8.pool.getUserPoolId().split('_')[1]); authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) { if (errGenHash) { return callback.onFailure(errGenHash); } var deviceSecretVerifierConfig = { Salt: __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'), PasswordVerifier: __WEBPACK_IMPORTED_MODULE_0_buffer___["Buffer"].from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64') }; _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier; _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey; _this8.randomPassword = authenticationHelper.getRandomPassword(); _this8.client.request('ConfirmDevice', { DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(), DeviceSecretVerifierConfig: deviceSecretVerifierConfig, DeviceName: navigator.userAgent }, function (errConfirm, dataConfirm) { if (errConfirm) { return callback.onFailure(errConfirm); } _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey; _this8.cacheDeviceKeyAndPassword(); if (dataConfirm.UserConfirmationNecessary === true) { return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary); } return callback.onSuccess(_this8.signInUserSession); }); return undefined; }); return undefined; }); }; /** * This is used by an authenticated user to change the current password * @param {string} oldUserPassword The current password. * @param {string} newUserPassword The requested new password. * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) { if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { return callback(new Error('User is not authenticated'), null); } this.client.request('ChangePassword', { PreviousPassword: oldUserPassword, ProposedPassword: newUserPassword, AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), ClientMetadata: clientMetadata }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by an authenticated user to enable MFA for itself * @deprecated * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.enableMFA = function enableMFA(callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback(new Error('User is not authenticated'), null); } var mfaOptions = []; var mfaEnabled = { DeliveryMedium: 'SMS', AttributeName: 'phone_number' }; mfaOptions.push(mfaEnabled); this.client.request('SetUserSettings', { MFAOptions: mfaOptions, AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by an authenticated user to enable MFA for itself * @param {IMfaSettings} smsMfaSettings the sms mfa settings * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback(new Error('User is not authenticated'), null); } this.client.request('SetUserMFAPreference', { SMSMfaSettings: smsMfaSettings, SoftwareTokenMfaSettings: softwareTokenMfaSettings, AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by an authenticated user to disable MFA for itself * @deprecated * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.disableMFA = function disableMFA(callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback(new Error('User is not authenticated'), null); } var mfaOptions = []; this.client.request('SetUserSettings', { MFAOptions: mfaOptions, AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by an authenticated user to delete itself * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.deleteUser = function deleteUser(callback, clientMetadata) { var _this9 = this; if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback(new Error('User is not authenticated'), null); } this.client.request('DeleteUser', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), ClientMetadata: clientMetadata }, function (err) { if (err) { return callback(err, null); } _this9.clearCachedUser(); return callback(null, 'SUCCESS'); }); return undefined; }; /** * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg */ /** * This is used by an authenticated user to change a list of attributes * @param {AttributeArg[]} attributes A list of the new user attributes. * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback(new Error('User is not authenticated'), null); } this.client.request('UpdateUserAttributes', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), UserAttributes: attributes, ClientMetadata: clientMetadata }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by an authenticated user to get a list of attributes * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.getUserAttributes = function getUserAttributes(callback) { if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { return callback(new Error('User is not authenticated'), null); } this.client.request('GetUser', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err, userData) { if (err) { return callback(err, null); } var attributeList = []; for (var i = 0; i < userData.UserAttributes.length; i++) { var attribute = { Name: userData.UserAttributes[i].Name, Value: userData.UserAttributes[i].Value }; var userAttribute = new __WEBPACK_IMPORTED_MODULE_12__CognitoUserAttribute__["a" /* default */](attribute); attributeList.push(userAttribute); } return callback(null, attributeList); }); return undefined; }; /** * This is used by an authenticated user to get the MFAOptions * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.getMFAOptions = function getMFAOptions(callback) { if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { return callback(new Error('User is not authenticated'), null); } this.client.request('GetUser', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err, userData) { if (err) { return callback(err, null); } return callback(null, userData.MFAOptions); }); return undefined; }; /** * This is used by an authenticated users to get the userData * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.getUserData = function getUserData(callback, params) { var _this10 = this; if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { this.clearCachedUserData(); return callback(new Error('User is not authenticated'), null); } var bypassCache = params ? params.bypassCache : false; var userData = this.storage.getItem(this.userDataKey); // get the cached user data if (!userData || bypassCache) { this.client.request('GetUser', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err, latestUserData) { if (err) { return callback(err, null); } _this10.cacheUserData(latestUserData); var refresh = _this10.signInUserSession.getRefreshToken(); if (refresh && refresh.getToken()) { _this10.refreshSession(refresh, function (refreshError, data) { if (refreshError) { return callback(refreshError, null); } return callback(null, latestUserData); }); } else { return callback(null, latestUserData); } }); } else { try { return callback(null, JSON.parse(userData)); } catch (err) { this.clearCachedUserData(); return callback(err, null); } } return undefined; }; /** * This is used by an authenticated user to delete a list of attributes * @param {string[]} attributeList Names of the attributes to delete. * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.deleteAttributes = function deleteAttributes(attributeList, callback) { if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { return callback(new Error('User is not authenticated'), null); } this.client.request('DeleteUserAttributes', { UserAttributeNames: attributeList, AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback(err, null); } return callback(null, 'SUCCESS'); }); return undefined; }; /** * This is used by a user to resend a confirmation code * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) { var jsonReq = { ClientId: this.pool.getClientId(), Username: this.username, ClientMetadata: clientMetadata }; this.client.request('ResendConfirmationCode', jsonReq, function (err, result) { if (err) { return callback(err, null); } return callback(null, result); }); }; /** * This is used to get a session, either from the session object * or from the local storage, or by using a refresh token * * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.getSession = function getSession(callback) { if (this.username == null) { return callback(new Error('Username is null. Cannot retrieve a new session'), null); } if (this.signInUserSession != null && this.signInUserSession.isValid()) { return callback(null, this.signInUserSession); } var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username; var idTokenKey = keyPrefix + '.idToken'; var accessTokenKey = keyPrefix + '.accessToken'; var refreshTokenKey = keyPrefix + '.refreshToken'; var clockDriftKey = keyPrefix + '.clockDrift'; if (this.storage.getItem(idTokenKey)) { var idToken = new __WEBPACK_IMPORTED_MODULE_8__CognitoIdToken__["a" /* default */]({ IdToken: this.storage.getItem(idTokenKey) }); var accessToken = new __WEBPACK_IMPORTED_MODULE_7__CognitoAccessToken__["a" /* default */]({ AccessToken: this.storage.getItem(accessTokenKey) }); var refreshToken = new __WEBPACK_IMPORTED_MODULE_9__CognitoRefreshToken__["a" /* default */]({ RefreshToken: this.storage.getItem(refreshTokenKey) }); var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0; var sessionData = { IdToken: idToken, AccessToken: accessToken, RefreshToken: refreshToken, ClockDrift: clockDrift }; var cachedSession = new __WEBPACK_IMPORTED_MODULE_10__CognitoUserSession__["a" /* default */](sessionData); if (cachedSession.isValid()) { this.signInUserSession = cachedSession; return callback(null, this.signInUserSession); } if (!refreshToken.getToken()) { return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null); } this.refreshSession(refreshToken, callback); } else { callback(new Error('Local storage is missing an ID Token, Please authenticate'), null); } return undefined; }; /** * This uses the refreshToken to retrieve a new session * @param {CognitoRefreshToken} refreshToken A previous session's refresh token. * @param {nodeCallback} callback Called on success or error. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) { var _this11 = this; var authParameters = {}; authParameters.REFRESH_TOKEN = refreshToken.getToken(); var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId(); var lastUserKey = keyPrefix + '.LastAuthUser'; if (this.storage.getItem(lastUserKey)) { this.username = this.storage.getItem(lastUserKey); var deviceKeyKey = keyPrefix + '.' + this.username + '.deviceKey'; this.deviceKey = this.storage.getItem(deviceKeyKey); authParameters.DEVICE_KEY = this.deviceKey; } var jsonReq = { ClientId: this.pool.getClientId(), AuthFlow: 'REFRESH_TOKEN_AUTH', AuthParameters: authParameters, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('InitiateAuth', jsonReq, function (err, authResult) { if (err) { if (err.code === 'NotAuthorizedException') { _this11.clearCachedUser(); } return callback(err, null); } if (authResult) { var authenticationResult = authResult.AuthenticationResult; if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) { authenticationResult.RefreshToken = refreshToken.getToken(); } _this11.signInUserSession = _this11.getCognitoUserSession(authenticationResult); _this11.cacheTokens(); return callback(null, _this11.signInUserSession); } return undefined; }); }; /** * This is used to save the session tokens to local storage * @returns {void} */ CognitoUser.prototype.cacheTokens = function cacheTokens() { var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId(); var idTokenKey = keyPrefix + '.' + this.username + '.idToken'; var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken'; var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken'; var clockDriftKey = keyPrefix + '.' + this.username + '.clockDrift'; var lastUserKey = keyPrefix + '.LastAuthUser'; this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken()); this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken()); this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken()); this.storage.setItem(clockDriftKey, '' + this.signInUserSession.getClockDrift()); this.storage.setItem(lastUserKey, this.username); }; /** * This is to cache user data */ CognitoUser.prototype.cacheUserData = function cacheUserData(userData) { this.storage.setItem(this.userDataKey, JSON.stringify(userData)); }; /** * This is to remove cached user data */ CognitoUser.prototype.clearCachedUserData = function clearCachedUserData() { this.storage.removeItem(this.userDataKey); }; CognitoUser.prototype.clearCachedUser = function clearCachedUser() { this.clearCachedTokens(); this.clearCachedUserData(); }; /** * This is used to cache the device key and device group and device password * @returns {void} */ CognitoUser.prototype.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() { var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username; var deviceKeyKey = keyPrefix + '.deviceKey'; var randomPasswordKey = keyPrefix + '.randomPasswordKey'; var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey'; this.storage.setItem(deviceKeyKey, this.deviceKey); this.storage.setItem(randomPasswordKey, this.randomPassword); this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey); }; /** * This is used to get current device key and device group and device password * @returns {void} */ CognitoUser.prototype.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() { var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username; var deviceKeyKey = keyPrefix + '.deviceKey'; var randomPasswordKey = keyPrefix + '.randomPasswordKey'; var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey'; if (this.storage.getItem(deviceKeyKey)) { this.deviceKey = this.storage.getItem(deviceKeyKey); this.randomPassword = this.storage.getItem(randomPasswordKey); this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey); } }; /** * This is used to clear the device key info from local storage * @returns {void} */ CognitoUser.prototype.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() { var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username; var deviceKeyKey = keyPrefix + '.deviceKey'; var randomPasswordKey = keyPrefix + '.randomPasswordKey'; var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey'; this.storage.removeItem(deviceKeyKey); this.storage.removeItem(randomPasswordKey); this.storage.removeItem(deviceGroupKeyKey); }; /** * This is used to clear the session tokens from local storage * @returns {void} */ CognitoUser.prototype.clearCachedTokens = function clearCachedTokens() { var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId(); var idTokenKey = keyPrefix + '.' + this.username + '.idToken'; var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken'; var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken'; var lastUserKey = keyPrefix + '.LastAuthUser'; var clockDriftKey = keyPrefix + '.' + this.username + '.clockDrift'; this.storage.removeItem(idTokenKey); this.storage.removeItem(accessTokenKey); this.storage.removeItem(refreshTokenKey); this.storage.removeItem(lastUserKey); this.storage.removeItem(clockDriftKey); }; /** * This is used to build a user session from tokens retrieved in the authentication result * @param {object} authResult Successful auth response from server. * @returns {CognitoUserSession} The new user session. * @private */ CognitoUser.prototype.getCognitoUserSession = function getCognitoUserSession(authResult) { var idToken = new __WEBPACK_IMPORTED_MODULE_8__CognitoIdToken__["a" /* default */](authResult); var accessToken = new __WEBPACK_IMPORTED_MODULE_7__CognitoAccessToken__["a" /* default */](authResult); var refreshToken = new __WEBPACK_IMPORTED_MODULE_9__CognitoRefreshToken__["a" /* default */](authResult); var sessionData = { IdToken: idToken, AccessToken: accessToken, RefreshToken: refreshToken }; return new __WEBPACK_IMPORTED_MODULE_10__CognitoUserSession__["a" /* default */](sessionData); }; /** * This is used to initiate a forgot password request * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {inputVerificationCode?} callback.inputVerificationCode * Optional callback raised instead of onSuccess with response data. * @param {onSuccess} callback.onSuccess Called on success. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.forgotPassword = function forgotPassword(callback, clientMetadata) { var jsonReq = { ClientId: this.pool.getClientId(), Username: this.username, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('ForgotPassword', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } if (typeof callback.inputVerificationCode === 'function') { return callback.inputVerificationCode(data); } return callback.onSuccess(data); }); }; /** * This is used to confirm a new password using a confirmationCode * @param {string} confirmationCode Code entered by user. * @param {string} newPassword Confirm new password. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) { var jsonReq = { ClientId: this.pool.getClientId(), Username: this.username, ConfirmationCode: confirmationCode, Password: newPassword, ClientMetadata: clientMetadata }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('ConfirmForgotPassword', jsonReq, function (err) { if (err) { return callback.onFailure(err); } return callback.onSuccess(); }); }; /** * This is used to initiate an attribute confirmation request * @param {string} attributeName User attribute that needs confirmation. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {inputVerificationCode} callback.inputVerificationCode Called on success. * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger * @returns {void} */ CognitoUser.prototype.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('GetUserAttributeVerificationCode', { AttributeName: attributeName, AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), ClientMetadata: clientMetadata }, function (err, data) { if (err) { return callback.onFailure(err); } if (typeof callback.inputVerificationCode === 'function') { return callback.inputVerificationCode(data); } return callback.onSuccess(); }); return undefined; }; /** * This is used to confirm an attribute using a confirmation code * @param {string} attributeName Attribute being confirmed. * @param {string} confirmationCode Code entered by user. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('VerifyUserAttribute', { AttributeName: attributeName, Code: confirmationCode, AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback.onFailure(err); } return callback.onSuccess('SUCCESS'); }); return undefined; }; /** * This is used to get the device information using the current device key * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess<*>} callback.onSuccess Called on success with device data. * @returns {void} */ CognitoUser.prototype.getDevice = function getDevice(callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('GetDevice', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), DeviceKey: this.deviceKey }, function (err, data) { if (err) { return callback.onFailure(err); } return callback.onSuccess(data); }); return undefined; }; /** * This is used to forget a specific device * @param {string} deviceKey Device key. * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('ForgetDevice', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), DeviceKey: deviceKey }, function (err) { if (err) { return callback.onFailure(err); } return callback.onSuccess('SUCCESS'); }); return undefined; }; /** * This is used to forget the current device * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.forgetDevice = function forgetDevice(callback) { var _this12 = this; this.forgetSpecificDevice(this.deviceKey, { onFailure: callback.onFailure, onSuccess: function onSuccess(result) { _this12.deviceKey = null; _this12.deviceGroupKey = null; _this12.randomPassword = null; _this12.clearCachedDeviceKeyAndPassword(); return callback.onSuccess(result); } }); }; /** * This is used to set the device status as remembered * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('UpdateDeviceStatus', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), DeviceKey: this.deviceKey, DeviceRememberedStatus: 'remembered' }, function (err) { if (err) { return callback.onFailure(err); } return callback.onSuccess('SUCCESS'); }); return undefined; }; /** * This is used to set the device status as not remembered * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('UpdateDeviceStatus', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), DeviceKey: this.deviceKey, DeviceRememberedStatus: 'not_remembered' }, function (err) { if (err) { return callback.onFailure(err); } return callback.onSuccess('SUCCESS'); }); return undefined; }; /** * This is used to list all devices for a user * * @param {int} limit the number of devices returned in a call * @param {string} paginationToken the pagination token in case any was returned before * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess<*>} callback.onSuccess Called on success with device list. * @returns {void} */ CognitoUser.prototype.listDevices = function listDevices(limit, paginationToken, callback) { if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('ListDevices', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), Limit: limit, PaginationToken: paginationToken }, function (err, data) { if (err) { return callback.onFailure(err); } return callback.onSuccess(data); }); return undefined; }; /** * This is used to globally revoke all tokens issued to a user * @param {object} callback Result callback map. * @param {onFailure} callback.onFailure Called on any error. * @param {onSuccess} callback.onSuccess Called on success. * @returns {void} */ CognitoUser.prototype.globalSignOut = function globalSignOut(callback) { var _this13 = this; if (this.signInUserSession == null || !this.signInUserSession.isValid()) { return callback.onFailure(new Error('User is not authenticated')); } this.client.request('GlobalSignOut', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err) { if (err) { return callback.onFailure(err); } _this13.clearCachedUser(); return callback.onSuccess('SUCCESS'); }); return undefined; }; /** * This is used for the user to signOut of the application and clear the cached tokens. * @returns {void} */ CognitoUser.prototype.signOut = function signOut() { this.signInUserSession = null; this.clearCachedUser(); }; /** * This is used by a user trying to select a given MFA * @param {string} answerChallenge the mfa the user wants * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) { var _this14 = this; var challengeResponses = {}; challengeResponses.USERNAME = this.username; challengeResponses.ANSWER = answerChallenge; var jsonReq = { ChallengeName: 'SELECT_MFA_TYPE', ChallengeResponses: challengeResponses, ClientId: this.pool.getClientId(), Session: this.Session }; if (this.getUserContextData()) { jsonReq.UserContextData = this.getUserContextData(); } this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { if (err) { return callback.onFailure(err); } _this14.Session = data.Session; if (answerChallenge === 'SMS_MFA') { return callback.mfaRequired(data.challengeName, data.challengeParameters); } if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { return callback.totpRequired(data.challengeName, data.challengeParameters); } return undefined; }); }; /** * This returns the user context data for advanced security feature. * @returns {void} */ CognitoUser.prototype.getUserContextData = function getUserContextData() { var pool = this.pool; return pool.getUserContextData(this.username); }; /** * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.associateSoftwareToken = function associateSoftwareToken(callback) { var _this15 = this; if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { this.client.request('AssociateSoftwareToken', { Session: this.Session }, function (err, data) { if (err) { return callback.onFailure(err); } _this15.Session = data.Session; return callback.associateSecretCode(data.SecretCode); }); } else { this.client.request('AssociateSoftwareToken', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken() }, function (err, data) { if (err) { return callback.onFailure(err); } return callback.associateSecretCode(data.SecretCode); }); } }; /** * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA * @param {string} totpCode The MFA code entered by the user. * @param {string} friendlyDeviceName The device name we are assigning to the device. * @param {nodeCallback} callback Called on success or error. * @returns {void} */ CognitoUser.prototype.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) { var _this16 = this; if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { this.client.request('VerifySoftwareToken', { Session: this.Session, UserCode: totpCode, FriendlyDeviceName: friendlyDeviceName }, function (err, data) { if (err) { return callback.onFailure(err); } _this16.Session = data.Session; var challengeResponses = {}; challengeResponses.USERNAME = _this16.username; var jsonReq = { ChallengeName: 'MFA_SETUP', ClientId: _this16.pool.getClientId(), ChallengeResponses: challengeResponses, Session: _this16.Session }; if (_this16.getUserContextData()) { jsonReq.UserContextData = _this16.getUserContextData(); } _this16.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) { if (errRespond) { return callback.onFailure(errRespond); } _this16.signInUserSession = _this16.getCognitoUserSession(dataRespond.AuthenticationResult); _this16.cacheTokens(); return callback.onSuccess(_this16.signInUserSession); }); return undefined; }); } else { this.client.request('VerifySoftwareToken', { AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), UserCode: totpCode, FriendlyDeviceName: friendlyDeviceName }, function (err, data) { if (err) { return callback.onFailure(err); } return callback.onSuccess(data); }); } }; return CognitoUser; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoUser); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js": /*!****************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js ***! \****************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoUserAttribute = function () { /** * Constructs a new CognitoUserAttribute object * @param {string=} Name The record's name * @param {string=} Value The record's value */ function CognitoUserAttribute() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, Name = _ref.Name, Value = _ref.Value; _classCallCheck(this, CognitoUserAttribute); this.Name = Name || ''; this.Value = Value || ''; } /** * @returns {string} the record's value. */ CognitoUserAttribute.prototype.getValue = function getValue() { return this.Value; }; /** * Sets the record's value. * @param {string} value The new value. * @returns {CognitoUserAttribute} The record for method chaining. */ CognitoUserAttribute.prototype.setValue = function setValue(value) { this.Value = value; return this; }; /** * @returns {string} the record's name. */ CognitoUserAttribute.prototype.getName = function getName() { return this.Name; }; /** * Sets the record's name * @param {string} name The new name. * @returns {CognitoUserAttribute} The record for method chaining. */ CognitoUserAttribute.prototype.setName = function setName(name) { this.Name = name; return this; }; /** * @returns {string} a string representation of the record. */ CognitoUserAttribute.prototype.toString = function toString() { return JSON.stringify(this); }; /** * @returns {object} a flat object representing the record. */ CognitoUserAttribute.prototype.toJSON = function toJSON() { return { Name: this.Name, Value: this.Value }; }; return CognitoUserAttribute; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoUserAttribute); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js": /*!***********************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js ***! \***********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Client__ = __webpack_require__(/*! ./Client */ "./node_modules/amazon-cognito-identity-js/es/Client.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CognitoUser__ = __webpack_require__(/*! ./CognitoUser */ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__StorageHelper__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoUserPool = function () { /** * Constructs a new CognitoUserPool object * @param {object} data Creation options. * @param {string} data.UserPoolId Cognito user pool id. * @param {string} data.ClientId User pool application client id. * @param {object} data.Storage Optional storage object. * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: * boolean flag indicating if the data collection is enabled * to support cognito advanced security features. By default, this * flag is set to true. */ function CognitoUserPool(data) { _classCallCheck(this, CognitoUserPool); var _ref = data || {}, UserPoolId = _ref.UserPoolId, ClientId = _ref.ClientId, endpoint = _ref.endpoint, AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag; if (!UserPoolId || !ClientId) { throw new Error('Both UserPoolId and ClientId are required.'); } if (!/^[\w-]+_.+$/.test(UserPoolId)) { throw new Error('Invalid UserPoolId format.'); } var region = UserPoolId.split('_')[0]; this.userPoolId = UserPoolId; this.clientId = ClientId; this.client = new __WEBPACK_IMPORTED_MODULE_0__Client__["a" /* default */](region, endpoint); /** * By default, AdvancedSecurityDataCollectionFlag is set to true, * if no input value is provided. */ this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false; this.storage = data.Storage || new __WEBPACK_IMPORTED_MODULE_2__StorageHelper__["a" /* default */]().getStorage(); } /** * @returns {string} the user pool id */ CognitoUserPool.prototype.getUserPoolId = function getUserPoolId() { return this.userPoolId; }; /** * @returns {string} the client id */ CognitoUserPool.prototype.getClientId = function getClientId() { return this.clientId; }; /** * @typedef {object} SignUpResult * @property {CognitoUser} user New user. * @property {bool} userConfirmed If the user is already confirmed. */ /** * method for signing up a user * @param {string} username User's username. * @param {string} password Plain-text initial password entered by user. * @param {(AttributeArg[])=} userAttributes New user attributes. * @param {(AttributeArg[])=} validationData Application metadata. * @param {(AttributeArg[])=} clientMetadata Client metadata. * @param {nodeCallback} callback Called on error or with the new user. * @returns {void} */ CognitoUserPool.prototype.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) { var _this = this; var jsonReq = { ClientId: this.clientId, Username: username, Password: password, UserAttributes: userAttributes, ValidationData: validationData, ClientMetadata: clientMetadata }; if (this.getUserContextData(username)) { jsonReq.UserContextData = this.getUserContextData(username); } this.client.request('SignUp', jsonReq, function (err, data) { if (err) { return callback(err, null); } var cognitoUser = { Username: username, Pool: _this, Storage: _this.storage }; var returnData = { user: new __WEBPACK_IMPORTED_MODULE_1__CognitoUser__["a" /* default */](cognitoUser), userConfirmed: data.UserConfirmed, userSub: data.UserSub, codeDeliveryDetails: data.CodeDeliveryDetails }; return callback(null, returnData); }); }; /** * method for getting the current user of the application from the local storage * * @returns {CognitoUser} the user retrieved from storage */ CognitoUserPool.prototype.getCurrentUser = function getCurrentUser() { var lastUserKey = 'CognitoIdentityServiceProvider.' + this.clientId + '.LastAuthUser'; var lastAuthUser = this.storage.getItem(lastUserKey); if (lastAuthUser) { var cognitoUser = { Username: lastAuthUser, Pool: this, Storage: this.storage }; return new __WEBPACK_IMPORTED_MODULE_1__CognitoUser__["a" /* default */](cognitoUser); } return null; }; /** * This method returns the encoded data string used for cognito advanced security feature. * This would be generated only when developer has included the JS used for collecting the * data on their client. Please refer to documentation to know more about using AdvancedSecurity * features * @param {string} username the username for the context data * @returns {string} the user context data **/ CognitoUserPool.prototype.getUserContextData = function getUserContextData(username) { if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { return undefined; } /* eslint-disable */ var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; /* eslint-enable */ if (this.advancedSecurityDataCollectionFlag) { var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId); if (advancedSecurityData) { var userContextData = { EncodedData: advancedSecurityData }; return userContextData; } } return {}; }; return CognitoUserPool; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoUserPool); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js": /*!**************************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js ***! \**************************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /** @class */ var CognitoUserSession = function () { /** * Constructs a new CognitoUserSession object * @param {CognitoIdToken} IdToken The session's Id token. * @param {CognitoRefreshToken=} RefreshToken The session's refresh token. * @param {CognitoAccessToken} AccessToken The session's access token. * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation. */ function CognitoUserSession() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, IdToken = _ref.IdToken, RefreshToken = _ref.RefreshToken, AccessToken = _ref.AccessToken, ClockDrift = _ref.ClockDrift; _classCallCheck(this, CognitoUserSession); if (AccessToken == null || IdToken == null) { throw new Error('Id token and Access Token must be present.'); } this.idToken = IdToken; this.refreshToken = RefreshToken; this.accessToken = AccessToken; this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift; } /** * @returns {CognitoIdToken} the session's Id token */ CognitoUserSession.prototype.getIdToken = function getIdToken() { return this.idToken; }; /** * @returns {CognitoRefreshToken} the session's refresh token */ CognitoUserSession.prototype.getRefreshToken = function getRefreshToken() { return this.refreshToken; }; /** * @returns {CognitoAccessToken} the session's access token */ CognitoUserSession.prototype.getAccessToken = function getAccessToken() { return this.accessToken; }; /** * @returns {int} the session's clock drift */ CognitoUserSession.prototype.getClockDrift = function getClockDrift() { return this.clockDrift; }; /** * @returns {int} the computer's clock drift */ CognitoUserSession.prototype.calculateClockDrift = function calculateClockDrift() { var now = Math.floor(new Date() / 1000); var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt()); return now - iat; }; /** * Checks to see if the session is still valid based on session expiry information found * in tokens and the current time (adjusted with clock drift) * @returns {boolean} if the session is still valid */ CognitoUserSession.prototype.isValid = function isValid() { var now = Math.floor(new Date() / 1000); var adjusted = now - this.clockDrift; return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration(); }; return CognitoUserSession; }(); /* harmony default export */ __webpack_exports__["a"] = (CognitoUserSession); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/CookieStorage.js": /*!*********************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/CookieStorage.js ***! \*********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie__ = __webpack_require__(/*! js-cookie */ "./node_modules/js-cookie/src/js.cookie.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_js_cookie__); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** @class */ var CookieStorage = function () { /** * Constructs a new CookieStorage object * @param {object} data Creation options. * @param {string} data.domain Cookies domain (mandatory). * @param {string} data.path Cookies path (default: '/') * @param {integer} data.expires Cookie expiration (in days, default: 365) * @param {boolean} data.secure Cookie secure flag (default: true) */ function CookieStorage(data) { _classCallCheck(this, CookieStorage); if (data.domain) { this.domain = data.domain; } else { throw new Error('The domain of cookieStorage can not be undefined.'); } if (data.path) { this.path = data.path; } else { this.path = '/'; } if (Object.prototype.hasOwnProperty.call(data, 'expires')) { this.expires = data.expires; } else { this.expires = 365; } if (Object.prototype.hasOwnProperty.call(data, 'secure')) { this.secure = data.secure; } else { this.secure = true; } } /** * This is used to set a specific item in storage * @param {string} key - the key for the item * @param {object} value - the value * @returns {string} value that was set */ CookieStorage.prototype.setItem = function setItem(key, value) { __WEBPACK_IMPORTED_MODULE_0_js_cookie__["set"](key, value, { path: this.path, expires: this.expires, domain: this.domain, secure: this.secure }); return __WEBPACK_IMPORTED_MODULE_0_js_cookie__["get"](key); }; /** * This is used to get a specific key from storage * @param {string} key - the key for the item * This is used to clear the storage * @returns {string} the data item */ CookieStorage.prototype.getItem = function getItem(key) { return __WEBPACK_IMPORTED_MODULE_0_js_cookie__["get"](key); }; /** * This is used to remove an item from storage * @param {string} key - the key being set * @returns {string} value - value that was deleted */ CookieStorage.prototype.removeItem = function removeItem(key) { return __WEBPACK_IMPORTED_MODULE_0_js_cookie__["remove"](key, { path: this.path, domain: this.domain, secure: this.secure }); }; /** * This is used to clear the storage * @returns {string} nothing */ CookieStorage.prototype.clear = function clear() { var cookies = __WEBPACK_IMPORTED_MODULE_0_js_cookie__["get"](); var index = void 0; for (index = 0; index < cookies.length; ++index) { __WEBPACK_IMPORTED_MODULE_0_js_cookie__["remove"](cookies[index]); } return {}; }; return CookieStorage; }(); /* harmony default export */ __webpack_exports__["a"] = (CookieStorage); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js": /*!******************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/DateHelper.js ***! \******************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; /** @class */ var DateHelper = function () { function DateHelper() { _classCallCheck(this, DateHelper); } /** * @returns {string} The current time in "ddd MMM D HH:mm:ss UTC YYYY" format. */ DateHelper.prototype.getNowString = function getNowString() { var now = new Date(); var weekDay = weekNames[now.getUTCDay()]; var month = monthNames[now.getUTCMonth()]; var day = now.getUTCDate(); var hours = now.getUTCHours(); if (hours < 10) { hours = '0' + hours; } var minutes = now.getUTCMinutes(); if (minutes < 10) { minutes = '0' + minutes; } var seconds = now.getUTCSeconds(); if (seconds < 10) { seconds = '0' + seconds; } var year = now.getUTCFullYear(); // ddd MMM D HH:mm:ss UTC YYYY var dateNow = weekDay + ' ' + month + ' ' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' UTC ' + year; return dateNow; }; return DateHelper; }(); /* harmony default export */ __webpack_exports__["a"] = (DateHelper); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js": /*!*********************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/StorageHelper.js ***! \*********************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ var dataMemory = {}; /** @class */ var MemoryStorage = function () { function MemoryStorage() { _classCallCheck(this, MemoryStorage); } /** * This is used to set a specific item in storage * @param {string} key - the key for the item * @param {object} value - the value * @returns {string} value that was set */ MemoryStorage.setItem = function setItem(key, value) { dataMemory[key] = value; return dataMemory[key]; }; /** * This is used to get a specific key from storage * @param {string} key - the key for the item * This is used to clear the storage * @returns {string} the data item */ MemoryStorage.getItem = function getItem(key) { return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined; }; /** * This is used to remove an item from storage * @param {string} key - the key being set * @returns {string} value - value that was deleted */ MemoryStorage.removeItem = function removeItem(key) { return delete dataMemory[key]; }; /** * This is used to clear the storage * @returns {string} nothing */ MemoryStorage.clear = function clear() { dataMemory = {}; return dataMemory; }; return MemoryStorage; }(); /** @class */ var StorageHelper = function () { /** * This is used to get a storage object * @returns {object} the storage */ function StorageHelper() { _classCallCheck(this, StorageHelper); try { this.storageWindow = window.localStorage; this.storageWindow.setItem('aws.cognito.test-ls', 1); this.storageWindow.removeItem('aws.cognito.test-ls'); } catch (exception) { this.storageWindow = MemoryStorage; } } /** * This is used to return the storage * @returns {object} the storage */ StorageHelper.prototype.getStorage = function getStorage() { return this.storageWindow; }; return StorageHelper; }(); /* harmony default export */ __webpack_exports__["a"] = (StorageHelper); /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/UserAgent.js": /*!*****************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/UserAgent.js ***! \*****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // class for defining the amzn user-agent /* harmony default export */ __webpack_exports__["a"] = (UserAgent); // constructor function UserAgent() {} // public UserAgent.prototype.userAgent = 'aws-amplify/0.1.x js'; /***/ }), /***/ "./node_modules/amazon-cognito-identity-js/es/index.js": /*!*************************************************************!*\ !*** ./node_modules/amazon-cognito-identity-js/es/index.js ***! \*************************************************************/ /*! exports provided: AuthenticationDetails, AuthenticationHelper, CognitoAccessToken, CognitoIdToken, CognitoRefreshToken, CognitoUser, CognitoUserAttribute, CognitoUserPool, CognitoUserSession, CookieStorage, DateHelper */ /*! exports used: AuthenticationDetails, CognitoAccessToken, CognitoIdToken, CognitoRefreshToken, CognitoUser, CognitoUserAttribute, CognitoUserPool, CognitoUserSession, CookieStorage */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__AuthenticationDetails__ = __webpack_require__(/*! ./AuthenticationDetails */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__AuthenticationDetails__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AuthenticationHelper__ = __webpack_require__(/*! ./AuthenticationHelper */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js"); /* unused harmony reexport AuthenticationHelper */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CognitoAccessToken__ = __webpack_require__(/*! ./CognitoAccessToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__CognitoAccessToken__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CognitoIdToken__ = __webpack_require__(/*! ./CognitoIdToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_3__CognitoIdToken__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__CognitoRefreshToken__ = __webpack_require__(/*! ./CognitoRefreshToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_4__CognitoRefreshToken__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CognitoUser__ = __webpack_require__(/*! ./CognitoUser */ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_5__CognitoUser__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__CognitoUserAttribute__ = __webpack_require__(/*! ./CognitoUserAttribute */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_6__CognitoUserAttribute__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__CognitoUserPool__ = __webpack_require__(/*! ./CognitoUserPool */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_7__CognitoUserPool__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__CognitoUserSession__ = __webpack_require__(/*! ./CognitoUserSession */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_8__CognitoUserSession__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__CookieStorage__ = __webpack_require__(/*! ./CookieStorage */ "./node_modules/amazon-cognito-identity-js/es/CookieStorage.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_9__CookieStorage__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__DateHelper__ = __webpack_require__(/*! ./DateHelper */ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js"); /* unused harmony reexport DateHelper */ /*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * * Licensed under the Amazon Software License (the "License"). * You may not use this file except in compliance with the * License. A copy of the License is located at * * http://aws.amazon.com/asl/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, express or implied. See the License * for the specific language governing permissions and * limitations under the License. */ /***/ }), /***/ "./node_modules/ansi-regex/index.js": /*!******************************************!*\ !*** ./node_modules/ansi-regex/index.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function () { return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g; }; /***/ }), /***/ "./node_modules/asap/browser-raw.js": /*!******************************************!*\ !*** ./node_modules/asap/browser-raw.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { // Use the fastest means possible to execute a task in its own turn, with // priority over other events including IO, animation, reflow, and redraw // events in browsers. // // An exception thrown by a task will permanently interrupt the processing of // subsequent tasks. The higher level `asap` function ensures that if an // exception is thrown by a task, that the task queue will continue flushing as // soon as possible, but if you use `rawAsap` directly, you are responsible to // either ensure that no exceptions are thrown from your task, or to manually // call `rawAsap.requestFlush` if an exception is thrown. module.exports = rawAsap; function rawAsap(task) { if (!queue.length) { requestFlush(); flushing = true; } // Equivalent to push, but avoids a function call. queue[queue.length] = task; } var queue = []; // Once a flush has been requested, no further calls to `requestFlush` are // necessary until the next `flush` completes. var flushing = false; // `requestFlush` is an implementation-specific method that attempts to kick // off a `flush` event as quickly as possible. `flush` will attempt to exhaust // the event queue before yielding to the browser's own event loop. var requestFlush; // The position of the next task to execute in the task queue. This is // preserved between calls to `flush` so that it can be resumed if // a task throws an exception. var index = 0; // If a task schedules additional tasks recursively, the task queue can grow // unbounded. To prevent memory exhaustion, the task queue will periodically // truncate already-completed tasks. var capacity = 1024; // The flush function processes all tasks that have been scheduled with // `rawAsap` unless and until one of those tasks throws an exception. // If a task throws an exception, `flush` ensures that its state will remain // consistent and will resume where it left off when called again. // However, `flush` does not make any arrangements to be called again if an // exception is thrown. function flush() { while (index < queue.length) { var currentIndex = index; // Advance the index before calling the task. This ensures that we will // begin flushing on the next task the task throws an error. index = index + 1; queue[currentIndex].call(); // Prevent leaking memory for long chains of recursive calls to `asap`. // If we call `asap` within tasks scheduled by `asap`, the queue will // grow, but to avoid an O(n) walk for every task we execute, we don't // shift tasks off the queue after they have been executed. // Instead, we periodically shift 1024 tasks off the queue. if (index > capacity) { // Manually shift all values starting at the index back to the // beginning of the queue. for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { queue[scan] = queue[scan + index]; } queue.length -= index; index = 0; } } queue.length = 0; index = 0; flushing = false; } // `requestFlush` is implemented using a strategy based on data collected from // every available SauceLabs Selenium web driver worker at time of writing. // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 // Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that // have WebKitMutationObserver but not un-prefixed MutationObserver. // Must use `global` or `self` instead of `window` to work in both frames and web // workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. /* globals self */ var scope = typeof global !== "undefined" ? global : self; var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; // MutationObservers are desirable because they have high priority and work // reliably everywhere they are implemented. // They are implemented in all modern browsers. // // - Android 4-4.3 // - Chrome 26-34 // - Firefox 14-29 // - Internet Explorer 11 // - iPad Safari 6-7.1 // - iPhone Safari 7-7.1 // - Safari 6-7 if (typeof BrowserMutationObserver === "function") { requestFlush = makeRequestCallFromMutationObserver(flush); // MessageChannels are desirable because they give direct access to the HTML // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera // 11-12, and in web workers in many engines. // Although message channels yield to any queued rendering and IO tasks, they // would be better than imposing the 4ms delay of timers. // However, they do not work reliably in Internet Explorer or Safari. // Internet Explorer 10 is the only browser that has setImmediate but does // not have MutationObservers. // Although setImmediate yields to the browser's renderer, it would be // preferrable to falling back to setTimeout since it does not have // the minimum 4ms penalty. // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and // Desktop to a lesser extent) that renders both setImmediate and // MessageChannel useless for the purposes of ASAP. // https://github.com/kriskowal/q/issues/396 // Timers are implemented universally. // We fall back to timers in workers in most engines, and in foreground // contexts in the following browsers. // However, note that even this simple case requires nuances to operate in a // broad spectrum of browsers. // // - Firefox 3-13 // - Internet Explorer 6-9 // - iPad Safari 4.3 // - Lynx 2.8.7 } else { requestFlush = makeRequestCallFromTimer(flush); } // `requestFlush` requests that the high priority event queue be flushed as // soon as possible. // This is useful to prevent an error thrown in a task from stalling the event // queue if the exception handled by Node.js’s // `process.on("uncaughtException")` or by a domain. rawAsap.requestFlush = requestFlush; // To request a high priority event, we induce a mutation observer by toggling // the text of a text node between "1" and "-1". function makeRequestCallFromMutationObserver(callback) { var toggle = 1; var observer = new BrowserMutationObserver(callback); var node = document.createTextNode(""); observer.observe(node, {characterData: true}); return function requestCall() { toggle = -toggle; node.data = toggle; }; } // The message channel technique was discovered by Malte Ubl and was the // original foundation for this library. // http://www.nonblocking.io/2011/06/windownexttick.html // Safari 6.0.5 (at least) intermittently fails to create message ports on a // page's first load. Thankfully, this version of Safari supports // MutationObservers, so we don't need to fall back in that case. // function makeRequestCallFromMessageChannel(callback) { // var channel = new MessageChannel(); // channel.port1.onmessage = callback; // return function requestCall() { // channel.port2.postMessage(0); // }; // } // For reasons explained above, we are also unable to use `setImmediate` // under any circumstances. // Even if we were, there is another bug in Internet Explorer 10. // It is not sufficient to assign `setImmediate` to `requestFlush` because // `setImmediate` must be called *by name* and therefore must be wrapped in a // closure. // Never forget. // function makeRequestCallFromSetImmediate(callback) { // return function requestCall() { // setImmediate(callback); // }; // } // Safari 6.0 has a problem where timers will get lost while the user is // scrolling. This problem does not impact ASAP because Safari 6.0 supports // mutation observers, so that implementation is used instead. // However, if we ever elect to use timers in Safari, the prevalent work-around // is to add a scroll event listener that calls for a flush. // `setTimeout` does not call the passed callback if the delay is less than // approximately 7 in web workers in Firefox 8 through 18, and sometimes not // even then. function makeRequestCallFromTimer(callback) { return function requestCall() { // We dispatch a timeout with a specified delay of 0 for engines that // can reliably accommodate that request. This will usually be snapped // to a 4 milisecond delay, but once we're flushing, there's no delay // between events. var timeoutHandle = setTimeout(handleTimer, 0); // However, since this timer gets frequently dropped in Firefox // workers, we enlist an interval handle that will try to fire // an event 20 times per second until it succeeds. var intervalHandle = setInterval(handleTimer, 50); function handleTimer() { // Whichever timer succeeds will cancel both timers and // execute the callback. clearTimeout(timeoutHandle); clearInterval(intervalHandle); callback(); } }; } // This is for `asap.js` only. // Its name will be periodically randomized to break any code that depends on // its existence. rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; // ASAP was originally a nextTick shim included in Q. This was factored out // into this ASAP package. It was later adapted to RSVP which made further // amendments. These decisions, particularly to marginalize MessageChannel and // to capture the MutationObserver implementation in a closure, were integrated // back into ASAP proper. // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) /***/ }), /***/ "./node_modules/asn1.js/lib/asn1.js": /*!******************************************!*\ !*** ./node_modules/asn1.js/lib/asn1.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var asn1 = exports; asn1.bignum = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); asn1.define = __webpack_require__(/*! ./asn1/api */ "./node_modules/asn1.js/lib/asn1/api.js").define; asn1.base = __webpack_require__(/*! ./asn1/base */ "./node_modules/asn1.js/lib/asn1/base/index.js"); asn1.constants = __webpack_require__(/*! ./asn1/constants */ "./node_modules/asn1.js/lib/asn1/constants/index.js"); asn1.decoders = __webpack_require__(/*! ./asn1/decoders */ "./node_modules/asn1.js/lib/asn1/decoders/index.js"); asn1.encoders = __webpack_require__(/*! ./asn1/encoders */ "./node_modules/asn1.js/lib/asn1/encoders/index.js"); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/api.js": /*!**********************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/api.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var asn1 = __webpack_require__(/*! ../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var api = exports; api.define = function define(name, body) { return new Entity(name, body); }; function Entity(name, body) { this.name = name; this.body = body; this.decoders = {}; this.encoders = {}; }; Entity.prototype._createNamed = function createNamed(base) { var named; try { named = __webpack_require__(/*! vm */ "./node_modules/vm-browserify/index.js").runInThisContext( '(function ' + this.name + '(entity) {\n' + ' this._initNamed(entity);\n' + '})' ); } catch (e) { named = function (entity) { this._initNamed(entity); }; } inherits(named, base); named.prototype._initNamed = function initnamed(entity) { base.call(this, entity); }; return new named(this); }; Entity.prototype._getDecoder = function _getDecoder(enc) { enc = enc || 'der'; // Lazily create decoder if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(asn1.decoders[enc]); return this.decoders[enc]; }; Entity.prototype.decode = function decode(data, enc, options) { return this._getDecoder(enc).decode(data, options); }; Entity.prototype._getEncoder = function _getEncoder(enc) { enc = enc || 'der'; // Lazily create encoder if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(asn1.encoders[enc]); return this.encoders[enc]; }; Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) { return this._getEncoder(enc).encode(data, reporter); }; /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/base/buffer.js": /*!******************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Reporter = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").Reporter; var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer; function DecoderBuffer(base, options) { Reporter.call(this, options); if (!Buffer.isBuffer(base)) { this.error('Input not Buffer'); return; } this.base = base; this.offset = 0; this.length = base.length; } inherits(DecoderBuffer, Reporter); exports.DecoderBuffer = DecoderBuffer; DecoderBuffer.prototype.save = function save() { return { offset: this.offset, reporter: Reporter.prototype.save.call(this) }; }; DecoderBuffer.prototype.restore = function restore(save) { // Return skipped data var res = new DecoderBuffer(this.base); res.offset = save.offset; res.length = this.offset; this.offset = save.offset; Reporter.prototype.restore.call(this, save.reporter); return res; }; DecoderBuffer.prototype.isEmpty = function isEmpty() { return this.offset === this.length; }; DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true); else return this.error(fail || 'DecoderBuffer overrun'); } DecoderBuffer.prototype.skip = function skip(bytes, fail) { if (!(this.offset + bytes <= this.length)) return this.error(fail || 'DecoderBuffer overrun'); var res = new DecoderBuffer(this.base); // Share reporter state res._reporterState = this._reporterState; res.offset = this.offset; res.length = this.offset + bytes; this.offset += bytes; return res; } DecoderBuffer.prototype.raw = function raw(save) { return this.base.slice(save ? save.offset : this.offset, this.length); } function EncoderBuffer(value, reporter) { if (Array.isArray(value)) { this.length = 0; this.value = value.map(function(item) { if (!(item instanceof EncoderBuffer)) item = new EncoderBuffer(item, reporter); this.length += item.length; return item; }, this); } else if (typeof value === 'number') { if (!(0 <= value && value <= 0xff)) return reporter.error('non-byte EncoderBuffer value'); this.value = value; this.length = 1; } else if (typeof value === 'string') { this.value = value; this.length = Buffer.byteLength(value); } else if (Buffer.isBuffer(value)) { this.value = value; this.length = value.length; } else { return reporter.error('Unsupported type: ' + typeof value); } } exports.EncoderBuffer = EncoderBuffer; EncoderBuffer.prototype.join = function join(out, offset) { if (!out) out = new Buffer(this.length); if (!offset) offset = 0; if (this.length === 0) return out; if (Array.isArray(this.value)) { this.value.forEach(function(item) { item.join(out, offset); offset += item.length; }); } else { if (typeof this.value === 'number') out[offset] = this.value; else if (typeof this.value === 'string') out.write(this.value, offset); else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset); offset += this.length; } return out; }; /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/base/index.js": /*!*****************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var base = exports; base.Reporter = __webpack_require__(/*! ./reporter */ "./node_modules/asn1.js/lib/asn1/base/reporter.js").Reporter; base.DecoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").DecoderBuffer; base.EncoderBuffer = __webpack_require__(/*! ./buffer */ "./node_modules/asn1.js/lib/asn1/base/buffer.js").EncoderBuffer; base.Node = __webpack_require__(/*! ./node */ "./node_modules/asn1.js/lib/asn1/base/node.js"); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/base/node.js": /*!****************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Reporter = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").Reporter; var EncoderBuffer = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").EncoderBuffer; var DecoderBuffer = __webpack_require__(/*! ../base */ "./node_modules/asn1.js/lib/asn1/base/index.js").DecoderBuffer; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); // Supported tags var tags = [ 'seq', 'seqof', 'set', 'setof', 'objid', 'bool', 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr' ]; // Public methods list var methods = [ 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains' ].concat(tags); // Overrided methods list var overrided = [ '_peekTag', '_decodeTag', '_use', '_decodeStr', '_decodeObjid', '_decodeTime', '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', '_encodeNull', '_encodeInt', '_encodeBool' ]; function Node(enc, parent) { var state = {}; this._baseState = state; state.enc = enc; state.parent = parent || null; state.children = null; // State state.tag = null; state.args = null; state.reverseArgs = null; state.choice = null; state.optional = false; state.any = false; state.obj = false; state.use = null; state.useDecoder = null; state.key = null; state['default'] = null; state.explicit = null; state.implicit = null; state.contains = null; // Should create new instance on each method if (!state.parent) { state.children = []; this._wrap(); } } module.exports = Node; var stateProps = [ 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', 'implicit', 'contains' ]; Node.prototype.clone = function clone() { var state = this._baseState; var cstate = {}; stateProps.forEach(function(prop) { cstate[prop] = state[prop]; }); var res = new this.constructor(cstate.parent); res._baseState = cstate; return res; }; Node.prototype._wrap = function wrap() { var state = this._baseState; methods.forEach(function(method) { this[method] = function _wrappedMethod() { var clone = new this.constructor(this); state.children.push(clone); return clone[method].apply(clone, arguments); }; }, this); }; Node.prototype._init = function init(body) { var state = this._baseState; assert(state.parent === null); body.call(this); // Filter children state.children = state.children.filter(function(child) { return child._baseState.parent === this; }, this); assert.equal(state.children.length, 1, 'Root node can have only one child'); }; Node.prototype._useArgs = function useArgs(args) { var state = this._baseState; // Filter children and args var children = args.filter(function(arg) { return arg instanceof this.constructor; }, this); args = args.filter(function(arg) { return !(arg instanceof this.constructor); }, this); if (children.length !== 0) { assert(state.children === null); state.children = children; // Replace parent to maintain backward link children.forEach(function(child) { child._baseState.parent = this; }, this); } if (args.length !== 0) { assert(state.args === null); state.args = args; state.reverseArgs = args.map(function(arg) { if (typeof arg !== 'object' || arg.constructor !== Object) return arg; var res = {}; Object.keys(arg).forEach(function(key) { if (key == (key | 0)) key |= 0; var value = arg[key]; res[value] = key; }); return res; }); } }; // // Overrided methods // overrided.forEach(function(method) { Node.prototype[method] = function _overrided() { var state = this._baseState; throw new Error(method + ' not implemented for encoding: ' + state.enc); }; }); // // Public methods // tags.forEach(function(tag) { Node.prototype[tag] = function _tagMethod() { var state = this._baseState; var args = Array.prototype.slice.call(arguments); assert(state.tag === null); state.tag = tag; this._useArgs(args); return this; }; }); Node.prototype.use = function use(item) { assert(item); var state = this._baseState; assert(state.use === null); state.use = item; return this; }; Node.prototype.optional = function optional() { var state = this._baseState; state.optional = true; return this; }; Node.prototype.def = function def(val) { var state = this._baseState; assert(state['default'] === null); state['default'] = val; state.optional = true; return this; }; Node.prototype.explicit = function explicit(num) { var state = this._baseState; assert(state.explicit === null && state.implicit === null); state.explicit = num; return this; }; Node.prototype.implicit = function implicit(num) { var state = this._baseState; assert(state.explicit === null && state.implicit === null); state.implicit = num; return this; }; Node.prototype.obj = function obj() { var state = this._baseState; var args = Array.prototype.slice.call(arguments); state.obj = true; if (args.length !== 0) this._useArgs(args); return this; }; Node.prototype.key = function key(newKey) { var state = this._baseState; assert(state.key === null); state.key = newKey; return this; }; Node.prototype.any = function any() { var state = this._baseState; state.any = true; return this; }; Node.prototype.choice = function choice(obj) { var state = this._baseState; assert(state.choice === null); state.choice = obj; this._useArgs(Object.keys(obj).map(function(key) { return obj[key]; })); return this; }; Node.prototype.contains = function contains(item) { var state = this._baseState; assert(state.use === null); state.contains = item; return this; }; // // Decoding // Node.prototype._decode = function decode(input, options) { var state = this._baseState; // Decode root node if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options)); var result = state['default']; var present = true; var prevKey = null; if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there if (state.optional) { var tag = null; if (state.explicit !== null) tag = state.explicit; else if (state.implicit !== null) tag = state.implicit; else if (state.tag !== null) tag = state.tag; if (tag === null && !state.any) { // Trial and Error var save = input.save(); try { if (state.choice === null) this._decodeGeneric(state.tag, input, options); else this._decodeChoice(input, options); present = true; } catch (e) { present = false; } input.restore(save); } else { present = this._peekTag(input, tag, state.any); if (input.isError(present)) return present; } } // Push object on stack var prevObj; if (state.obj && present) prevObj = input.enterObject(); if (present) { // Unwrap explicit values if (state.explicit !== null) { var explicit = this._decodeTag(input, state.explicit); if (input.isError(explicit)) return explicit; input = explicit; } var start = input.offset; // Unwrap implicit and normal values if (state.use === null && state.choice === null) { if (state.any) var save = input.save(); var body = this._decodeTag( input, state.implicit !== null ? state.implicit : state.tag, state.any ); if (input.isError(body)) return body; if (state.any) result = input.raw(save); else input = body; } if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, 'tagged'); if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, 'content'); // Select proper method for tag if (state.any) result = result; else if (state.choice === null) result = this._decodeGeneric(state.tag, input, options); else result = this._decodeChoice(input, options); if (input.isError(result)) return result; // Decode children if (!state.any && state.choice === null && state.children !== null) { state.children.forEach(function decodeChildren(child) { // NOTE: We are ignoring errors here, to let parser continue with other // parts of encoded data child._decode(input, options); }); } // Decode contained/encoded by schema, only in bit or octet strings if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) { var data = new DecoderBuffer(result); result = this._getUse(state.contains, input._reporterState.obj) ._decode(data, options); } } // Pop object if (state.obj && present) result = input.leaveObject(prevObj); // Set key if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result); else if (prevKey !== null) input.exitKey(prevKey); return result; }; Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { var state = this._baseState; if (tag === 'seq' || tag === 'set') return null; if (tag === 'seqof' || tag === 'setof') return this._decodeList(input, tag, state.args[0], options); else if (/str$/.test(tag)) return this._decodeStr(input, tag, options); else if (tag === 'objid' && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options); else if (tag === 'objid') return this._decodeObjid(input, null, null, options); else if (tag === 'gentime' || tag === 'utctime') return this._decodeTime(input, tag, options); else if (tag === 'null_') return this._decodeNull(input, options); else if (tag === 'bool') return this._decodeBool(input, options); else if (tag === 'objDesc') return this._decodeStr(input, tag, options); else if (tag === 'int' || tag === 'enum') return this._decodeInt(input, state.args && state.args[0], options); if (state.use !== null) { return this._getUse(state.use, input._reporterState.obj) ._decode(input, options); } else { return input.error('unknown tag: ' + tag); } }; Node.prototype._getUse = function _getUse(entity, obj) { var state = this._baseState; // Create altered use decoder if implicit is set state.useDecoder = this._use(entity, obj); assert(state.useDecoder._baseState.parent === null); state.useDecoder = state.useDecoder._baseState.children[0]; if (state.implicit !== state.useDecoder._baseState.implicit) { state.useDecoder = state.useDecoder.clone(); state.useDecoder._baseState.implicit = state.implicit; } return state.useDecoder; }; Node.prototype._decodeChoice = function decodeChoice(input, options) { var state = this._baseState; var result = null; var match = false; Object.keys(state.choice).some(function(key) { var save = input.save(); var node = state.choice[key]; try { var value = node._decode(input, options); if (input.isError(value)) return false; result = { type: key, value: value }; match = true; } catch (e) { input.restore(save); return false; } return true; }, this); if (!match) return input.error('Choice not matched'); return result; }; // // Encoding // Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { return new EncoderBuffer(data, this.reporter); }; Node.prototype._encode = function encode(data, reporter, parent) { var state = this._baseState; if (state['default'] !== null && state['default'] === data) return; var result = this._encodeValue(data, reporter, parent); if (result === undefined) return; if (this._skipDefault(result, reporter, parent)) return; return result; }; Node.prototype._encodeValue = function encode(data, reporter, parent) { var state = this._baseState; // Decode root node if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter()); var result = null; // Set reporter to share it with a child class this.reporter = reporter; // Check if data is there if (state.optional && data === undefined) { if (state['default'] !== null) data = state['default'] else return; } // Encode children first var content = null; var primitive = false; if (state.any) { // Anything that was given is translated to buffer result = this._createEncoderBuffer(data); } else if (state.choice) { result = this._encodeChoice(data, reporter); } else if (state.contains) { content = this._getUse(state.contains, parent)._encode(data, reporter); primitive = true; } else if (state.children) { content = state.children.map(function(child) { if (child._baseState.tag === 'null_') return child._encode(null, reporter, data); if (child._baseState.key === null) return reporter.error('Child should have a key'); var prevKey = reporter.enterKey(child._baseState.key); if (typeof data !== 'object') return reporter.error('Child expected, but input is not object'); var res = child._encode(data[child._baseState.key], reporter, data); reporter.leaveKey(prevKey); return res; }, this).filter(function(child) { return child; }); content = this._createEncoderBuffer(content); } else { if (state.tag === 'seqof' || state.tag === 'setof') { // TODO(indutny): this should be thrown on DSL level if (!(state.args && state.args.length === 1)) return reporter.error('Too many args for : ' + state.tag); if (!Array.isArray(data)) return reporter.error('seqof/setof, but data is not Array'); var child = this.clone(); child._baseState.implicit = null; content = this._createEncoderBuffer(data.map(function(item) { var state = this._baseState; return this._getUse(state.args[0], data)._encode(item, reporter); }, child)); } else if (state.use !== null) { result = this._getUse(state.use, parent)._encode(data, reporter); } else { content = this._encodePrimitive(state.tag, data); primitive = true; } } // Encode data itself var result; if (!state.any && state.choice === null) { var tag = state.implicit !== null ? state.implicit : state.tag; var cls = state.implicit === null ? 'universal' : 'context'; if (tag === null) { if (state.use === null) reporter.error('Tag could be omitted only for .use()'); } else { if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content); } } // Wrap in explicit if (state.explicit !== null) result = this._encodeComposite(state.explicit, false, 'context', result); return result; }; Node.prototype._encodeChoice = function encodeChoice(data, reporter) { var state = this._baseState; var node = state.choice[data.type]; if (!node) { assert( false, data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice))); } return node._encode(data.value, reporter); }; Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { var state = this._baseState; if (/str$/.test(tag)) return this._encodeStr(data, tag); else if (tag === 'objid' && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); else if (tag === 'objid') return this._encodeObjid(data, null, null); else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag); else if (tag === 'null_') return this._encodeNull(); else if (tag === 'int' || tag === 'enum') return this._encodeInt(data, state.args && state.reverseArgs[0]); else if (tag === 'bool') return this._encodeBool(data); else if (tag === 'objDesc') return this._encodeStr(data, tag); else throw new Error('Unsupported tag: ' + tag); }; Node.prototype._isNumstr = function isNumstr(str) { return /^[0-9 ]*$/.test(str); }; Node.prototype._isPrintstr = function isPrintstr(str) { return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str); }; /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/base/reporter.js": /*!********************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); function Reporter(options) { this._reporterState = { obj: null, path: [], options: options || {}, errors: [] }; } exports.Reporter = Reporter; Reporter.prototype.isError = function isError(obj) { return obj instanceof ReporterError; }; Reporter.prototype.save = function save() { var state = this._reporterState; return { obj: state.obj, pathLen: state.path.length }; }; Reporter.prototype.restore = function restore(data) { var state = this._reporterState; state.obj = data.obj; state.path = state.path.slice(0, data.pathLen); }; Reporter.prototype.enterKey = function enterKey(key) { return this._reporterState.path.push(key); }; Reporter.prototype.exitKey = function exitKey(index) { var state = this._reporterState; state.path = state.path.slice(0, index - 1); }; Reporter.prototype.leaveKey = function leaveKey(index, key, value) { var state = this._reporterState; this.exitKey(index); if (state.obj !== null) state.obj[key] = value; }; Reporter.prototype.path = function path() { return this._reporterState.path.join('/'); }; Reporter.prototype.enterObject = function enterObject() { var state = this._reporterState; var prev = state.obj; state.obj = {}; return prev; }; Reporter.prototype.leaveObject = function leaveObject(prev) { var state = this._reporterState; var now = state.obj; state.obj = prev; return now; }; Reporter.prototype.error = function error(msg) { var err; var state = this._reporterState; var inherited = msg instanceof ReporterError; if (inherited) { err = msg; } else { err = new ReporterError(state.path.map(function(elem) { return '[' + JSON.stringify(elem) + ']'; }).join(''), msg.message || msg, msg.stack); } if (!state.options.partial) throw err; if (!inherited) state.errors.push(err); return err; }; Reporter.prototype.wrapResult = function wrapResult(result) { var state = this._reporterState; if (!state.options.partial) return result; return { result: this.isError(result) ? null : result, errors: state.errors }; }; function ReporterError(path, msg) { this.path = path; this.rethrow(msg); }; inherits(ReporterError, Error); ReporterError.prototype.rethrow = function rethrow(msg) { this.message = msg + ' at: ' + (this.path || '(shallow)'); if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError); if (!this.stack) { try { // IE only adds stack when thrown throw new Error(this.message); } catch (e) { this.stack = e.stack; } } return this; }; /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/constants/der.js": /*!********************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var constants = __webpack_require__(/*! ../constants */ "./node_modules/asn1.js/lib/asn1/constants/index.js"); exports.tagClass = { 0: 'universal', 1: 'application', 2: 'context', 3: 'private' }; exports.tagClassByName = constants._reverse(exports.tagClass); exports.tag = { 0x00: 'end', 0x01: 'bool', 0x02: 'int', 0x03: 'bitstr', 0x04: 'octstr', 0x05: 'null_', 0x06: 'objid', 0x07: 'objDesc', 0x08: 'external', 0x09: 'real', 0x0a: 'enum', 0x0b: 'embed', 0x0c: 'utf8str', 0x0d: 'relativeOid', 0x10: 'seq', 0x11: 'set', 0x12: 'numstr', 0x13: 'printstr', 0x14: 't61str', 0x15: 'videostr', 0x16: 'ia5str', 0x17: 'utctime', 0x18: 'gentime', 0x19: 'graphstr', 0x1a: 'iso646str', 0x1b: 'genstr', 0x1c: 'unistr', 0x1d: 'charstr', 0x1e: 'bmpstr' }; exports.tagByName = constants._reverse(exports.tag); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/constants/index.js": /*!**********************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var constants = exports; // Helper constants._reverse = function reverse(map) { var res = {}; Object.keys(map).forEach(function(key) { // Convert key to integer if it is stringified if ((key | 0) == key) key = key | 0; var value = map[key]; res[value] = key; }); return res; }; constants.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/constants/der.js"); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/decoders/der.js": /*!*******************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var asn1 = __webpack_require__(/*! ../../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); var base = asn1.base; var bignum = asn1.bignum; // Import DER constants var der = asn1.constants.der; function DERDecoder(entity) { this.enc = 'der'; this.name = entity.name; this.entity = entity; // Construct base tree this.tree = new DERNode(); this.tree._init(entity.body); }; module.exports = DERDecoder; DERDecoder.prototype.decode = function decode(data, options) { if (!(data instanceof base.DecoderBuffer)) data = new base.DecoderBuffer(data, options); return this.tree._decode(data, options); }; // Tree methods function DERNode(parent) { base.Node.call(this, 'der', parent); } inherits(DERNode, base.Node); DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { if (buffer.isEmpty()) return false; var state = buffer.save(); var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"'); if (buffer.isError(decodedTag)) return decodedTag; buffer.restore(state); return decodedTag.tag === tag || decodedTag.tagStr === tag || (decodedTag.tagStr + 'of') === tag || any; }; DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag + '"'); if (buffer.isError(decodedTag)) return decodedTag; var len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of "' + tag + '"'); // Failure if (buffer.isError(len)) return len; if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + 'of' !== tag) { return buffer.error('Failed to match tag: "' + tag + '"'); } if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); // Indefinite length... find END tag var state = buffer.save(); var res = this._skipUntilEnd( buffer, 'Failed to skip indefinite length body: "' + this.tag + '"'); if (buffer.isError(res)) return res; len = buffer.offset - state.offset; buffer.restore(state); return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); }; DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { while (true) { var tag = derDecodeTag(buffer, fail); if (buffer.isError(tag)) return tag; var len = derDecodeLen(buffer, tag.primitive, fail); if (buffer.isError(len)) return len; var res; if (tag.primitive || len !== null) res = buffer.skip(len) else res = this._skipUntilEnd(buffer, fail); // Failure if (buffer.isError(res)) return res; if (tag.tagStr === 'end') break; } }; DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) { var result = []; while (!buffer.isEmpty()) { var possibleEnd = this._peekTag(buffer, 'end'); if (buffer.isError(possibleEnd)) return possibleEnd; var res = decoder.decode(buffer, 'der', options); if (buffer.isError(res) && possibleEnd) break; result.push(res); } return result; }; DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { if (tag === 'bitstr') { var unused = buffer.readUInt8(); if (buffer.isError(unused)) return unused; return { unused: unused, data: buffer.raw() }; } else if (tag === 'bmpstr') { var raw = buffer.raw(); if (raw.length % 2 === 1) return buffer.error('Decoding of string type: bmpstr length mismatch'); var str = ''; for (var i = 0; i < raw.length / 2; i++) { str += String.fromCharCode(raw.readUInt16BE(i * 2)); } return str; } else if (tag === 'numstr') { var numstr = buffer.raw().toString('ascii'); if (!this._isNumstr(numstr)) { return buffer.error('Decoding of string type: ' + 'numstr unsupported characters'); } return numstr; } else if (tag === 'octstr') { return buffer.raw(); } else if (tag === 'objDesc') { return buffer.raw(); } else if (tag === 'printstr') { var printstr = buffer.raw().toString('ascii'); if (!this._isPrintstr(printstr)) { return buffer.error('Decoding of string type: ' + 'printstr unsupported characters'); } return printstr; } else if (/str$/.test(tag)) { return buffer.raw().toString(); } else { return buffer.error('Decoding of string type: ' + tag + ' unsupported'); } }; DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) { var result; var identifiers = []; var ident = 0; while (!buffer.isEmpty()) { var subident = buffer.readUInt8(); ident <<= 7; ident |= subident & 0x7f; if ((subident & 0x80) === 0) { identifiers.push(ident); ident = 0; } } if (subident & 0x80) identifiers.push(ident); var first = (identifiers[0] / 40) | 0; var second = identifiers[0] % 40; if (relative) result = identifiers; else result = [first, second].concat(identifiers.slice(1)); if (values) { var tmp = values[result.join(' ')]; if (tmp === undefined) tmp = values[result.join('.')]; if (tmp !== undefined) result = tmp; } return result; }; DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { var str = buffer.raw().toString(); if (tag === 'gentime') { var year = str.slice(0, 4) | 0; var mon = str.slice(4, 6) | 0; var day = str.slice(6, 8) | 0; var hour = str.slice(8, 10) | 0; var min = str.slice(10, 12) | 0; var sec = str.slice(12, 14) | 0; } else if (tag === 'utctime') { var year = str.slice(0, 2) | 0; var mon = str.slice(2, 4) | 0; var day = str.slice(4, 6) | 0; var hour = str.slice(6, 8) | 0; var min = str.slice(8, 10) | 0; var sec = str.slice(10, 12) | 0; if (year < 70) year = 2000 + year; else year = 1900 + year; } else { return buffer.error('Decoding ' + tag + ' time is not supported yet'); } return Date.UTC(year, mon - 1, day, hour, min, sec, 0); }; DERNode.prototype._decodeNull = function decodeNull(buffer) { return null; }; DERNode.prototype._decodeBool = function decodeBool(buffer) { var res = buffer.readUInt8(); if (buffer.isError(res)) return res; else return res !== 0; }; DERNode.prototype._decodeInt = function decodeInt(buffer, values) { // Bigint, return as it is (assume big endian) var raw = buffer.raw(); var res = new bignum(raw); if (values) res = values[res.toString(10)] || res; return res; }; DERNode.prototype._use = function use(entity, obj) { if (typeof entity === 'function') entity = entity(obj); return entity._getDecoder('der').tree; }; // Utility methods function derDecodeTag(buf, fail) { var tag = buf.readUInt8(fail); if (buf.isError(tag)) return tag; var cls = der.tagClass[tag >> 6]; var primitive = (tag & 0x20) === 0; // Multi-octet tag - load if ((tag & 0x1f) === 0x1f) { var oct = tag; tag = 0; while ((oct & 0x80) === 0x80) { oct = buf.readUInt8(fail); if (buf.isError(oct)) return oct; tag <<= 7; tag |= oct & 0x7f; } } else { tag &= 0x1f; } var tagStr = der.tag[tag]; return { cls: cls, primitive: primitive, tag: tag, tagStr: tagStr }; } function derDecodeLen(buf, primitive, fail) { var len = buf.readUInt8(fail); if (buf.isError(len)) return len; // Indefinite form if (!primitive && len === 0x80) return null; // Definite form if ((len & 0x80) === 0) { // Short form return len; } // Long form var num = len & 0x7f; if (num > 4) return buf.error('length octect is too long'); len = 0; for (var i = 0; i < num; i++) { len <<= 8; var j = buf.readUInt8(fail); if (buf.isError(j)) return j; len |= j; } return len; } /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/decoders/index.js": /*!*********************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var decoders = exports; decoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/decoders/der.js"); decoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/decoders/pem.js"); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/decoders/pem.js": /*!*******************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer; var DERDecoder = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/decoders/der.js"); function PEMDecoder(entity) { DERDecoder.call(this, entity); this.enc = 'pem'; }; inherits(PEMDecoder, DERDecoder); module.exports = PEMDecoder; PEMDecoder.prototype.decode = function decode(data, options) { var lines = data.toString().split(/[\r\n]+/g); var label = options.label.toUpperCase(); var re = /^-----(BEGIN|END) ([^-]+)-----$/; var start = -1; var end = -1; for (var i = 0; i < lines.length; i++) { var match = lines[i].match(re); if (match === null) continue; if (match[2] !== label) continue; if (start === -1) { if (match[1] !== 'BEGIN') break; start = i; } else { if (match[1] !== 'END') break; end = i; break; } } if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label); var base64 = lines.slice(start + 1, end).join(''); // Remove excessive symbols base64.replace(/[^a-z0-9\+\/=]+/gi, ''); var input = new Buffer(base64, 'base64'); return DERDecoder.prototype.decode.call(this, input, options); }; /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/encoders/der.js": /*!*******************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer; var asn1 = __webpack_require__(/*! ../../asn1 */ "./node_modules/asn1.js/lib/asn1.js"); var base = asn1.base; // Import DER constants var der = asn1.constants.der; function DEREncoder(entity) { this.enc = 'der'; this.name = entity.name; this.entity = entity; // Construct base tree this.tree = new DERNode(); this.tree._init(entity.body); }; module.exports = DEREncoder; DEREncoder.prototype.encode = function encode(data, reporter) { return this.tree._encode(data, reporter).join(); }; // Tree methods function DERNode(parent) { base.Node.call(this, 'der', parent); } inherits(DERNode, base.Node); DERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) { var encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form if (content.length < 0x80) { var header = new Buffer(2); header[0] = encodedTag; header[1] = content.length; return this._createEncoderBuffer([ header, content ]); } // Long form // Count octets required to store length var lenOctets = 1; for (var i = content.length; i >= 0x100; i >>= 8) lenOctets++; var header = new Buffer(1 + 1 + lenOctets); header[0] = encodedTag; header[1] = 0x80 | lenOctets; for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 0xff; return this._createEncoderBuffer([ header, content ]); }; DERNode.prototype._encodeStr = function encodeStr(str, tag) { if (tag === 'bitstr') { return this._createEncoderBuffer([ str.unused | 0, str.data ]); } else if (tag === 'bmpstr') { var buf = new Buffer(str.length * 2); for (var i = 0; i < str.length; i++) { buf.writeUInt16BE(str.charCodeAt(i), i * 2); } return this._createEncoderBuffer(buf); } else if (tag === 'numstr') { if (!this._isNumstr(str)) { return this.reporter.error('Encoding of string type: numstr supports ' + 'only digits and space'); } return this._createEncoderBuffer(str); } else if (tag === 'printstr') { if (!this._isPrintstr(str)) { return this.reporter.error('Encoding of string type: printstr supports ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark'); } return this._createEncoderBuffer(str); } else if (/str$/.test(tag)) { return this._createEncoderBuffer(str); } else if (tag === 'objDesc') { return this._createEncoderBuffer(str); } else { return this.reporter.error('Encoding of string type: ' + tag + ' unsupported'); } }; DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { if (typeof id === 'string') { if (!values) return this.reporter.error('string objid given, but no values map found'); if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map'); id = values[id].split(/[\s\.]+/g); for (var i = 0; i < id.length; i++) id[i] |= 0; } else if (Array.isArray(id)) { id = id.slice(); for (var i = 0; i < id.length; i++) id[i] |= 0; } if (!Array.isArray(id)) { return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id)); } if (!relative) { if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB'); id.splice(0, 2, id[0] * 40 + id[1]); } // Count number of octets var size = 0; for (var i = 0; i < id.length; i++) { var ident = id[i]; for (size++; ident >= 0x80; ident >>= 7) size++; } var objid = new Buffer(size); var offset = objid.length - 1; for (var i = id.length - 1; i >= 0; i--) { var ident = id[i]; objid[offset--] = ident & 0x7f; while ((ident >>= 7) > 0) objid[offset--] = 0x80 | (ident & 0x7f); } return this._createEncoderBuffer(objid); }; function two(num) { if (num < 10) return '0' + num; else return num; } DERNode.prototype._encodeTime = function encodeTime(time, tag) { var str; var date = new Date(time); if (tag === 'gentime') { str = [ two(date.getFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z' ].join(''); } else if (tag === 'utctime') { str = [ two(date.getFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z' ].join(''); } else { this.reporter.error('Encoding ' + tag + ' time is not supported yet'); } return this._encodeStr(str, 'octstr'); }; DERNode.prototype._encodeNull = function encodeNull() { return this._createEncoderBuffer(''); }; DERNode.prototype._encodeInt = function encodeInt(num, values) { if (typeof num === 'string') { if (!values) return this.reporter.error('String int or enum given, but no values map'); if (!values.hasOwnProperty(num)) { return this.reporter.error('Values map doesn\'t contain: ' + JSON.stringify(num)); } num = values[num]; } // Bignum, assume big endian if (typeof num !== 'number' && !Buffer.isBuffer(num)) { var numArray = num.toArray(); if (!num.sign && numArray[0] & 0x80) { numArray.unshift(0); } num = new Buffer(numArray); } if (Buffer.isBuffer(num)) { var size = num.length; if (num.length === 0) size++; var out = new Buffer(size); num.copy(out); if (num.length === 0) out[0] = 0 return this._createEncoderBuffer(out); } if (num < 0x80) return this._createEncoderBuffer(num); if (num < 0x100) return this._createEncoderBuffer([0, num]); var size = 1; for (var i = num; i >= 0x100; i >>= 8) size++; var out = new Array(size); for (var i = out.length - 1; i >= 0; i--) { out[i] = num & 0xff; num >>= 8; } if(out[0] & 0x80) { out.unshift(0); } return this._createEncoderBuffer(new Buffer(out)); }; DERNode.prototype._encodeBool = function encodeBool(value) { return this._createEncoderBuffer(value ? 0xff : 0); }; DERNode.prototype._use = function use(entity, obj) { if (typeof entity === 'function') entity = entity(obj); return entity._getEncoder('der').tree; }; DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { var state = this._baseState; var i; if (state['default'] === null) return false; var data = dataBuffer.join(); if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join(); if (data.length !== state.defaultBuffer.length) return false; for (i=0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false; return true; }; // Utility methods function encodeTag(tag, primitive, cls, reporter) { var res; if (tag === 'seqof') tag = 'seq'; else if (tag === 'setof') tag = 'set'; if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag]; else if (typeof tag === 'number' && (tag | 0) === tag) res = tag; else return reporter.error('Unknown tag: ' + tag); if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported'); if (!primitive) res |= 0x20; res |= (der.tagClassByName[cls || 'universal'] << 6); return res; } /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/encoders/index.js": /*!*********************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var encoders = exports; encoders.der = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/encoders/der.js"); encoders.pem = __webpack_require__(/*! ./pem */ "./node_modules/asn1.js/lib/asn1/encoders/pem.js"); /***/ }), /***/ "./node_modules/asn1.js/lib/asn1/encoders/pem.js": /*!*******************************************************!*\ !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var DEREncoder = __webpack_require__(/*! ./der */ "./node_modules/asn1.js/lib/asn1/encoders/der.js"); function PEMEncoder(entity) { DEREncoder.call(this, entity); this.enc = 'pem'; }; inherits(PEMEncoder, DEREncoder); module.exports = PEMEncoder; PEMEncoder.prototype.encode = function encode(data, options) { var buf = DEREncoder.prototype.encode.call(this, data); var p = buf.toString('base64'); var out = [ '-----BEGIN ' + options.label + '-----' ]; for (var i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64)); out.push('-----END ' + options.label + '-----'); return out.join('\n'); }; /***/ }), /***/ "./node_modules/attr-accept/dist/index.js": /*!************************************************!*\ !*** ./node_modules/attr-accept/dist/index.js ***! \************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports) { module.exports=function(t){function n(e){if(r[e])return r[e].exports;var o=r[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r={};return n.m=t,n.c=r,n.d=function(t,r,e){n.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:e})},n.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(r,"a",r),r},n.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},n.p="",n(n.s=13)}([function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n){var r=t.exports={version:"2.5.0"};"number"==typeof __e&&(__e=r)},function(t,n,r){t.exports=!r(4)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n,r){var e=r(32)("wks"),o=r(9),i=r(0).Symbol,u="function"==typeof i;(t.exports=function(t){return e[t]||(e[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=e},function(t,n,r){var e=r(0),o=r(2),i=r(8),u=r(22),c=r(10),f=function(t,n,r){var a,s,p,l,v=t&f.F,y=t&f.G,h=t&f.S,d=t&f.P,x=t&f.B,g=y?e:h?e[n]||(e[n]={}):(e[n]||{}).prototype,m=y?o:o[n]||(o[n]={}),b=m.prototype||(m.prototype={});y&&(r=n);for(a in r)s=!v&&g&&void 0!==g[a],p=(s?g:r)[a],l=x&&s?c(p,e):d&&"function"==typeof p?c(Function.call,p):p,g&&u(g,a,p,t&f.U),m[a]!=p&&i(m,a,l),d&&b[a]!=p&&(b[a]=p)};e.core=o,f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},function(t,n,r){var e=r(16),o=r(21);t.exports=r(3)?function(t,n,r){return e.f(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},function(t,n,r){var e=r(24);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,n,r){var e=r(28),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){"use strict";n.__esModule=!0,n.default=function(t,n){if(t&&n){var r=Array.isArray(n)?n:n.split(","),e=t.name||"",o=t.type||"",i=o.replace(/\/.*$/,"");return r.some(function(t){var n=t.trim();return"."===n.charAt(0)?e.toLowerCase().endsWith(n.toLowerCase()):n.endsWith("/*")?i===n.replace(/\/.*$/,""):o===n})}return!0},r(14),r(34)},function(t,n,r){r(15),t.exports=r(2).Array.some},function(t,n,r){"use strict";var e=r(7),o=r(25)(3);e(e.P+e.F*!r(33)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,n,r){var e=r(17),o=r(18),i=r(20),u=Object.defineProperty;n.f=r(3)?Object.defineProperty:function(t,n,r){if(e(t),n=i(n,!0),e(r),o)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(1);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,n,r){t.exports=!r(3)&&!r(4)(function(){return 7!=Object.defineProperty(r(19)("div"),"a",{get:function(){return 7}}).a})},function(t,n,r){var e=r(1),o=r(0).document,i=e(o)&&e(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,n,r){var e=r(1);t.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,r){var e=r(0),o=r(8),i=r(23),u=r(9)("src"),c=Function.toString,f=(""+c).split("toString");r(2).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var a="function"==typeof r;a&&(i(r,"name")||o(r,"name",n)),t[n]!==r&&(a&&(i(r,u)||o(r,u,t[n]?""+t[n]:f.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:o(t,n,r):(delete t[n],o(t,n,r)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[u]||c.call(this)})},function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n,r){var e=r(10),o=r(26),i=r(27),u=r(12),c=r(29);t.exports=function(t,n){var r=1==t,f=2==t,a=3==t,s=4==t,p=6==t,l=5==t||p,v=n||c;return function(n,c,y){for(var h,d,x=i(n),g=o(x),m=e(c,y,3),b=u(g.length),_=0,w=r?v(n,b):f?v(n,0):void 0;b>_;_++)if((l||_ in g)&&(h=g[_],d=m(h,_,x),t))if(r)w[_]=d;else if(d)switch(t){case 3:return!0;case 5:return h;case 6:return _;case 2:w.push(h)}else if(s)return!1;return p?-1:a||s?s:w}}},function(t,n,r){var e=r(5);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},function(t,n,r){var e=r(11);t.exports=function(t){return Object(e(t))}},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n,r){var e=r(30);t.exports=function(t,n){return new(e(t))(n)}},function(t,n,r){var e=r(1),o=r(31),i=r(6)("species");t.exports=function(t){var n;return o(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!o(n.prototype)||(n=void 0),e(n)&&null===(n=n[i])&&(n=void 0)),void 0===n?Array:n}},function(t,n,r){var e=r(5);t.exports=Array.isArray||function(t){return"Array"==e(t)}},function(t,n,r){var e=r(0),o=e["__core-js_shared__"]||(e["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,n,r){"use strict";var e=r(4);t.exports=function(t,n){return!!t&&e(function(){n?t.call(null,function(){},1):t.call(null)})}},function(t,n,r){r(35),t.exports=r(2).String.endsWith},function(t,n,r){"use strict";var e=r(7),o=r(12),i=r(36),u="".endsWith;e(e.P+e.F*r(38)("endsWith"),"String",{endsWith:function(t){var n=i(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=o(n.length),c=void 0===r?e:Math.min(o(r),e),f=String(t);return u?u.call(n,f,c):n.slice(c-f.length,c)===f}})},function(t,n,r){var e=r(37),o=r(11);t.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(o(t))}},function(t,n,r){var e=r(1),o=r(5),i=r(6)("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[i])?!!n:"RegExp"==o(t))}},function(t,n,r){var e=r(6)("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}}]); /***/ }), /***/ "./node_modules/aws-amplify/lib/index.js": /*!***********************************************!*\ !*** ./node_modules/aws-amplify/lib/index.js ***! \***********************************************/ /*! dynamic exports provided */ /*! exports used: Auth, default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); var analytics_1 = __webpack_require__(/*! @aws-amplify/analytics */ "./node_modules/@aws-amplify/analytics/lib-esm/index.js"); exports.Analytics = analytics_1.default; exports.AnalyticsClass = analytics_1.AnalyticsClass; exports.AWSPinpointProvider = analytics_1.AWSPinpointProvider; exports.AWSKinesisProvider = analytics_1.AWSKinesisProvider; var auth_1 = __webpack_require__(/*! @aws-amplify/auth */ "./node_modules/@aws-amplify/auth/lib-esm/index.js"); exports.Auth = auth_1.default; exports.AuthClass = auth_1.AuthClass; var storage_1 = __webpack_require__(/*! @aws-amplify/storage */ "./node_modules/@aws-amplify/storage/lib-esm/index.js"); exports.Storage = storage_1.default; exports.StorageClass = storage_1.StorageClass; var api_1 = __webpack_require__(/*! @aws-amplify/api */ "./node_modules/@aws-amplify/api/lib-esm/index.js"); exports.API = api_1.default; exports.APIClass = api_1.APIClass; exports.graphqlOperation = api_1.graphqlOperation; var pubsub_1 = __webpack_require__(/*! @aws-amplify/pubsub */ "./node_modules/@aws-amplify/pubsub/lib-esm/index.js"); exports.PubSub = pubsub_1.default; exports.PubSubClass = pubsub_1.PubSubClass; var cache_1 = __webpack_require__(/*! @aws-amplify/cache */ "./node_modules/@aws-amplify/cache/lib-esm/index.js"); exports.Cache = cache_1.default; var interactions_1 = __webpack_require__(/*! @aws-amplify/interactions */ "./node_modules/@aws-amplify/interactions/lib-esm/index.js"); exports.Interactions = interactions_1.default; exports.InteractionsClass = interactions_1.InteractionsClass; var ui_1 = __webpack_require__(/*! @aws-amplify/ui */ "./node_modules/@aws-amplify/ui/dist/aws-amplify-ui.js"); exports.UI = ui_1.default; var xr_1 = __webpack_require__(/*! @aws-amplify/xr */ "./node_modules/@aws-amplify/xr/lib/index.js"); exports.XR = xr_1.default; exports.XRClass = xr_1.XRClass; var core_1 = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); exports.Logger = core_1.ConsoleLogger; exports.Hub = core_1.Hub; exports.JS = core_1.JS; exports.ClientDevice = core_1.ClientDevice; exports.Signer = core_1.Signer; exports.I18n = core_1.I18n; exports.ServiceWorker = core_1.ServiceWorker; exports.default = core_1.default; core_1.default.Auth = auth_1.default; core_1.default.Analytics = analytics_1.default; core_1.default.API = api_1.default; core_1.default.Storage = storage_1.default; core_1.default.I18n = core_1.I18n; core_1.default.Cache = cache_1.default; core_1.default.PubSub = pubsub_1.default; core_1.default.Logger = core_1.ConsoleLogger; core_1.default.ServiceWorker = core_1.ServiceWorker; core_1.default.Interactions = interactions_1.default; core_1.default.UI = ui_1.default; core_1.default.XR = xr_1.default; //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json": /*!************************************************************************!*\ !*** ./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json ***! \************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-06-30","endpointPrefix":"cognito-identity","jsonVersion":"1.1","protocol":"json","serviceFullName":"Amazon Cognito Identity","serviceId":"Cognito Identity","signatureVersion":"v4","targetPrefix":"AWSCognitoIdentityService","uid":"cognito-identity-2014-06-30"},"operations":{"CreateIdentityPool":{"input":{"type":"structure","required":["IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"},"CognitoIdentityProviders":{"shape":"Sa"},"SamlProviderARNs":{"shape":"Sf"},"IdentityPoolTags":{"shape":"Sg"}}},"output":{"shape":"Sj"}},"DeleteIdentities":{"input":{"type":"structure","required":["IdentityIdsToDelete"],"members":{"IdentityIdsToDelete":{"type":"list","member":{}}}},"output":{"type":"structure","members":{"UnprocessedIdentityIds":{"type":"list","member":{"type":"structure","members":{"IdentityId":{},"ErrorCode":{}}}}}}},"DeleteIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}}},"DescribeIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{}}},"output":{"shape":"Su"}},"DescribeIdentityPool":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"shape":"Sj"}},"GetCredentialsForIdentity":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Sz"},"CustomRoleArn":{}}},"output":{"type":"structure","members":{"IdentityId":{},"Credentials":{"type":"structure","members":{"AccessKeyId":{},"SecretKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}}}}},"GetId":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"AccountId":{},"IdentityPoolId":{},"Logins":{"shape":"Sz"}}},"output":{"type":"structure","members":{"IdentityId":{}}}},"GetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Roles":{"shape":"S1b"},"RoleMappings":{"shape":"S1d"}}}},"GetOpenIdToken":{"input":{"type":"structure","required":["IdentityId"],"members":{"IdentityId":{},"Logins":{"shape":"Sz"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}}},"GetOpenIdTokenForDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId","Logins"],"members":{"IdentityPoolId":{},"IdentityId":{},"Logins":{"shape":"Sz"},"TokenDuration":{"type":"long"}}},"output":{"type":"structure","members":{"IdentityId":{},"Token":{}}}},"ListIdentities":{"input":{"type":"structure","required":["IdentityPoolId","MaxResults"],"members":{"IdentityPoolId":{},"MaxResults":{"type":"integer"},"NextToken":{},"HideDisabled":{"type":"boolean"}}},"output":{"type":"structure","members":{"IdentityPoolId":{},"Identities":{"type":"list","member":{"shape":"Su"}},"NextToken":{}}}},"ListIdentityPools":{"input":{"type":"structure","required":["MaxResults"],"members":{"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityPools":{"type":"list","member":{"type":"structure","members":{"IdentityPoolId":{},"IdentityPoolName":{}}}},"NextToken":{}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{}}},"output":{"type":"structure","members":{"Tags":{"shape":"Sg"}}}},"LookupDeveloperIdentity":{"input":{"type":"structure","required":["IdentityPoolId"],"members":{"IdentityPoolId":{},"IdentityId":{},"DeveloperUserIdentifier":{},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"IdentityId":{},"DeveloperUserIdentifierList":{"type":"list","member":{}},"NextToken":{}}}},"MergeDeveloperIdentities":{"input":{"type":"structure","required":["SourceUserIdentifier","DestinationUserIdentifier","DeveloperProviderName","IdentityPoolId"],"members":{"SourceUserIdentifier":{},"DestinationUserIdentifier":{},"DeveloperProviderName":{},"IdentityPoolId":{}}},"output":{"type":"structure","members":{"IdentityId":{}}}},"SetIdentityPoolRoles":{"input":{"type":"structure","required":["IdentityPoolId","Roles"],"members":{"IdentityPoolId":{},"Roles":{"shape":"S1b"},"RoleMappings":{"shape":"S1d"}}}},"TagResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{},"Tags":{"shape":"Sg"}}},"output":{"type":"structure","members":{}}},"UnlinkDeveloperIdentity":{"input":{"type":"structure","required":["IdentityId","IdentityPoolId","DeveloperProviderName","DeveloperUserIdentifier"],"members":{"IdentityId":{},"IdentityPoolId":{},"DeveloperProviderName":{},"DeveloperUserIdentifier":{}}}},"UnlinkIdentity":{"input":{"type":"structure","required":["IdentityId","Logins","LoginsToRemove"],"members":{"IdentityId":{},"Logins":{"shape":"Sz"},"LoginsToRemove":{"shape":"Sv"}}}},"UntagResource":{"input":{"type":"structure","required":["ResourceArn"],"members":{"ResourceArn":{},"TagKeys":{"type":"list","member":{}}}},"output":{"type":"structure","members":{}}},"UpdateIdentityPool":{"input":{"shape":"Sj"},"output":{"shape":"Sj"}}},"shapes":{"S4":{"type":"map","key":{},"value":{}},"S8":{"type":"list","member":{}},"Sa":{"type":"list","member":{"type":"structure","members":{"ProviderName":{},"ClientId":{},"ServerSideTokenCheck":{"type":"boolean"}}}},"Sf":{"type":"list","member":{}},"Sg":{"type":"map","key":{},"value":{}},"Sj":{"type":"structure","required":["IdentityPoolId","IdentityPoolName","AllowUnauthenticatedIdentities"],"members":{"IdentityPoolId":{},"IdentityPoolName":{},"AllowUnauthenticatedIdentities":{"type":"boolean"},"SupportedLoginProviders":{"shape":"S4"},"DeveloperProviderName":{},"OpenIdConnectProviderARNs":{"shape":"S8"},"CognitoIdentityProviders":{"shape":"Sa"},"SamlProviderARNs":{"shape":"Sf"},"IdentityPoolTags":{"shape":"Sg"}}},"Su":{"type":"structure","members":{"IdentityId":{},"Logins":{"shape":"Sv"},"CreationDate":{"type":"timestamp"},"LastModifiedDate":{"type":"timestamp"}}},"Sv":{"type":"list","member":{}},"Sz":{"type":"map","key":{},"value":{}},"S1b":{"type":"map","key":{},"value":{}},"S1d":{"type":"map","key":{},"value":{"type":"structure","required":["Type"],"members":{"Type":{},"AmbiguousRoleResolution":{},"RulesConfiguration":{"type":"structure","required":["Rules"],"members":{"Rules":{"type":"list","member":{"type":"structure","required":["Claim","MatchType","Value","RoleARN"],"members":{"Claim":{},"MatchType":{},"Value":{},"RoleARN":{}}}}}}}}}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.paginators.json": /*!*******************************************************************************!*\ !*** ./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.paginators.json ***! \*******************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{}} /***/ }), /***/ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json": /*!***************************************************************!*\ !*** ./node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2013-12-02","endpointPrefix":"kinesis","jsonVersion":"1.1","protocol":"json","protocolSettings":{"h2":"eventstream"},"serviceAbbreviation":"Kinesis","serviceFullName":"Amazon Kinesis","serviceId":"Kinesis","signatureVersion":"v4","targetPrefix":"Kinesis_20131202","uid":"kinesis-2013-12-02"},"operations":{"AddTagsToStream":{"input":{"type":"structure","required":["StreamName","Tags"],"members":{"StreamName":{},"Tags":{"type":"map","key":{},"value":{}}}}},"CreateStream":{"input":{"type":"structure","required":["StreamName","ShardCount"],"members":{"StreamName":{},"ShardCount":{"type":"integer"}}}},"DecreaseStreamRetentionPeriod":{"input":{"type":"structure","required":["StreamName","RetentionPeriodHours"],"members":{"StreamName":{},"RetentionPeriodHours":{"type":"integer"}}}},"DeleteStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{},"EnforceConsumerDeletion":{"type":"boolean"}}}},"DeregisterStreamConsumer":{"input":{"type":"structure","members":{"StreamARN":{},"ConsumerName":{},"ConsumerARN":{}}}},"DescribeLimits":{"input":{"type":"structure","members":{}},"output":{"type":"structure","required":["ShardLimit","OpenShardCount"],"members":{"ShardLimit":{"type":"integer"},"OpenShardCount":{"type":"integer"}}}},"DescribeStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{},"Limit":{"type":"integer"},"ExclusiveStartShardId":{}}},"output":{"type":"structure","required":["StreamDescription"],"members":{"StreamDescription":{"type":"structure","required":["StreamName","StreamARN","StreamStatus","Shards","HasMoreShards","RetentionPeriodHours","StreamCreationTimestamp","EnhancedMonitoring"],"members":{"StreamName":{},"StreamARN":{},"StreamStatus":{},"Shards":{"shape":"Sp"},"HasMoreShards":{"type":"boolean"},"RetentionPeriodHours":{"type":"integer"},"StreamCreationTimestamp":{"type":"timestamp"},"EnhancedMonitoring":{"shape":"Sw"},"EncryptionType":{},"KeyId":{}}}}}},"DescribeStreamConsumer":{"input":{"type":"structure","members":{"StreamARN":{},"ConsumerName":{},"ConsumerARN":{}}},"output":{"type":"structure","required":["ConsumerDescription"],"members":{"ConsumerDescription":{"type":"structure","required":["ConsumerName","ConsumerARN","ConsumerStatus","ConsumerCreationTimestamp","StreamARN"],"members":{"ConsumerName":{},"ConsumerARN":{},"ConsumerStatus":{},"ConsumerCreationTimestamp":{"type":"timestamp"},"StreamARN":{}}}}}},"DescribeStreamSummary":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{}}},"output":{"type":"structure","required":["StreamDescriptionSummary"],"members":{"StreamDescriptionSummary":{"type":"structure","required":["StreamName","StreamARN","StreamStatus","RetentionPeriodHours","StreamCreationTimestamp","EnhancedMonitoring","OpenShardCount"],"members":{"StreamName":{},"StreamARN":{},"StreamStatus":{},"RetentionPeriodHours":{"type":"integer"},"StreamCreationTimestamp":{"type":"timestamp"},"EnhancedMonitoring":{"shape":"Sw"},"EncryptionType":{},"KeyId":{},"OpenShardCount":{"type":"integer"},"ConsumerCount":{"type":"integer"}}}}}},"DisableEnhancedMonitoring":{"input":{"type":"structure","required":["StreamName","ShardLevelMetrics"],"members":{"StreamName":{},"ShardLevelMetrics":{"shape":"Sy"}}},"output":{"shape":"S1b"}},"EnableEnhancedMonitoring":{"input":{"type":"structure","required":["StreamName","ShardLevelMetrics"],"members":{"StreamName":{},"ShardLevelMetrics":{"shape":"Sy"}}},"output":{"shape":"S1b"}},"GetRecords":{"input":{"type":"structure","required":["ShardIterator"],"members":{"ShardIterator":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","required":["Records"],"members":{"Records":{"type":"list","member":{"type":"structure","required":["SequenceNumber","Data","PartitionKey"],"members":{"SequenceNumber":{},"ApproximateArrivalTimestamp":{"type":"timestamp"},"Data":{"type":"blob"},"PartitionKey":{},"EncryptionType":{}}}},"NextShardIterator":{},"MillisBehindLatest":{"type":"long"}}}},"GetShardIterator":{"input":{"type":"structure","required":["StreamName","ShardId","ShardIteratorType"],"members":{"StreamName":{},"ShardId":{},"ShardIteratorType":{},"StartingSequenceNumber":{},"Timestamp":{"type":"timestamp"}}},"output":{"type":"structure","members":{"ShardIterator":{}}}},"IncreaseStreamRetentionPeriod":{"input":{"type":"structure","required":["StreamName","RetentionPeriodHours"],"members":{"StreamName":{},"RetentionPeriodHours":{"type":"integer"}}}},"ListShards":{"input":{"type":"structure","members":{"StreamName":{},"NextToken":{},"ExclusiveStartShardId":{},"MaxResults":{"type":"integer"},"StreamCreationTimestamp":{"type":"timestamp"}}},"output":{"type":"structure","members":{"Shards":{"shape":"Sp"},"NextToken":{}}}},"ListStreamConsumers":{"input":{"type":"structure","required":["StreamARN"],"members":{"StreamARN":{},"NextToken":{},"MaxResults":{"type":"integer"},"StreamCreationTimestamp":{"type":"timestamp"}}},"output":{"type":"structure","members":{"Consumers":{"type":"list","member":{"shape":"S1y"}},"NextToken":{}}}},"ListStreams":{"input":{"type":"structure","members":{"Limit":{"type":"integer"},"ExclusiveStartStreamName":{}}},"output":{"type":"structure","required":["StreamNames","HasMoreStreams"],"members":{"StreamNames":{"type":"list","member":{}},"HasMoreStreams":{"type":"boolean"}}}},"ListTagsForStream":{"input":{"type":"structure","required":["StreamName"],"members":{"StreamName":{},"ExclusiveStartTagKey":{},"Limit":{"type":"integer"}}},"output":{"type":"structure","required":["Tags","HasMoreTags"],"members":{"Tags":{"type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"Value":{}}}},"HasMoreTags":{"type":"boolean"}}}},"MergeShards":{"input":{"type":"structure","required":["StreamName","ShardToMerge","AdjacentShardToMerge"],"members":{"StreamName":{},"ShardToMerge":{},"AdjacentShardToMerge":{}}}},"PutRecord":{"input":{"type":"structure","required":["StreamName","Data","PartitionKey"],"members":{"StreamName":{},"Data":{"type":"blob"},"PartitionKey":{},"ExplicitHashKey":{},"SequenceNumberForOrdering":{}}},"output":{"type":"structure","required":["ShardId","SequenceNumber"],"members":{"ShardId":{},"SequenceNumber":{},"EncryptionType":{}}}},"PutRecords":{"input":{"type":"structure","required":["Records","StreamName"],"members":{"Records":{"type":"list","member":{"type":"structure","required":["Data","PartitionKey"],"members":{"Data":{"type":"blob"},"ExplicitHashKey":{},"PartitionKey":{}}}},"StreamName":{}}},"output":{"type":"structure","required":["Records"],"members":{"FailedRecordCount":{"type":"integer"},"Records":{"type":"list","member":{"type":"structure","members":{"SequenceNumber":{},"ShardId":{},"ErrorCode":{},"ErrorMessage":{}}}},"EncryptionType":{}}}},"RegisterStreamConsumer":{"input":{"type":"structure","required":["StreamARN","ConsumerName"],"members":{"StreamARN":{},"ConsumerName":{}}},"output":{"type":"structure","required":["Consumer"],"members":{"Consumer":{"shape":"S1y"}}}},"RemoveTagsFromStream":{"input":{"type":"structure","required":["StreamName","TagKeys"],"members":{"StreamName":{},"TagKeys":{"type":"list","member":{}}}}},"SplitShard":{"input":{"type":"structure","required":["StreamName","ShardToSplit","NewStartingHashKey"],"members":{"StreamName":{},"ShardToSplit":{},"NewStartingHashKey":{}}}},"StartStreamEncryption":{"input":{"type":"structure","required":["StreamName","EncryptionType","KeyId"],"members":{"StreamName":{},"EncryptionType":{},"KeyId":{}}}},"StopStreamEncryption":{"input":{"type":"structure","required":["StreamName","EncryptionType","KeyId"],"members":{"StreamName":{},"EncryptionType":{},"KeyId":{}}}},"UpdateShardCount":{"input":{"type":"structure","required":["StreamName","TargetShardCount","ScalingType"],"members":{"StreamName":{},"TargetShardCount":{"type":"integer"},"ScalingType":{}}},"output":{"type":"structure","members":{"StreamName":{},"CurrentShardCount":{"type":"integer"},"TargetShardCount":{"type":"integer"}}}}},"shapes":{"Sp":{"type":"list","member":{"type":"structure","required":["ShardId","HashKeyRange","SequenceNumberRange"],"members":{"ShardId":{},"ParentShardId":{},"AdjacentParentShardId":{},"HashKeyRange":{"type":"structure","required":["StartingHashKey","EndingHashKey"],"members":{"StartingHashKey":{},"EndingHashKey":{}}},"SequenceNumberRange":{"type":"structure","required":["StartingSequenceNumber"],"members":{"StartingSequenceNumber":{},"EndingSequenceNumber":{}}}}}},"Sw":{"type":"list","member":{"type":"structure","members":{"ShardLevelMetrics":{"shape":"Sy"}}}},"Sy":{"type":"list","member":{}},"S1b":{"type":"structure","members":{"StreamName":{},"CurrentShardLevelMetrics":{"shape":"Sy"},"DesiredShardLevelMetrics":{"shape":"Sy"}}},"S1y":{"type":"structure","required":["ConsumerName","ConsumerARN","ConsumerStatus","ConsumerCreationTimestamp"],"members":{"ConsumerName":{},"ConsumerARN":{},"ConsumerStatus":{},"ConsumerCreationTimestamp":{"type":"timestamp"}}}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json": /*!**********************************************************************!*\ !*** ./node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json ***! \**********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{"DescribeStream":{"input_token":"ExclusiveStartShardId","limit_key":"Limit","more_results":"StreamDescription.HasMoreShards","output_token":"StreamDescription.Shards[-1].ShardId","result_key":"StreamDescription.Shards"},"ListStreamConsumers":{"input_token":"NextToken","limit_key":"MaxResults","output_token":"NextToken"},"ListStreams":{"input_token":"ExclusiveStartStreamName","limit_key":"Limit","more_results":"HasMoreStreams","output_token":"StreamNames[-1]","result_key":"StreamNames"}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json": /*!********************************************************************!*\ !*** ./node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json ***! \********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":2,"waiters":{"StreamExists":{"delay":10,"operation":"DescribeStream","maxAttempts":18,"acceptors":[{"expected":"ACTIVE","matcher":"path","state":"success","argument":"StreamDescription.StreamStatus"}]},"StreamNotExists":{"delay":10,"operation":"DescribeStream","maxAttempts":18,"acceptors":[{"expected":"ResourceNotFoundException","matcher":"error","state":"success"}]}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/metadata.json": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/apis/metadata.json ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory","versions":["2016-05-10*"]},"cloudformation":{"name":"CloudFormation","cors":true},"cloudfront":{"name":"CloudFront","versions":["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","2016-08-01*","2016-08-20*","2016-09-07*","2016-09-29*","2016-11-25*","2017-03-25*","2017-10-30*","2018-06-18*","2018-11-05*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild","cors":true},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"ec2":{"name":"EC2","versions":["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*","2016-04-01*","2016-09-15*"],"cors":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM","cors":true},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"s3control":{"name":"S3Control","dualstackAvailable":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay"},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"marketplaceentitlementservice":{"prefix":"entitlement.marketplace","name":"MarketplaceEntitlementService"},"athena":{"name":"Athena"},"greengrass":{"name":"Greengrass"},"dax":{"name":"DAX"},"migrationhub":{"prefix":"AWSMigrationHub","name":"MigrationHub"},"cloudhsmv2":{"name":"CloudHSMV2"},"glue":{"name":"Glue"},"mobile":{"name":"Mobile"},"pricing":{"name":"Pricing","cors":true},"costexplorer":{"prefix":"ce","name":"CostExplorer","cors":true},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData","cors":true},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend","cors":true},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia","cors":true},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia","cors":true},"kinesisvideo":{"name":"KinesisVideo","cors":true},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate","cors":true},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups","cors":true},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"},"autoscalingplans":{"prefix":"autoscaling-plans","name":"AutoScalingPlans"},"transcribeservice":{"prefix":"transcribe","name":"TranscribeService"},"connect":{"name":"Connect"},"acmpca":{"prefix":"acm-pca","name":"ACMPCA"},"fms":{"name":"FMS"},"secretsmanager":{"name":"SecretsManager","cors":true},"iotanalytics":{"name":"IoTAnalytics"},"iot1clickdevicesservice":{"prefix":"iot1click-devices","name":"IoT1ClickDevicesService"},"iot1clickprojects":{"prefix":"iot1click-projects","name":"IoT1ClickProjects"},"pi":{"name":"PI"},"neptune":{"name":"Neptune"},"mediatailor":{"name":"MediaTailor"},"eks":{"name":"EKS"},"macie":{"name":"Macie"},"dlm":{"name":"DLM"},"signer":{"name":"Signer"},"chime":{"name":"Chime"},"pinpointemail":{"prefix":"pinpoint-email","name":"PinpointEmail"},"ram":{"name":"RAM"},"route53resolver":{"name":"Route53Resolver"},"pinpointsmsvoice":{"prefix":"sms-voice","name":"PinpointSMSVoice"},"quicksight":{"name":"QuickSight"},"rdsdataservice":{"prefix":"rds-data","name":"RDSDataService"},"amplify":{"name":"Amplify"},"datasync":{"name":"DataSync"},"robomaker":{"name":"RoboMaker"},"transfer":{"name":"Transfer"},"globalaccelerator":{"name":"GlobalAccelerator"},"comprehendmedical":{"name":"ComprehendMedical","cors":true},"kinesisanalyticsv2":{"name":"KinesisAnalyticsV2"},"mediaconnect":{"name":"MediaConnect"},"fsx":{"name":"FSx"},"securityhub":{"name":"SecurityHub"},"appmesh":{"name":"AppMesh","versions":["2018-10-01*"]},"licensemanager":{"prefix":"license-manager","name":"LicenseManager"},"kafka":{"name":"Kafka"},"apigatewaymanagementapi":{"name":"ApiGatewayManagementApi"},"apigatewayv2":{"name":"ApiGatewayV2"},"docdb":{"name":"DocDB"},"backup":{"name":"Backup"},"worklink":{"name":"WorkLink"},"textract":{"name":"Textract"},"managedblockchain":{"name":"ManagedBlockchain"},"mediapackagevod":{"prefix":"mediapackage-vod","name":"MediaPackageVod"},"groundstation":{"name":"GroundStation"},"iotthingsgraph":{"name":"IoTThingsGraph"},"iotevents":{"name":"IoTEvents"},"ioteventsdata":{"prefix":"iotevents-data","name":"IoTEventsData"},"personalize":{"name":"Personalize","cors":true},"personalizeevents":{"prefix":"personalize-events","name":"PersonalizeEvents","cors":true},"personalizeruntime":{"prefix":"personalize-runtime","name":"PersonalizeRuntime","cors":true},"applicationinsights":{"prefix":"application-insights","name":"ApplicationInsights"},"servicequotas":{"prefix":"service-quotas","name":"ServiceQuotas"},"ec2instanceconnect":{"prefix":"ec2-instance-connect","name":"EC2InstanceConnect"},"eventbridge":{"name":"EventBridge"},"lakeformation":{"name":"LakeFormation"},"forecastservice":{"prefix":"forecast","name":"ForecastService"},"forecastqueryservice":{"prefix":"forecastquery","name":"ForecastQueryService"}} /***/ }), /***/ "./node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json": /*!***********************************************************************!*\ !*** ./node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json ***! \***********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-06-05","endpointPrefix":"mobileanalytics","serviceFullName":"Amazon Mobile Analytics","serviceId":"Mobile Analytics","signatureVersion":"v4","protocol":"rest-json"},"operations":{"PutEvents":{"http":{"requestUri":"/2014-06-05/events","responseCode":202},"input":{"type":"structure","required":["events","clientContext"],"members":{"events":{"type":"list","member":{"type":"structure","required":["eventType","timestamp"],"members":{"eventType":{},"timestamp":{},"session":{"type":"structure","members":{"id":{},"duration":{"type":"long"},"startTimestamp":{},"stopTimestamp":{}}},"version":{},"attributes":{"type":"map","key":{},"value":{}},"metrics":{"type":"map","key":{},"value":{"type":"double"}}}}},"clientContext":{"location":"header","locationName":"x-amz-Client-Context"},"clientContextEncoding":{"location":"header","locationName":"x-amz-Client-Context-Encoding"}}}}},"shapes":{}} /***/ }), /***/ "./node_modules/aws-sdk/apis/personalize-events-2018-03-22.min.json": /*!**************************************************************************!*\ !*** ./node_modules/aws-sdk/apis/personalize-events-2018-03-22.min.json ***! \**************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2018-03-22","endpointPrefix":"personalize-events","jsonVersion":"1.1","protocol":"rest-json","serviceFullName":"Amazon Personalize Events","serviceId":"Personalize Events","signatureVersion":"v4","signingName":"personalize","uid":"personalize-events-2018-03-22"},"operations":{"PutEvents":{"http":{"requestUri":"/events"},"input":{"type":"structure","required":["trackingId","sessionId","eventList"],"members":{"trackingId":{},"userId":{},"sessionId":{},"eventList":{"type":"list","member":{"type":"structure","required":["eventType","properties","sentAt"],"members":{"eventId":{},"eventType":{},"properties":{"jsonvalue":true},"sentAt":{"type":"timestamp"}}}}}}}},"shapes":{}} /***/ }), /***/ "./node_modules/aws-sdk/apis/personalize-events-2018-03-22.paginators.json": /*!*********************************************************************************!*\ !*** ./node_modules/aws-sdk/apis/personalize-events-2018-03-22.paginators.json ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{}} /***/ }), /***/ "./node_modules/aws-sdk/apis/pinpoint-2016-12-01.min.json": /*!****************************************************************!*\ !*** ./node_modules/aws-sdk/apis/pinpoint-2016-12-01.min.json ***! \****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"metadata":{"apiVersion":"2016-12-01","endpointPrefix":"pinpoint","signingName":"mobiletargeting","serviceFullName":"Amazon Pinpoint","serviceId":"Pinpoint","protocol":"rest-json","jsonVersion":"1.1","uid":"pinpoint-2016-12-01","signatureVersion":"v4"},"operations":{"CreateApp":{"http":{"requestUri":"/v1/apps","responseCode":201},"input":{"type":"structure","members":{"CreateApplicationRequest":{"type":"structure","members":{"Name":{},"tags":{"shape":"S4","locationName":"tags"}},"required":["Name"]}},"required":["CreateApplicationRequest"],"payload":"CreateApplicationRequest"},"output":{"type":"structure","members":{"ApplicationResponse":{"shape":"S6"}},"required":["ApplicationResponse"],"payload":"ApplicationResponse"}},"CreateCampaign":{"http":{"requestUri":"/v1/apps/{application-id}/campaigns","responseCode":201},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"WriteCampaignRequest":{"shape":"S8"}},"required":["ApplicationId","WriteCampaignRequest"],"payload":"WriteCampaignRequest"},"output":{"type":"structure","members":{"CampaignResponse":{"shape":"S12"}},"required":["CampaignResponse"],"payload":"CampaignResponse"}},"CreateExportJob":{"http":{"requestUri":"/v1/apps/{application-id}/jobs/export","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"ExportJobRequest":{"type":"structure","members":{"RoleArn":{},"S3UrlPrefix":{},"SegmentId":{},"SegmentVersion":{"type":"integer"}},"required":["S3UrlPrefix","RoleArn"]}},"required":["ApplicationId","ExportJobRequest"],"payload":"ExportJobRequest"},"output":{"type":"structure","members":{"ExportJobResponse":{"shape":"S1a"}},"required":["ExportJobResponse"],"payload":"ExportJobResponse"}},"CreateImportJob":{"http":{"requestUri":"/v1/apps/{application-id}/jobs/import","responseCode":201},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"ImportJobRequest":{"type":"structure","members":{"DefineSegment":{"type":"boolean"},"ExternalId":{},"Format":{},"RegisterEndpoints":{"type":"boolean"},"RoleArn":{},"S3Url":{},"SegmentId":{},"SegmentName":{}},"required":["Format","S3Url","RoleArn"]}},"required":["ApplicationId","ImportJobRequest"],"payload":"ImportJobRequest"},"output":{"type":"structure","members":{"ImportJobResponse":{"shape":"S1h"}},"required":["ImportJobResponse"],"payload":"ImportJobResponse"}},"CreateSegment":{"http":{"requestUri":"/v1/apps/{application-id}/segments","responseCode":201},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"WriteSegmentRequest":{"shape":"S1k"}},"required":["ApplicationId","WriteSegmentRequest"],"payload":"WriteSegmentRequest"},"output":{"type":"structure","members":{"SegmentResponse":{"shape":"S24"}},"required":["SegmentResponse"],"payload":"SegmentResponse"}},"DeleteAdmChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/adm","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ADMChannelResponse":{"shape":"S2a"}},"required":["ADMChannelResponse"],"payload":"ADMChannelResponse"}},"DeleteApnsChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/apns","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSChannelResponse":{"shape":"S2d"}},"required":["APNSChannelResponse"],"payload":"APNSChannelResponse"}},"DeleteApnsSandboxChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/apns_sandbox","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSSandboxChannelResponse":{"shape":"S2g"}},"required":["APNSSandboxChannelResponse"],"payload":"APNSSandboxChannelResponse"}},"DeleteApnsVoipChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/apns_voip","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSVoipChannelResponse":{"shape":"S2j"}},"required":["APNSVoipChannelResponse"],"payload":"APNSVoipChannelResponse"}},"DeleteApnsVoipSandboxChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/apns_voip_sandbox","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSVoipSandboxChannelResponse":{"shape":"S2m"}},"required":["APNSVoipSandboxChannelResponse"],"payload":"APNSVoipSandboxChannelResponse"}},"DeleteApp":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ApplicationResponse":{"shape":"S6"}},"required":["ApplicationResponse"],"payload":"ApplicationResponse"}},"DeleteBaiduChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/baidu","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"BaiduChannelResponse":{"shape":"S2r"}},"required":["BaiduChannelResponse"],"payload":"BaiduChannelResponse"}},"DeleteCampaign":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"}},"required":["CampaignId","ApplicationId"]},"output":{"type":"structure","members":{"CampaignResponse":{"shape":"S12"}},"required":["CampaignResponse"],"payload":"CampaignResponse"}},"DeleteEmailChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/email","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"EmailChannelResponse":{"shape":"S2w"}},"required":["EmailChannelResponse"],"payload":"EmailChannelResponse"}},"DeleteEndpoint":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/endpoints/{endpoint-id}","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EndpointId":{"location":"uri","locationName":"endpoint-id"}},"required":["ApplicationId","EndpointId"]},"output":{"type":"structure","members":{"EndpointResponse":{"shape":"S2z"}},"required":["EndpointResponse"],"payload":"EndpointResponse"}},"DeleteEventStream":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/eventstream","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"EventStream":{"shape":"S38"}},"required":["EventStream"],"payload":"EventStream"}},"DeleteGcmChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/gcm","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"GCMChannelResponse":{"shape":"S3b"}},"required":["GCMChannelResponse"],"payload":"GCMChannelResponse"}},"DeleteSegment":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/segments/{segment-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SegmentId":{"location":"uri","locationName":"segment-id"}},"required":["SegmentId","ApplicationId"]},"output":{"type":"structure","members":{"SegmentResponse":{"shape":"S24"}},"required":["SegmentResponse"],"payload":"SegmentResponse"}},"DeleteSmsChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/sms","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"SMSChannelResponse":{"shape":"S3g"}},"required":["SMSChannelResponse"],"payload":"SMSChannelResponse"}},"DeleteUserEndpoints":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/users/{user-id}","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"UserId":{"location":"uri","locationName":"user-id"}},"required":["ApplicationId","UserId"]},"output":{"type":"structure","members":{"EndpointsResponse":{"shape":"S3j"}},"required":["EndpointsResponse"],"payload":"EndpointsResponse"}},"DeleteVoiceChannel":{"http":{"method":"DELETE","requestUri":"/v1/apps/{application-id}/channels/voice","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"VoiceChannelResponse":{"shape":"S3n"}},"required":["VoiceChannelResponse"],"payload":"VoiceChannelResponse"}},"GetAdmChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/adm","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ADMChannelResponse":{"shape":"S2a"}},"required":["ADMChannelResponse"],"payload":"ADMChannelResponse"}},"GetApnsChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/apns","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSChannelResponse":{"shape":"S2d"}},"required":["APNSChannelResponse"],"payload":"APNSChannelResponse"}},"GetApnsSandboxChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/apns_sandbox","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSSandboxChannelResponse":{"shape":"S2g"}},"required":["APNSSandboxChannelResponse"],"payload":"APNSSandboxChannelResponse"}},"GetApnsVoipChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/apns_voip","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSVoipChannelResponse":{"shape":"S2j"}},"required":["APNSVoipChannelResponse"],"payload":"APNSVoipChannelResponse"}},"GetApnsVoipSandboxChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/apns_voip_sandbox","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"APNSVoipSandboxChannelResponse":{"shape":"S2m"}},"required":["APNSVoipSandboxChannelResponse"],"payload":"APNSVoipSandboxChannelResponse"}},"GetApp":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ApplicationResponse":{"shape":"S6"}},"required":["ApplicationResponse"],"payload":"ApplicationResponse"}},"GetApplicationDateRangeKpi":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/kpis/daterange/{kpi-name}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EndTime":{"shape":"S41","location":"querystring","locationName":"end-time"},"KpiName":{"location":"uri","locationName":"kpi-name"},"NextToken":{"location":"querystring","locationName":"next-token"},"PageSize":{"location":"querystring","locationName":"page-size"},"StartTime":{"shape":"S41","location":"querystring","locationName":"start-time"}},"required":["ApplicationId","KpiName"]},"output":{"type":"structure","members":{"ApplicationDateRangeKpiResponse":{"type":"structure","members":{"ApplicationId":{},"EndTime":{"shape":"S41"},"KpiName":{},"KpiResult":{"shape":"S44"},"NextToken":{},"StartTime":{"shape":"S41"}},"required":["KpiResult","KpiName","EndTime","StartTime","ApplicationId"]}},"required":["ApplicationDateRangeKpiResponse"],"payload":"ApplicationDateRangeKpiResponse"}},"GetApplicationSettings":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/settings","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ApplicationSettingsResource":{"shape":"S4b"}},"required":["ApplicationSettingsResource"],"payload":"ApplicationSettingsResource"}},"GetApps":{"http":{"method":"GET","requestUri":"/v1/apps","responseCode":200},"input":{"type":"structure","members":{"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}}},"output":{"type":"structure","members":{"ApplicationsResponse":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S6"}},"NextToken":{}}}},"required":["ApplicationsResponse"],"payload":"ApplicationsResponse"}},"GetBaiduChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/baidu","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"BaiduChannelResponse":{"shape":"S2r"}},"required":["BaiduChannelResponse"],"payload":"BaiduChannelResponse"}},"GetCampaign":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"}},"required":["CampaignId","ApplicationId"]},"output":{"type":"structure","members":{"CampaignResponse":{"shape":"S12"}},"required":["CampaignResponse"],"payload":"CampaignResponse"}},"GetCampaignActivities":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}/activities","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId","CampaignId"]},"output":{"type":"structure","members":{"ActivitiesResponse":{"type":"structure","members":{"Item":{"type":"list","member":{"type":"structure","members":{"ApplicationId":{},"CampaignId":{},"End":{},"Id":{},"Result":{},"ScheduledStart":{},"Start":{},"State":{},"SuccessfulEndpointCount":{"type":"integer"},"TimezonesCompletedCount":{"type":"integer"},"TimezonesTotalCount":{"type":"integer"},"TotalEndpointCount":{"type":"integer"},"TreatmentId":{}},"required":["CampaignId","Id","ApplicationId"]}},"NextToken":{}},"required":["Item"]}},"required":["ActivitiesResponse"],"payload":"ActivitiesResponse"}},"GetCampaignDateRangeKpi":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}/kpis/daterange/{kpi-name}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"},"EndTime":{"shape":"S41","location":"querystring","locationName":"end-time"},"KpiName":{"location":"uri","locationName":"kpi-name"},"NextToken":{"location":"querystring","locationName":"next-token"},"PageSize":{"location":"querystring","locationName":"page-size"},"StartTime":{"shape":"S41","location":"querystring","locationName":"start-time"}},"required":["ApplicationId","KpiName","CampaignId"]},"output":{"type":"structure","members":{"CampaignDateRangeKpiResponse":{"type":"structure","members":{"ApplicationId":{},"CampaignId":{},"EndTime":{"shape":"S41"},"KpiName":{},"KpiResult":{"shape":"S44"},"NextToken":{},"StartTime":{"shape":"S41"}},"required":["KpiResult","KpiName","EndTime","CampaignId","StartTime","ApplicationId"]}},"required":["CampaignDateRangeKpiResponse"],"payload":"CampaignDateRangeKpiResponse"}},"GetCampaignVersion":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"},"Version":{"location":"uri","locationName":"version"}},"required":["Version","ApplicationId","CampaignId"]},"output":{"type":"structure","members":{"CampaignResponse":{"shape":"S12"}},"required":["CampaignResponse"],"payload":"CampaignResponse"}},"GetCampaignVersions":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}/versions","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId","CampaignId"]},"output":{"type":"structure","members":{"CampaignsResponse":{"shape":"S4w"}},"required":["CampaignsResponse"],"payload":"CampaignsResponse"}},"GetCampaigns":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/campaigns","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"CampaignsResponse":{"shape":"S4w"}},"required":["CampaignsResponse"],"payload":"CampaignsResponse"}},"GetChannels":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ChannelsResponse":{"type":"structure","members":{"Channels":{"type":"map","key":{},"value":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Version":{"type":"integer"}}}}},"required":["Channels"]}},"required":["ChannelsResponse"],"payload":"ChannelsResponse"}},"GetEmailChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/email","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"EmailChannelResponse":{"shape":"S2w"}},"required":["EmailChannelResponse"],"payload":"EmailChannelResponse"}},"GetEndpoint":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/endpoints/{endpoint-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EndpointId":{"location":"uri","locationName":"endpoint-id"}},"required":["ApplicationId","EndpointId"]},"output":{"type":"structure","members":{"EndpointResponse":{"shape":"S2z"}},"required":["EndpointResponse"],"payload":"EndpointResponse"}},"GetEventStream":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/eventstream","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"EventStream":{"shape":"S38"}},"required":["EventStream"],"payload":"EventStream"}},"GetExportJob":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/jobs/export/{job-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"JobId":{"location":"uri","locationName":"job-id"}},"required":["ApplicationId","JobId"]},"output":{"type":"structure","members":{"ExportJobResponse":{"shape":"S1a"}},"required":["ExportJobResponse"],"payload":"ExportJobResponse"}},"GetExportJobs":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/jobs/export","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ExportJobsResponse":{"shape":"S5f"}},"required":["ExportJobsResponse"],"payload":"ExportJobsResponse"}},"GetGcmChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/gcm","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"GCMChannelResponse":{"shape":"S3b"}},"required":["GCMChannelResponse"],"payload":"GCMChannelResponse"}},"GetImportJob":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/jobs/import/{job-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"JobId":{"location":"uri","locationName":"job-id"}},"required":["ApplicationId","JobId"]},"output":{"type":"structure","members":{"ImportJobResponse":{"shape":"S1h"}},"required":["ImportJobResponse"],"payload":"ImportJobResponse"}},"GetImportJobs":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/jobs/import","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"ImportJobsResponse":{"shape":"S5n"}},"required":["ImportJobsResponse"],"payload":"ImportJobsResponse"}},"GetSegment":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments/{segment-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SegmentId":{"location":"uri","locationName":"segment-id"}},"required":["SegmentId","ApplicationId"]},"output":{"type":"structure","members":{"SegmentResponse":{"shape":"S24"}},"required":["SegmentResponse"],"payload":"SegmentResponse"}},"GetSegmentExportJobs":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments/{segment-id}/jobs/export","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"SegmentId":{"location":"uri","locationName":"segment-id"},"Token":{"location":"querystring","locationName":"token"}},"required":["SegmentId","ApplicationId"]},"output":{"type":"structure","members":{"ExportJobsResponse":{"shape":"S5f"}},"required":["ExportJobsResponse"],"payload":"ExportJobsResponse"}},"GetSegmentImportJobs":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments/{segment-id}/jobs/import","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"SegmentId":{"location":"uri","locationName":"segment-id"},"Token":{"location":"querystring","locationName":"token"}},"required":["SegmentId","ApplicationId"]},"output":{"type":"structure","members":{"ImportJobsResponse":{"shape":"S5n"}},"required":["ImportJobsResponse"],"payload":"ImportJobsResponse"}},"GetSegmentVersion":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments/{segment-id}/versions/{version}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SegmentId":{"location":"uri","locationName":"segment-id"},"Version":{"location":"uri","locationName":"version"}},"required":["SegmentId","Version","ApplicationId"]},"output":{"type":"structure","members":{"SegmentResponse":{"shape":"S24"}},"required":["SegmentResponse"],"payload":"SegmentResponse"}},"GetSegmentVersions":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments/{segment-id}/versions","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"SegmentId":{"location":"uri","locationName":"segment-id"},"Token":{"location":"querystring","locationName":"token"}},"required":["SegmentId","ApplicationId"]},"output":{"type":"structure","members":{"SegmentsResponse":{"shape":"S5z"}},"required":["SegmentsResponse"],"payload":"SegmentsResponse"}},"GetSegments":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/segments","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"PageSize":{"location":"querystring","locationName":"page-size"},"Token":{"location":"querystring","locationName":"token"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"SegmentsResponse":{"shape":"S5z"}},"required":["SegmentsResponse"],"payload":"SegmentsResponse"}},"GetSmsChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/sms","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"SMSChannelResponse":{"shape":"S3g"}},"required":["SMSChannelResponse"],"payload":"SMSChannelResponse"}},"GetUserEndpoints":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/users/{user-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"UserId":{"location":"uri","locationName":"user-id"}},"required":["ApplicationId","UserId"]},"output":{"type":"structure","members":{"EndpointsResponse":{"shape":"S3j"}},"required":["EndpointsResponse"],"payload":"EndpointsResponse"}},"GetVoiceChannel":{"http":{"method":"GET","requestUri":"/v1/apps/{application-id}/channels/voice","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId"]},"output":{"type":"structure","members":{"VoiceChannelResponse":{"shape":"S3n"}},"required":["VoiceChannelResponse"],"payload":"VoiceChannelResponse"}},"ListTagsForResource":{"http":{"method":"GET","requestUri":"/v1/tags/{resource-arn}","responseCode":200},"input":{"type":"structure","members":{"ResourceArn":{"location":"uri","locationName":"resource-arn"}},"required":["ResourceArn"]},"output":{"type":"structure","members":{"TagsModel":{"shape":"S6b"}},"required":["TagsModel"],"payload":"TagsModel"}},"PhoneNumberValidate":{"http":{"requestUri":"/v1/phone/number/validate","responseCode":200},"input":{"type":"structure","members":{"NumberValidateRequest":{"type":"structure","members":{"IsoCountryCode":{},"PhoneNumber":{}}}},"required":["NumberValidateRequest"],"payload":"NumberValidateRequest"},"output":{"type":"structure","members":{"NumberValidateResponse":{"type":"structure","members":{"Carrier":{},"City":{},"CleansedPhoneNumberE164":{},"CleansedPhoneNumberNational":{},"Country":{},"CountryCodeIso2":{},"CountryCodeNumeric":{},"County":{},"OriginalCountryCodeIso2":{},"OriginalPhoneNumber":{},"PhoneType":{},"PhoneTypeCode":{"type":"integer"},"Timezone":{},"ZipCode":{}}}},"required":["NumberValidateResponse"],"payload":"NumberValidateResponse"}},"PutEventStream":{"http":{"requestUri":"/v1/apps/{application-id}/eventstream","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"WriteEventStream":{"type":"structure","members":{"DestinationStreamArn":{},"RoleArn":{}},"required":["RoleArn","DestinationStreamArn"]}},"required":["ApplicationId","WriteEventStream"],"payload":"WriteEventStream"},"output":{"type":"structure","members":{"EventStream":{"shape":"S38"}},"required":["EventStream"],"payload":"EventStream"}},"PutEvents":{"http":{"requestUri":"/v1/apps/{application-id}/events","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EventsRequest":{"type":"structure","members":{"BatchItem":{"type":"map","key":{},"value":{"type":"structure","members":{"Endpoint":{"type":"structure","members":{"Address":{},"Attributes":{"shape":"S30"},"ChannelType":{},"Demographic":{"shape":"S32"},"EffectiveDate":{},"EndpointStatus":{},"Location":{"shape":"S33"},"Metrics":{"shape":"S34"},"OptOut":{},"RequestId":{},"User":{"shape":"S35"}}},"Events":{"type":"map","key":{},"value":{"type":"structure","members":{"AppPackageName":{},"AppTitle":{},"AppVersionCode":{},"Attributes":{"shape":"S4"},"ClientSdkVersion":{},"EventType":{},"Metrics":{"shape":"S34"},"SdkName":{},"Session":{"type":"structure","members":{"Duration":{"type":"integer"},"Id":{},"StartTimestamp":{},"StopTimestamp":{}},"required":["StartTimestamp","Id"]},"Timestamp":{}},"required":["EventType","Timestamp"]}}},"required":["Endpoint","Events"]}}},"required":["BatchItem"]}},"required":["ApplicationId","EventsRequest"],"payload":"EventsRequest"},"output":{"type":"structure","members":{"EventsResponse":{"type":"structure","members":{"Results":{"type":"map","key":{},"value":{"type":"structure","members":{"EndpointItemResponse":{"type":"structure","members":{"Message":{},"StatusCode":{"type":"integer"}}},"EventsItemResponse":{"type":"map","key":{},"value":{"type":"structure","members":{"Message":{},"StatusCode":{"type":"integer"}}}}}}}}}},"required":["EventsResponse"],"payload":"EventsResponse"}},"RemoveAttributes":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/attributes/{attribute-type}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"AttributeType":{"location":"uri","locationName":"attribute-type"},"UpdateAttributesRequest":{"type":"structure","members":{"Blacklist":{"shape":"Sp"}}}},"required":["AttributeType","ApplicationId","UpdateAttributesRequest"],"payload":"UpdateAttributesRequest"},"output":{"type":"structure","members":{"AttributesResource":{"type":"structure","members":{"ApplicationId":{},"AttributeType":{},"Attributes":{"shape":"Sp"}},"required":["AttributeType","ApplicationId"]}},"required":["AttributesResource"],"payload":"AttributesResource"}},"SendMessages":{"http":{"requestUri":"/v1/apps/{application-id}/messages","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"MessageRequest":{"type":"structure","members":{"Addresses":{"type":"map","key":{},"value":{"type":"structure","members":{"BodyOverride":{},"ChannelType":{},"Context":{"shape":"S4"},"RawContent":{},"Substitutions":{"shape":"S30"},"TitleOverride":{}}}},"Context":{"shape":"S4"},"Endpoints":{"shape":"S76"},"MessageConfiguration":{"shape":"S78"},"TraceId":{}},"required":["MessageConfiguration"]}},"required":["ApplicationId","MessageRequest"],"payload":"MessageRequest"},"output":{"type":"structure","members":{"MessageResponse":{"type":"structure","members":{"ApplicationId":{},"EndpointResult":{"shape":"S7o"},"RequestId":{},"Result":{"type":"map","key":{},"value":{"type":"structure","members":{"DeliveryStatus":{},"MessageId":{},"StatusCode":{"type":"integer"},"StatusMessage":{},"UpdatedToken":{}},"required":["DeliveryStatus","StatusCode"]}}},"required":["ApplicationId"]}},"required":["MessageResponse"],"payload":"MessageResponse"}},"SendUsersMessages":{"http":{"requestUri":"/v1/apps/{application-id}/users-messages","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SendUsersMessageRequest":{"type":"structure","members":{"Context":{"shape":"S4"},"MessageConfiguration":{"shape":"S78"},"TraceId":{},"Users":{"shape":"S76"}},"required":["MessageConfiguration","Users"]}},"required":["ApplicationId","SendUsersMessageRequest"],"payload":"SendUsersMessageRequest"},"output":{"type":"structure","members":{"SendUsersMessageResponse":{"type":"structure","members":{"ApplicationId":{},"RequestId":{},"Result":{"type":"map","key":{},"value":{"shape":"S7o"}}},"required":["ApplicationId"]}},"required":["SendUsersMessageResponse"],"payload":"SendUsersMessageResponse"}},"TagResource":{"http":{"requestUri":"/v1/tags/{resource-arn}","responseCode":204},"input":{"type":"structure","members":{"ResourceArn":{"location":"uri","locationName":"resource-arn"},"TagsModel":{"shape":"S6b"}},"required":["ResourceArn","TagsModel"],"payload":"TagsModel"}},"UntagResource":{"http":{"method":"DELETE","requestUri":"/v1/tags/{resource-arn}","responseCode":204},"input":{"type":"structure","members":{"ResourceArn":{"location":"uri","locationName":"resource-arn"},"TagKeys":{"shape":"Sp","location":"querystring","locationName":"tagKeys"}},"required":["TagKeys","ResourceArn"]}},"UpdateAdmChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/adm","responseCode":200},"input":{"type":"structure","members":{"ADMChannelRequest":{"type":"structure","members":{"ClientId":{},"ClientSecret":{},"Enabled":{"type":"boolean"}},"required":["ClientSecret","ClientId"]},"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId","ADMChannelRequest"],"payload":"ADMChannelRequest"},"output":{"type":"structure","members":{"ADMChannelResponse":{"shape":"S2a"}},"required":["ADMChannelResponse"],"payload":"ADMChannelResponse"}},"UpdateApnsChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/apns","responseCode":200},"input":{"type":"structure","members":{"APNSChannelRequest":{"type":"structure","members":{"BundleId":{},"Certificate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"PrivateKey":{},"TeamId":{},"TokenKey":{},"TokenKeyId":{}}},"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId","APNSChannelRequest"],"payload":"APNSChannelRequest"},"output":{"type":"structure","members":{"APNSChannelResponse":{"shape":"S2d"}},"required":["APNSChannelResponse"],"payload":"APNSChannelResponse"}},"UpdateApnsSandboxChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/apns_sandbox","responseCode":200},"input":{"type":"structure","members":{"APNSSandboxChannelRequest":{"type":"structure","members":{"BundleId":{},"Certificate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"PrivateKey":{},"TeamId":{},"TokenKey":{},"TokenKeyId":{}}},"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId","APNSSandboxChannelRequest"],"payload":"APNSSandboxChannelRequest"},"output":{"type":"structure","members":{"APNSSandboxChannelResponse":{"shape":"S2g"}},"required":["APNSSandboxChannelResponse"],"payload":"APNSSandboxChannelResponse"}},"UpdateApnsVoipChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/apns_voip","responseCode":200},"input":{"type":"structure","members":{"APNSVoipChannelRequest":{"type":"structure","members":{"BundleId":{},"Certificate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"PrivateKey":{},"TeamId":{},"TokenKey":{},"TokenKeyId":{}}},"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId","APNSVoipChannelRequest"],"payload":"APNSVoipChannelRequest"},"output":{"type":"structure","members":{"APNSVoipChannelResponse":{"shape":"S2j"}},"required":["APNSVoipChannelResponse"],"payload":"APNSVoipChannelResponse"}},"UpdateApnsVoipSandboxChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/apns_voip_sandbox","responseCode":200},"input":{"type":"structure","members":{"APNSVoipSandboxChannelRequest":{"type":"structure","members":{"BundleId":{},"Certificate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"PrivateKey":{},"TeamId":{},"TokenKey":{},"TokenKeyId":{}}},"ApplicationId":{"location":"uri","locationName":"application-id"}},"required":["ApplicationId","APNSVoipSandboxChannelRequest"],"payload":"APNSVoipSandboxChannelRequest"},"output":{"type":"structure","members":{"APNSVoipSandboxChannelResponse":{"shape":"S2m"}},"required":["APNSVoipSandboxChannelResponse"],"payload":"APNSVoipSandboxChannelResponse"}},"UpdateApplicationSettings":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/settings","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"WriteApplicationSettingsRequest":{"type":"structure","members":{"CampaignHook":{"shape":"Sy"},"CloudWatchMetricsEnabled":{"type":"boolean"},"Limits":{"shape":"S10"},"QuietTime":{"shape":"Sx"}}}},"required":["ApplicationId","WriteApplicationSettingsRequest"],"payload":"WriteApplicationSettingsRequest"},"output":{"type":"structure","members":{"ApplicationSettingsResource":{"shape":"S4b"}},"required":["ApplicationSettingsResource"],"payload":"ApplicationSettingsResource"}},"UpdateBaiduChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/baidu","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"BaiduChannelRequest":{"type":"structure","members":{"ApiKey":{},"Enabled":{"type":"boolean"},"SecretKey":{}},"required":["SecretKey","ApiKey"]}},"required":["ApplicationId","BaiduChannelRequest"],"payload":"BaiduChannelRequest"},"output":{"type":"structure","members":{"BaiduChannelResponse":{"shape":"S2r"}},"required":["BaiduChannelResponse"],"payload":"BaiduChannelResponse"}},"UpdateCampaign":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/campaigns/{campaign-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"CampaignId":{"location":"uri","locationName":"campaign-id"},"WriteCampaignRequest":{"shape":"S8"}},"required":["CampaignId","ApplicationId","WriteCampaignRequest"],"payload":"WriteCampaignRequest"},"output":{"type":"structure","members":{"CampaignResponse":{"shape":"S12"}},"required":["CampaignResponse"],"payload":"CampaignResponse"}},"UpdateEmailChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/email","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EmailChannelRequest":{"type":"structure","members":{"ConfigurationSet":{},"Enabled":{"type":"boolean"},"FromAddress":{},"Identity":{},"RoleArn":{}},"required":["FromAddress","Identity"]}},"required":["ApplicationId","EmailChannelRequest"],"payload":"EmailChannelRequest"},"output":{"type":"structure","members":{"EmailChannelResponse":{"shape":"S2w"}},"required":["EmailChannelResponse"],"payload":"EmailChannelResponse"}},"UpdateEndpoint":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/endpoints/{endpoint-id}","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EndpointId":{"location":"uri","locationName":"endpoint-id"},"EndpointRequest":{"type":"structure","members":{"Address":{},"Attributes":{"shape":"S30"},"ChannelType":{},"Demographic":{"shape":"S32"},"EffectiveDate":{},"EndpointStatus":{},"Location":{"shape":"S33"},"Metrics":{"shape":"S34"},"OptOut":{},"RequestId":{},"User":{"shape":"S35"}}}},"required":["ApplicationId","EndpointId","EndpointRequest"],"payload":"EndpointRequest"},"output":{"type":"structure","members":{"MessageBody":{"shape":"S8t"}},"required":["MessageBody"],"payload":"MessageBody"}},"UpdateEndpointsBatch":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/endpoints","responseCode":202},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"EndpointBatchRequest":{"type":"structure","members":{"Item":{"type":"list","member":{"type":"structure","members":{"Address":{},"Attributes":{"shape":"S30"},"ChannelType":{},"Demographic":{"shape":"S32"},"EffectiveDate":{},"EndpointStatus":{},"Id":{},"Location":{"shape":"S33"},"Metrics":{"shape":"S34"},"OptOut":{},"RequestId":{},"User":{"shape":"S35"}}}}},"required":["Item"]}},"required":["ApplicationId","EndpointBatchRequest"],"payload":"EndpointBatchRequest"},"output":{"type":"structure","members":{"MessageBody":{"shape":"S8t"}},"required":["MessageBody"],"payload":"MessageBody"}},"UpdateGcmChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/gcm","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"GCMChannelRequest":{"type":"structure","members":{"ApiKey":{},"Enabled":{"type":"boolean"}},"required":["ApiKey"]}},"required":["ApplicationId","GCMChannelRequest"],"payload":"GCMChannelRequest"},"output":{"type":"structure","members":{"GCMChannelResponse":{"shape":"S3b"}},"required":["GCMChannelResponse"],"payload":"GCMChannelResponse"}},"UpdateSegment":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/segments/{segment-id}","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SegmentId":{"location":"uri","locationName":"segment-id"},"WriteSegmentRequest":{"shape":"S1k"}},"required":["SegmentId","ApplicationId","WriteSegmentRequest"],"payload":"WriteSegmentRequest"},"output":{"type":"structure","members":{"SegmentResponse":{"shape":"S24"}},"required":["SegmentResponse"],"payload":"SegmentResponse"}},"UpdateSmsChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/sms","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"SMSChannelRequest":{"type":"structure","members":{"Enabled":{"type":"boolean"},"SenderId":{},"ShortCode":{}}}},"required":["ApplicationId","SMSChannelRequest"],"payload":"SMSChannelRequest"},"output":{"type":"structure","members":{"SMSChannelResponse":{"shape":"S3g"}},"required":["SMSChannelResponse"],"payload":"SMSChannelResponse"}},"UpdateVoiceChannel":{"http":{"method":"PUT","requestUri":"/v1/apps/{application-id}/channels/voice","responseCode":200},"input":{"type":"structure","members":{"ApplicationId":{"location":"uri","locationName":"application-id"},"VoiceChannelRequest":{"type":"structure","members":{"Enabled":{"type":"boolean"}}}},"required":["ApplicationId","VoiceChannelRequest"],"payload":"VoiceChannelRequest"},"output":{"type":"structure","members":{"VoiceChannelResponse":{"shape":"S3n"}},"required":["VoiceChannelResponse"],"payload":"VoiceChannelResponse"}}},"shapes":{"S4":{"type":"map","key":{},"value":{}},"S6":{"type":"structure","members":{"Arn":{},"Id":{},"Name":{},"tags":{"shape":"S4","locationName":"tags"}},"required":["Id","Arn","Name"]},"S8":{"type":"structure","members":{"AdditionalTreatments":{"type":"list","member":{"type":"structure","members":{"MessageConfiguration":{"shape":"Sb"},"Schedule":{"shape":"Sj"},"SizePercent":{"type":"integer"},"TreatmentDescription":{},"TreatmentName":{}},"required":["SizePercent"]}},"Description":{},"HoldoutPercent":{"type":"integer"},"Hook":{"shape":"Sy"},"IsPaused":{"type":"boolean"},"Limits":{"shape":"S10"},"MessageConfiguration":{"shape":"Sb"},"Name":{},"Schedule":{"shape":"Sj"},"SegmentId":{},"SegmentVersion":{"type":"integer"},"tags":{"shape":"S4","locationName":"tags"},"TreatmentDescription":{},"TreatmentName":{}}},"Sb":{"type":"structure","members":{"ADMMessage":{"shape":"Sc"},"APNSMessage":{"shape":"Sc"},"BaiduMessage":{"shape":"Sc"},"DefaultMessage":{"shape":"Sc"},"EmailMessage":{"type":"structure","members":{"Body":{},"FromAddress":{},"HtmlBody":{},"Title":{}},"required":["Title"]},"GCMMessage":{"shape":"Sc"},"SMSMessage":{"type":"structure","members":{"Body":{},"MessageType":{},"SenderId":{}}}}},"Sc":{"type":"structure","members":{"Action":{},"Body":{},"ImageIconUrl":{},"ImageSmallIconUrl":{},"ImageUrl":{},"JsonBody":{},"MediaUrl":{},"RawContent":{},"SilentPush":{"type":"boolean"},"TimeToLive":{"type":"integer"},"Title":{},"Url":{}}},"Sj":{"type":"structure","members":{"EndTime":{},"EventFilter":{"type":"structure","members":{"Dimensions":{"type":"structure","members":{"Attributes":{"shape":"Sm"},"EventType":{"shape":"Sq"},"Metrics":{"shape":"Ss"}}},"FilterType":{}},"required":["FilterType","Dimensions"]},"Frequency":{},"IsLocalTime":{"type":"boolean"},"QuietTime":{"shape":"Sx"},"StartTime":{},"Timezone":{}},"required":["StartTime"]},"Sm":{"type":"map","key":{},"value":{"type":"structure","members":{"AttributeType":{},"Values":{"shape":"Sp"}},"required":["Values"]}},"Sp":{"type":"list","member":{}},"Sq":{"type":"structure","members":{"DimensionType":{},"Values":{"shape":"Sp"}},"required":["Values"]},"Ss":{"type":"map","key":{},"value":{"type":"structure","members":{"ComparisonOperator":{},"Value":{"type":"double"}},"required":["ComparisonOperator","Value"]}},"Sx":{"type":"structure","members":{"End":{},"Start":{}}},"Sy":{"type":"structure","members":{"LambdaFunctionName":{},"Mode":{},"WebUrl":{}}},"S10":{"type":"structure","members":{"Daily":{"type":"integer"},"MaximumDuration":{"type":"integer"},"MessagesPerSecond":{"type":"integer"},"Total":{"type":"integer"}}},"S12":{"type":"structure","members":{"AdditionalTreatments":{"type":"list","member":{"type":"structure","members":{"Id":{},"MessageConfiguration":{"shape":"Sb"},"Schedule":{"shape":"Sj"},"SizePercent":{"type":"integer"},"State":{"shape":"S15"},"TreatmentDescription":{},"TreatmentName":{}},"required":["Id","SizePercent"]}},"ApplicationId":{},"Arn":{},"CreationDate":{},"DefaultState":{"shape":"S15"},"Description":{},"HoldoutPercent":{"type":"integer"},"Hook":{"shape":"Sy"},"Id":{},"IsPaused":{"type":"boolean"},"LastModifiedDate":{},"Limits":{"shape":"S10"},"MessageConfiguration":{"shape":"Sb"},"Name":{},"Schedule":{"shape":"Sj"},"SegmentId":{},"SegmentVersion":{"type":"integer"},"State":{"shape":"S15"},"tags":{"shape":"S4","locationName":"tags"},"TreatmentDescription":{},"TreatmentName":{},"Version":{"type":"integer"}},"required":["LastModifiedDate","CreationDate","SegmentId","SegmentVersion","Id","Arn","ApplicationId"]},"S15":{"type":"structure","members":{"CampaignStatus":{}}},"S1a":{"type":"structure","members":{"ApplicationId":{},"CompletedPieces":{"type":"integer"},"CompletionDate":{},"CreationDate":{},"Definition":{"type":"structure","members":{"RoleArn":{},"S3UrlPrefix":{},"SegmentId":{},"SegmentVersion":{"type":"integer"}},"required":["S3UrlPrefix","RoleArn"]},"FailedPieces":{"type":"integer"},"Failures":{"shape":"Sp"},"Id":{},"JobStatus":{},"TotalFailures":{"type":"integer"},"TotalPieces":{"type":"integer"},"TotalProcessed":{"type":"integer"},"Type":{}},"required":["JobStatus","CreationDate","Type","Definition","Id","ApplicationId"]},"S1h":{"type":"structure","members":{"ApplicationId":{},"CompletedPieces":{"type":"integer"},"CompletionDate":{},"CreationDate":{},"Definition":{"type":"structure","members":{"DefineSegment":{"type":"boolean"},"ExternalId":{},"Format":{},"RegisterEndpoints":{"type":"boolean"},"RoleArn":{},"S3Url":{},"SegmentId":{},"SegmentName":{}},"required":["Format","S3Url","RoleArn"]},"FailedPieces":{"type":"integer"},"Failures":{"shape":"Sp"},"Id":{},"JobStatus":{},"TotalFailures":{"type":"integer"},"TotalPieces":{"type":"integer"},"TotalProcessed":{"type":"integer"},"Type":{}},"required":["JobStatus","CreationDate","Type","Definition","Id","ApplicationId"]},"S1k":{"type":"structure","members":{"Dimensions":{"shape":"S1l"},"Name":{},"SegmentGroups":{"shape":"S1u"},"tags":{"shape":"S4","locationName":"tags"}}},"S1l":{"type":"structure","members":{"Attributes":{"shape":"Sm"},"Behavior":{"type":"structure","members":{"Recency":{"type":"structure","members":{"Duration":{},"RecencyType":{}},"required":["Duration","RecencyType"]}}},"Demographic":{"type":"structure","members":{"AppVersion":{"shape":"Sq"},"Channel":{"shape":"Sq"},"DeviceType":{"shape":"Sq"},"Make":{"shape":"Sq"},"Model":{"shape":"Sq"},"Platform":{"shape":"Sq"}}},"Location":{"type":"structure","members":{"Country":{"shape":"Sq"},"GPSPoint":{"type":"structure","members":{"Coordinates":{"type":"structure","members":{"Latitude":{"type":"double"},"Longitude":{"type":"double"}},"required":["Latitude","Longitude"]},"RangeInKilometers":{"type":"double"}},"required":["Coordinates"]}}},"Metrics":{"shape":"Ss"},"UserAttributes":{"shape":"Sm"}}},"S1u":{"type":"structure","members":{"Groups":{"type":"list","member":{"type":"structure","members":{"Dimensions":{"type":"list","member":{"shape":"S1l"}},"SourceSegments":{"type":"list","member":{"type":"structure","members":{"Id":{},"Version":{"type":"integer"}},"required":["Id"]}},"SourceType":{},"Type":{}}}},"Include":{}}},"S24":{"type":"structure","members":{"ApplicationId":{},"Arn":{},"CreationDate":{},"Dimensions":{"shape":"S1l"},"Id":{},"ImportDefinition":{"type":"structure","members":{"ChannelCounts":{"type":"map","key":{},"value":{"type":"integer"}},"ExternalId":{},"Format":{},"RoleArn":{},"S3Url":{},"Size":{"type":"integer"}},"required":["Format","S3Url","Size","ExternalId","RoleArn"]},"LastModifiedDate":{},"Name":{},"SegmentGroups":{"shape":"S1u"},"SegmentType":{},"tags":{"shape":"S4","locationName":"tags"},"Version":{"type":"integer"}},"required":["SegmentType","CreationDate","Id","Arn","ApplicationId"]},"S2a":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2d":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"HasTokenKey":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2g":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"HasTokenKey":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2j":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"HasTokenKey":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2m":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"DefaultAuthenticationMethod":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"HasTokenKey":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2r":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Credential":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Credential","Platform"]},"S2w":{"type":"structure","members":{"ApplicationId":{},"ConfigurationSet":{},"CreationDate":{},"Enabled":{"type":"boolean"},"FromAddress":{},"HasCredential":{"type":"boolean"},"Id":{},"Identity":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"MessagesPerSecond":{"type":"integer"},"Platform":{},"RoleArn":{},"Version":{"type":"integer"}},"required":["Platform"]},"S2z":{"type":"structure","members":{"Address":{},"ApplicationId":{},"Attributes":{"shape":"S30"},"ChannelType":{},"CohortId":{},"CreationDate":{},"Demographic":{"shape":"S32"},"EffectiveDate":{},"EndpointStatus":{},"Id":{},"Location":{"shape":"S33"},"Metrics":{"shape":"S34"},"OptOut":{},"RequestId":{},"User":{"shape":"S35"}}},"S30":{"type":"map","key":{},"value":{"shape":"Sp"}},"S32":{"type":"structure","members":{"AppVersion":{},"Locale":{},"Make":{},"Model":{},"ModelVersion":{},"Platform":{},"PlatformVersion":{},"Timezone":{}}},"S33":{"type":"structure","members":{"City":{},"Country":{},"Latitude":{"type":"double"},"Longitude":{"type":"double"},"PostalCode":{},"Region":{}}},"S34":{"type":"map","key":{},"value":{"type":"double"}},"S35":{"type":"structure","members":{"UserAttributes":{"shape":"S30"},"UserId":{}}},"S38":{"type":"structure","members":{"ApplicationId":{},"DestinationStreamArn":{},"ExternalId":{},"LastModifiedDate":{},"LastUpdatedBy":{},"RoleArn":{}},"required":["ApplicationId","RoleArn","DestinationStreamArn"]},"S3b":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Credential":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Credential","Platform"]},"S3g":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"PromotionalMessagesPerSecond":{"type":"integer"},"SenderId":{},"ShortCode":{},"TransactionalMessagesPerSecond":{"type":"integer"},"Version":{"type":"integer"}},"required":["Platform"]},"S3j":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S2z"}}},"required":["Item"]},"S3n":{"type":"structure","members":{"ApplicationId":{},"CreationDate":{},"Enabled":{"type":"boolean"},"HasCredential":{"type":"boolean"},"Id":{},"IsArchived":{"type":"boolean"},"LastModifiedBy":{},"LastModifiedDate":{},"Platform":{},"Version":{"type":"integer"}},"required":["Platform"]},"S41":{"type":"timestamp","timestampFormat":"iso8601"},"S44":{"type":"structure","members":{"Rows":{"type":"list","member":{"type":"structure","members":{"GroupedBys":{"shape":"S47"},"Values":{"shape":"S47"}},"required":["GroupedBys","Values"]}}},"required":["Rows"]},"S47":{"type":"list","member":{"type":"structure","members":{"Key":{},"Type":{},"Value":{}},"required":["Type","Value","Key"]}},"S4b":{"type":"structure","members":{"ApplicationId":{},"CampaignHook":{"shape":"Sy"},"LastModifiedDate":{},"Limits":{"shape":"S10"},"QuietTime":{"shape":"Sx"}},"required":["ApplicationId"]},"S4w":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S12"}},"NextToken":{}},"required":["Item"]},"S5f":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S1a"}},"NextToken":{}},"required":["Item"]},"S5n":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S1h"}},"NextToken":{}},"required":["Item"]},"S5z":{"type":"structure","members":{"Item":{"type":"list","member":{"shape":"S24"}},"NextToken":{}},"required":["Item"]},"S6b":{"type":"structure","members":{"tags":{"shape":"S4","locationName":"tags"}},"required":["tags"]},"S76":{"type":"map","key":{},"value":{"type":"structure","members":{"BodyOverride":{},"Context":{"shape":"S4"},"RawContent":{},"Substitutions":{"shape":"S30"},"TitleOverride":{}}}},"S78":{"type":"structure","members":{"ADMMessage":{"type":"structure","members":{"Action":{},"Body":{},"ConsolidationKey":{},"Data":{"shape":"S4"},"ExpiresAfter":{},"IconReference":{},"ImageIconUrl":{},"ImageUrl":{},"MD5":{},"RawContent":{},"SilentPush":{"type":"boolean"},"SmallImageIconUrl":{},"Sound":{},"Substitutions":{"shape":"S30"},"Title":{},"Url":{}}},"APNSMessage":{"type":"structure","members":{"Action":{},"Badge":{"type":"integer"},"Body":{},"Category":{},"CollapseId":{},"Data":{"shape":"S4"},"MediaUrl":{},"PreferredAuthenticationMethod":{},"Priority":{},"RawContent":{},"SilentPush":{"type":"boolean"},"Sound":{},"Substitutions":{"shape":"S30"},"ThreadId":{},"TimeToLive":{"type":"integer"},"Title":{},"Url":{}}},"BaiduMessage":{"type":"structure","members":{"Action":{},"Body":{},"Data":{"shape":"S4"},"IconReference":{},"ImageIconUrl":{},"ImageUrl":{},"RawContent":{},"SilentPush":{"type":"boolean"},"SmallImageIconUrl":{},"Sound":{},"Substitutions":{"shape":"S30"},"TimeToLive":{"type":"integer"},"Title":{},"Url":{}}},"DefaultMessage":{"type":"structure","members":{"Body":{},"Substitutions":{"shape":"S30"}}},"DefaultPushNotificationMessage":{"type":"structure","members":{"Action":{},"Body":{},"Data":{"shape":"S4"},"SilentPush":{"type":"boolean"},"Substitutions":{"shape":"S30"},"Title":{},"Url":{}}},"EmailMessage":{"type":"structure","members":{"Body":{},"FeedbackForwardingAddress":{},"FromAddress":{},"RawEmail":{"type":"structure","members":{"Data":{"type":"blob"}}},"ReplyToAddresses":{"shape":"Sp"},"SimpleEmail":{"type":"structure","members":{"HtmlPart":{"shape":"S7i"},"Subject":{"shape":"S7i"},"TextPart":{"shape":"S7i"}}},"Substitutions":{"shape":"S30"}}},"GCMMessage":{"type":"structure","members":{"Action":{},"Body":{},"CollapseKey":{},"Data":{"shape":"S4"},"IconReference":{},"ImageIconUrl":{},"ImageUrl":{},"Priority":{},"RawContent":{},"RestrictedPackageName":{},"SilentPush":{"type":"boolean"},"SmallImageIconUrl":{},"Sound":{},"Substitutions":{"shape":"S30"},"TimeToLive":{"type":"integer"},"Title":{},"Url":{}}},"SMSMessage":{"type":"structure","members":{"Body":{},"Keyword":{},"MessageType":{},"OriginationNumber":{},"SenderId":{},"Substitutions":{"shape":"S30"}}},"VoiceMessage":{"type":"structure","members":{"Body":{},"LanguageCode":{},"OriginationNumber":{},"Substitutions":{"shape":"S30"},"VoiceId":{}}}}},"S7i":{"type":"structure","members":{"Charset":{},"Data":{}}},"S7o":{"type":"map","key":{},"value":{"type":"structure","members":{"Address":{},"DeliveryStatus":{},"MessageId":{},"StatusCode":{"type":"integer"},"StatusMessage":{},"UpdatedToken":{}},"required":["DeliveryStatus","StatusCode"]}},"S8t":{"type":"structure","members":{"Message":{},"RequestID":{}}}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.min.json": /*!*******************************************************************!*\ !*** ./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.min.json ***! \*******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2016-11-28","endpointPrefix":"runtime.lex","jsonVersion":"1.1","protocol":"rest-json","serviceFullName":"Amazon Lex Runtime Service","serviceId":"Lex Runtime Service","signatureVersion":"v4","signingName":"lex","uid":"runtime.lex-2016-11-28"},"operations":{"DeleteSession":{"http":{"method":"DELETE","requestUri":"/bot/{botName}/alias/{botAlias}/user/{userId}/session"},"input":{"type":"structure","required":["botName","botAlias","userId"],"members":{"botName":{"location":"uri","locationName":"botName"},"botAlias":{"location":"uri","locationName":"botAlias"},"userId":{"location":"uri","locationName":"userId"}}},"output":{"type":"structure","members":{"botName":{},"botAlias":{},"userId":{},"sessionId":{}}}},"GetSession":{"http":{"method":"GET","requestUri":"/bot/{botName}/alias/{botAlias}/user/{userId}/session"},"input":{"type":"structure","required":["botName","botAlias","userId"],"members":{"botName":{"location":"uri","locationName":"botName"},"botAlias":{"location":"uri","locationName":"botAlias"},"userId":{"location":"uri","locationName":"userId"}}},"output":{"type":"structure","members":{"recentIntentSummaryView":{"type":"list","member":{"type":"structure","required":["dialogActionType"],"members":{"intentName":{},"slots":{"shape":"Sc"},"confirmationStatus":{},"dialogActionType":{},"fulfillmentState":{},"slotToElicit":{}}}},"sessionAttributes":{"shape":"Sc"},"sessionId":{},"dialogAction":{"shape":"Sg"}}}},"PostContent":{"http":{"requestUri":"/bot/{botName}/alias/{botAlias}/user/{userId}/content"},"input":{"type":"structure","required":["botName","botAlias","userId","contentType","inputStream"],"members":{"botName":{"location":"uri","locationName":"botName"},"botAlias":{"location":"uri","locationName":"botAlias"},"userId":{"location":"uri","locationName":"userId"},"sessionAttributes":{"shape":"Sk","jsonvalue":true,"location":"header","locationName":"x-amz-lex-session-attributes"},"requestAttributes":{"shape":"Sk","jsonvalue":true,"location":"header","locationName":"x-amz-lex-request-attributes"},"contentType":{"location":"header","locationName":"Content-Type"},"accept":{"location":"header","locationName":"Accept"},"inputStream":{"shape":"Sn"}},"payload":"inputStream"},"output":{"type":"structure","members":{"contentType":{"location":"header","locationName":"Content-Type"},"intentName":{"location":"header","locationName":"x-amz-lex-intent-name"},"slots":{"jsonvalue":true,"location":"header","locationName":"x-amz-lex-slots"},"sessionAttributes":{"jsonvalue":true,"location":"header","locationName":"x-amz-lex-session-attributes"},"message":{"shape":"Sh","location":"header","locationName":"x-amz-lex-message"},"messageFormat":{"location":"header","locationName":"x-amz-lex-message-format"},"dialogState":{"location":"header","locationName":"x-amz-lex-dialog-state"},"slotToElicit":{"location":"header","locationName":"x-amz-lex-slot-to-elicit"},"inputTranscript":{"location":"header","locationName":"x-amz-lex-input-transcript"},"audioStream":{"shape":"Sn"}},"payload":"audioStream"},"authtype":"v4-unsigned-body"},"PostText":{"http":{"requestUri":"/bot/{botName}/alias/{botAlias}/user/{userId}/text"},"input":{"type":"structure","required":["botName","botAlias","userId","inputText"],"members":{"botName":{"location":"uri","locationName":"botName"},"botAlias":{"location":"uri","locationName":"botAlias"},"userId":{"location":"uri","locationName":"userId"},"sessionAttributes":{"shape":"Sc"},"requestAttributes":{"shape":"Sc"},"inputText":{"shape":"Sh"}}},"output":{"type":"structure","members":{"intentName":{},"slots":{"shape":"Sc"},"sessionAttributes":{"shape":"Sc"},"message":{"shape":"Sh"},"messageFormat":{},"dialogState":{},"slotToElicit":{},"responseCard":{"type":"structure","members":{"version":{},"contentType":{},"genericAttachments":{"type":"list","member":{"type":"structure","members":{"title":{},"subTitle":{},"attachmentLinkUrl":{},"imageUrl":{},"buttons":{"type":"list","member":{"type":"structure","required":["text","value"],"members":{"text":{},"value":{}}}}}}}}}}}},"PutSession":{"http":{"requestUri":"/bot/{botName}/alias/{botAlias}/user/{userId}/session"},"input":{"type":"structure","required":["botName","botAlias","userId"],"members":{"botName":{"location":"uri","locationName":"botName"},"botAlias":{"location":"uri","locationName":"botAlias"},"userId":{"location":"uri","locationName":"userId"},"sessionAttributes":{"shape":"Sc"},"dialogAction":{"shape":"Sg"},"accept":{"location":"header","locationName":"Accept"}}},"output":{"type":"structure","members":{"contentType":{"location":"header","locationName":"Content-Type"},"intentName":{"location":"header","locationName":"x-amz-lex-intent-name"},"slots":{"jsonvalue":true,"location":"header","locationName":"x-amz-lex-slots"},"sessionAttributes":{"jsonvalue":true,"location":"header","locationName":"x-amz-lex-session-attributes"},"message":{"shape":"Sh","location":"header","locationName":"x-amz-lex-message"},"messageFormat":{"location":"header","locationName":"x-amz-lex-message-format"},"dialogState":{"location":"header","locationName":"x-amz-lex-dialog-state"},"slotToElicit":{"location":"header","locationName":"x-amz-lex-slot-to-elicit"},"audioStream":{"shape":"Sn"},"sessionId":{"location":"header","locationName":"x-amz-lex-session-id"}},"payload":"audioStream"}}},"shapes":{"Sc":{"type":"map","key":{},"value":{},"sensitive":true},"Sg":{"type":"structure","required":["type"],"members":{"type":{},"intentName":{},"slots":{"shape":"Sc"},"slotToElicit":{},"fulfillmentState":{},"message":{"shape":"Sh"},"messageFormat":{}}},"Sh":{"type":"string","sensitive":true},"Sk":{"type":"string","sensitive":true},"Sn":{"type":"blob","streaming":true}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.paginators.json": /*!**************************************************************************!*\ !*** ./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.paginators.json ***! \**************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{}} /***/ }), /***/ "./node_modules/aws-sdk/apis/s3-2006-03-01.min.json": /*!**********************************************************!*\ !*** ./node_modules/aws-sdk/apis/s3-2006-03-01.min.json ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2006-03-01","checksumFormat":"md5","endpointPrefix":"s3","globalEndpoint":"s3.amazonaws.com","protocol":"rest-xml","serviceAbbreviation":"Amazon S3","serviceFullName":"Amazon Simple Storage Service","serviceId":"S3","signatureVersion":"s3","uid":"s3-2006-03-01"},"operations":{"AbortMultipartUpload":{"http":{"method":"DELETE","requestUri":"/{Bucket}/{Key+}","responseCode":204},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"CompleteMultipartUpload":{"http":{"requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MultipartUpload":{"locationName":"CompleteMultipartUpload","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"Parts":{"locationName":"Part","type":"list","member":{"type":"structure","members":{"ETag":{},"PartNumber":{"type":"integer"}}},"flattened":true}}},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"MultipartUpload"},"output":{"type":"structure","members":{"Location":{},"Bucket":{},"Key":{},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"ETag":{},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"CopyObject":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","CopySource","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"CopySource":{"location":"header","locationName":"x-amz-copy-source"},"CopySourceIfMatch":{"location":"header","locationName":"x-amz-copy-source-if-match"},"CopySourceIfModifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-modified-since","type":"timestamp"},"CopySourceIfNoneMatch":{"location":"header","locationName":"x-amz-copy-source-if-none-match"},"CopySourceIfUnmodifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-unmodified-since","type":"timestamp"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"MetadataDirective":{"location":"header","locationName":"x-amz-metadata-directive"},"TaggingDirective":{"location":"header","locationName":"x-amz-tagging-directive"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"CopySourceSSECustomerAlgorithm":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm"},"CopySourceSSECustomerKey":{"shape":"S1d","location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key"},"CopySourceSSECustomerKeyMD5":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"Tagging":{"location":"header","locationName":"x-amz-tagging"},"ObjectLockMode":{"location":"header","locationName":"x-amz-object-lock-mode"},"ObjectLockRetainUntilDate":{"shape":"S1h","location":"header","locationName":"x-amz-object-lock-retain-until-date"},"ObjectLockLegalHoldStatus":{"location":"header","locationName":"x-amz-object-lock-legal-hold"}}},"output":{"type":"structure","members":{"CopyObjectResult":{"type":"structure","members":{"ETag":{},"LastModified":{"type":"timestamp"}}},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"CopySourceVersionId":{"location":"header","locationName":"x-amz-copy-source-version-id"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"CopyObjectResult"},"alias":"PutObjectCopy"},"CreateBucket":{"http":{"method":"PUT","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CreateBucketConfiguration":{"locationName":"CreateBucketConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"LocationConstraint":{}}},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"ObjectLockEnabledForBucket":{"location":"header","locationName":"x-amz-bucket-object-lock-enabled","type":"boolean"}},"payload":"CreateBucketConfiguration"},"output":{"type":"structure","members":{"Location":{"location":"header","locationName":"Location"}}},"alias":"PutBucket"},"CreateMultipartUpload":{"http":{"requestUri":"/{Bucket}/{Key+}?uploads"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"Tagging":{"location":"header","locationName":"x-amz-tagging"},"ObjectLockMode":{"location":"header","locationName":"x-amz-object-lock-mode"},"ObjectLockRetainUntilDate":{"shape":"S1h","location":"header","locationName":"x-amz-object-lock-retain-until-date"},"ObjectLockLegalHoldStatus":{"location":"header","locationName":"x-amz-object-lock-legal-hold"}}},"output":{"type":"structure","members":{"AbortDate":{"location":"header","locationName":"x-amz-abort-date","type":"timestamp"},"AbortRuleId":{"location":"header","locationName":"x-amz-abort-rule-id"},"Bucket":{"locationName":"Bucket"},"Key":{},"UploadId":{},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}},"alias":"InitiateMultipartUpload"},"DeleteBucket":{"http":{"method":"DELETE","requestUri":"/{Bucket}","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketAnalyticsConfiguration":{"http":{"method":"DELETE","requestUri":"/{Bucket}?analytics","responseCode":204},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}}},"DeleteBucketCors":{"http":{"method":"DELETE","requestUri":"/{Bucket}?cors","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketEncryption":{"http":{"method":"DELETE","requestUri":"/{Bucket}?encryption","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketInventoryConfiguration":{"http":{"method":"DELETE","requestUri":"/{Bucket}?inventory","responseCode":204},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}}},"DeleteBucketLifecycle":{"http":{"method":"DELETE","requestUri":"/{Bucket}?lifecycle","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketMetricsConfiguration":{"http":{"method":"DELETE","requestUri":"/{Bucket}?metrics","responseCode":204},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}}},"DeleteBucketPolicy":{"http":{"method":"DELETE","requestUri":"/{Bucket}?policy","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketReplication":{"http":{"method":"DELETE","requestUri":"/{Bucket}?replication","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketTagging":{"http":{"method":"DELETE","requestUri":"/{Bucket}?tagging","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteBucketWebsite":{"http":{"method":"DELETE","requestUri":"/{Bucket}?website","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"DeleteObject":{"http":{"method":"DELETE","requestUri":"/{Bucket}/{Key+}","responseCode":204},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MFA":{"location":"header","locationName":"x-amz-mfa"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"BypassGovernanceRetention":{"location":"header","locationName":"x-amz-bypass-governance-retention","type":"boolean"}}},"output":{"type":"structure","members":{"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"DeleteObjectTagging":{"http":{"method":"DELETE","requestUri":"/{Bucket}/{Key+}?tagging","responseCode":204},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"}}},"output":{"type":"structure","members":{"VersionId":{"location":"header","locationName":"x-amz-version-id"}}}},"DeleteObjects":{"http":{"requestUri":"/{Bucket}?delete"},"input":{"type":"structure","required":["Bucket","Delete"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delete":{"locationName":"Delete","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Objects"],"members":{"Objects":{"locationName":"Object","type":"list","member":{"type":"structure","required":["Key"],"members":{"Key":{},"VersionId":{}}},"flattened":true},"Quiet":{"type":"boolean"}}},"MFA":{"location":"header","locationName":"x-amz-mfa"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"BypassGovernanceRetention":{"location":"header","locationName":"x-amz-bypass-governance-retention","type":"boolean"}},"payload":"Delete"},"output":{"type":"structure","members":{"Deleted":{"type":"list","member":{"type":"structure","members":{"Key":{},"VersionId":{},"DeleteMarker":{"type":"boolean"},"DeleteMarkerVersionId":{}}},"flattened":true},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"Errors":{"locationName":"Error","type":"list","member":{"type":"structure","members":{"Key":{},"VersionId":{},"Code":{},"Message":{}}},"flattened":true}}},"alias":"DeleteMultipleObjects"},"DeletePublicAccessBlock":{"http":{"method":"DELETE","requestUri":"/{Bucket}?publicAccessBlock","responseCode":204},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"GetBucketAccelerateConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?accelerate"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Status":{}}}},"GetBucketAcl":{"http":{"method":"GET","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Owner":{"shape":"S32"},"Grants":{"shape":"S35","locationName":"AccessControlList"}}}},"GetBucketAnalyticsConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?analytics"},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}},"output":{"type":"structure","members":{"AnalyticsConfiguration":{"shape":"S3e"}},"payload":"AnalyticsConfiguration"}},"GetBucketCors":{"http":{"method":"GET","requestUri":"/{Bucket}?cors"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"CORSRules":{"shape":"S3u","locationName":"CORSRule"}}}},"GetBucketEncryption":{"http":{"method":"GET","requestUri":"/{Bucket}?encryption"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"ServerSideEncryptionConfiguration":{"shape":"S47"}},"payload":"ServerSideEncryptionConfiguration"}},"GetBucketInventoryConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?inventory"},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}},"output":{"type":"structure","members":{"InventoryConfiguration":{"shape":"S4d"}},"payload":"InventoryConfiguration"}},"GetBucketLifecycle":{"http":{"method":"GET","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Rules":{"shape":"S4t","locationName":"Rule"}}},"deprecated":true},"GetBucketLifecycleConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Rules":{"shape":"S58","locationName":"Rule"}}}},"GetBucketLocation":{"http":{"method":"GET","requestUri":"/{Bucket}?location"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"LocationConstraint":{}}}},"GetBucketLogging":{"http":{"method":"GET","requestUri":"/{Bucket}?logging"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"LoggingEnabled":{"shape":"S5i"}}}},"GetBucketMetricsConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?metrics"},"input":{"type":"structure","required":["Bucket","Id"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"}}},"output":{"type":"structure","members":{"MetricsConfiguration":{"shape":"S5q"}},"payload":"MetricsConfiguration"}},"GetBucketNotification":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S5t"},"output":{"shape":"S5u"},"deprecated":true},"GetBucketNotificationConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?notification"},"input":{"shape":"S5t"},"output":{"shape":"S65"}},"GetBucketPolicy":{"http":{"method":"GET","requestUri":"/{Bucket}?policy"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Policy":{}},"payload":"Policy"}},"GetBucketPolicyStatus":{"http":{"method":"GET","requestUri":"/{Bucket}?policyStatus"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"PolicyStatus":{"type":"structure","members":{"IsPublic":{"locationName":"IsPublic","type":"boolean"}}}},"payload":"PolicyStatus"}},"GetBucketReplication":{"http":{"method":"GET","requestUri":"/{Bucket}?replication"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"ReplicationConfiguration":{"shape":"S6s"}},"payload":"ReplicationConfiguration"}},"GetBucketRequestPayment":{"http":{"method":"GET","requestUri":"/{Bucket}?requestPayment"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Payer":{}}}},"GetBucketTagging":{"http":{"method":"GET","requestUri":"/{Bucket}?tagging"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","required":["TagSet"],"members":{"TagSet":{"shape":"S3k"}}}},"GetBucketVersioning":{"http":{"method":"GET","requestUri":"/{Bucket}?versioning"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"Status":{},"MFADelete":{"locationName":"MfaDelete"}}}},"GetBucketWebsite":{"http":{"method":"GET","requestUri":"/{Bucket}?website"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"RedirectAllRequestsTo":{"shape":"S7l"},"IndexDocument":{"shape":"S7o"},"ErrorDocument":{"shape":"S7q"},"RoutingRules":{"shape":"S7r"}}}},"GetObject":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"IfMatch":{"location":"header","locationName":"If-Match"},"IfModifiedSince":{"location":"header","locationName":"If-Modified-Since","type":"timestamp"},"IfNoneMatch":{"location":"header","locationName":"If-None-Match"},"IfUnmodifiedSince":{"location":"header","locationName":"If-Unmodified-Since","type":"timestamp"},"Key":{"location":"uri","locationName":"Key"},"Range":{"location":"header","locationName":"Range"},"ResponseCacheControl":{"location":"querystring","locationName":"response-cache-control"},"ResponseContentDisposition":{"location":"querystring","locationName":"response-content-disposition"},"ResponseContentEncoding":{"location":"querystring","locationName":"response-content-encoding"},"ResponseContentLanguage":{"location":"querystring","locationName":"response-content-language"},"ResponseContentType":{"location":"querystring","locationName":"response-content-type"},"ResponseExpires":{"location":"querystring","locationName":"response-expires","type":"timestamp"},"VersionId":{"location":"querystring","locationName":"versionId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"}}},"output":{"type":"structure","members":{"Body":{"streaming":true,"type":"blob"},"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"AcceptRanges":{"location":"header","locationName":"accept-ranges"},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"Restore":{"location":"header","locationName":"x-amz-restore"},"LastModified":{"location":"header","locationName":"Last-Modified","type":"timestamp"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ETag":{"location":"header","locationName":"ETag"},"MissingMeta":{"location":"header","locationName":"x-amz-missing-meta","type":"integer"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentRange":{"location":"header","locationName":"Content-Range"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"ReplicationStatus":{"location":"header","locationName":"x-amz-replication-status"},"PartsCount":{"location":"header","locationName":"x-amz-mp-parts-count","type":"integer"},"TagCount":{"location":"header","locationName":"x-amz-tagging-count","type":"integer"},"ObjectLockMode":{"location":"header","locationName":"x-amz-object-lock-mode"},"ObjectLockRetainUntilDate":{"shape":"S1h","location":"header","locationName":"x-amz-object-lock-retain-until-date"},"ObjectLockLegalHoldStatus":{"location":"header","locationName":"x-amz-object-lock-legal-hold"}},"payload":"Body"}},"GetObjectAcl":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?acl"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Owner":{"shape":"S32"},"Grants":{"shape":"S35","locationName":"AccessControlList"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"GetObjectLegalHold":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?legal-hold"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"LegalHold":{"shape":"S8q"}},"payload":"LegalHold"}},"GetObjectLockConfiguration":{"http":{"method":"GET","requestUri":"/{Bucket}?object-lock"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"ObjectLockConfiguration":{"shape":"S8t"}},"payload":"ObjectLockConfiguration"}},"GetObjectRetention":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?retention"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Retention":{"shape":"S91"}},"payload":"Retention"}},"GetObjectTagging":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?tagging"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"}}},"output":{"type":"structure","required":["TagSet"],"members":{"VersionId":{"location":"header","locationName":"x-amz-version-id"},"TagSet":{"shape":"S3k"}}}},"GetObjectTorrent":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}?torrent"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"Body":{"streaming":true,"type":"blob"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"Body"}},"GetPublicAccessBlock":{"http":{"method":"GET","requestUri":"/{Bucket}?publicAccessBlock"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"output":{"type":"structure","members":{"PublicAccessBlockConfiguration":{"shape":"S98"}},"payload":"PublicAccessBlockConfiguration"}},"HeadBucket":{"http":{"method":"HEAD","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}}},"HeadObject":{"http":{"method":"HEAD","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"IfMatch":{"location":"header","locationName":"If-Match"},"IfModifiedSince":{"location":"header","locationName":"If-Modified-Since","type":"timestamp"},"IfNoneMatch":{"location":"header","locationName":"If-None-Match"},"IfUnmodifiedSince":{"location":"header","locationName":"If-Unmodified-Since","type":"timestamp"},"Key":{"location":"uri","locationName":"Key"},"Range":{"location":"header","locationName":"Range"},"VersionId":{"location":"querystring","locationName":"versionId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"}}},"output":{"type":"structure","members":{"DeleteMarker":{"location":"header","locationName":"x-amz-delete-marker","type":"boolean"},"AcceptRanges":{"location":"header","locationName":"accept-ranges"},"Expiration":{"location":"header","locationName":"x-amz-expiration"},"Restore":{"location":"header","locationName":"x-amz-restore"},"LastModified":{"location":"header","locationName":"Last-Modified","type":"timestamp"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ETag":{"location":"header","locationName":"ETag"},"MissingMeta":{"location":"header","locationName":"x-amz-missing-meta","type":"integer"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"ReplicationStatus":{"location":"header","locationName":"x-amz-replication-status"},"PartsCount":{"location":"header","locationName":"x-amz-mp-parts-count","type":"integer"},"ObjectLockMode":{"location":"header","locationName":"x-amz-object-lock-mode"},"ObjectLockRetainUntilDate":{"shape":"S1h","location":"header","locationName":"x-amz-object-lock-retain-until-date"},"ObjectLockLegalHoldStatus":{"location":"header","locationName":"x-amz-object-lock-legal-hold"}}}},"ListBucketAnalyticsConfigurations":{"http":{"method":"GET","requestUri":"/{Bucket}?analytics"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContinuationToken":{"location":"querystring","locationName":"continuation-token"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"ContinuationToken":{},"NextContinuationToken":{},"AnalyticsConfigurationList":{"locationName":"AnalyticsConfiguration","type":"list","member":{"shape":"S3e"},"flattened":true}}}},"ListBucketInventoryConfigurations":{"http":{"method":"GET","requestUri":"/{Bucket}?inventory"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContinuationToken":{"location":"querystring","locationName":"continuation-token"}}},"output":{"type":"structure","members":{"ContinuationToken":{},"InventoryConfigurationList":{"locationName":"InventoryConfiguration","type":"list","member":{"shape":"S4d"},"flattened":true},"IsTruncated":{"type":"boolean"},"NextContinuationToken":{}}}},"ListBucketMetricsConfigurations":{"http":{"method":"GET","requestUri":"/{Bucket}?metrics"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContinuationToken":{"location":"querystring","locationName":"continuation-token"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"ContinuationToken":{},"NextContinuationToken":{},"MetricsConfigurationList":{"locationName":"MetricsConfiguration","type":"list","member":{"shape":"S5q"},"flattened":true}}}},"ListBuckets":{"http":{"method":"GET"},"output":{"type":"structure","members":{"Buckets":{"type":"list","member":{"locationName":"Bucket","type":"structure","members":{"Name":{},"CreationDate":{"type":"timestamp"}}}},"Owner":{"shape":"S32"}}},"alias":"GetService"},"ListMultipartUploads":{"http":{"method":"GET","requestUri":"/{Bucket}?uploads"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"KeyMarker":{"location":"querystring","locationName":"key-marker"},"MaxUploads":{"location":"querystring","locationName":"max-uploads","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"UploadIdMarker":{"location":"querystring","locationName":"upload-id-marker"}}},"output":{"type":"structure","members":{"Bucket":{},"KeyMarker":{},"UploadIdMarker":{},"NextKeyMarker":{},"Prefix":{},"Delimiter":{},"NextUploadIdMarker":{},"MaxUploads":{"type":"integer"},"IsTruncated":{"type":"boolean"},"Uploads":{"locationName":"Upload","type":"list","member":{"type":"structure","members":{"UploadId":{},"Key":{},"Initiated":{"type":"timestamp"},"StorageClass":{},"Owner":{"shape":"S32"},"Initiator":{"shape":"Sa5"}}},"flattened":true},"CommonPrefixes":{"shape":"Sa6"},"EncodingType":{}}}},"ListObjectVersions":{"http":{"method":"GET","requestUri":"/{Bucket}?versions"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"KeyMarker":{"location":"querystring","locationName":"key-marker"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"VersionIdMarker":{"location":"querystring","locationName":"version-id-marker"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"KeyMarker":{},"VersionIdMarker":{},"NextKeyMarker":{},"NextVersionIdMarker":{},"Versions":{"locationName":"Version","type":"list","member":{"type":"structure","members":{"ETag":{},"Size":{"type":"integer"},"StorageClass":{},"Key":{},"VersionId":{},"IsLatest":{"type":"boolean"},"LastModified":{"type":"timestamp"},"Owner":{"shape":"S32"}}},"flattened":true},"DeleteMarkers":{"locationName":"DeleteMarker","type":"list","member":{"type":"structure","members":{"Owner":{"shape":"S32"},"Key":{},"VersionId":{},"IsLatest":{"type":"boolean"},"LastModified":{"type":"timestamp"}}},"flattened":true},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"Sa6"},"EncodingType":{}}},"alias":"GetBucketObjectVersions"},"ListObjects":{"http":{"method":"GET","requestUri":"/{Bucket}"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"Marker":{"location":"querystring","locationName":"marker"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"Marker":{},"NextMarker":{},"Contents":{"shape":"Sao"},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"Sa6"},"EncodingType":{}}},"alias":"GetBucket"},"ListObjectsV2":{"http":{"method":"GET","requestUri":"/{Bucket}?list-type=2"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Delimiter":{"location":"querystring","locationName":"delimiter"},"EncodingType":{"location":"querystring","locationName":"encoding-type"},"MaxKeys":{"location":"querystring","locationName":"max-keys","type":"integer"},"Prefix":{"location":"querystring","locationName":"prefix"},"ContinuationToken":{"location":"querystring","locationName":"continuation-token"},"FetchOwner":{"location":"querystring","locationName":"fetch-owner","type":"boolean"},"StartAfter":{"location":"querystring","locationName":"start-after"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"IsTruncated":{"type":"boolean"},"Contents":{"shape":"Sao"},"Name":{},"Prefix":{},"Delimiter":{},"MaxKeys":{"type":"integer"},"CommonPrefixes":{"shape":"Sa6"},"EncodingType":{},"KeyCount":{"type":"integer"},"ContinuationToken":{},"NextContinuationToken":{},"StartAfter":{}}}},"ListParts":{"http":{"method":"GET","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"MaxParts":{"location":"querystring","locationName":"max-parts","type":"integer"},"PartNumberMarker":{"location":"querystring","locationName":"part-number-marker","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"AbortDate":{"location":"header","locationName":"x-amz-abort-date","type":"timestamp"},"AbortRuleId":{"location":"header","locationName":"x-amz-abort-rule-id"},"Bucket":{},"Key":{},"UploadId":{},"PartNumberMarker":{"type":"integer"},"NextPartNumberMarker":{"type":"integer"},"MaxParts":{"type":"integer"},"IsTruncated":{"type":"boolean"},"Parts":{"locationName":"Part","type":"list","member":{"type":"structure","members":{"PartNumber":{"type":"integer"},"LastModified":{"type":"timestamp"},"ETag":{},"Size":{"type":"integer"}}},"flattened":true},"Initiator":{"shape":"Sa5"},"Owner":{"shape":"S32"},"StorageClass":{},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutBucketAccelerateConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?accelerate"},"input":{"type":"structure","required":["Bucket","AccelerateConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"AccelerateConfiguration":{"locationName":"AccelerateConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"Status":{}}}},"payload":"AccelerateConfiguration"}},"PutBucketAcl":{"http":{"method":"PUT","requestUri":"/{Bucket}?acl"},"input":{"type":"structure","required":["Bucket"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"AccessControlPolicy":{"shape":"Sb6","locationName":"AccessControlPolicy","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"}},"payload":"AccessControlPolicy"}},"PutBucketAnalyticsConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?analytics"},"input":{"type":"structure","required":["Bucket","Id","AnalyticsConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"},"AnalyticsConfiguration":{"shape":"S3e","locationName":"AnalyticsConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"AnalyticsConfiguration"}},"PutBucketCors":{"http":{"method":"PUT","requestUri":"/{Bucket}?cors"},"input":{"type":"structure","required":["Bucket","CORSConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"CORSConfiguration":{"locationName":"CORSConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["CORSRules"],"members":{"CORSRules":{"shape":"S3u","locationName":"CORSRule"}}},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"CORSConfiguration"}},"PutBucketEncryption":{"http":{"method":"PUT","requestUri":"/{Bucket}?encryption"},"input":{"type":"structure","required":["Bucket","ServerSideEncryptionConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ServerSideEncryptionConfiguration":{"shape":"S47","locationName":"ServerSideEncryptionConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"ServerSideEncryptionConfiguration"}},"PutBucketInventoryConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?inventory"},"input":{"type":"structure","required":["Bucket","Id","InventoryConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"},"InventoryConfiguration":{"shape":"S4d","locationName":"InventoryConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"InventoryConfiguration"}},"PutBucketLifecycle":{"http":{"method":"PUT","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"LifecycleConfiguration":{"locationName":"LifecycleConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Rules"],"members":{"Rules":{"shape":"S4t","locationName":"Rule"}}}},"payload":"LifecycleConfiguration"},"deprecated":true},"PutBucketLifecycleConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?lifecycle"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"LifecycleConfiguration":{"locationName":"LifecycleConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Rules"],"members":{"Rules":{"shape":"S58","locationName":"Rule"}}}},"payload":"LifecycleConfiguration"}},"PutBucketLogging":{"http":{"method":"PUT","requestUri":"/{Bucket}?logging"},"input":{"type":"structure","required":["Bucket","BucketLoggingStatus"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"BucketLoggingStatus":{"locationName":"BucketLoggingStatus","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"LoggingEnabled":{"shape":"S5i"}}},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"BucketLoggingStatus"}},"PutBucketMetricsConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?metrics"},"input":{"type":"structure","required":["Bucket","Id","MetricsConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Id":{"location":"querystring","locationName":"id"},"MetricsConfiguration":{"shape":"S5q","locationName":"MetricsConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"MetricsConfiguration"}},"PutBucketNotification":{"http":{"method":"PUT","requestUri":"/{Bucket}?notification"},"input":{"type":"structure","required":["Bucket","NotificationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"NotificationConfiguration":{"shape":"S5u","locationName":"NotificationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"NotificationConfiguration"},"deprecated":true},"PutBucketNotificationConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?notification"},"input":{"type":"structure","required":["Bucket","NotificationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"NotificationConfiguration":{"shape":"S65","locationName":"NotificationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"NotificationConfiguration"}},"PutBucketPolicy":{"http":{"method":"PUT","requestUri":"/{Bucket}?policy"},"input":{"type":"structure","required":["Bucket","Policy"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ConfirmRemoveSelfBucketAccess":{"location":"header","locationName":"x-amz-confirm-remove-self-bucket-access","type":"boolean"},"Policy":{}},"payload":"Policy"}},"PutBucketReplication":{"http":{"method":"PUT","requestUri":"/{Bucket}?replication"},"input":{"type":"structure","required":["Bucket","ReplicationConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ReplicationConfiguration":{"shape":"S6s","locationName":"ReplicationConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"Token":{"location":"header","locationName":"x-amz-bucket-object-lock-token"}},"payload":"ReplicationConfiguration"}},"PutBucketRequestPayment":{"http":{"method":"PUT","requestUri":"/{Bucket}?requestPayment"},"input":{"type":"structure","required":["Bucket","RequestPaymentConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"RequestPaymentConfiguration":{"locationName":"RequestPaymentConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Payer"],"members":{"Payer":{}}}},"payload":"RequestPaymentConfiguration"}},"PutBucketTagging":{"http":{"method":"PUT","requestUri":"/{Bucket}?tagging"},"input":{"type":"structure","required":["Bucket","Tagging"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Tagging":{"shape":"Sbt","locationName":"Tagging","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"Tagging"}},"PutBucketVersioning":{"http":{"method":"PUT","requestUri":"/{Bucket}?versioning"},"input":{"type":"structure","required":["Bucket","VersioningConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"MFA":{"location":"header","locationName":"x-amz-mfa"},"VersioningConfiguration":{"locationName":"VersioningConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"MFADelete":{"locationName":"MfaDelete"},"Status":{}}}},"payload":"VersioningConfiguration"}},"PutBucketWebsite":{"http":{"method":"PUT","requestUri":"/{Bucket}?website"},"input":{"type":"structure","required":["Bucket","WebsiteConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"WebsiteConfiguration":{"locationName":"WebsiteConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"ErrorDocument":{"shape":"S7q"},"IndexDocument":{"shape":"S7o"},"RedirectAllRequestsTo":{"shape":"S7l"},"RoutingRules":{"shape":"S7r"}}}},"payload":"WebsiteConfiguration"}},"PutObject":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"Body":{"streaming":true,"type":"blob"},"Bucket":{"location":"uri","locationName":"Bucket"},"CacheControl":{"location":"header","locationName":"Cache-Control"},"ContentDisposition":{"location":"header","locationName":"Content-Disposition"},"ContentEncoding":{"location":"header","locationName":"Content-Encoding"},"ContentLanguage":{"location":"header","locationName":"Content-Language"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"ContentType":{"location":"header","locationName":"Content-Type"},"Expires":{"location":"header","locationName":"Expires","type":"timestamp"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"Metadata":{"shape":"S11","location":"headers","locationName":"x-amz-meta-"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"StorageClass":{"location":"header","locationName":"x-amz-storage-class"},"WebsiteRedirectLocation":{"location":"header","locationName":"x-amz-website-redirect-location"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"Tagging":{"location":"header","locationName":"x-amz-tagging"},"ObjectLockMode":{"location":"header","locationName":"x-amz-object-lock-mode"},"ObjectLockRetainUntilDate":{"shape":"S1h","location":"header","locationName":"x-amz-object-lock-retain-until-date"},"ObjectLockLegalHoldStatus":{"location":"header","locationName":"x-amz-object-lock-legal-hold"}},"payload":"Body"},"output":{"type":"structure","members":{"Expiration":{"location":"header","locationName":"x-amz-expiration"},"ETag":{"location":"header","locationName":"ETag"},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"VersionId":{"location":"header","locationName":"x-amz-version-id"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"SSEKMSEncryptionContext":{"shape":"S1b","location":"header","locationName":"x-amz-server-side-encryption-context"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectAcl":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}?acl"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"ACL":{"location":"header","locationName":"x-amz-acl"},"AccessControlPolicy":{"shape":"Sb6","locationName":"AccessControlPolicy","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"GrantFullControl":{"location":"header","locationName":"x-amz-grant-full-control"},"GrantRead":{"location":"header","locationName":"x-amz-grant-read"},"GrantReadACP":{"location":"header","locationName":"x-amz-grant-read-acp"},"GrantWrite":{"location":"header","locationName":"x-amz-grant-write"},"GrantWriteACP":{"location":"header","locationName":"x-amz-grant-write-acp"},"Key":{"location":"uri","locationName":"Key"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"VersionId":{"location":"querystring","locationName":"versionId"}},"payload":"AccessControlPolicy"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectLegalHold":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}?legal-hold"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"LegalHold":{"shape":"S8q","locationName":"LegalHold","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"VersionId":{"location":"querystring","locationName":"versionId"},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"LegalHold"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectLockConfiguration":{"http":{"method":"PUT","requestUri":"/{Bucket}?object-lock"},"input":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ObjectLockConfiguration":{"shape":"S8t","locationName":"ObjectLockConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"Token":{"location":"header","locationName":"x-amz-bucket-object-lock-token"},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"ObjectLockConfiguration"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectRetention":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}?retention"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"Retention":{"shape":"S91","locationName":"Retention","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"},"VersionId":{"location":"querystring","locationName":"versionId"},"BypassGovernanceRetention":{"location":"header","locationName":"x-amz-bypass-governance-retention","type":"boolean"},"ContentMD5":{"location":"header","locationName":"Content-MD5"}},"payload":"Retention"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"PutObjectTagging":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}?tagging"},"input":{"type":"structure","required":["Bucket","Key","Tagging"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Tagging":{"shape":"Sbt","locationName":"Tagging","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"Tagging"},"output":{"type":"structure","members":{"VersionId":{"location":"header","locationName":"x-amz-version-id"}}}},"PutPublicAccessBlock":{"http":{"method":"PUT","requestUri":"/{Bucket}?publicAccessBlock"},"input":{"type":"structure","required":["Bucket","PublicAccessBlockConfiguration"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"PublicAccessBlockConfiguration":{"shape":"S98","locationName":"PublicAccessBlockConfiguration","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}}},"payload":"PublicAccessBlockConfiguration"}},"RestoreObject":{"http":{"requestUri":"/{Bucket}/{Key+}?restore"},"input":{"type":"structure","required":["Bucket","Key"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"VersionId":{"location":"querystring","locationName":"versionId"},"RestoreRequest":{"locationName":"RestoreRequest","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","members":{"Days":{"type":"integer"},"GlacierJobParameters":{"type":"structure","required":["Tier"],"members":{"Tier":{}}},"Type":{},"Tier":{},"Description":{},"SelectParameters":{"type":"structure","required":["InputSerialization","ExpressionType","Expression","OutputSerialization"],"members":{"InputSerialization":{"shape":"Scj"},"ExpressionType":{},"Expression":{},"OutputSerialization":{"shape":"Scy"}}},"OutputLocation":{"type":"structure","members":{"S3":{"type":"structure","required":["BucketName","Prefix"],"members":{"BucketName":{},"Prefix":{},"Encryption":{"type":"structure","required":["EncryptionType"],"members":{"EncryptionType":{},"KMSKeyId":{"shape":"Sj"},"KMSContext":{}}},"CannedACL":{},"AccessControlList":{"shape":"S35"},"Tagging":{"shape":"Sbt"},"UserMetadata":{"type":"list","member":{"locationName":"MetadataEntry","type":"structure","members":{"Name":{},"Value":{}}}},"StorageClass":{}}}}}}},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"RestoreRequest"},"output":{"type":"structure","members":{"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"},"RestoreOutputPath":{"location":"header","locationName":"x-amz-restore-output-path"}}},"alias":"PostObjectRestore"},"SelectObjectContent":{"http":{"requestUri":"/{Bucket}/{Key+}?select&select-type=2"},"input":{"locationName":"SelectObjectContentRequest","xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"},"type":"structure","required":["Bucket","Key","Expression","ExpressionType","InputSerialization","OutputSerialization"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"Key":{"location":"uri","locationName":"Key"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"Expression":{},"ExpressionType":{},"RequestProgress":{"type":"structure","members":{"Enabled":{"type":"boolean"}}},"InputSerialization":{"shape":"Scj"},"OutputSerialization":{"shape":"Scy"}}},"output":{"type":"structure","members":{"Payload":{"type":"structure","members":{"Records":{"type":"structure","members":{"Payload":{"eventpayload":true,"type":"blob"}},"event":true},"Stats":{"type":"structure","members":{"Details":{"eventpayload":true,"type":"structure","members":{"BytesScanned":{"type":"long"},"BytesProcessed":{"type":"long"},"BytesReturned":{"type":"long"}}}},"event":true},"Progress":{"type":"structure","members":{"Details":{"eventpayload":true,"type":"structure","members":{"BytesScanned":{"type":"long"},"BytesProcessed":{"type":"long"},"BytesReturned":{"type":"long"}}}},"event":true},"Cont":{"type":"structure","members":{},"event":true},"End":{"type":"structure","members":{},"event":true}},"eventstream":true}},"payload":"Payload"}},"UploadPart":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","Key","PartNumber","UploadId"],"members":{"Body":{"streaming":true,"type":"blob"},"Bucket":{"location":"uri","locationName":"Bucket"},"ContentLength":{"location":"header","locationName":"Content-Length","type":"long"},"ContentMD5":{"location":"header","locationName":"Content-MD5"},"Key":{"location":"uri","locationName":"Key"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}},"payload":"Body"},"output":{"type":"structure","members":{"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"ETag":{"location":"header","locationName":"ETag"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}}}},"UploadPartCopy":{"http":{"method":"PUT","requestUri":"/{Bucket}/{Key+}"},"input":{"type":"structure","required":["Bucket","CopySource","Key","PartNumber","UploadId"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"},"CopySource":{"location":"header","locationName":"x-amz-copy-source"},"CopySourceIfMatch":{"location":"header","locationName":"x-amz-copy-source-if-match"},"CopySourceIfModifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-modified-since","type":"timestamp"},"CopySourceIfNoneMatch":{"location":"header","locationName":"x-amz-copy-source-if-none-match"},"CopySourceIfUnmodifiedSince":{"location":"header","locationName":"x-amz-copy-source-if-unmodified-since","type":"timestamp"},"CopySourceRange":{"location":"header","locationName":"x-amz-copy-source-range"},"Key":{"location":"uri","locationName":"Key"},"PartNumber":{"location":"querystring","locationName":"partNumber","type":"integer"},"UploadId":{"location":"querystring","locationName":"uploadId"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKey":{"shape":"S19","location":"header","locationName":"x-amz-server-side-encryption-customer-key"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"CopySourceSSECustomerAlgorithm":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm"},"CopySourceSSECustomerKey":{"shape":"S1d","location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key"},"CopySourceSSECustomerKeyMD5":{"location":"header","locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5"},"RequestPayer":{"location":"header","locationName":"x-amz-request-payer"}}},"output":{"type":"structure","members":{"CopySourceVersionId":{"location":"header","locationName":"x-amz-copy-source-version-id"},"CopyPartResult":{"type":"structure","members":{"ETag":{},"LastModified":{"type":"timestamp"}}},"ServerSideEncryption":{"location":"header","locationName":"x-amz-server-side-encryption"},"SSECustomerAlgorithm":{"location":"header","locationName":"x-amz-server-side-encryption-customer-algorithm"},"SSECustomerKeyMD5":{"location":"header","locationName":"x-amz-server-side-encryption-customer-key-MD5"},"SSEKMSKeyId":{"shape":"Sj","location":"header","locationName":"x-amz-server-side-encryption-aws-kms-key-id"},"RequestCharged":{"location":"header","locationName":"x-amz-request-charged"}},"payload":"CopyPartResult"}}},"shapes":{"Sj":{"type":"string","sensitive":true},"S11":{"type":"map","key":{},"value":{}},"S19":{"type":"blob","sensitive":true},"S1b":{"type":"string","sensitive":true},"S1d":{"type":"blob","sensitive":true},"S1h":{"type":"timestamp","timestampFormat":"iso8601"},"S32":{"type":"structure","members":{"DisplayName":{},"ID":{}}},"S35":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S37"},"Permission":{}}}},"S37":{"type":"structure","required":["Type"],"members":{"DisplayName":{},"EmailAddress":{},"ID":{},"Type":{"locationName":"xsi:type","xmlAttribute":true},"URI":{}},"xmlNamespace":{"prefix":"xsi","uri":"http://www.w3.org/2001/XMLSchema-instance"}},"S3e":{"type":"structure","required":["Id","StorageClassAnalysis"],"members":{"Id":{},"Filter":{"type":"structure","members":{"Prefix":{},"Tag":{"shape":"S3h"},"And":{"type":"structure","members":{"Prefix":{},"Tags":{"shape":"S3k","flattened":true,"locationName":"Tag"}}}}},"StorageClassAnalysis":{"type":"structure","members":{"DataExport":{"type":"structure","required":["OutputSchemaVersion","Destination"],"members":{"OutputSchemaVersion":{},"Destination":{"type":"structure","required":["S3BucketDestination"],"members":{"S3BucketDestination":{"type":"structure","required":["Format","Bucket"],"members":{"Format":{},"BucketAccountId":{},"Bucket":{},"Prefix":{}}}}}}}}}}},"S3h":{"type":"structure","required":["Key","Value"],"members":{"Key":{},"Value":{}}},"S3k":{"type":"list","member":{"shape":"S3h","locationName":"Tag"}},"S3u":{"type":"list","member":{"type":"structure","required":["AllowedMethods","AllowedOrigins"],"members":{"AllowedHeaders":{"locationName":"AllowedHeader","type":"list","member":{},"flattened":true},"AllowedMethods":{"locationName":"AllowedMethod","type":"list","member":{},"flattened":true},"AllowedOrigins":{"locationName":"AllowedOrigin","type":"list","member":{},"flattened":true},"ExposeHeaders":{"locationName":"ExposeHeader","type":"list","member":{},"flattened":true},"MaxAgeSeconds":{"type":"integer"}}},"flattened":true},"S47":{"type":"structure","required":["Rules"],"members":{"Rules":{"locationName":"Rule","type":"list","member":{"type":"structure","members":{"ApplyServerSideEncryptionByDefault":{"type":"structure","required":["SSEAlgorithm"],"members":{"SSEAlgorithm":{},"KMSMasterKeyID":{"shape":"Sj"}}}}},"flattened":true}}},"S4d":{"type":"structure","required":["Destination","IsEnabled","Id","IncludedObjectVersions","Schedule"],"members":{"Destination":{"type":"structure","required":["S3BucketDestination"],"members":{"S3BucketDestination":{"type":"structure","required":["Bucket","Format"],"members":{"AccountId":{},"Bucket":{},"Format":{},"Prefix":{},"Encryption":{"type":"structure","members":{"SSES3":{"locationName":"SSE-S3","type":"structure","members":{}},"SSEKMS":{"locationName":"SSE-KMS","type":"structure","required":["KeyId"],"members":{"KeyId":{"shape":"Sj"}}}}}}}}},"IsEnabled":{"type":"boolean"},"Filter":{"type":"structure","required":["Prefix"],"members":{"Prefix":{}}},"Id":{},"IncludedObjectVersions":{},"OptionalFields":{"type":"list","member":{"locationName":"Field"}},"Schedule":{"type":"structure","required":["Frequency"],"members":{"Frequency":{}}}}},"S4t":{"type":"list","member":{"type":"structure","required":["Prefix","Status"],"members":{"Expiration":{"shape":"S4v"},"ID":{},"Prefix":{},"Status":{},"Transition":{"shape":"S50"},"NoncurrentVersionTransition":{"shape":"S52"},"NoncurrentVersionExpiration":{"shape":"S53"},"AbortIncompleteMultipartUpload":{"shape":"S54"}}},"flattened":true},"S4v":{"type":"structure","members":{"Date":{"shape":"S4w"},"Days":{"type":"integer"},"ExpiredObjectDeleteMarker":{"type":"boolean"}}},"S4w":{"type":"timestamp","timestampFormat":"iso8601"},"S50":{"type":"structure","members":{"Date":{"shape":"S4w"},"Days":{"type":"integer"},"StorageClass":{}}},"S52":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"},"StorageClass":{}}},"S53":{"type":"structure","members":{"NoncurrentDays":{"type":"integer"}}},"S54":{"type":"structure","members":{"DaysAfterInitiation":{"type":"integer"}}},"S58":{"type":"list","member":{"type":"structure","required":["Status"],"members":{"Expiration":{"shape":"S4v"},"ID":{},"Prefix":{"deprecated":true},"Filter":{"type":"structure","members":{"Prefix":{},"Tag":{"shape":"S3h"},"And":{"type":"structure","members":{"Prefix":{},"Tags":{"shape":"S3k","flattened":true,"locationName":"Tag"}}}}},"Status":{},"Transitions":{"locationName":"Transition","type":"list","member":{"shape":"S50"},"flattened":true},"NoncurrentVersionTransitions":{"locationName":"NoncurrentVersionTransition","type":"list","member":{"shape":"S52"},"flattened":true},"NoncurrentVersionExpiration":{"shape":"S53"},"AbortIncompleteMultipartUpload":{"shape":"S54"}}},"flattened":true},"S5i":{"type":"structure","required":["TargetBucket","TargetPrefix"],"members":{"TargetBucket":{},"TargetGrants":{"type":"list","member":{"locationName":"Grant","type":"structure","members":{"Grantee":{"shape":"S37"},"Permission":{}}}},"TargetPrefix":{}}},"S5q":{"type":"structure","required":["Id"],"members":{"Id":{},"Filter":{"type":"structure","members":{"Prefix":{},"Tag":{"shape":"S3h"},"And":{"type":"structure","members":{"Prefix":{},"Tags":{"shape":"S3k","flattened":true,"locationName":"Tag"}}}}}}},"S5t":{"type":"structure","required":["Bucket"],"members":{"Bucket":{"location":"uri","locationName":"Bucket"}}},"S5u":{"type":"structure","members":{"TopicConfiguration":{"type":"structure","members":{"Id":{},"Events":{"shape":"S5x","locationName":"Event"},"Event":{"deprecated":true},"Topic":{}}},"QueueConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S5x","locationName":"Event"},"Queue":{}}},"CloudFunctionConfiguration":{"type":"structure","members":{"Id":{},"Event":{"deprecated":true},"Events":{"shape":"S5x","locationName":"Event"},"CloudFunction":{},"InvocationRole":{}}}}},"S5x":{"type":"list","member":{},"flattened":true},"S65":{"type":"structure","members":{"TopicConfigurations":{"locationName":"TopicConfiguration","type":"list","member":{"type":"structure","required":["TopicArn","Events"],"members":{"Id":{},"TopicArn":{"locationName":"Topic"},"Events":{"shape":"S5x","locationName":"Event"},"Filter":{"shape":"S68"}}},"flattened":true},"QueueConfigurations":{"locationName":"QueueConfiguration","type":"list","member":{"type":"structure","required":["QueueArn","Events"],"members":{"Id":{},"QueueArn":{"locationName":"Queue"},"Events":{"shape":"S5x","locationName":"Event"},"Filter":{"shape":"S68"}}},"flattened":true},"LambdaFunctionConfigurations":{"locationName":"CloudFunctionConfiguration","type":"list","member":{"type":"structure","required":["LambdaFunctionArn","Events"],"members":{"Id":{},"LambdaFunctionArn":{"locationName":"CloudFunction"},"Events":{"shape":"S5x","locationName":"Event"},"Filter":{"shape":"S68"}}},"flattened":true}}},"S68":{"type":"structure","members":{"Key":{"locationName":"S3Key","type":"structure","members":{"FilterRules":{"locationName":"FilterRule","type":"list","member":{"type":"structure","members":{"Name":{},"Value":{}}},"flattened":true}}}}},"S6s":{"type":"structure","required":["Role","Rules"],"members":{"Role":{},"Rules":{"locationName":"Rule","type":"list","member":{"type":"structure","required":["Status","Destination"],"members":{"ID":{},"Priority":{"type":"integer"},"Prefix":{"deprecated":true},"Filter":{"type":"structure","members":{"Prefix":{},"Tag":{"shape":"S3h"},"And":{"type":"structure","members":{"Prefix":{},"Tags":{"shape":"S3k","flattened":true,"locationName":"Tag"}}}}},"Status":{},"SourceSelectionCriteria":{"type":"structure","members":{"SseKmsEncryptedObjects":{"type":"structure","required":["Status"],"members":{"Status":{}}}}},"Destination":{"type":"structure","required":["Bucket"],"members":{"Bucket":{},"Account":{},"StorageClass":{},"AccessControlTranslation":{"type":"structure","required":["Owner"],"members":{"Owner":{}}},"EncryptionConfiguration":{"type":"structure","members":{"ReplicaKmsKeyID":{}}}}},"DeleteMarkerReplication":{"type":"structure","members":{"Status":{}}}}},"flattened":true}}},"S7l":{"type":"structure","required":["HostName"],"members":{"HostName":{},"Protocol":{}}},"S7o":{"type":"structure","required":["Suffix"],"members":{"Suffix":{}}},"S7q":{"type":"structure","required":["Key"],"members":{"Key":{}}},"S7r":{"type":"list","member":{"locationName":"RoutingRule","type":"structure","required":["Redirect"],"members":{"Condition":{"type":"structure","members":{"HttpErrorCodeReturnedEquals":{},"KeyPrefixEquals":{}}},"Redirect":{"type":"structure","members":{"HostName":{},"HttpRedirectCode":{},"Protocol":{},"ReplaceKeyPrefixWith":{},"ReplaceKeyWith":{}}}}}},"S8q":{"type":"structure","members":{"Status":{}}},"S8t":{"type":"structure","members":{"ObjectLockEnabled":{},"Rule":{"type":"structure","members":{"DefaultRetention":{"type":"structure","members":{"Mode":{},"Days":{"type":"integer"},"Years":{"type":"integer"}}}}}}},"S91":{"type":"structure","members":{"Mode":{},"RetainUntilDate":{"shape":"S4w"}}},"S98":{"type":"structure","members":{"BlockPublicAcls":{"locationName":"BlockPublicAcls","type":"boolean"},"IgnorePublicAcls":{"locationName":"IgnorePublicAcls","type":"boolean"},"BlockPublicPolicy":{"locationName":"BlockPublicPolicy","type":"boolean"},"RestrictPublicBuckets":{"locationName":"RestrictPublicBuckets","type":"boolean"}}},"Sa5":{"type":"structure","members":{"ID":{},"DisplayName":{}}},"Sa6":{"type":"list","member":{"type":"structure","members":{"Prefix":{}}},"flattened":true},"Sao":{"type":"list","member":{"type":"structure","members":{"Key":{},"LastModified":{"type":"timestamp"},"ETag":{},"Size":{"type":"integer"},"StorageClass":{},"Owner":{"shape":"S32"}}},"flattened":true},"Sb6":{"type":"structure","members":{"Grants":{"shape":"S35","locationName":"AccessControlList"},"Owner":{"shape":"S32"}}},"Sbt":{"type":"structure","required":["TagSet"],"members":{"TagSet":{"shape":"S3k"}}},"Scj":{"type":"structure","members":{"CSV":{"type":"structure","members":{"FileHeaderInfo":{},"Comments":{},"QuoteEscapeCharacter":{},"RecordDelimiter":{},"FieldDelimiter":{},"QuoteCharacter":{},"AllowQuotedRecordDelimiter":{"type":"boolean"}}},"CompressionType":{},"JSON":{"type":"structure","members":{"Type":{}}},"Parquet":{"type":"structure","members":{}}}},"Scy":{"type":"structure","members":{"CSV":{"type":"structure","members":{"QuoteFields":{},"QuoteEscapeCharacter":{},"RecordDelimiter":{},"FieldDelimiter":{},"QuoteCharacter":{}}},"JSON":{"type":"structure","members":{"RecordDelimiter":{}}}}}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json": /*!*****************************************************************!*\ !*** ./node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json ***! \*****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{"ListBuckets":{"result_key":"Buckets"},"ListMultipartUploads":{"input_token":["KeyMarker","UploadIdMarker"],"limit_key":"MaxUploads","more_results":"IsTruncated","output_token":["NextKeyMarker","NextUploadIdMarker"],"result_key":["Uploads","CommonPrefixes"]},"ListObjectVersions":{"input_token":["KeyMarker","VersionIdMarker"],"limit_key":"MaxKeys","more_results":"IsTruncated","output_token":["NextKeyMarker","NextVersionIdMarker"],"result_key":["Versions","DeleteMarkers","CommonPrefixes"]},"ListObjects":{"input_token":"Marker","limit_key":"MaxKeys","more_results":"IsTruncated","output_token":"NextMarker || Contents[-1].Key","result_key":["Contents","CommonPrefixes"]},"ListObjectsV2":{"input_token":"ContinuationToken","limit_key":"MaxKeys","output_token":"NextContinuationToken","result_key":["Contents","CommonPrefixes"]},"ListParts":{"input_token":"PartNumberMarker","limit_key":"MaxParts","more_results":"IsTruncated","output_token":"NextPartNumberMarker","result_key":"Parts"}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json": /*!***************************************************************!*\ !*** ./node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":2,"waiters":{"BucketExists":{"delay":5,"operation":"HeadBucket","maxAttempts":20,"acceptors":[{"expected":200,"matcher":"status","state":"success"},{"expected":301,"matcher":"status","state":"success"},{"expected":403,"matcher":"status","state":"success"},{"expected":404,"matcher":"status","state":"retry"}]},"BucketNotExists":{"delay":5,"operation":"HeadBucket","maxAttempts":20,"acceptors":[{"expected":404,"matcher":"status","state":"success"}]},"ObjectExists":{"delay":5,"operation":"HeadObject","maxAttempts":20,"acceptors":[{"expected":200,"matcher":"status","state":"success"},{"expected":404,"matcher":"status","state":"retry"}]},"ObjectNotExists":{"delay":5,"operation":"HeadObject","maxAttempts":20,"acceptors":[{"expected":404,"matcher":"status","state":"success"}]}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/sts-2011-06-15.min.json": /*!***********************************************************!*\ !*** ./node_modules/aws-sdk/apis/sts-2011-06-15.min.json ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"version":"2.0","metadata":{"apiVersion":"2011-06-15","endpointPrefix":"sts","globalEndpoint":"sts.amazonaws.com","protocol":"query","serviceAbbreviation":"AWS STS","serviceFullName":"AWS Security Token Service","serviceId":"STS","signatureVersion":"v4","uid":"sts-2011-06-15","xmlNamespace":"https://sts.amazonaws.com/doc/2011-06-15/"},"operations":{"AssumeRole":{"input":{"type":"structure","required":["RoleArn","RoleSessionName"],"members":{"RoleArn":{},"RoleSessionName":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"},"ExternalId":{},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"AssumeRoleResult","type":"structure","members":{"Credentials":{"shape":"Sc"},"AssumedRoleUser":{"shape":"Sh"},"PackedPolicySize":{"type":"integer"}}}},"AssumeRoleWithSAML":{"input":{"type":"structure","required":["RoleArn","PrincipalArn","SAMLAssertion"],"members":{"RoleArn":{},"PrincipalArn":{},"SAMLAssertion":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithSAMLResult","type":"structure","members":{"Credentials":{"shape":"Sc"},"AssumedRoleUser":{"shape":"Sh"},"PackedPolicySize":{"type":"integer"},"Subject":{},"SubjectType":{},"Issuer":{},"Audience":{},"NameQualifier":{}}}},"AssumeRoleWithWebIdentity":{"input":{"type":"structure","required":["RoleArn","RoleSessionName","WebIdentityToken"],"members":{"RoleArn":{},"RoleSessionName":{},"WebIdentityToken":{},"ProviderId":{},"PolicyArns":{"shape":"S4"},"Policy":{},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"AssumeRoleWithWebIdentityResult","type":"structure","members":{"Credentials":{"shape":"Sc"},"SubjectFromWebIdentityToken":{},"AssumedRoleUser":{"shape":"Sh"},"PackedPolicySize":{"type":"integer"},"Provider":{},"Audience":{}}}},"DecodeAuthorizationMessage":{"input":{"type":"structure","required":["EncodedMessage"],"members":{"EncodedMessage":{}}},"output":{"resultWrapper":"DecodeAuthorizationMessageResult","type":"structure","members":{"DecodedMessage":{}}}},"GetAccessKeyInfo":{"input":{"type":"structure","required":["AccessKeyId"],"members":{"AccessKeyId":{}}},"output":{"resultWrapper":"GetAccessKeyInfoResult","type":"structure","members":{"Account":{}}}},"GetCallerIdentity":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"GetCallerIdentityResult","type":"structure","members":{"UserId":{},"Account":{},"Arn":{}}}},"GetFederationToken":{"input":{"type":"structure","required":["Name"],"members":{"Name":{},"Policy":{},"PolicyArns":{"shape":"S4"},"DurationSeconds":{"type":"integer"}}},"output":{"resultWrapper":"GetFederationTokenResult","type":"structure","members":{"Credentials":{"shape":"Sc"},"FederatedUser":{"type":"structure","required":["FederatedUserId","Arn"],"members":{"FederatedUserId":{},"Arn":{}}},"PackedPolicySize":{"type":"integer"}}}},"GetSessionToken":{"input":{"type":"structure","members":{"DurationSeconds":{"type":"integer"},"SerialNumber":{},"TokenCode":{}}},"output":{"resultWrapper":"GetSessionTokenResult","type":"structure","members":{"Credentials":{"shape":"Sc"}}}}},"shapes":{"S4":{"type":"list","member":{"type":"structure","members":{"arn":{}}}},"Sc":{"type":"structure","required":["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],"members":{"AccessKeyId":{},"SecretAccessKey":{},"SessionToken":{},"Expiration":{"type":"timestamp"}}},"Sh":{"type":"structure","required":["AssumedRoleId","Arn"],"members":{"AssumedRoleId":{},"Arn":{}}}}} /***/ }), /***/ "./node_modules/aws-sdk/apis/sts-2011-06-15.paginators.json": /*!******************************************************************!*\ !*** ./node_modules/aws-sdk/apis/sts-2011-06-15.paginators.json ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"pagination":{}} /***/ }), /***/ "./node_modules/aws-sdk/browser.js": /*!*****************************************!*\ !*** ./node_modules/aws-sdk/browser.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./lib/browser_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ./lib/core */ "./node_modules/aws-sdk/lib/core.js"); if (typeof window !== 'undefined') window.AWS = AWS; if (true) module.exports = AWS; if (typeof self !== 'undefined') self.AWS = AWS; /***/ }), /***/ "./node_modules/aws-sdk/clients/cognitoidentity.js": /*!*********************************************************!*\ !*** ./node_modules/aws-sdk/clients/cognitoidentity.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['cognitoidentity'] = {}; AWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']); __webpack_require__(/*! ../lib/services/cognitoidentity */ "./node_modules/aws-sdk/lib/services/cognitoidentity.js"); Object.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', { get: function get() { var model = __webpack_require__(/*! ../apis/cognito-identity-2014-06-30.min.json */ "./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json"); model.paginators = __webpack_require__(/*! ../apis/cognito-identity-2014-06-30.paginators.json */ "./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.paginators.json").pagination; return model; }, enumerable: true, configurable: true }); module.exports = AWS.CognitoIdentity; /***/ }), /***/ "./node_modules/aws-sdk/clients/kinesis.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/clients/kinesis.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['kinesis'] = {}; AWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']); Object.defineProperty(apiLoader.services['kinesis'], '2013-12-02', { get: function get() { var model = __webpack_require__(/*! ../apis/kinesis-2013-12-02.min.json */ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.min.json"); model.paginators = __webpack_require__(/*! ../apis/kinesis-2013-12-02.paginators.json */ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json").pagination; model.waiters = __webpack_require__(/*! ../apis/kinesis-2013-12-02.waiters2.json */ "./node_modules/aws-sdk/apis/kinesis-2013-12-02.waiters2.json").waiters; return model; }, enumerable: true, configurable: true }); module.exports = AWS.Kinesis; /***/ }), /***/ "./node_modules/aws-sdk/clients/lexruntime.js": /*!****************************************************!*\ !*** ./node_modules/aws-sdk/clients/lexruntime.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['lexruntime'] = {}; AWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']); Object.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', { get: function get() { var model = __webpack_require__(/*! ../apis/runtime.lex-2016-11-28.min.json */ "./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.min.json"); model.paginators = __webpack_require__(/*! ../apis/runtime.lex-2016-11-28.paginators.json */ "./node_modules/aws-sdk/apis/runtime.lex-2016-11-28.paginators.json").pagination; return model; }, enumerable: true, configurable: true }); module.exports = AWS.LexRuntime; /***/ }), /***/ "./node_modules/aws-sdk/clients/mobileanalytics.js": /*!*********************************************************!*\ !*** ./node_modules/aws-sdk/clients/mobileanalytics.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['mobileanalytics'] = {}; AWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']); Object.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', { get: function get() { var model = __webpack_require__(/*! ../apis/mobileanalytics-2014-06-05.min.json */ "./node_modules/aws-sdk/apis/mobileanalytics-2014-06-05.min.json"); return model; }, enumerable: true, configurable: true }); module.exports = AWS.MobileAnalytics; /***/ }), /***/ "./node_modules/aws-sdk/clients/personalizeevents.js": /*!***********************************************************!*\ !*** ./node_modules/aws-sdk/clients/personalizeevents.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['personalizeevents'] = {}; AWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']); Object.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', { get: function get() { var model = __webpack_require__(/*! ../apis/personalize-events-2018-03-22.min.json */ "./node_modules/aws-sdk/apis/personalize-events-2018-03-22.min.json"); model.paginators = __webpack_require__(/*! ../apis/personalize-events-2018-03-22.paginators.json */ "./node_modules/aws-sdk/apis/personalize-events-2018-03-22.paginators.json").pagination; return model; }, enumerable: true, configurable: true }); module.exports = AWS.PersonalizeEvents; /***/ }), /***/ "./node_modules/aws-sdk/clients/pinpoint.js": /*!**************************************************!*\ !*** ./node_modules/aws-sdk/clients/pinpoint.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['pinpoint'] = {}; AWS.Pinpoint = Service.defineService('pinpoint', ['2016-12-01']); Object.defineProperty(apiLoader.services['pinpoint'], '2016-12-01', { get: function get() { var model = __webpack_require__(/*! ../apis/pinpoint-2016-12-01.min.json */ "./node_modules/aws-sdk/apis/pinpoint-2016-12-01.min.json"); return model; }, enumerable: true, configurable: true }); module.exports = AWS.Pinpoint; /***/ }), /***/ "./node_modules/aws-sdk/clients/s3.js": /*!********************************************!*\ !*** ./node_modules/aws-sdk/clients/s3.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['s3'] = {}; AWS.S3 = Service.defineService('s3', ['2006-03-01']); __webpack_require__(/*! ../lib/services/s3 */ "./node_modules/aws-sdk/lib/services/s3.js"); Object.defineProperty(apiLoader.services['s3'], '2006-03-01', { get: function get() { var model = __webpack_require__(/*! ../apis/s3-2006-03-01.min.json */ "./node_modules/aws-sdk/apis/s3-2006-03-01.min.json"); model.paginators = __webpack_require__(/*! ../apis/s3-2006-03-01.paginators.json */ "./node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json").pagination; model.waiters = __webpack_require__(/*! ../apis/s3-2006-03-01.waiters2.json */ "./node_modules/aws-sdk/apis/s3-2006-03-01.waiters2.json").waiters; return model; }, enumerable: true, configurable: true }); module.exports = AWS.S3; /***/ }), /***/ "./node_modules/aws-sdk/clients/sts.js": /*!*********************************************!*\ !*** ./node_modules/aws-sdk/clients/sts.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../lib/node_loader */ "./node_modules/aws-sdk/lib/browser_loader.js"); var AWS = __webpack_require__(/*! ../lib/core */ "./node_modules/aws-sdk/lib/core.js"); var Service = AWS.Service; var apiLoader = AWS.apiLoader; apiLoader.services['sts'] = {}; AWS.STS = Service.defineService('sts', ['2011-06-15']); __webpack_require__(/*! ../lib/services/sts */ "./node_modules/aws-sdk/lib/services/sts.js"); Object.defineProperty(apiLoader.services['sts'], '2011-06-15', { get: function get() { var model = __webpack_require__(/*! ../apis/sts-2011-06-15.min.json */ "./node_modules/aws-sdk/apis/sts-2011-06-15.min.json"); model.paginators = __webpack_require__(/*! ../apis/sts-2011-06-15.paginators.json */ "./node_modules/aws-sdk/apis/sts-2011-06-15.paginators.json").pagination; return model; }, enumerable: true, configurable: true }); module.exports = AWS.STS; /***/ }), /***/ "./node_modules/aws-sdk/lib/api_loader.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/api_loader.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { function apiLoader(svc, version) { if (!apiLoader.services.hasOwnProperty(svc)) { throw new Error('InvalidService: Failed to load api for ' + svc); } return apiLoader.services[svc][version]; } /** * @api private * * This member of AWS.apiLoader is private, but changing it will necessitate a * change to ../scripts/services-table-generator.ts */ apiLoader.services = {}; /** * @api private */ module.exports = apiLoader; /***/ }), /***/ "./node_modules/aws-sdk/lib/browserCryptoLib.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserCryptoLib.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Hmac = __webpack_require__(/*! ./browserHmac */ "./node_modules/aws-sdk/lib/browserHmac.js"); var Md5 = __webpack_require__(/*! ./browserMd5 */ "./node_modules/aws-sdk/lib/browserMd5.js"); var Sha1 = __webpack_require__(/*! ./browserSha1 */ "./node_modules/aws-sdk/lib/browserSha1.js"); var Sha256 = __webpack_require__(/*! ./browserSha256 */ "./node_modules/aws-sdk/lib/browserSha256.js"); /** * @api private */ module.exports = exports = { createHash: function createHash(alg) { alg = alg.toLowerCase(); if (alg === 'md5') { return new Md5(); } else if (alg === 'sha256') { return new Sha256(); } else if (alg === 'sha1') { return new Sha1(); } throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK'); }, createHmac: function createHmac(alg, key) { alg = alg.toLowerCase(); if (alg === 'md5') { return new Hmac(Md5, key); } else if (alg === 'sha256') { return new Hmac(Sha256, key); } else if (alg === 'sha1') { return new Hmac(Sha1, key); } throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK'); }, createSign: function() { throw new Error('createSign is not implemented in the browser'); } }; /***/ }), /***/ "./node_modules/aws-sdk/lib/browserHashUtils.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserHashUtils.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js").Buffer; /** * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is * e.g. missing in IE 10. * * @api private */ if ( typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'undefined' ) { ArrayBuffer.isView = function(arg) { return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1; }; } /** * @api private */ var viewStrings = [ '[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]', '[object DataView]', ]; /** * @api private */ function isEmptyData(data) { if (typeof data === 'string') { return data.length === 0; } return data.byteLength === 0; } /** * @api private */ function convertToBuffer(data) { if (typeof data === 'string') { data = new Buffer(data, 'utf8'); } if (ArrayBuffer.isView(data)) { return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); } return new Uint8Array(data); } /** * @api private */ module.exports = exports = { isEmptyData: isEmptyData, convertToBuffer: convertToBuffer, }; /***/ }), /***/ "./node_modules/aws-sdk/lib/browserHmac.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserHmac.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var hashUtils = __webpack_require__(/*! ./browserHashUtils */ "./node_modules/aws-sdk/lib/browserHashUtils.js"); /** * @api private */ function Hmac(hashCtor, secret) { this.hash = new hashCtor(); this.outer = new hashCtor(); var inner = bufferFromSecret(hashCtor, secret); var outer = new Uint8Array(hashCtor.BLOCK_SIZE); outer.set(inner); for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) { inner[i] ^= 0x36; outer[i] ^= 0x5c; } this.hash.update(inner); this.outer.update(outer); // Zero out the copied key buffer. for (var i = 0; i < inner.byteLength; i++) { inner[i] = 0; } } /** * @api private */ module.exports = exports = Hmac; Hmac.prototype.update = function (toHash) { if (hashUtils.isEmptyData(toHash) || this.error) { return this; } try { this.hash.update(hashUtils.convertToBuffer(toHash)); } catch (e) { this.error = e; } return this; }; Hmac.prototype.digest = function (encoding) { if (!this.outer.finished) { this.outer.update(this.hash.digest()); } return this.outer.digest(encoding); }; function bufferFromSecret(hashCtor, secret) { var input = hashUtils.convertToBuffer(secret); if (input.byteLength > hashCtor.BLOCK_SIZE) { var bufferHash = new hashCtor; bufferHash.update(input); input = bufferHash.digest(); } var buffer = new Uint8Array(hashCtor.BLOCK_SIZE); buffer.set(input); return buffer; } /***/ }), /***/ "./node_modules/aws-sdk/lib/browserMd5.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserMd5.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var hashUtils = __webpack_require__(/*! ./browserHashUtils */ "./node_modules/aws-sdk/lib/browserHashUtils.js"); var Buffer = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js").Buffer; var BLOCK_SIZE = 64; var DIGEST_LENGTH = 16; var INIT = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, ]; /** * @api private */ function Md5() { this.state = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, ]; this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE)); this.bufferLength = 0; this.bytesHashed = 0; this.finished = false; } /** * @api private */ module.exports = exports = Md5; Md5.BLOCK_SIZE = BLOCK_SIZE; Md5.prototype.update = function (sourceData) { if (hashUtils.isEmptyData(sourceData)) { return this; } else if (this.finished) { throw new Error('Attempted to update an already finished hash.'); } var data = hashUtils.convertToBuffer(sourceData); var position = 0; var byteLength = data.byteLength; this.bytesHashed += byteLength; while (byteLength > 0) { this.buffer.setUint8(this.bufferLength++, data[position++]); byteLength--; if (this.bufferLength === BLOCK_SIZE) { this.hashBuffer(); this.bufferLength = 0; } } return this; }; Md5.prototype.digest = function (encoding) { if (!this.finished) { var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed; var bitsHashed = bytesHashed * 8; buffer.setUint8(this.bufferLength++, 128); // Ensure the final block has enough room for the hashed length if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { buffer.setUint8(i, 0); } this.hashBuffer(); this.bufferLength = 0; } for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { buffer.setUint8(i, 0); } buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true); buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true); this.hashBuffer(); this.finished = true; } var out = new DataView(new ArrayBuffer(DIGEST_LENGTH)); for (var i = 0; i < 4; i++) { out.setUint32(i * 4, this.state[i], true); } var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength); return encoding ? buff.toString(encoding) : buff; }; Md5.prototype.hashBuffer = function () { var _a = this, buffer = _a.buffer, state = _a.state; var a = state[0], b = state[1], c = state[2], d = state[3]; a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478); d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756); c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db); b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee); a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf); d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a); c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613); b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501); a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8); d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af); c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1); b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be); a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122); d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193); c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e); b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821); a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562); d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340); c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51); b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa); a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d); d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453); c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681); b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8); a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6); d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6); c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87); b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed); a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905); d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8); c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9); b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a); a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942); d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681); c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122); b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c); a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44); d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9); c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60); b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70); a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6); d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa); c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085); b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05); a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039); d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5); c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8); b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665); a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244); d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97); c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7); b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039); a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3); d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92); c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d); b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1); a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f); d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0); c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314); b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1); a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82); d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235); c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb); b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391); state[0] = (a + state[0]) & 0xFFFFFFFF; state[1] = (b + state[1]) & 0xFFFFFFFF; state[2] = (c + state[2]) & 0xFFFFFFFF; state[3] = (d + state[3]) & 0xFFFFFFFF; }; function cmn(q, a, b, x, s, t) { a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF; return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF; } function ff(a, b, c, d, x, s, t) { return cmn((b & c) | ((~b) & d), a, b, x, s, t); } function gg(a, b, c, d, x, s, t) { return cmn((b & d) | (c & (~d)), a, b, x, s, t); } function hh(a, b, c, d, x, s, t) { return cmn(b ^ c ^ d, a, b, x, s, t); } function ii(a, b, c, d, x, s, t) { return cmn(c ^ (b | (~d)), a, b, x, s, t); } /***/ }), /***/ "./node_modules/aws-sdk/lib/browserSha1.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserSha1.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js").Buffer; var hashUtils = __webpack_require__(/*! ./browserHashUtils */ "./node_modules/aws-sdk/lib/browserHashUtils.js"); var BLOCK_SIZE = 64; var DIGEST_LENGTH = 20; var KEY = new Uint32Array([ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 ]); var INIT = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, ]; var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; /** * @api private */ function Sha1() { this.h0 = 0x67452301; this.h1 = 0xEFCDAB89; this.h2 = 0x98BADCFE; this.h3 = 0x10325476; this.h4 = 0xC3D2E1F0; // The first 64 bytes (16 words) is the data chunk this.block = new Uint32Array(80); this.offset = 0; this.shift = 24; this.totalLength = 0; } /** * @api private */ module.exports = exports = Sha1; Sha1.BLOCK_SIZE = BLOCK_SIZE; Sha1.prototype.update = function (data) { if (this.finished) { throw new Error('Attempted to update an already finished hash.'); } if (hashUtils.isEmptyData(data)) { return this; } data = hashUtils.convertToBuffer(data); var length = data.length; this.totalLength += length * 8; for (var i = 0; i < length; i++) { this.write(data[i]); } return this; }; Sha1.prototype.write = function write(byte) { this.block[this.offset] |= (byte & 0xff) << this.shift; if (this.shift) { this.shift -= 8; } else { this.offset++; this.shift = 24; } if (this.offset === 16) this.processBlock(); }; Sha1.prototype.digest = function (encoding) { // Pad this.write(0x80); if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) { this.processBlock(); } this.offset = 14; this.shift = 24; // 64-bit length big-endian this.write(0x00); // numbers this big aren't accurate in javascript anyway this.write(0x00); // ..So just hard-code to zero. this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00); this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00); for (var s = 24; s >= 0; s -= 8) { this.write(this.totalLength >> s); } // The value in state is little-endian rather than big-endian, so flip // each word into a new Uint8Array var out = new Buffer(DIGEST_LENGTH); var outView = new DataView(out.buffer); outView.setUint32(0, this.h0, false); outView.setUint32(4, this.h1, false); outView.setUint32(8, this.h2, false); outView.setUint32(12, this.h3, false); outView.setUint32(16, this.h4, false); return encoding ? out.toString(encoding) : out; }; Sha1.prototype.processBlock = function processBlock() { // Extend the sixteen 32-bit words into eighty 32-bit words: for (var i = 16; i < 80; i++) { var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16]; this.block[i] = (w << 1) | (w >>> 31); } // Initialize hash value for this chunk: var a = this.h0; var b = this.h1; var c = this.h2; var d = this.h3; var e = this.h4; var f, k; // Main loop: for (i = 0; i < 80; i++) { if (i < 20) { f = d ^ (b & (c ^ d)); k = 0x5A827999; } else if (i < 40) { f = b ^ c ^ d; k = 0x6ED9EBA1; } else if (i < 60) { f = (b & c) | (d & (b | c)); k = 0x8F1BBCDC; } else { f = b ^ c ^ d; k = 0xCA62C1D6; } var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0); e = d; d = c; c = (b << 30 | b >>> 2); b = a; a = temp; } // Add this chunk's hash to result so far: this.h0 = (this.h0 + a) | 0; this.h1 = (this.h1 + b) | 0; this.h2 = (this.h2 + c) | 0; this.h3 = (this.h3 + d) | 0; this.h4 = (this.h4 + e) | 0; // The block is now reusable. this.offset = 0; for (i = 0; i < 16; i++) { this.block[i] = 0; } }; /***/ }), /***/ "./node_modules/aws-sdk/lib/browserSha256.js": /*!***************************************************!*\ !*** ./node_modules/aws-sdk/lib/browserSha256.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js").Buffer; var hashUtils = __webpack_require__(/*! ./browserHashUtils */ "./node_modules/aws-sdk/lib/browserHashUtils.js"); var BLOCK_SIZE = 64; var DIGEST_LENGTH = 32; var KEY = new Uint32Array([ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 ]); var INIT = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, ]; var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; /** * @private */ function Sha256() { this.state = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, ]; this.temp = new Int32Array(64); this.buffer = new Uint8Array(64); this.bufferLength = 0; this.bytesHashed = 0; /** * @private */ this.finished = false; } /** * @api private */ module.exports = exports = Sha256; Sha256.BLOCK_SIZE = BLOCK_SIZE; Sha256.prototype.update = function (data) { if (this.finished) { throw new Error('Attempted to update an already finished hash.'); } if (hashUtils.isEmptyData(data)) { return this; } data = hashUtils.convertToBuffer(data); var position = 0; var byteLength = data.byteLength; this.bytesHashed += byteLength; if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) { throw new Error('Cannot hash more than 2^53 - 1 bits'); } while (byteLength > 0) { this.buffer[this.bufferLength++] = data[position++]; byteLength--; if (this.bufferLength === BLOCK_SIZE) { this.hashBuffer(); this.bufferLength = 0; } } return this; }; Sha256.prototype.digest = function (encoding) { if (!this.finished) { var bitsHashed = this.bytesHashed * 8; var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength); var undecoratedLength = this.bufferLength; bufferView.setUint8(this.bufferLength++, 0x80); // Ensure the final block has enough room for the hashed length if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { bufferView.setUint8(i, 0); } this.hashBuffer(); this.bufferLength = 0; } for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { bufferView.setUint8(i, 0); } bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true); bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed); this.hashBuffer(); this.finished = true; } // The value in state is little-endian rather than big-endian, so flip // each word into a new Uint8Array var out = new Buffer(DIGEST_LENGTH); for (var i = 0; i < 8; i++) { out[i * 4] = (this.state[i] >>> 24) & 0xff; out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff; out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff; out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff; } return encoding ? out.toString(encoding) : out; }; Sha256.prototype.hashBuffer = function () { var _a = this, buffer = _a.buffer, state = _a.state; var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7]; for (var i = 0; i < BLOCK_SIZE; i++) { if (i < 16) { this.temp[i] = (((buffer[i * 4] & 0xff) << 24) | ((buffer[(i * 4) + 1] & 0xff) << 16) | ((buffer[(i * 4) + 2] & 0xff) << 8) | (buffer[(i * 4) + 3] & 0xff)); } else { var u = this.temp[i - 2]; var t1_1 = (u >>> 17 | u << 15) ^ (u >>> 19 | u << 13) ^ (u >>> 10); u = this.temp[i - 15]; var t2_1 = (u >>> 7 | u << 25) ^ (u >>> 18 | u << 14) ^ (u >>> 3); this.temp[i] = (t1_1 + this.temp[i - 7] | 0) + (t2_1 + this.temp[i - 16] | 0); } var t1 = (((((state4 >>> 6 | state4 << 26) ^ (state4 >>> 11 | state4 << 21) ^ (state4 >>> 25 | state4 << 7)) + ((state4 & state5) ^ (~state4 & state6))) | 0) + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0; var t2 = (((state0 >>> 2 | state0 << 30) ^ (state0 >>> 13 | state0 << 19) ^ (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0; state7 = state6; state6 = state5; state5 = state4; state4 = (state3 + t1) | 0; state3 = state2; state2 = state1; state1 = state0; state0 = (t1 + t2) | 0; } state[0] += state0; state[1] += state1; state[2] += state2; state[3] += state3; state[4] += state4; state[5] += state5; state[6] += state6; state[7] += state7; }; /***/ }), /***/ "./node_modules/aws-sdk/lib/browser_loader.js": /*!****************************************************!*\ !*** ./node_modules/aws-sdk/lib/browser_loader.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ./util */ "./node_modules/aws-sdk/lib/util.js"); // browser specific modules util.crypto.lib = __webpack_require__(/*! ./browserCryptoLib */ "./node_modules/aws-sdk/lib/browserCryptoLib.js"); util.Buffer = __webpack_require__(/*! buffer/ */ "./node_modules/buffer/index.js").Buffer; util.url = __webpack_require__(/*! url/ */ "./node_modules/url/url.js"); util.querystring = __webpack_require__(/*! querystring/ */ "./node_modules/querystring-es3/index.js"); util.realClock = __webpack_require__(/*! ./realclock/browserClock */ "./node_modules/aws-sdk/lib/realclock/browserClock.js"); util.environment = 'js'; util.createEventStream = __webpack_require__(/*! ./event-stream/buffered-create-event-stream */ "./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js").createEventStream; util.isBrowser = function() { return true; }; util.isNode = function() { return false; }; var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); /** * @api private */ module.exports = AWS; __webpack_require__(/*! ./credentials */ "./node_modules/aws-sdk/lib/credentials.js"); __webpack_require__(/*! ./credentials/credential_provider_chain */ "./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js"); __webpack_require__(/*! ./credentials/temporary_credentials */ "./node_modules/aws-sdk/lib/credentials/temporary_credentials.js"); __webpack_require__(/*! ./credentials/chainable_temporary_credentials */ "./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js"); __webpack_require__(/*! ./credentials/web_identity_credentials */ "./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js"); __webpack_require__(/*! ./credentials/cognito_identity_credentials */ "./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js"); __webpack_require__(/*! ./credentials/saml_credentials */ "./node_modules/aws-sdk/lib/credentials/saml_credentials.js"); // Load the DOMParser XML parser AWS.XML.Parser = __webpack_require__(/*! ./xml/browser_parser */ "./node_modules/aws-sdk/lib/xml/browser_parser.js"); // Load the XHR HttpClient __webpack_require__(/*! ./http/xhr */ "./node_modules/aws-sdk/lib/http/xhr.js"); if (typeof process === 'undefined') { var process = { browser: true }; } /***/ }), /***/ "./node_modules/aws-sdk/lib/config.js": /*!********************************************!*\ !*** ./node_modules/aws-sdk/lib/config.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); __webpack_require__(/*! ./credentials */ "./node_modules/aws-sdk/lib/credentials.js"); __webpack_require__(/*! ./credentials/credential_provider_chain */ "./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js"); var PromisesDependency; /** * The main configuration class used by all service objects to set * the region, credentials, and other options for requests. * * By default, credentials and region settings are left unconfigured. * This should be configured by the application before using any * AWS service APIs. * * In order to set global configuration options, properties should * be assigned to the global {AWS.config} object. * * @see AWS.config * * @!group General Configuration Options * * @!attribute credentials * @return [AWS.Credentials] the AWS credentials to sign requests with. * * @!attribute region * @example Set the global region setting to us-west-2 * AWS.config.update({region: 'us-west-2'}); * @return [AWS.Credentials] The region to send service requests to. * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html * A list of available endpoints for each AWS service * * @!attribute maxRetries * @return [Integer] the maximum amount of retries to perform for a * service request. By default this value is calculated by the specific * service object that the request is being made to. * * @!attribute maxRedirects * @return [Integer] the maximum amount of redirects to follow for a * service request. Defaults to 10. * * @!attribute paramValidation * @return [Boolean|map] whether input parameters should be validated against * the operation description before sending the request. Defaults to true. * Pass a map to enable any of the following specific validation features: * * * **min** [Boolean] — Validates that a value meets the min * constraint. This is enabled by default when paramValidation is set * to `true`. * * **max** [Boolean] — Validates that a value meets the max * constraint. * * **pattern** [Boolean] — Validates that a string value matches a * regular expression. * * **enum** [Boolean] — Validates that a string value matches one * of the allowable enum values. * * @!attribute computeChecksums * @return [Boolean] whether to compute checksums for payload bodies when * the service accepts it (currently supported in S3 only). * * @!attribute convertResponseTypes * @return [Boolean] whether types are converted when parsing response data. * Currently only supported for JSON based services. Turning this off may * improve performance on large response payloads. Defaults to `true`. * * @!attribute correctClockSkew * @return [Boolean] whether to apply a clock skew correction and retry * requests that fail because of an skewed client clock. Defaults to * `false`. * * @!attribute sslEnabled * @return [Boolean] whether SSL is enabled for requests * * @!attribute s3ForcePathStyle * @return [Boolean] whether to force path style URLs for S3 objects * * @!attribute s3BucketEndpoint * @note Setting this configuration option requires an `endpoint` to be * provided explicitly to the service constructor. * @return [Boolean] whether the provided endpoint addresses an individual * bucket (false if it addresses the root API endpoint). * * @!attribute s3DisableBodySigning * @return [Boolean] whether to disable S3 body signing when using signature version `v4`. * Body signing can only be disabled when using https. Defaults to `true`. * * @!attribute useAccelerateEndpoint * @note This configuration option is only compatible with S3 while accessing * dns-compatible buckets. * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. * Defaults to `false`. * * @!attribute retryDelayOptions * @example Set the base retry delay for all services to 300 ms * AWS.config.update({retryDelayOptions: {base: 300}}); * // Delays with maxRetries = 3: 300, 600, 1200 * @example Set a custom backoff function to provide delay values on retries * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { * // returns delay in ms * }}}); * @return [map] A set of options to configure the retry delay on retryable errors. * Currently supported options are: * * * **base** [Integer] — The base number of milliseconds to use in the * exponential backoff for operation retries. Defaults to 100 ms for all services except * DynamoDB, where it defaults to 50ms. * * **customBackoff ** [function] — A custom function that accepts a retry count * and returns the amount of time to delay in milliseconds. The `base` option will be * ignored if this option is supplied. * * @!attribute httpOptions * @return [map] A set of options to pass to the low-level HTTP request. * Currently supported options are: * * * **proxy** [String] — the URL to proxy requests through * * **agent** [http.Agent, https.Agent] — the Agent object to perform * HTTP requests with. Used for connection pooling. Note that for * SSL connections, a special Agent object is used in order to enable * peer certificate verification. This feature is only supported in the * Node.js environment. * * **connectTimeout** [Integer] — Sets the socket to timeout after * failing to establish a connection with the server after * `connectTimeout` milliseconds. This timeout has no effect once a socket * connection has been established. * * **timeout** [Integer] — Sets the socket to timeout after timeout * milliseconds of inactivity on the socket. Defaults to two minutes * (120000) * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous * HTTP requests. Used in the browser environment only. Set to false to * send requests synchronously. Defaults to true (async on). * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" * property of an XMLHttpRequest object. Used in the browser environment * only. Defaults to false. * @!attribute logger * @return [#write,#log] an object that responds to .write() (like a stream) * or .log() (like the console object) in order to log information about * requests * * @!attribute systemClockOffset * @return [Number] an offset value in milliseconds to apply to all signing * times. Use this to compensate for clock skew when your system may be * out of sync with the service time. Note that this configuration option * can only be applied to the global `AWS.config` object and cannot be * overridden in service-specific configuration. Defaults to 0 milliseconds. * * @!attribute signatureVersion * @return [String] the signature version to sign requests with (overriding * the API configuration). Possible values are: 'v2', 'v3', 'v4'. * * @!attribute signatureCache * @return [Boolean] whether the signature to sign requests with (overriding * the API configuration) is cached. Only applies to the signature version 'v4'. * Defaults to `true`. * * @!attribute endpointDiscoveryEnabled * @return [Boolean] whether to enable endpoint discovery for operations that * allow optionally using an endpoint returned by the service. * Defaults to 'false' * * @!attribute endpointCacheSize * @return [Number] the size of the global cache storing endpoints from endpoint * discovery operations. Once endpoint cache is created, updating this setting * cannot change existing cache size. * Defaults to 1000 * * @!attribute hostPrefixEnabled * @return [Boolean] whether to marshal request parameters to the prefix of * hostname. Defaults to `true`. */ AWS.Config = AWS.util.inherit({ /** * @!endgroup */ /** * Creates a new configuration object. This is the object that passes * option data along to service requests, including credentials, security, * region information, and some service specific settings. * * @example Creating a new configuration object with credentials and region * var config = new AWS.Config({ * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' * }); * @option options accessKeyId [String] your AWS access key ID. * @option options secretAccessKey [String] your AWS secret access key. * @option options sessionToken [AWS.Credentials] the optional AWS * session token to sign requests with. * @option options credentials [AWS.Credentials] the AWS credentials * to sign requests with. You can either specify this object, or * specify the accessKeyId and secretAccessKey options directly. * @option options credentialProvider [AWS.CredentialProviderChain] the * provider chain used to resolve credentials if no static `credentials` * property is set. * @option options region [String] the region to send service requests to. * See {region} for more information. * @option options maxRetries [Integer] the maximum amount of retries to * attempt with a request. See {maxRetries} for more information. * @option options maxRedirects [Integer] the maximum amount of redirects to * follow with a request. See {maxRedirects} for more information. * @option options sslEnabled [Boolean] whether to enable SSL for * requests. * @option options paramValidation [Boolean|map] whether input parameters * should be validated against the operation description before sending * the request. Defaults to true. Pass a map to enable any of the * following specific validation features: * * * **min** [Boolean] — Validates that a value meets the min * constraint. This is enabled by default when paramValidation is set * to `true`. * * **max** [Boolean] — Validates that a value meets the max * constraint. * * **pattern** [Boolean] — Validates that a string value matches a * regular expression. * * **enum** [Boolean] — Validates that a string value matches one * of the allowable enum values. * @option options computeChecksums [Boolean] whether to compute checksums * for payload bodies when the service accepts it (currently supported * in S3 only) * @option options convertResponseTypes [Boolean] whether types are converted * when parsing response data. Currently only supported for JSON based * services. Turning this off may improve performance on large response * payloads. Defaults to `true`. * @option options correctClockSkew [Boolean] whether to apply a clock skew * correction and retry requests that fail because of an skewed client * clock. Defaults to `false`. * @option options s3ForcePathStyle [Boolean] whether to force path * style URLs for S3 objects. * @option options s3BucketEndpoint [Boolean] whether the provided endpoint * addresses an individual bucket (false if it addresses the root API * endpoint). Note that setting this configuration option requires an * `endpoint` to be provided explicitly to the service constructor. * @option options s3DisableBodySigning [Boolean] whether S3 body signing * should be disabled when using signature version `v4`. Body signing * can only be disabled when using https. Defaults to `true`. * * @option options retryDelayOptions [map] A set of options to configure * the retry delay on retryable errors. Currently supported options are: * * * **base** [Integer] — The base number of milliseconds to use in the * exponential backoff for operation retries. Defaults to 100 ms for all * services except DynamoDB, where it defaults to 50ms. * * **customBackoff ** [function] — A custom function that accepts a retry count * and returns the amount of time to delay in milliseconds. The `base` option will be * ignored if this option is supplied. * @option options httpOptions [map] A set of options to pass to the low-level * HTTP request. Currently supported options are: * * * **proxy** [String] — the URL to proxy requests through * * **agent** [http.Agent, https.Agent] — the Agent object to perform * HTTP requests with. Used for connection pooling. Defaults to the global * agent (`http.globalAgent`) for non-SSL connections. Note that for * SSL connections, a special Agent object is used in order to enable * peer certificate verification. This feature is only available in the * Node.js environment. * * **connectTimeout** [Integer] — Sets the socket to timeout after * failing to establish a connection with the server after * `connectTimeout` milliseconds. This timeout has no effect once a socket * connection has been established. * * **timeout** [Integer] — Sets the socket to timeout after timeout * milliseconds of inactivity on the socket. Defaults to two minutes * (120000). * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous * HTTP requests. Used in the browser environment only. Set to false to * send requests synchronously. Defaults to true (async on). * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" * property of an XMLHttpRequest object. Used in the browser environment * only. Defaults to false. * @option options apiVersion [String, Date] a String in YYYY-MM-DD format * (or a date) that represents the latest possible API version that can be * used in all services (unless overridden by `apiVersions`). Specify * 'latest' to use the latest possible version. * @option options apiVersions [map] a map of service * identifiers (the lowercase service class name) with the API version to * use when instantiating a service. Specify 'latest' for each individual * that can use the latest available version. * @option options logger [#write,#log] an object that responds to .write() * (like a stream) or .log() (like the console object) in order to log * information about requests * @option options systemClockOffset [Number] an offset value in milliseconds * to apply to all signing times. Use this to compensate for clock skew * when your system may be out of sync with the service time. Note that * this configuration option can only be applied to the global `AWS.config` * object and cannot be overridden in service-specific configuration. * Defaults to 0 milliseconds. * @option options signatureVersion [String] the signature version to sign * requests with (overriding the API configuration). Possible values are: * 'v2', 'v3', 'v4'. * @option options signatureCache [Boolean] whether the signature to sign * requests with (overriding the API configuration) is cached. Only applies * to the signature version 'v4'. Defaults to `true`. * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32 * checksum of HTTP response bodies returned by DynamoDB. Default: `true`. * @option options useAccelerateEndpoint [Boolean] Whether to use the * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`. * @option options clientSideMonitoring [Boolean] whether to collect and * publish this client's performance metrics of all its API requests. * @option options endpointDiscoveryEnabled [Boolean] whether to enable endpoint * discovery for operations that allow optionally using an endpoint returned by * the service. * Defaults to 'false' * @option options endpointCacheSize [Number] the size of the global cache storing * endpoints from endpoint discovery operations. Once endpoint cache is created, * updating this setting cannot change existing cache size. * Defaults to 1000 * @option options hostPrefixEnabled [Boolean] whether to marshal request * parameters to the prefix of hostname. * Defaults to `true`. */ constructor: function Config(options) { if (options === undefined) options = {}; options = this.extractCredentials(options); AWS.util.each.call(this, this.keys, function (key, value) { this.set(key, options[key], value); }); }, /** * @!group Managing Credentials */ /** * Loads credentials from the configuration object. This is used internally * by the SDK to ensure that refreshable {Credentials} objects are properly * refreshed and loaded when sending a request. If you want to ensure that * your credentials are loaded prior to a request, you can use this method * directly to provide accurate credential data stored in the object. * * @note If you configure the SDK with static or environment credentials, * the credential data should already be present in {credentials} attribute. * This method is primarily necessary to load credentials from asynchronous * sources, or sources that can refresh credentials periodically. * @example Getting your access key * AWS.config.getCredentials(function(err) { * if (err) console.log(err.stack); // credentials not loaded * else console.log("Access Key:", AWS.config.credentials.accessKeyId); * }) * @callback callback function(err) * Called when the {credentials} have been properly set on the configuration * object. * * @param err [Error] if this is set, credentials were not successfully * loaded and this error provides information why. * @see credentials * @see Credentials */ getCredentials: function getCredentials(callback) { var self = this; function finish(err) { callback(err, err ? null : self.credentials); } function credError(msg, err) { return new AWS.util.error(err || new Error(), { code: 'CredentialsError', message: msg, name: 'CredentialsError' }); } function getAsyncCredentials() { self.credentials.get(function(err) { if (err) { var msg = 'Could not load credentials from ' + self.credentials.constructor.name; err = credError(msg, err); } finish(err); }); } function getStaticCredentials() { var err = null; if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { err = credError('Missing credentials'); } finish(err); } if (self.credentials) { if (typeof self.credentials.get === 'function') { getAsyncCredentials(); } else { // static credentials getStaticCredentials(); } } else if (self.credentialProvider) { self.credentialProvider.resolve(function(err, creds) { if (err) { err = credError('Could not load credentials from any providers', err); } self.credentials = creds; finish(err); }); } else { finish(credError('No credentials to load')); } }, /** * @!group Loading and Setting Configuration Options */ /** * @overload update(options, allowUnknownKeys = false) * Updates the current configuration object with new options. * * @example Update maxRetries property of a configuration object * config.update({maxRetries: 10}); * @param [Object] options a map of option keys and values. * @param [Boolean] allowUnknownKeys whether unknown keys can be set on * the configuration object. Defaults to `false`. * @see constructor */ update: function update(options, allowUnknownKeys) { allowUnknownKeys = allowUnknownKeys || false; options = this.extractCredentials(options); AWS.util.each.call(this, options, function (key, value) { if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) || AWS.Service.hasService(key)) { this.set(key, value); } }); }, /** * Loads configuration data from a JSON file into this config object. * @note Loading configuration will reset all existing configuration * on the object. * @!macro nobrowser * @param path [String] the path relative to your process's current * working directory to load configuration from. * @return [AWS.Config] the same configuration object */ loadFromPath: function loadFromPath(path) { this.clear(); var options = JSON.parse(AWS.util.readFileSync(path)); var fileSystemCreds = new AWS.FileSystemCredentials(path); var chain = new AWS.CredentialProviderChain(); chain.providers.unshift(fileSystemCreds); chain.resolve(function (err, creds) { if (err) throw err; else options.credentials = creds; }); this.constructor(options); return this; }, /** * Clears configuration data on this object * * @api private */ clear: function clear() { /*jshint forin:false */ AWS.util.each.call(this, this.keys, function (key) { delete this[key]; }); // reset credential provider this.set('credentials', undefined); this.set('credentialProvider', undefined); }, /** * Sets a property on the configuration object, allowing for a * default value * @api private */ set: function set(property, value, defaultValue) { if (value === undefined) { if (defaultValue === undefined) { defaultValue = this.keys[property]; } if (typeof defaultValue === 'function') { this[property] = defaultValue.call(this); } else { this[property] = defaultValue; } } else if (property === 'httpOptions' && this[property]) { // deep merge httpOptions this[property] = AWS.util.merge(this[property], value); } else { this[property] = value; } }, /** * All of the keys with their default values. * * @constant * @api private */ keys: { credentials: null, credentialProvider: null, region: null, logger: null, apiVersions: {}, apiVersion: null, endpoint: undefined, httpOptions: { timeout: 120000 }, maxRetries: undefined, maxRedirects: 10, paramValidation: true, sslEnabled: true, s3ForcePathStyle: false, s3BucketEndpoint: false, s3DisableBodySigning: true, computeChecksums: true, convertResponseTypes: true, correctClockSkew: false, customUserAgent: null, dynamoDbCrc32: true, systemClockOffset: 0, signatureVersion: null, signatureCache: true, retryDelayOptions: {}, useAccelerateEndpoint: false, clientSideMonitoring: false, endpointDiscoveryEnabled: false, endpointCacheSize: 1000, hostPrefixEnabled: true }, /** * Extracts accessKeyId, secretAccessKey and sessionToken * from a configuration hash. * * @api private */ extractCredentials: function extractCredentials(options) { if (options.accessKeyId && options.secretAccessKey) { options = AWS.util.copy(options); options.credentials = new AWS.Credentials(options); } return options; }, /** * Sets the promise dependency the SDK will use wherever Promises are returned. * Passing `null` will force the SDK to use native Promises if they are available. * If native Promises are not available, passing `null` will have no effect. * @param [Constructor] dep A reference to a Promise constructor */ setPromisesDependency: function setPromisesDependency(dep) { PromisesDependency = dep; // if null was passed in, we should try to use native promises if (dep === null && typeof Promise === 'function') { PromisesDependency = Promise; } var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain]; if (AWS.S3 && AWS.S3.ManagedUpload) constructors.push(AWS.S3.ManagedUpload); AWS.util.addPromises(constructors, PromisesDependency); }, /** * Gets the promise dependency set by `AWS.config.setPromisesDependency`. */ getPromisesDependency: function getPromisesDependency() { return PromisesDependency; } }); /** * @return [AWS.Config] The global configuration object singleton instance * @readonly * @see AWS.Config */ AWS.config = new AWS.Config(); /***/ }), /***/ "./node_modules/aws-sdk/lib/core.js": /*!******************************************!*\ !*** ./node_modules/aws-sdk/lib/core.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /** * The main AWS namespace */ var AWS = { util: __webpack_require__(/*! ./util */ "./node_modules/aws-sdk/lib/util.js") }; /** * @api private * @!macro [new] nobrowser * @note This feature is not supported in the browser environment of the SDK. */ var _hidden = {}; _hidden.toString(); // hack to parse macro /** * @api private */ module.exports = AWS; AWS.util.update(AWS, { /** * @constant */ VERSION: '2.518.0', /** * @api private */ Signers: {}, /** * @api private */ Protocol: { Json: __webpack_require__(/*! ./protocol/json */ "./node_modules/aws-sdk/lib/protocol/json.js"), Query: __webpack_require__(/*! ./protocol/query */ "./node_modules/aws-sdk/lib/protocol/query.js"), Rest: __webpack_require__(/*! ./protocol/rest */ "./node_modules/aws-sdk/lib/protocol/rest.js"), RestJson: __webpack_require__(/*! ./protocol/rest_json */ "./node_modules/aws-sdk/lib/protocol/rest_json.js"), RestXml: __webpack_require__(/*! ./protocol/rest_xml */ "./node_modules/aws-sdk/lib/protocol/rest_xml.js") }, /** * @api private */ XML: { Builder: __webpack_require__(/*! ./xml/builder */ "./node_modules/aws-sdk/lib/xml/builder.js"), Parser: null // conditionally set based on environment }, /** * @api private */ JSON: { Builder: __webpack_require__(/*! ./json/builder */ "./node_modules/aws-sdk/lib/json/builder.js"), Parser: __webpack_require__(/*! ./json/parser */ "./node_modules/aws-sdk/lib/json/parser.js") }, /** * @api private */ Model: { Api: __webpack_require__(/*! ./model/api */ "./node_modules/aws-sdk/lib/model/api.js"), Operation: __webpack_require__(/*! ./model/operation */ "./node_modules/aws-sdk/lib/model/operation.js"), Shape: __webpack_require__(/*! ./model/shape */ "./node_modules/aws-sdk/lib/model/shape.js"), Paginator: __webpack_require__(/*! ./model/paginator */ "./node_modules/aws-sdk/lib/model/paginator.js"), ResourceWaiter: __webpack_require__(/*! ./model/resource_waiter */ "./node_modules/aws-sdk/lib/model/resource_waiter.js") }, /** * @api private */ apiLoader: __webpack_require__(/*! ./api_loader */ "./node_modules/aws-sdk/lib/api_loader.js"), /** * @api private */ EndpointCache: __webpack_require__(/*! ../vendor/endpoint-cache */ "./node_modules/aws-sdk/vendor/endpoint-cache/index.js").EndpointCache }); __webpack_require__(/*! ./sequential_executor */ "./node_modules/aws-sdk/lib/sequential_executor.js"); __webpack_require__(/*! ./service */ "./node_modules/aws-sdk/lib/service.js"); __webpack_require__(/*! ./config */ "./node_modules/aws-sdk/lib/config.js"); __webpack_require__(/*! ./http */ "./node_modules/aws-sdk/lib/http.js"); __webpack_require__(/*! ./event_listeners */ "./node_modules/aws-sdk/lib/event_listeners.js"); __webpack_require__(/*! ./request */ "./node_modules/aws-sdk/lib/request.js"); __webpack_require__(/*! ./response */ "./node_modules/aws-sdk/lib/response.js"); __webpack_require__(/*! ./resource_waiter */ "./node_modules/aws-sdk/lib/resource_waiter.js"); __webpack_require__(/*! ./signers/request_signer */ "./node_modules/aws-sdk/lib/signers/request_signer.js"); __webpack_require__(/*! ./param_validator */ "./node_modules/aws-sdk/lib/param_validator.js"); /** * @readonly * @return [AWS.SequentialExecutor] a collection of global event listeners that * are attached to every sent request. * @see AWS.Request AWS.Request for a list of events to listen for * @example Logging the time taken to send a request * AWS.events.on('send', function startSend(resp) { * resp.startTime = new Date().getTime(); * }).on('complete', function calculateTime(resp) { * var time = (new Date().getTime() - resp.startTime) / 1000; * console.log('Request took ' + time + ' seconds'); * }); * * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' */ AWS.events = new AWS.SequentialExecutor(); //create endpoint cache lazily AWS.util.memoizedProperty(AWS, 'endpointCache', function() { return new AWS.EndpointCache(AWS.config.endpointCacheSize); }, true); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); /** * Represents your AWS security credentials, specifically the * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. * Creating a `Credentials` object allows you to pass around your * security information to configuration and service objects. * * Note that this class typically does not need to be constructed manually, * as the {AWS.Config} and {AWS.Service} classes both accept simple * options hashes with the three keys. These structures will be converted * into Credentials objects automatically. * * ## Expiring and Refreshing Credentials * * Occasionally credentials can expire in the middle of a long-running * application. In this case, the SDK will automatically attempt to * refresh the credentials from the storage location if the Credentials * class implements the {refresh} method. * * If you are implementing a credential storage location, you * will want to create a subclass of the `Credentials` class and * override the {refresh} method. This method allows credentials to be * retrieved from the backing store, be it a file system, database, or * some network storage. The method should reset the credential attributes * on the object. * * @!attribute expired * @return [Boolean] whether the credentials have been expired and * require a refresh. Used in conjunction with {expireTime}. * @!attribute expireTime * @return [Date] a time when credentials should be considered expired. Used * in conjunction with {expired}. * @!attribute accessKeyId * @return [String] the AWS access key ID * @!attribute secretAccessKey * @return [String] the AWS secret access key * @!attribute sessionToken * @return [String] an optional AWS session token */ AWS.Credentials = AWS.util.inherit({ /** * A credentials object can be created using positional arguments or an options * hash. * * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) * Creates a Credentials object with a given set of credential information * as positional arguments. * @param accessKeyId [String] the AWS access key ID * @param secretAccessKey [String] the AWS secret access key * @param sessionToken [String] the optional AWS session token * @example Create a credentials object with AWS credentials * var creds = new AWS.Credentials('akid', 'secret', 'session'); * @overload AWS.Credentials(options) * Creates a Credentials object with a given set of credential information * as an options hash. * @option options accessKeyId [String] the AWS access key ID * @option options secretAccessKey [String] the AWS secret access key * @option options sessionToken [String] the optional AWS session token * @example Create a credentials object with AWS credentials * var creds = new AWS.Credentials({ * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' * }); */ constructor: function Credentials() { // hide secretAccessKey from being displayed with util.inspect AWS.util.hideProperties(this, ['secretAccessKey']); this.expired = false; this.expireTime = null; this.refreshCallbacks = []; if (arguments.length === 1 && typeof arguments[0] === 'object') { var creds = arguments[0].credentials || arguments[0]; this.accessKeyId = creds.accessKeyId; this.secretAccessKey = creds.secretAccessKey; this.sessionToken = creds.sessionToken; } else { this.accessKeyId = arguments[0]; this.secretAccessKey = arguments[1]; this.sessionToken = arguments[2]; } }, /** * @return [Integer] the number of seconds before {expireTime} during which * the credentials will be considered expired. */ expiryWindow: 15, /** * @return [Boolean] whether the credentials object should call {refresh} * @note Subclasses should override this method to provide custom refresh * logic. */ needsRefresh: function needsRefresh() { var currentTime = AWS.util.date.getDate().getTime(); var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); if (this.expireTime && adjustedTime > this.expireTime) { return true; } else { return this.expired || !this.accessKeyId || !this.secretAccessKey; } }, /** * Gets the existing credentials, refreshing them if they are not yet loaded * or have expired. Users should call this method before using {refresh}, * as this will not attempt to reload credentials when they are already * loaded into the object. * * @callback callback function(err) * When this callback is called with no error, it means either credentials * do not need to be refreshed or refreshed credentials information has * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, * and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled */ get: function get(callback) { var self = this; if (this.needsRefresh()) { this.refresh(function(err) { if (!err) self.expired = false; // reset expired flag if (callback) callback(err); }); } else if (callback) { callback(); } }, /** * @!method getPromise() * Returns a 'thenable' promise. * Gets the existing credentials, refreshing them if they are not yet loaded * or have expired. Users should call this method before using {refresh}, * as this will not attempt to reload credentials when they are already * loaded into the object. * * Two callbacks can be provided to the `then` method on the returned promise. * The first callback will be called if the promise is fulfilled, and the second * callback will be called if the promise is rejected. * @callback fulfilledCallback function() * Called if the promise is fulfilled. When this callback is called, it * means either credentials do not need to be refreshed or refreshed * credentials information has been loaded into the object (as the * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). * @callback rejectedCallback function(err) * Called if the promise is rejected. * @param err [Error] if an error occurred, this value will be filled * @return [Promise] A promise that represents the state of the `get` call. * @example Calling the `getPromise` method. * var promise = credProvider.getPromise(); * promise.then(function() { ... }, function(err) { ... }); */ /** * @!method refreshPromise() * Returns a 'thenable' promise. * Refreshes the credentials. Users should call {get} before attempting * to forcibly refresh credentials. * * Two callbacks can be provided to the `then` method on the returned promise. * The first callback will be called if the promise is fulfilled, and the second * callback will be called if the promise is rejected. * @callback fulfilledCallback function() * Called if the promise is fulfilled. When this callback is called, it * means refreshed credentials information has been loaded into the object * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). * @callback rejectedCallback function(err) * Called if the promise is rejected. * @param err [Error] if an error occurred, this value will be filled * @return [Promise] A promise that represents the state of the `refresh` call. * @example Calling the `refreshPromise` method. * var promise = credProvider.refreshPromise(); * promise.then(function() { ... }, function(err) { ... }); */ /** * Refreshes the credentials. Users should call {get} before attempting * to forcibly refresh credentials. * * @callback callback function(err) * When this callback is called with no error, it means refreshed * credentials information has been loaded into the object (as the * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @note Subclasses should override this class to reset the * {accessKeyId}, {secretAccessKey} and optional {sessionToken} * on the credentials object and then call the callback with * any error information. * @see get */ refresh: function refresh(callback) { this.expired = false; callback(); }, /** * @api private * @param callback */ coalesceRefresh: function coalesceRefresh(callback, sync) { var self = this; if (self.refreshCallbacks.push(callback) === 1) { self.load(function onLoad(err) { AWS.util.arrayEach(self.refreshCallbacks, function(callback) { if (sync) { callback(err); } else { // callback could throw, so defer to ensure all callbacks are notified AWS.util.defer(function () { callback(err); }); } }); self.refreshCallbacks.length = 0; }); } }, /** * @api private * @param callback */ load: function load(callback) { callback(); } }); /** * @api private */ AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); }; /** * @api private */ AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { delete this.prototype.getPromise; delete this.prototype.refreshPromise; }; AWS.util.addPromises(AWS.Credentials); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js": /*!*********************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var STS = __webpack_require__(/*! ../../clients/sts */ "./node_modules/aws-sdk/clients/sts.js"); /** * Represents temporary credentials retrieved from {AWS.STS}. Without any * extra parameters, credentials will be fetched from the * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the * {AWS.STS.assumeRole} operation will be used to fetch credentials for the * role instead. * * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in * the way masterCredentials and refreshes are handled. * AWS.ChainableTemporaryCredentials refreshes expired credentials using the * masterCredentials passed by the user to support chaining of STS credentials. * However, AWS.TemporaryCredentials recursively collapses the masterCredentials * during instantiation, precluding the ability to refresh credentials which * require intermediate, temporary credentials. * * For example, if the application should use RoleA, which must be assumed from * RoleB, and the environment provides credentials which can assume RoleB, then * AWS.ChainableTemporaryCredentials must be used to support refreshing the * temporary credentials for RoleA: * * ```javascript * var roleACreds = new AWS.ChainableTemporaryCredentials({ * params: {RoleArn: 'RoleA'}, * masterCredentials: new AWS.ChainableTemporaryCredentials({ * params: {RoleArn: 'RoleB'}, * masterCredentials: new AWS.EnvironmentCredentials('AWS') * }) * }); * ``` * * If AWS.TemporaryCredentials had been used in the previous example, * `roleACreds` would fail to refresh because `roleACreds` would * use the environment credentials for the AssumeRole request. * * Another difference is that AWS.ChainableTemporaryCredentials creates the STS * service instance during instantiation while AWS.TemporaryCredentials creates * the STS service instance during the first refresh. Creating the service * instance during instantiation effectively captures the master credentials * from the global config, so that subsequent changes to the global config do * not affect the master credentials used to refresh the temporary credentials. * * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned * to AWS.config.credentials: * * ```javascript * var envCreds = new AWS.EnvironmentCredentials('AWS'); * AWS.config.credentials = envCreds; * // masterCredentials will be envCreds * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({ * params: {RoleArn: '...'} * }); * ``` * * Similarly, to use the CredentialProviderChain's default providers as the * master credentials, simply create a new instance of * AWS.ChainableTemporaryCredentials: * * ```javascript * AWS.config.credentials = new ChainableTemporaryCredentials({ * params: {RoleArn: '...'} * }); * ``` * * @!attribute service * @return [AWS.STS] the STS service instance used to * get and refresh temporary credentials from AWS STS. * @note (see constructor) */ AWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, { /** * Creates a new temporary credentials object. * * @param options [map] a set of options * @option options params [map] ({}) a map of options that are passed to the * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations. * If a `RoleArn` parameter is passed in, credentials will be based on the * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must * also be passed in or an error will be thrown. * @option options masterCredentials [AWS.Credentials] the master credentials * used to get and refresh temporary credentials from AWS STS. By default, * AWS.config.credentials or AWS.config.credentialProvider will be used. * @option options tokenCodeFn [Function] (null) Function to provide * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function * is called with value of `SerialNumber` and `callback`, and should provide * the `TokenCode` or an error to the callback in the format * `callback(err, token)`. * @example Creating a new credentials object for generic temporary credentials * AWS.config.credentials = new AWS.ChainableTemporaryCredentials(); * @example Creating a new credentials object for an IAM role * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({ * params: { * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials' * } * }); * @see AWS.STS.assumeRole * @see AWS.STS.getSessionToken */ constructor: function ChainableTemporaryCredentials(options) { AWS.Credentials.call(this); options = options || {}; this.errorCode = 'ChainableTemporaryCredentialsProviderFailure'; this.expired = true; this.tokenCodeFn = null; var params = AWS.util.copy(options.params) || {}; if (params.RoleArn) { params.RoleSessionName = params.RoleSessionName || 'temporary-credentials'; } if (params.SerialNumber) { if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) { throw new AWS.util.error( new Error('tokenCodeFn must be a function when params.SerialNumber is given'), {code: this.errorCode} ); } else { this.tokenCodeFn = options.tokenCodeFn; } } config = AWS.util.merge( { params: params, credentials: options.masterCredentials || AWS.config.credentials }, options.stsConfig || {} ); this.service = new STS(config); }, /** * Refreshes credentials using {AWS.STS.assumeRole} or * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed * to the credentials {constructor}. * * @callback callback function(err) * Called when the STS service responds (or fails). When * this callback is called with no error, it means that the credentials * information has been loaded into the object (as the `accessKeyId`, * `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @see AWS.Credentials.get */ refresh: function refresh(callback) { this.coalesceRefresh(callback || AWS.util.fn.callback); }, /** * @api private * @param callback */ load: function load(callback) { var self = this; var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken'; this.getTokenCode(function (err, tokenCode) { var params = {}; if (err) { callback(err); return; } if (tokenCode) { params.TokenCode = tokenCode; } self.service[operation](params, function (err, data) { if (!err) { self.service.credentialsFrom(data, self); } callback(err); }); }); }, /** * @api private */ getTokenCode: function getTokenCode(callback) { var self = this; if (this.tokenCodeFn) { this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) { if (err) { var message = err; if (err instanceof Error) { message = err.message; } callback( AWS.util.error( new Error('Error fetching MFA token: ' + message), { code: self.errorCode} ) ); return; } callback(null, token); }); } else { callback(null); } } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js": /*!******************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js ***! \******************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var CognitoIdentity = __webpack_require__(/*! ../../clients/cognitoidentity */ "./node_modules/aws-sdk/clients/cognitoidentity.js"); var STS = __webpack_require__(/*! ../../clients/sts */ "./node_modules/aws-sdk/clients/sts.js"); /** * Represents credentials retrieved from STS Web Identity Federation using * the Amazon Cognito Identity service. * * By default this provider gets credentials using the * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to * obtain an `IdentityId`. If the identity or identity pool is not configured in * the Amazon Cognito Console to use IAM roles with the appropriate permissions, * then additionally a `RoleArn` is required containing the ARN of the IAM trust * policy for the Amazon Cognito role that the user will log into. If a `RoleArn` * is provided, then this provider gets credentials using the * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}. * * In addition, if this credential provider is used to provide authenticated * login, the `Logins` map may be set to the tokens provided by the respective * identity providers. See {constructor} for an example on creating a credentials * object with proper property values. * * ## Refreshing Credentials from Identity Service * * In addition to AWS credentials expiring after a given amount of time, the * login token from the identity provider will also expire. Once this token * expires, it will not be usable to refresh AWS credentials, and another * token will be needed. The SDK does not manage refreshing of the token value, * but this can be done through a "refresh token" supported by most identity * providers. Consult the documentation for the identity provider for refreshing * tokens. Once the refreshed token is acquired, you should make sure to update * this new token in the credentials object's {params} property. The following * code will update the WebIdentityToken, assuming you have retrieved an updated * token from the identity provider: * * ```javascript * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken; * ``` * * Future calls to `credentials.refresh()` will now use the new token. * * @!attribute params * @return [map] the map of params passed to * {AWS.CognitoIdentity.getId}, * {AWS.CognitoIdentity.getOpenIdToken}, and * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the * `params.WebIdentityToken` property. * @!attribute data * @return [map] the raw data response from the call to * {AWS.CognitoIdentity.getCredentialsForIdentity}, or * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get * access to other properties from the response. * @!attribute identityId * @return [String] the Cognito ID returned by the last call to * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual * final resolved identity ID from Amazon Cognito. */ AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { /** * @api private */ localStorageKey: { id: 'aws.cognito.identity-id.', providers: 'aws.cognito.identity-providers.' }, /** * Creates a new credentials object. * @example Creating a new credentials object * AWS.config.credentials = new AWS.CognitoIdentityCredentials({ * * // either IdentityPoolId or IdentityId is required * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below) * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity * // or AWS.CognitoIdentity.getOpenIdToken (linked below) * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030', * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f' * * // optional, only necessary when the identity pool is not configured * // to use IAM roles in the Amazon Cognito Console * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below) * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity', * * // optional tokens, used for authenticated login * // See the Logins param for AWS.CognitoIdentity.getID (linked below) * Logins: { * 'graph.facebook.com': 'FBTOKEN', * 'www.amazon.com': 'AMAZONTOKEN', * 'accounts.google.com': 'GOOGLETOKEN', * 'api.twitter.com': 'TWITTERTOKEN', * 'www.digits.com': 'DIGITSTOKEN' * }, * * // optional name, defaults to web-identity * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below) * RoleSessionName: 'web', * * // optional, only necessary when application runs in a browser * // and multiple users are signed in at once, used for caching * LoginId: 'example@gmail.com' * * }, { * // optionally provide configuration to apply to the underlying service clients * // if configuration is not provided, then configuration will be pulled from AWS.config * * // region should match the region your identity pool is located in * region: 'us-east-1', * * // specify timeout options * httpOptions: { * timeout: 100 * } * }); * @see AWS.CognitoIdentity.getId * @see AWS.CognitoIdentity.getCredentialsForIdentity * @see AWS.STS.assumeRoleWithWebIdentity * @see AWS.CognitoIdentity.getOpenIdToken * @see AWS.Config * @note If a region is not provided in the global AWS.config, or * specified in the `clientConfig` to the CognitoIdentityCredentials * constructor, you may encounter a 'Missing credentials in config' error * when calling making a service call. */ constructor: function CognitoIdentityCredentials(params, clientConfig) { AWS.Credentials.call(this); this.expired = true; this.params = params; this.data = null; this._identityId = null; this._clientConfig = AWS.util.copy(clientConfig || {}); this.loadCachedId(); var self = this; Object.defineProperty(this, 'identityId', { get: function() { self.loadCachedId(); return self._identityId || self.params.IdentityId; }, set: function(identityId) { self._identityId = identityId; } }); }, /** * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity}, * or {AWS.STS.assumeRoleWithWebIdentity}. * * @callback callback function(err) * Called when the STS service responds (or fails). When * this callback is called with no error, it means that the credentials * information has been loaded into the object (as the `accessKeyId`, * `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @see AWS.Credentials.get */ refresh: function refresh(callback) { this.coalesceRefresh(callback || AWS.util.fn.callback); }, /** * @api private * @param callback */ load: function load(callback) { var self = this; self.createClients(); self.data = null; self._identityId = null; self.getId(function(err) { if (!err) { if (!self.params.RoleArn) { self.getCredentialsForIdentity(callback); } else { self.getCredentialsFromSTS(callback); } } else { self.clearIdOnNotAuthorized(err); callback(err); } }); }, /** * Clears the cached Cognito ID associated with the currently configured * identity pool ID. Use this to manually invalidate your cache if * the identity pool ID was deleted. */ clearCachedId: function clearCache() { this._identityId = null; delete this.params.IdentityId; var poolId = this.params.IdentityPoolId; var loginId = this.params.LoginId || ''; delete this.storage[this.localStorageKey.id + poolId + loginId]; delete this.storage[this.localStorageKey.providers + poolId + loginId]; }, /** * @api private */ clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) { var self = this; if (err.code == 'NotAuthorizedException') { self.clearCachedId(); } }, /** * Retrieves a Cognito ID, loading from cache if it was already retrieved * on this device. * * @callback callback function(err, identityId) * @param err [Error, null] an error object if the call failed or null if * it succeeded. * @param identityId [String, null] if successful, the callback will return * the Cognito ID. * @note If not loaded explicitly, the Cognito ID is loaded and stored in * localStorage in the browser environment of a device. * @api private */ getId: function getId(callback) { var self = this; if (typeof self.params.IdentityId === 'string') { return callback(null, self.params.IdentityId); } self.cognito.getId(function(err, data) { if (!err && data.IdentityId) { self.params.IdentityId = data.IdentityId; callback(null, data.IdentityId); } else { callback(err); } }); }, /** * @api private */ loadCredentials: function loadCredentials(data, credentials) { if (!data || !credentials) return; credentials.expired = false; credentials.accessKeyId = data.Credentials.AccessKeyId; credentials.secretAccessKey = data.Credentials.SecretKey; credentials.sessionToken = data.Credentials.SessionToken; credentials.expireTime = data.Credentials.Expiration; }, /** * @api private */ getCredentialsForIdentity: function getCredentialsForIdentity(callback) { var self = this; self.cognito.getCredentialsForIdentity(function(err, data) { if (!err) { self.cacheId(data); self.data = data; self.loadCredentials(self.data, self); } else { self.clearIdOnNotAuthorized(err); } callback(err); }); }, /** * @api private */ getCredentialsFromSTS: function getCredentialsFromSTS(callback) { var self = this; self.cognito.getOpenIdToken(function(err, data) { if (!err) { self.cacheId(data); self.params.WebIdentityToken = data.Token; self.webIdentityCredentials.refresh(function(webErr) { if (!webErr) { self.data = self.webIdentityCredentials.data; self.sts.credentialsFrom(self.data, self); } callback(webErr); }); } else { self.clearIdOnNotAuthorized(err); callback(err); } }); }, /** * @api private */ loadCachedId: function loadCachedId() { var self = this; // in the browser we source default IdentityId from localStorage if (AWS.util.isBrowser() && !self.params.IdentityId) { var id = self.getStorage('id'); if (id && self.params.Logins) { var actualProviders = Object.keys(self.params.Logins); var cachedProviders = (self.getStorage('providers') || '').split(','); // only load ID if at least one provider used this ID before var intersect = cachedProviders.filter(function(n) { return actualProviders.indexOf(n) !== -1; }); if (intersect.length !== 0) { self.params.IdentityId = id; } } else if (id) { self.params.IdentityId = id; } } }, /** * @api private */ createClients: function() { var clientConfig = this._clientConfig; this.webIdentityCredentials = this.webIdentityCredentials || new AWS.WebIdentityCredentials(this.params, clientConfig); if (!this.cognito) { var cognitoConfig = AWS.util.merge({}, clientConfig); cognitoConfig.params = this.params; this.cognito = new CognitoIdentity(cognitoConfig); } this.sts = this.sts || new STS(clientConfig); }, /** * @api private */ cacheId: function cacheId(data) { this._identityId = data.IdentityId; this.params.IdentityId = this._identityId; // cache this IdentityId in browser localStorage if possible if (AWS.util.isBrowser()) { this.setStorage('id', data.IdentityId); if (this.params.Logins) { this.setStorage('providers', Object.keys(this.params.Logins).join(',')); } } }, /** * @api private */ getStorage: function getStorage(key) { return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')]; }, /** * @api private */ setStorage: function setStorage(key, val) { try { this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val; } catch (_) {} }, /** * @api private */ storage: (function() { try { var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ? window.localStorage : {}; // Test set/remove which would throw an error in Safari's private browsing storage['aws.test-storage'] = 'foobar'; delete storage['aws.test-storage']; return storage; } catch (_) { return {}; } })() }); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js": /*!***************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js ***! \***************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); /** * Creates a credential provider chain that searches for AWS credentials * in a list of credential providers specified by the {providers} property. * * By default, the chain will use the {defaultProviders} to resolve credentials. * These providers will look in the environment using the * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. * * ## Setting Providers * * Each provider in the {providers} list should be a function that returns * a {AWS.Credentials} object, or a hardcoded credentials object. The function * form allows for delayed execution of the credential construction. * * ## Resolving Credentials from a Chain * * Call {resolve} to return the first valid credential object that can be * loaded by the provider chain. * * For example, to resolve a chain with a custom provider that checks a file * on disk after the set of {defaultProviders}: * * ```javascript * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); * var chain = new AWS.CredentialProviderChain(); * chain.providers.push(diskProvider); * chain.resolve(); * ``` * * The above code will return the `diskProvider` object if the * file contains credentials and the `defaultProviders` do not contain * any credential settings. * * @!attribute providers * @return [Array] * a list of credentials objects or functions that return credentials * objects. If the provider is a function, the function will be * executed lazily when the provider needs to be checked for valid * credentials. By default, this object will be set to the * {defaultProviders}. * @see defaultProviders */ AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { /** * Creates a new CredentialProviderChain with a default set of providers * specified by {defaultProviders}. */ constructor: function CredentialProviderChain(providers) { if (providers) { this.providers = providers; } else { this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); } this.resolveCallbacks = []; }, /** * @!method resolvePromise() * Returns a 'thenable' promise. * Resolves the provider chain by searching for the first set of * credentials in {providers}. * * Two callbacks can be provided to the `then` method on the returned promise. * The first callback will be called if the promise is fulfilled, and the second * callback will be called if the promise is rejected. * @callback fulfilledCallback function(credentials) * Called if the promise is fulfilled and the provider resolves the chain * to a credentials object * @param credentials [AWS.Credentials] the credentials object resolved * by the provider chain. * @callback rejectedCallback function(error) * Called if the promise is rejected. * @param err [Error] the error object returned if no credentials are found. * @return [Promise] A promise that represents the state of the `resolve` method call. * @example Calling the `resolvePromise` method. * var promise = chain.resolvePromise(); * promise.then(function(credentials) { ... }, function(err) { ... }); */ /** * Resolves the provider chain by searching for the first set of * credentials in {providers}. * * @callback callback function(err, credentials) * Called when the provider resolves the chain to a credentials object * or null if no credentials can be found. * * @param err [Error] the error object returned if no credentials are * found. * @param credentials [AWS.Credentials] the credentials object resolved * by the provider chain. * @return [AWS.CredentialProviderChain] the provider, for chaining. */ resolve: function resolve(callback) { var self = this; if (self.providers.length === 0) { callback(new Error('No providers')); return self; } if (self.resolveCallbacks.push(callback) === 1) { var index = 0; var providers = self.providers.slice(0); function resolveNext(err, creds) { if ((!err && creds) || index === providers.length) { AWS.util.arrayEach(self.resolveCallbacks, function (callback) { callback(err, creds); }); self.resolveCallbacks.length = 0; return; } var provider = providers[index++]; if (typeof provider === 'function') { creds = provider.call(); } else { creds = provider; } if (creds.get) { creds.get(function (getErr) { resolveNext(getErr, getErr ? null : creds); }); } else { resolveNext(null, creds); } } resolveNext(); } return self; } }); /** * The default set of providers used by a vanilla CredentialProviderChain. * * In the browser: * * ```javascript * AWS.CredentialProviderChain.defaultProviders = [] * ``` * * In Node.js: * * ```javascript * AWS.CredentialProviderChain.defaultProviders = [ * function () { return new AWS.EnvironmentCredentials('AWS'); }, * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, * function () { return new AWS.SharedIniFileCredentials(); }, * function () { return new AWS.ECSCredentials(); }, * function () { return new AWS.ProcessCredentials(); }, * function () { return new AWS.EC2MetadataCredentials() } * ] * ``` */ AWS.CredentialProviderChain.defaultProviders = []; /** * @api private */ AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); }; /** * @api private */ AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { delete this.prototype.resolvePromise; }; AWS.util.addPromises(AWS.CredentialProviderChain); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/saml_credentials.js": /*!******************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/saml_credentials.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var STS = __webpack_require__(/*! ../../clients/sts */ "./node_modules/aws-sdk/clients/sts.js"); /** * Represents credentials retrieved from STS SAML support. * * By default this provider gets credentials using the * {AWS.STS.assumeRoleWithSAML} service operation. This operation * requires a `RoleArn` containing the ARN of the IAM trust policy for the * application for which credentials will be given, as well as a `PrincipalArn` * representing the ARN for the SAML identity provider. In addition, the * `SAMLAssertion` must be set to the token provided by the identity * provider. See {constructor} for an example on creating a credentials * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values. * * ## Refreshing Credentials from Identity Service * * In addition to AWS credentials expiring after a given amount of time, the * login token from the identity provider will also expire. Once this token * expires, it will not be usable to refresh AWS credentials, and another * token will be needed. The SDK does not manage refreshing of the token value, * but this can be done through a "refresh token" supported by most identity * providers. Consult the documentation for the identity provider for refreshing * tokens. Once the refreshed token is acquired, you should make sure to update * this new token in the credentials object's {params} property. The following * code will update the SAMLAssertion, assuming you have retrieved an updated * token from the identity provider: * * ```javascript * AWS.config.credentials.params.SAMLAssertion = updatedToken; * ``` * * Future calls to `credentials.refresh()` will now use the new token. * * @!attribute params * @return [map] the map of params passed to * {AWS.STS.assumeRoleWithSAML}. To update the token, set the * `params.SAMLAssertion` property. */ AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { /** * Creates a new credentials object. * @param (see AWS.STS.assumeRoleWithSAML) * @example Creating a new credentials object * AWS.config.credentials = new AWS.SAMLCredentials({ * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole', * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal', * SAMLAssertion: 'base64-token', // base64-encoded token from IdP * }); * @see AWS.STS.assumeRoleWithSAML */ constructor: function SAMLCredentials(params) { AWS.Credentials.call(this); this.expired = true; this.params = params; }, /** * Refreshes credentials using {AWS.STS.assumeRoleWithSAML} * * @callback callback function(err) * Called when the STS service responds (or fails). When * this callback is called with no error, it means that the credentials * information has been loaded into the object (as the `accessKeyId`, * `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @see get */ refresh: function refresh(callback) { this.coalesceRefresh(callback || AWS.util.fn.callback); }, /** * @api private */ load: function load(callback) { var self = this; self.createClients(); self.service.assumeRoleWithSAML(function (err, data) { if (!err) { self.service.credentialsFrom(data, self); } callback(err); }); }, /** * @api private */ createClients: function() { this.service = this.service || new STS({params: this.params}); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/temporary_credentials.js": /*!***********************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/temporary_credentials.js ***! \***********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var STS = __webpack_require__(/*! ../../clients/sts */ "./node_modules/aws-sdk/clients/sts.js"); /** * Represents temporary credentials retrieved from {AWS.STS}. Without any * extra parameters, credentials will be fetched from the * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the * {AWS.STS.assumeRole} operation will be used to fetch credentials for the * role instead. * * @note AWS.TemporaryCredentials is deprecated, but remains available for * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the * preferred class for temporary credentials. * * To setup temporary credentials, configure a set of master credentials * using the standard credentials providers (environment, EC2 instance metadata, * or from the filesystem), then set the global credentials to a new * temporary credentials object: * * ```javascript * // Note that environment credentials are loaded by default, * // the following line is shown for clarity: * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS'); * * // Now set temporary credentials seeded from the master credentials * AWS.config.credentials = new AWS.TemporaryCredentials(); * * // subsequent requests will now use temporary credentials from AWS STS. * new AWS.S3().listBucket(function(err, data) { ... }); * ``` * * @!attribute masterCredentials * @return [AWS.Credentials] the master (non-temporary) credentials used to * get and refresh temporary credentials from AWS STS. * @note (see constructor) */ AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { /** * Creates a new temporary credentials object. * * @note In order to create temporary credentials, you first need to have * "master" credentials configured in {AWS.Config.credentials}. These * master credentials are necessary to retrieve the temporary credentials, * as well as refresh the credentials when they expire. * @param params [map] a map of options that are passed to the * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations. * If a `RoleArn` parameter is passed in, credentials will be based on the * IAM role. * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials * used to get and refresh temporary credentials from AWS STS. * @example Creating a new credentials object for generic temporary credentials * AWS.config.credentials = new AWS.TemporaryCredentials(); * @example Creating a new credentials object for an IAM role * AWS.config.credentials = new AWS.TemporaryCredentials({ * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials', * }); * @see AWS.STS.assumeRole * @see AWS.STS.getSessionToken */ constructor: function TemporaryCredentials(params, masterCredentials) { AWS.Credentials.call(this); this.loadMasterCredentials(masterCredentials); this.expired = true; this.params = params || {}; if (this.params.RoleArn) { this.params.RoleSessionName = this.params.RoleSessionName || 'temporary-credentials'; } }, /** * Refreshes credentials using {AWS.STS.assumeRole} or * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed * to the credentials {constructor}. * * @callback callback function(err) * Called when the STS service responds (or fails). When * this callback is called with no error, it means that the credentials * information has been loaded into the object (as the `accessKeyId`, * `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @see get */ refresh: function refresh (callback) { this.coalesceRefresh(callback || AWS.util.fn.callback); }, /** * @api private */ load: function load (callback) { var self = this; self.createClients(); self.masterCredentials.get(function () { self.service.config.credentials = self.masterCredentials; var operation = self.params.RoleArn ? self.service.assumeRole : self.service.getSessionToken; operation.call(self.service, function (err, data) { if (!err) { self.service.credentialsFrom(data, self); } callback(err); }); }); }, /** * @api private */ loadMasterCredentials: function loadMasterCredentials (masterCredentials) { this.masterCredentials = masterCredentials || AWS.config.credentials; while (this.masterCredentials.masterCredentials) { this.masterCredentials = this.masterCredentials.masterCredentials; } if (typeof this.masterCredentials.get !== 'function') { this.masterCredentials = new AWS.Credentials(this.masterCredentials); } }, /** * @api private */ createClients: function () { this.service = this.service || new STS({params: this.params}); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js": /*!**************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js ***! \**************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var STS = __webpack_require__(/*! ../../clients/sts */ "./node_modules/aws-sdk/clients/sts.js"); /** * Represents credentials retrieved from STS Web Identity Federation support. * * By default this provider gets credentials using the * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation * requires a `RoleArn` containing the ARN of the IAM trust policy for the * application for which credentials will be given. In addition, the * `WebIdentityToken` must be set to the token provided by the identity * provider. See {constructor} for an example on creating a credentials * object with proper `RoleArn` and `WebIdentityToken` values. * * ## Refreshing Credentials from Identity Service * * In addition to AWS credentials expiring after a given amount of time, the * login token from the identity provider will also expire. Once this token * expires, it will not be usable to refresh AWS credentials, and another * token will be needed. The SDK does not manage refreshing of the token value, * but this can be done through a "refresh token" supported by most identity * providers. Consult the documentation for the identity provider for refreshing * tokens. Once the refreshed token is acquired, you should make sure to update * this new token in the credentials object's {params} property. The following * code will update the WebIdentityToken, assuming you have retrieved an updated * token from the identity provider: * * ```javascript * AWS.config.credentials.params.WebIdentityToken = updatedToken; * ``` * * Future calls to `credentials.refresh()` will now use the new token. * * @!attribute params * @return [map] the map of params passed to * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the * `params.WebIdentityToken` property. * @!attribute data * @return [map] the raw data response from the call to * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get * access to other properties from the response. */ AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { /** * Creates a new credentials object. * @param (see AWS.STS.assumeRoleWithWebIdentity) * @example Creating a new credentials object * AWS.config.credentials = new AWS.WebIdentityCredentials({ * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service * RoleSessionName: 'web' // optional name, defaults to web-identity * }, { * // optionally provide configuration to apply to the underlying AWS.STS service client * // if configuration is not provided, then configuration will be pulled from AWS.config * * // specify timeout options * httpOptions: { * timeout: 100 * } * }); * @see AWS.STS.assumeRoleWithWebIdentity * @see AWS.Config */ constructor: function WebIdentityCredentials(params, clientConfig) { AWS.Credentials.call(this); this.expired = true; this.params = params; this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; this.data = null; this._clientConfig = AWS.util.copy(clientConfig || {}); }, /** * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} * * @callback callback function(err) * Called when the STS service responds (or fails). When * this callback is called with no error, it means that the credentials * information has been loaded into the object (as the `accessKeyId`, * `secretAccessKey`, and `sessionToken` properties). * @param err [Error] if an error occurred, this value will be filled * @see get */ refresh: function refresh(callback) { this.coalesceRefresh(callback || AWS.util.fn.callback); }, /** * @api private */ load: function load(callback) { var self = this; self.createClients(); self.service.assumeRoleWithWebIdentity(function (err, data) { self.data = null; if (!err) { self.data = data; self.service.credentialsFrom(data, self); } callback(err); }); }, /** * @api private */ createClients: function() { if (!this.service) { var stsConfig = AWS.util.merge({}, this._clientConfig); stsConfig.params = this.params; this.service = new STS(stsConfig); } } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/discover_endpoint.js": /*!*******************************************************!*\ !*** ./node_modules/aws-sdk/lib/discover_endpoint.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var util = __webpack_require__(/*! ./util */ "./node_modules/aws-sdk/lib/util.js"); var endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED']; /** * Generate key (except resources and operation part) to index the endpoints in the cache * If input shape has endpointdiscoveryid trait then use * accessKey + operation + resources + region + service as cache key * If input shape doesn't have endpointdiscoveryid trait then use * accessKey + region + service as cache key * @return [map] object with keys to index endpoints. * @api private */ function getCacheKey(request) { var service = request.service; var api = service.api || {}; var operations = api.operations; var identifiers = {}; if (service.config.region) { identifiers.region = service.config.region; } if (api.serviceId) { identifiers.serviceId = api.serviceId; } if (service.config.credentials.accessKeyId) { identifiers.accessKeyId = service.config.credentials.accessKeyId; } return identifiers; } /** * Recursive helper for marshallCustomIdentifiers(). * Looks for required string input members that have 'endpointdiscoveryid' trait. * @api private */ function marshallCustomIdentifiersHelper(result, params, shape) { if (!shape || params === undefined || params === null) return; if (shape.type === 'structure' && shape.required && shape.required.length > 0) { util.arrayEach(shape.required, function(name) { var memberShape = shape.members[name]; if (memberShape.endpointDiscoveryId === true) { var locationName = memberShape.isLocationName ? memberShape.name : name; result[locationName] = String(params[name]); } else { marshallCustomIdentifiersHelper(result, params[name], memberShape); } }); } } /** * Get custom identifiers for cache key. * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait. * @param [object] request object * @param [object] input shape of the given operation's api * @api private */ function marshallCustomIdentifiers(request, shape) { var identifiers = {}; marshallCustomIdentifiersHelper(identifiers, request.params, shape); return identifiers; } /** * Call endpoint discovery operation when it's optional. * When endpoint is available in cache then use the cached endpoints. If endpoints * are unavailable then use regional endpoints and call endpoint discovery operation * asynchronously. This is turned off by default. * @param [object] request object * @api private */ function optionalDiscoverEndpoint(request) { var service = request.service; var api = service.api; var operationModel = api.operations ? api.operations[request.operation] : undefined; var inputShape = operationModel ? operationModel.input : undefined; var identifiers = marshallCustomIdentifiers(request, inputShape); var cacheKey = getCacheKey(request); if (Object.keys(identifiers).length > 0) { cacheKey = util.update(cacheKey, identifiers); if (operationModel) cacheKey.operation = operationModel.name; } var endpoints = AWS.endpointCache.get(cacheKey); if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') { //endpoint operation is being made but response not yet received //or endpoint operation just failed in 1 minute return; } else if (endpoints && endpoints.length > 0) { //found endpoint record from cache request.httpRequest.updateEndpoint(endpoints[0].Address); } else { //endpoint record not in cache or outdated. make discovery operation var endpointRequest = service.makeRequest(api.endpointOperation, { Operation: operationModel.name, Identifiers: identifiers, }); addApiVersionHeader(endpointRequest); endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK); //put in a placeholder for endpoints already requested, prevent //too much in-flight calls AWS.endpointCache.put(cacheKey, [{ Address: '', CachePeriodInMinutes: 1 }]); endpointRequest.send(function(err, data) { if (data && data.Endpoints) { AWS.endpointCache.put(cacheKey, data.Endpoints); } else if (err) { AWS.endpointCache.put(cacheKey, [{ Address: '', CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute }]); } }); } } var requestQueue = {}; /** * Call endpoint discovery operation when it's required. * When endpoint is available in cache then use cached ones. If endpoints are * unavailable then SDK should call endpoint operation then use returned new * endpoint for the api call. SDK will automatically attempt to do endpoint * discovery. This is turned off by default * @param [object] request object * @api private */ function requiredDiscoverEndpoint(request, done) { var service = request.service; var api = service.api; var operationModel = api.operations ? api.operations[request.operation] : undefined; var inputShape = operationModel ? operationModel.input : undefined; var identifiers = marshallCustomIdentifiers(request, inputShape); var cacheKey = getCacheKey(request); if (Object.keys(identifiers).length > 0) { cacheKey = util.update(cacheKey, identifiers); if (operationModel) cacheKey.operation = operationModel.name; } var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey); var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') { //endpoint operation is being made but response not yet received //push request object to a pending queue if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = []; requestQueue[cacheKeyStr].push({request: request, callback: done}); return; } else if (endpoints && endpoints.length > 0) { request.httpRequest.updateEndpoint(endpoints[0].Address); done(); } else { var endpointRequest = service.makeRequest(api.endpointOperation, { Operation: operationModel.name, Identifiers: identifiers, }); endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); addApiVersionHeader(endpointRequest); //put in a placeholder for endpoints already requested, prevent //too much in-flight calls AWS.endpointCache.put(cacheKeyStr, [{ Address: '', CachePeriodInMinutes: 60 //long-live cache }]); endpointRequest.send(function(err, data) { if (err) { var errorParams = { code: 'EndpointDiscoveryException', message: 'Request cannot be fulfilled without specifying an endpoint', retryable: false }; request.response.error = util.error(err, errorParams); AWS.endpointCache.remove(cacheKey); //fail all the pending requests in batch if (requestQueue[cacheKeyStr]) { var pendingRequests = requestQueue[cacheKeyStr]; util.arrayEach(pendingRequests, function(requestContext) { requestContext.request.response.error = util.error(err, errorParams); requestContext.callback(); }); delete requestQueue[cacheKeyStr]; } } else if (data) { AWS.endpointCache.put(cacheKeyStr, data.Endpoints); request.httpRequest.updateEndpoint(data.Endpoints[0].Address); //update the endpoint for all the pending requests in batch if (requestQueue[cacheKeyStr]) { var pendingRequests = requestQueue[cacheKeyStr]; util.arrayEach(pendingRequests, function(requestContext) { requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address); requestContext.callback(); }); delete requestQueue[cacheKeyStr]; } } done(); }); } } /** * add api version header to endpoint operation * @api private */ function addApiVersionHeader(endpointRequest) { var api = endpointRequest.service.api; var apiVersion = api.apiVersion; if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) { endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion; } } /** * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid * endpoint from cache. * @api private */ function invalidateCachedEndpoints(response) { var error = response.error; var httpResponse = response.httpResponse; if (error && (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421) ) { var request = response.request; var operations = request.service.api.operations || {}; var inputShape = operations[request.operation] ? operations[request.operation].input : undefined; var identifiers = marshallCustomIdentifiers(request, inputShape); var cacheKey = getCacheKey(request); if (Object.keys(identifiers).length > 0) { cacheKey = util.update(cacheKey, identifiers); if (operations[request.operation]) cacheKey.operation = operations[request.operation].name; } AWS.endpointCache.remove(cacheKey); } } /** * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime. * @param [object] client Service client object. * @api private */ function hasCustomEndpoint(client) { //if set endpoint is set for specific client, enable endpoint discovery will raise an error. if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) { throw util.error(new Error(), { code: 'ConfigurationException', message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.' }); }; var svcConfig = AWS.config[client.serviceIdentifier] || {}; return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint)); } /** * @api private */ function isFalsy(value) { return ['false', '0'].indexOf(value) >= 0; } /** * If endpoint discovery should perform for this request when endpoint discovery is optional. * SDK performs config resolution in order like below: * 1. If turned on client configuration(default to off) then turn on endpoint discovery. * 2. If turned on in env AWS_ENABLE_ENDPOINT_DISCOVERY then turn on endpoint discovery. * 3. If turned on in shared ini config file with key 'endpoint_discovery_enabled', then * turn on endpoint discovery. * @param [object] request request object. * @api private */ function isEndpointDiscoveryApplicable(request) { var service = request.service || {}; if (service.config.endpointDiscoveryEnabled === true) return true; //shared ini file is only available in Node //not to check env in browser if (util.isBrowser()) return false; for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) { var env = endpointDiscoveryEnabledEnvs[i]; if (Object.prototype.hasOwnProperty.call(Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}), env)) { if (Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[env] === '' || Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[env] === undefined) { throw util.error(new Error(), { code: 'ConfigurationException', message: 'environmental variable ' + env + ' cannot be set to nothing' }); } if (!isFalsy(Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[env])) return true; } } var configFile = {}; try { configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({ isConfig: true, filename: Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[AWS.util.sharedConfigFileEnv] }) : {}; } catch (e) {} var sharedFileConfig = configFile[ Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).AWS_PROFILE || AWS.util.defaultProfile ] || {}; if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) { if (sharedFileConfig.endpoint_discovery_enabled === undefined) { throw util.error(new Error(), { code: 'ConfigurationException', message: 'config file entry \'endpoint_discovery_enabled\' cannot be set to nothing' }); } if (!isFalsy(sharedFileConfig.endpoint_discovery_enabled)) return true; } return false; } /** * attach endpoint discovery logic to request object * @param [object] request * @api private */ function discoverEndpoint(request, done) { var service = request.service || {}; if (hasCustomEndpoint(service) || request.isPresigned()) return done(); if (!isEndpointDiscoveryApplicable(request)) return done(); request.httpRequest.appendToUserAgent('endpoint-discovery'); var operations = service.api.operations || {}; var operationModel = operations[request.operation]; var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL'; switch (isEndpointDiscoveryRequired) { case 'OPTIONAL': optionalDiscoverEndpoint(request); request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints); done(); break; case 'REQUIRED': request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints); requiredDiscoverEndpoint(request, done); break; case 'NULL': default: done(); break; } } module.exports = { discoverEndpoint: discoverEndpoint, requiredDiscoverEndpoint: requiredDiscoverEndpoint, optionalDiscoverEndpoint: optionalDiscoverEndpoint, marshallCustomIdentifiers: marshallCustomIdentifiers, getCacheKey: getCacheKey, invalidateCachedEndpoint: invalidateCachedEndpoints, }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js": /*!*******************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js ***! \*******************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var eventMessageChunker = __webpack_require__(/*! ../event-stream/event-message-chunker */ "./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js").eventMessageChunker; var parseEvent = __webpack_require__(/*! ./parse-event */ "./node_modules/aws-sdk/lib/event-stream/parse-event.js").parseEvent; function createEventStream(body, parser, model) { var eventMessages = eventMessageChunker(body); var events = []; for (var i = 0; i < eventMessages.length; i++) { events.push(parseEvent(parser, eventMessages[i], model)); } return events; } /** * @api private */ module.exports = { createEventStream: createEventStream }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js": /*!************************************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js ***! \************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Takes in a buffer of event messages and splits them into individual messages. * @param {Buffer} buffer * @api private */ function eventMessageChunker(buffer) { /** @type Buffer[] */ var messages = []; var offset = 0; while (offset < buffer.length) { var totalLength = buffer.readInt32BE(offset); // create new buffer for individual message (shares memory with original) var message = buffer.slice(offset, totalLength + offset); // increment offset to it starts at the next message offset += totalLength; messages.push(message); } return messages; } /** * @api private */ module.exports = { eventMessageChunker: eventMessageChunker }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/int64.js": /*!********************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/int64.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js").util; var toBuffer = util.buffer.toBuffer; /** * A lossless representation of a signed, 64-bit integer. Instances of this * class may be used in arithmetic expressions as if they were numeric * primitives, but the binary representation will be preserved unchanged as the * `bytes` property of the object. The bytes should be encoded as big-endian, * two's complement integers. * @param {Buffer} bytes * * @api private */ function Int64(bytes) { if (bytes.length !== 8) { throw new Error('Int64 buffers must be exactly 8 bytes'); } if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes); this.bytes = bytes; } /** * @param {number} number * @returns {Int64} * * @api private */ Int64.fromNumber = function(number) { if (number > 9223372036854775807 || number < -9223372036854775808) { throw new Error( number + ' is too large (or, if negative, too small) to represent as an Int64' ); } var bytes = new Uint8Array(8); for ( var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256 ) { bytes[i] = remaining; } if (number < 0) { negate(bytes); } return new Int64(bytes); }; /** * @returns {number} * * @api private */ Int64.prototype.valueOf = function() { var bytes = this.bytes.slice(0); var negative = bytes[0] & 128; if (negative) { negate(bytes); } return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1); }; Int64.prototype.toString = function() { return String(this.valueOf()); }; /** * @param {Buffer} bytes * * @api private */ function negate(bytes) { for (var i = 0; i < 8; i++) { bytes[i] ^= 0xFF; } for (var i = 7; i > -1; i--) { bytes[i]++; if (bytes[i] !== 0) { break; } } } /** * @api private */ module.exports = { Int64: Int64 }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/parse-event.js": /*!**************************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/parse-event.js ***! \**************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var parseMessage = __webpack_require__(/*! ./parse-message */ "./node_modules/aws-sdk/lib/event-stream/parse-message.js").parseMessage; /** * * @param {*} parser * @param {Buffer} message * @param {*} shape * @api private */ function parseEvent(parser, message, shape) { var parsedMessage = parseMessage(message); // check if message is an event or error var messageType = parsedMessage.headers[':message-type']; if (messageType) { if (messageType.value === 'error') { throw parseError(parsedMessage); } else if (messageType.value !== 'event') { // not sure how to parse non-events/non-errors, ignore for now return; } } // determine event type var eventType = parsedMessage.headers[':event-type']; // check that the event type is modeled var eventModel = shape.members[eventType.value]; if (!eventModel) { return; } var result = {}; // check if an event payload exists var eventPayloadMemberName = eventModel.eventPayloadMemberName; if (eventPayloadMemberName) { var payloadShape = eventModel.members[eventPayloadMemberName]; // if the shape is binary, return the byte array if (payloadShape.type === 'binary') { result[eventPayloadMemberName] = parsedMessage.body; } else { result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape); } } // read event headers var eventHeaderNames = eventModel.eventHeaderMemberNames; for (var i = 0; i < eventHeaderNames.length; i++) { var name = eventHeaderNames[i]; if (parsedMessage.headers[name]) { // parse the header! result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value); } } var output = {}; output[eventType.value] = result; return output; } function parseError(message) { var errorCode = message.headers[':error-code']; var errorMessage = message.headers[':error-message']; var error = new Error(errorMessage.value || errorMessage); error.code = error.name = errorCode.value || errorCode; return error; } /** * @api private */ module.exports = { parseEvent: parseEvent }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/parse-message.js": /*!****************************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/parse-message.js ***! \****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Int64 = __webpack_require__(/*! ./int64 */ "./node_modules/aws-sdk/lib/event-stream/int64.js").Int64; var splitMessage = __webpack_require__(/*! ./split-message */ "./node_modules/aws-sdk/lib/event-stream/split-message.js").splitMessage; var BOOLEAN_TAG = 'boolean'; var BYTE_TAG = 'byte'; var SHORT_TAG = 'short'; var INT_TAG = 'integer'; var LONG_TAG = 'long'; var BINARY_TAG = 'binary'; var STRING_TAG = 'string'; var TIMESTAMP_TAG = 'timestamp'; var UUID_TAG = 'uuid'; /** * @api private * * @param {Buffer} headers */ function parseHeaders(headers) { var out = {}; var position = 0; while (position < headers.length) { var nameLength = headers.readUInt8(position++); var name = headers.slice(position, position + nameLength).toString(); position += nameLength; switch (headers.readUInt8(position++)) { case 0 /* boolTrue */: out[name] = { type: BOOLEAN_TAG, value: true }; break; case 1 /* boolFalse */: out[name] = { type: BOOLEAN_TAG, value: false }; break; case 2 /* byte */: out[name] = { type: BYTE_TAG, value: headers.readInt8(position++) }; break; case 3 /* short */: out[name] = { type: SHORT_TAG, value: headers.readInt16BE(position) }; position += 2; break; case 4 /* integer */: out[name] = { type: INT_TAG, value: headers.readInt32BE(position) }; position += 4; break; case 5 /* long */: out[name] = { type: LONG_TAG, value: new Int64(headers.slice(position, position + 8)) }; position += 8; break; case 6 /* byteArray */: var binaryLength = headers.readUInt16BE(position); position += 2; out[name] = { type: BINARY_TAG, value: headers.slice(position, position + binaryLength) }; position += binaryLength; break; case 7 /* string */: var stringLength = headers.readUInt16BE(position); position += 2; out[name] = { type: STRING_TAG, value: headers.slice( position, position + stringLength ).toString() }; position += stringLength; break; case 8 /* timestamp */: out[name] = { type: TIMESTAMP_TAG, value: new Date( new Int64(headers.slice(position, position + 8)) .valueOf() ) }; position += 8; break; case 9 /* uuid */: var uuidChars = headers.slice(position, position + 16) .toString('hex'); position += 16; out[name] = { type: UUID_TAG, value: uuidChars.substr(0, 8) + '-' + uuidChars.substr(8, 4) + '-' + uuidChars.substr(12, 4) + '-' + uuidChars.substr(16, 4) + '-' + uuidChars.substr(20) }; break; default: throw new Error('Unrecognized header type tag'); } } return out; } function parseMessage(message) { var parsed = splitMessage(message); return { headers: parseHeaders(parsed.headers), body: parsed.body }; } /** * @api private */ module.exports = { parseMessage: parseMessage }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event-stream/split-message.js": /*!****************************************************************!*\ !*** ./node_modules/aws-sdk/lib/event-stream/split-message.js ***! \****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js").util; var toBuffer = util.buffer.toBuffer; // All prelude components are unsigned, 32-bit integers var PRELUDE_MEMBER_LENGTH = 4; // The prelude consists of two components var PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2; // Checksums are always CRC32 hashes. var CHECKSUM_LENGTH = 4; // Messages must include a full prelude, a prelude checksum, and a message checksum var MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2; /** * @api private * * @param {Buffer} message */ function splitMessage(message) { if (!util.Buffer.isBuffer(message)) message = toBuffer(message); if (message.length < MINIMUM_MESSAGE_LENGTH) { throw new Error('Provided message too short to accommodate event stream message overhead'); } if (message.length !== message.readUInt32BE(0)) { throw new Error('Reported message length does not match received message length'); } var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH); if ( expectedPreludeChecksum !== util.crypto.crc32( message.slice(0, PRELUDE_LENGTH) ) ) { throw new Error( 'The prelude checksum specified in the message (' + expectedPreludeChecksum + ') does not match the calculated CRC32 checksum.' ); } var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH); if ( expectedMessageChecksum !== util.crypto.crc32( message.slice(0, message.length - CHECKSUM_LENGTH) ) ) { throw new Error( 'The message checksum did not match the expected value of ' + expectedMessageChecksum ); } var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH; var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH); return { headers: message.slice(headersStart, headersEnd), body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH), }; } /** * @api private */ module.exports = { splitMessage: splitMessage }; /***/ }), /***/ "./node_modules/aws-sdk/lib/event_listeners.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/event_listeners.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var SequentialExecutor = __webpack_require__(/*! ./sequential_executor */ "./node_modules/aws-sdk/lib/sequential_executor.js"); var DISCOVER_ENDPOINT = __webpack_require__(/*! ./discover_endpoint */ "./node_modules/aws-sdk/lib/discover_endpoint.js").discoverEndpoint; /** * The namespace used to register global event listeners for request building * and sending. */ AWS.EventListeners = { /** * @!attribute VALIDATE_CREDENTIALS * A request listener that validates whether the request is being * sent with credentials. * Handles the {AWS.Request~validate 'validate' Request event} * @example Sending a request without validating credentials * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; * request.removeListener('validate', listener); * @readonly * @return [Function] * @!attribute VALIDATE_REGION * A request listener that validates whether the region is set * for a request. * Handles the {AWS.Request~validate 'validate' Request event} * @example Sending a request without validating region configuration * var listener = AWS.EventListeners.Core.VALIDATE_REGION; * request.removeListener('validate', listener); * @readonly * @return [Function] * @!attribute VALIDATE_PARAMETERS * A request listener that validates input parameters in a request. * Handles the {AWS.Request~validate 'validate' Request event} * @example Sending a request without validating parameters * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; * request.removeListener('validate', listener); * @example Disable parameter validation globally * AWS.EventListeners.Core.removeListener('validate', * AWS.EventListeners.Core.VALIDATE_REGION); * @readonly * @return [Function] * @!attribute SEND * A request listener that initiates the HTTP connection for a * request being sent. Handles the {AWS.Request~send 'send' Request event} * @example Replacing the HTTP handler * var listener = AWS.EventListeners.Core.SEND; * request.removeListener('send', listener); * request.on('send', function(response) { * customHandler.send(response); * }); * @return [Function] * @readonly * @!attribute HTTP_DATA * A request listener that reads data from the HTTP connection in order * to build the response data. * Handles the {AWS.Request~httpData 'httpData' Request event}. * Remove this handler if you are overriding the 'httpData' event and * do not want extra data processing and buffering overhead. * @example Disabling default data processing * var listener = AWS.EventListeners.Core.HTTP_DATA; * request.removeListener('httpData', listener); * @return [Function] * @readonly */ Core: {} /* doc hack */ }; /** * @api private */ function getOperationAuthtype(req) { if (!req.service.api.operations) { return ''; } var operation = req.service.api.operations[req.operation]; return operation ? operation.authtype : ''; } AWS.EventListeners = { Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { addAsync('VALIDATE_CREDENTIALS', 'validate', function VALIDATE_CREDENTIALS(req, done) { if (!req.service.api.signatureVersion) return done(); // none req.service.config.getCredentials(function(err) { if (err) { req.response.error = AWS.util.error(err, {code: 'CredentialsError', message: 'Missing credentials in config'}); } done(); }); }); add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { if (!req.service.config.region && !req.service.isGlobalEndpoint) { req.response.error = AWS.util.error(new Error(), {code: 'ConfigError', message: 'Missing region in config'}); } }); add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) { if (!req.service.api.operations) { return; } var operation = req.service.api.operations[req.operation]; if (!operation) { return; } var idempotentMembers = operation.idempotentMembers; if (!idempotentMembers.length) { return; } // creates a copy of params so user's param object isn't mutated var params = AWS.util.copy(req.params); for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) { if (!params[idempotentMembers[i]]) { // add the member params[idempotentMembers[i]] = AWS.util.uuid.v4(); } } req.params = params; }); add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { if (!req.service.api.operations) { return; } var rules = req.service.api.operations[req.operation].input; var validation = req.service.config.paramValidation; new AWS.ParamValidator(validation).validate(rules, req.params); }); addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { req.haltHandlersOnError(); if (!req.service.api.operations) { return; } var operation = req.service.api.operations[req.operation]; var authtype = operation ? operation.authtype : ''; if (!req.service.api.signatureVersion && !authtype) return done(); // none if (req.service.getSignerClass(req) === AWS.Signers.V4) { var body = req.httpRequest.body || ''; if (authtype.indexOf('unsigned-body') >= 0) { req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; return done(); } AWS.util.computeSha256(body, function(err, sha) { if (err) { done(err); } else { req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; done(); } }); } else { done(); } }); add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { var authtype = getOperationAuthtype(req); var payloadMember = AWS.util.getRequestPayloadShape(req); if (req.httpRequest.headers['Content-Length'] === undefined) { try { var length = AWS.util.string.byteLength(req.httpRequest.body); req.httpRequest.headers['Content-Length'] = length; } catch (err) { if (payloadMember && payloadMember.isStreaming) { if (payloadMember.requiresLength) { //streaming payload requires length(s3, glacier) throw err; } else if (authtype.indexOf('unsigned-body') >= 0) { //unbounded streaming payload(lex, mediastore) req.httpRequest.headers['Transfer-Encoding'] = 'chunked'; return; } else { throw err; } } throw err; } } }); add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; }); add('RESTART', 'restart', function RESTART() { var err = this.response.error; if (!err || !err.retryable) return; this.httpRequest = new AWS.HttpRequest( this.service.endpoint, this.service.region ); if (this.response.retryCount < this.service.config.maxRetries) { this.response.retryCount++; } else { this.response.error = null; } }); var addToHead = true; addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead); addAsync('SIGN', 'sign', function SIGN(req, done) { var service = req.service; var operations = req.service.api.operations || {}; var operation = operations[req.operation]; var authtype = operation ? operation.authtype : ''; if (!service.api.signatureVersion && !authtype) return done(); // none service.config.getCredentials(function (err, credentials) { if (err) { req.response.error = err; return done(); } try { var date = service.getSkewCorrectedDate(); var SignerClass = service.getSignerClass(req); var signer = new SignerClass(req.httpRequest, service.api.signingName || service.api.endpointPrefix, { signatureCache: service.config.signatureCache, operation: operation, signatureVersion: service.api.signatureVersion }); signer.setServiceClientId(service._clientId); // clear old authorization headers delete req.httpRequest.headers['Authorization']; delete req.httpRequest.headers['Date']; delete req.httpRequest.headers['X-Amz-Date']; // add new authorization signer.addAuthorization(credentials, date); req.signedAt = date; } catch (e) { req.response.error = e; } done(); }); }); add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { if (this.service.successfulResponse(resp, this)) { resp.data = {}; resp.error = null; } else { resp.data = null; resp.error = AWS.util.error(new Error(), {code: 'UnknownError', message: 'An unknown error occurred.'}); } }); addAsync('SEND', 'send', function SEND(resp, done) { resp.httpResponse._abortCallback = done; resp.error = null; resp.data = null; function callback(httpResp) { resp.httpResponse.stream = httpResp; var stream = resp.request.httpRequest.stream; var service = resp.request.service; var api = service.api; var operationName = resp.request.operation; var operation = api.operations[operationName] || {}; httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) { resp.request.emit( 'httpHeaders', [statusCode, headers, resp, statusMessage] ); if (!resp.httpResponse.streaming) { if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check // if we detect event streams, we're going to have to // return the stream immediately if (operation.hasEventOutput && service.successfulResponse(resp)) { // skip reading the IncomingStream resp.request.emit('httpDone'); done(); return; } httpResp.on('readable', function onReadable() { var data = httpResp.read(); if (data !== null) { resp.request.emit('httpData', [data, resp]); } }); } else { // legacy streams API httpResp.on('data', function onData(data) { resp.request.emit('httpData', [data, resp]); }); } } }); httpResp.on('end', function onEnd() { if (!stream || !stream.didCallback) { if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) { // don't concatenate response chunks when streaming event stream data when response is successful return; } resp.request.emit('httpDone'); done(); } }); } function progress(httpResp) { httpResp.on('sendProgress', function onSendProgress(value) { resp.request.emit('httpUploadProgress', [value, resp]); }); httpResp.on('receiveProgress', function onReceiveProgress(value) { resp.request.emit('httpDownloadProgress', [value, resp]); }); } function error(err) { if (err.code !== 'RequestAbortedError') { var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError'; err = AWS.util.error(err, { code: errCode, region: resp.request.httpRequest.region, hostname: resp.request.httpRequest.endpoint.hostname, retryable: true }); } resp.error = err; resp.request.emit('httpError', [resp.error, resp], function() { done(); }); } function executeSend() { var http = AWS.HttpClient.getInstance(); var httpOptions = resp.request.service.config.httpOptions || {}; try { var stream = http.handleRequest(resp.request.httpRequest, httpOptions, callback, error); progress(stream); } catch (err) { error(err); } } var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000; if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign this.emit('sign', [this], function(err) { if (err) done(err); else executeSend(); }); } else { executeSend(); } }); add('HTTP_HEADERS', 'httpHeaders', function HTTP_HEADERS(statusCode, headers, resp, statusMessage) { resp.httpResponse.statusCode = statusCode; resp.httpResponse.statusMessage = statusMessage; resp.httpResponse.headers = headers; resp.httpResponse.body = AWS.util.buffer.toBuffer(''); resp.httpResponse.buffers = []; resp.httpResponse.numBytes = 0; var dateHeader = headers.date || headers.Date; var service = resp.request.service; if (dateHeader) { var serverTime = Date.parse(dateHeader); if (service.config.correctClockSkew && service.isClockSkewed(serverTime)) { service.applyClockOffset(serverTime); } } }); add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { if (chunk) { if (AWS.util.isNode()) { resp.httpResponse.numBytes += chunk.length; var total = resp.httpResponse.headers['content-length']; var progress = { loaded: resp.httpResponse.numBytes, total: total }; resp.request.emit('httpDownloadProgress', [progress, resp]); } resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk)); } }); add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { // convert buffers array into single buffer if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { var body = AWS.util.buffer.concat(resp.httpResponse.buffers); resp.httpResponse.body = body; } delete resp.httpResponse.numBytes; delete resp.httpResponse.buffers; }); add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { if (resp.httpResponse.statusCode) { resp.error.statusCode = resp.httpResponse.statusCode; if (resp.error.retryable === undefined) { resp.error.retryable = this.service.retryableError(resp.error, this); } } }); add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { if (!resp.error) return; switch (resp.error.code) { case 'RequestExpired': // EC2 only case 'ExpiredTokenException': case 'ExpiredToken': resp.error.retryable = true; resp.request.service.config.credentials.expired = true; } }); add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { var err = resp.error; if (!err) return; if (typeof err.code === 'string' && typeof err.message === 'string') { if (err.code.match(/Signature/) && err.message.match(/expired/)) { resp.error.retryable = true; } } }); add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { if (!resp.error) return; if (this.service.clockSkewError(resp.error) && this.service.config.correctClockSkew) { resp.error.retryable = true; } }); add('REDIRECT', 'retry', function REDIRECT(resp) { if (resp.error && resp.error.statusCode >= 300 && resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { this.httpRequest.endpoint = new AWS.Endpoint(resp.httpResponse.headers['location']); this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; resp.error.redirect = true; resp.error.retryable = true; } }); add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { if (resp.error) { if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { resp.error.retryDelay = 0; } else if (resp.retryCount < resp.maxRetries) { resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; } } }); addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { var delay, willRetry = false; if (resp.error) { delay = resp.error.retryDelay || 0; if (resp.error.retryable && resp.retryCount < resp.maxRetries) { resp.retryCount++; willRetry = true; } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { resp.redirectCount++; willRetry = true; } } if (willRetry) { resp.error = null; setTimeout(done, delay); } else { done(); } }); }), CorePost: new SequentialExecutor().addNamedListeners(function(add) { add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { var message = 'Inaccessible host: `' + err.hostname + '\'. This service may not be available in the `' + err.region + '\' region.'; this.response.error = AWS.util.error(new Error(message), { code: 'UnknownEndpoint', region: err.region, hostname: err.hostname, retryable: true, originalError: err }); } }); }), Logger: new SequentialExecutor().addNamedListeners(function(add) { add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { var req = resp.request; var logger = req.service.config.logger; if (!logger) return; function filterSensitiveLog(inputShape, shape) { if (!shape) { return shape; } switch (inputShape.type) { case 'structure': var struct = {}; AWS.util.each(shape, function(subShapeName, subShape) { if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) { struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape); } else { struct[subShapeName] = subShape; } }); return struct; case 'list': var list = []; AWS.util.arrayEach(shape, function(subShape, index) { list.push(filterSensitiveLog(inputShape.member, subShape)); }); return list; case 'map': var map = {}; AWS.util.each(shape, function(key, value) { map[key] = filterSensitiveLog(inputShape.value, value); }); return map; default: if (inputShape.isSensitive) { return '***SensitiveInformation***'; } else { return shape; } } } function buildMessage() { var time = resp.request.service.getSkewCorrectedDate().getTime(); var delta = (time - req.startTime.getTime()) / 1000; var ansi = logger.isTTY ? true : false; var status = resp.httpResponse.statusCode; var censoredParams = req.params; if ( req.service.api.operations && req.service.api.operations[req.operation] && req.service.api.operations[req.operation].input ) { var inputShape = req.service.api.operations[req.operation].input; censoredParams = filterSensitiveLog(inputShape, req.params); } var params = __webpack_require__(/*! util */ "./node_modules/util/util.js").inspect(censoredParams, true, null); var message = ''; if (ansi) message += '\x1B[33m'; message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; if (ansi) message += '\x1B[0;1m'; message += ' ' + AWS.util.string.lowerFirst(req.operation); message += '(' + params + ')'; if (ansi) message += '\x1B[0m'; return message; } var line = buildMessage(); if (typeof logger.log === 'function') { logger.log(line); } else if (typeof logger.write === 'function') { logger.write(line + '\n'); } }); }), Json: new SequentialExecutor().addNamedListeners(function(add) { var svc = __webpack_require__(/*! ./protocol/json */ "./node_modules/aws-sdk/lib/protocol/json.js"); add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); }), Rest: new SequentialExecutor().addNamedListeners(function(add) { var svc = __webpack_require__(/*! ./protocol/rest */ "./node_modules/aws-sdk/lib/protocol/rest.js"); add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); }), RestJson: new SequentialExecutor().addNamedListeners(function(add) { var svc = __webpack_require__(/*! ./protocol/rest_json */ "./node_modules/aws-sdk/lib/protocol/rest_json.js"); add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); }), RestXml: new SequentialExecutor().addNamedListeners(function(add) { var svc = __webpack_require__(/*! ./protocol/rest_xml */ "./node_modules/aws-sdk/lib/protocol/rest_xml.js"); add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); }), Query: new SequentialExecutor().addNamedListeners(function(add) { var svc = __webpack_require__(/*! ./protocol/query */ "./node_modules/aws-sdk/lib/protocol/query.js"); add('BUILD', 'build', svc.buildRequest); add('EXTRACT_DATA', 'extractData', svc.extractData); add('EXTRACT_ERROR', 'extractError', svc.extractError); }) }; /***/ }), /***/ "./node_modules/aws-sdk/lib/http.js": /*!******************************************!*\ !*** ./node_modules/aws-sdk/lib/http.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * The endpoint that a service will talk to, for example, * `'https://ec2.ap-southeast-1.amazonaws.com'`. If * you need to override an endpoint for a service, you can * set the endpoint on a service by passing the endpoint * object with the `endpoint` option key: * * ```javascript * var ep = new AWS.Endpoint('awsproxy.example.com'); * var s3 = new AWS.S3({endpoint: ep}); * s3.service.endpoint.hostname == 'awsproxy.example.com' * ``` * * Note that if you do not specify a protocol, the protocol will * be selected based on your current {AWS.config} configuration. * * @!attribute protocol * @return [String] the protocol (http or https) of the endpoint * URL * @!attribute hostname * @return [String] the host portion of the endpoint, e.g., * example.com * @!attribute host * @return [String] the host portion of the endpoint including * the port, e.g., example.com:80 * @!attribute port * @return [Integer] the port of the endpoint * @!attribute href * @return [String] the full URL of the endpoint */ AWS.Endpoint = inherit({ /** * @overload Endpoint(endpoint) * Constructs a new endpoint given an endpoint URL. If the * URL omits a protocol (http or https), the default protocol * set in the global {AWS.config} will be used. * @param endpoint [String] the URL to construct an endpoint from */ constructor: function Endpoint(endpoint, config) { AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); if (typeof endpoint === 'undefined' || endpoint === null) { throw new Error('Invalid endpoint: ' + endpoint); } else if (typeof endpoint !== 'string') { return AWS.util.copy(endpoint); } if (!endpoint.match(/^http/)) { var useSSL = config && config.sslEnabled !== undefined ? config.sslEnabled : AWS.config.sslEnabled; endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; } AWS.util.update(this, AWS.util.urlParse(endpoint)); // Ensure the port property is set as an integer if (this.port) { this.port = parseInt(this.port, 10); } else { this.port = this.protocol === 'https:' ? 443 : 80; } } }); /** * The low level HTTP request object, encapsulating all HTTP header * and body data sent by a service request. * * @!attribute method * @return [String] the HTTP method of the request * @!attribute path * @return [String] the path portion of the URI, e.g., * "/list/?start=5&num=10" * @!attribute headers * @return [map] * a map of header keys and their respective values * @!attribute body * @return [String] the request body payload * @!attribute endpoint * @return [AWS.Endpoint] the endpoint for the request * @!attribute region * @api private * @return [String] the region, for signing purposes only. */ AWS.HttpRequest = inherit({ /** * @api private */ constructor: function HttpRequest(endpoint, region) { endpoint = new AWS.Endpoint(endpoint); this.method = 'POST'; this.path = endpoint.path || '/'; this.headers = {}; this.body = ''; this.endpoint = endpoint; this.region = region; this._userAgent = ''; this.setUserAgent(); }, /** * @api private */ setUserAgent: function setUserAgent() { this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); }, getUserAgentHeaderName: function getUserAgentHeaderName() { var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; return prefix + 'User-Agent'; }, /** * @api private */ appendToUserAgent: function appendToUserAgent(agentPartial) { if (typeof agentPartial === 'string' && agentPartial) { this._userAgent += ' ' + agentPartial; } this.headers[this.getUserAgentHeaderName()] = this._userAgent; }, /** * @api private */ getUserAgent: function getUserAgent() { return this._userAgent; }, /** * @return [String] the part of the {path} excluding the * query string */ pathname: function pathname() { return this.path.split('?', 1)[0]; }, /** * @return [String] the query string portion of the {path} */ search: function search() { var query = this.path.split('?', 2)[1]; if (query) { query = AWS.util.queryStringParse(query); return AWS.util.queryParamsToString(query); } return ''; }, /** * @api private * update httpRequest endpoint with endpoint string */ updateEndpoint: function updateEndpoint(endpointStr) { var newEndpoint = new AWS.Endpoint(endpointStr); this.endpoint = newEndpoint; this.path = newEndpoint.path || '/'; } }); /** * The low level HTTP response object, encapsulating all HTTP header * and body data returned from the request. * * @!attribute statusCode * @return [Integer] the HTTP status code of the response (e.g., 200, 404) * @!attribute headers * @return [map] * a map of response header keys and their respective values * @!attribute body * @return [String] the response body payload * @!attribute [r] streaming * @return [Boolean] whether this response is being streamed at a low-level. * Defaults to `false` (buffered reads). Do not modify this manually, use * {createUnbufferedStream} to convert the stream to unbuffered mode * instead. */ AWS.HttpResponse = inherit({ /** * @api private */ constructor: function HttpResponse() { this.statusCode = undefined; this.headers = {}; this.body = undefined; this.streaming = false; this.stream = null; }, /** * Disables buffering on the HTTP response and returns the stream for reading. * @return [Stream, XMLHttpRequest, null] the underlying stream object. * Use this object to directly read data off of the stream. * @note This object is only available after the {AWS.Request~httpHeaders} * event has fired. This method must be called prior to * {AWS.Request~httpData}. * @example Taking control of a stream * request.on('httpHeaders', function(statusCode, headers) { * if (statusCode < 300) { * if (headers.etag === 'xyz') { * // pipe the stream, disabling buffering * var stream = this.response.httpResponse.createUnbufferedStream(); * stream.pipe(process.stdout); * } else { // abort this request and set a better error message * this.abort(); * this.response.error = new Error('Invalid ETag'); * } * } * }).send(console.log); */ createUnbufferedStream: function createUnbufferedStream() { this.streaming = true; return this.stream; } }); AWS.HttpClient = inherit({}); /** * @api private */ AWS.HttpClient.getInstance = function getInstance() { if (this.singleton === undefined) { this.singleton = new this(); } return this.singleton; }; /***/ }), /***/ "./node_modules/aws-sdk/lib/http/xhr.js": /*!**********************************************!*\ !*** ./node_modules/aws-sdk/lib/http/xhr.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var EventEmitter = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; __webpack_require__(/*! ../http */ "./node_modules/aws-sdk/lib/http.js"); /** * @api private */ AWS.XHRClient = AWS.util.inherit({ handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { var self = this; var endpoint = httpRequest.endpoint; var emitter = new EventEmitter(); var href = endpoint.protocol + '//' + endpoint.hostname; if (endpoint.port !== 80 && endpoint.port !== 443) { href += ':' + endpoint.port; } href += httpRequest.path; var xhr = new XMLHttpRequest(), headersEmitted = false; httpRequest.stream = xhr; xhr.addEventListener('readystatechange', function() { try { if (xhr.status === 0) return; // 0 code is invalid } catch (e) { return; } if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) { emitter.statusCode = xhr.status; emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); emitter.emit( 'headers', emitter.statusCode, emitter.headers, xhr.statusText ); headersEmitted = true; } if (this.readyState === this.DONE) { self.finishRequest(xhr, emitter); } }, false); xhr.upload.addEventListener('progress', function (evt) { emitter.emit('sendProgress', evt); }); xhr.addEventListener('progress', function (evt) { emitter.emit('receiveProgress', evt); }, false); xhr.addEventListener('timeout', function () { errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'})); }, false); xhr.addEventListener('error', function () { errCallback(AWS.util.error(new Error('Network Failure'), { code: 'NetworkingError' })); }, false); xhr.addEventListener('abort', function () { errCallback(AWS.util.error(new Error('Request aborted'), { code: 'RequestAbortedError' })); }, false); callback(emitter); xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false); AWS.util.each(httpRequest.headers, function (key, value) { if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { xhr.setRequestHeader(key, value); } }); if (httpOptions.timeout && httpOptions.xhrAsync !== false) { xhr.timeout = httpOptions.timeout; } if (httpOptions.xhrWithCredentials) { xhr.withCredentials = true; } try { xhr.responseType = 'arraybuffer'; } catch (e) {} try { if (httpRequest.body) { xhr.send(httpRequest.body); } else { xhr.send(); } } catch (err) { if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly } else { throw err; } } return emitter; }, parseHeaders: function parseHeaders(rawHeaders) { var headers = {}; AWS.util.arrayEach(rawHeaders.split(/\r?\n/), function (line) { var key = line.split(':', 1)[0]; var value = line.substring(key.length + 2); if (key.length > 0) headers[key.toLowerCase()] = value; }); return headers; }, finishRequest: function finishRequest(xhr, emitter) { var buffer; if (xhr.responseType === 'arraybuffer' && xhr.response) { var ab = xhr.response; buffer = new AWS.util.Buffer(ab.byteLength); var view = new Uint8Array(ab); for (var i = 0; i < buffer.length; ++i) { buffer[i] = view[i]; } } try { if (!buffer && typeof xhr.responseText === 'string') { buffer = new AWS.util.Buffer(xhr.responseText); } } catch (e) {} if (buffer) emitter.emit('data', buffer); emitter.emit('end'); } }); /** * @api private */ AWS.HttpClient.prototype = AWS.XHRClient.prototype; /** * @api private */ AWS.HttpClient.streamsApiVersion = 1; /***/ }), /***/ "./node_modules/aws-sdk/lib/json/builder.js": /*!**************************************************!*\ !*** ./node_modules/aws-sdk/lib/json/builder.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); function JsonBuilder() { } JsonBuilder.prototype.build = function(value, shape) { return JSON.stringify(translate(value, shape)); }; function translate(value, shape) { if (!shape || value === undefined || value === null) return undefined; switch (shape.type) { case 'structure': return translateStructure(value, shape); case 'map': return translateMap(value, shape); case 'list': return translateList(value, shape); default: return translateScalar(value, shape); } } function translateStructure(structure, shape) { var struct = {}; util.each(structure, function(name, value) { var memberShape = shape.members[name]; if (memberShape) { if (memberShape.location !== 'body') return; var locationName = memberShape.isLocationName ? memberShape.name : name; var result = translate(value, memberShape); if (result !== undefined) struct[locationName] = result; } }); return struct; } function translateList(list, shape) { var out = []; util.arrayEach(list, function(value) { var result = translate(value, shape.member); if (result !== undefined) out.push(result); }); return out; } function translateMap(map, shape) { var out = {}; util.each(map, function(key, value) { var result = translate(value, shape.value); if (result !== undefined) out[key] = result; }); return out; } function translateScalar(value, shape) { return shape.toWireFormat(value); } /** * @api private */ module.exports = JsonBuilder; /***/ }), /***/ "./node_modules/aws-sdk/lib/json/parser.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/json/parser.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); function JsonParser() { } JsonParser.prototype.parse = function(value, shape) { return translate(JSON.parse(value), shape); }; function translate(value, shape) { if (!shape || value === undefined) return undefined; switch (shape.type) { case 'structure': return translateStructure(value, shape); case 'map': return translateMap(value, shape); case 'list': return translateList(value, shape); default: return translateScalar(value, shape); } } function translateStructure(structure, shape) { if (structure == null) return undefined; var struct = {}; var shapeMembers = shape.members; util.each(shapeMembers, function(name, memberShape) { var locationName = memberShape.isLocationName ? memberShape.name : name; if (Object.prototype.hasOwnProperty.call(structure, locationName)) { var value = structure[locationName]; var result = translate(value, memberShape); if (result !== undefined) struct[name] = result; } }); return struct; } function translateList(list, shape) { if (list == null) return undefined; var out = []; util.arrayEach(list, function(value) { var result = translate(value, shape.member); if (result === undefined) out.push(null); else out.push(result); }); return out; } function translateMap(map, shape) { if (map == null) return undefined; var out = {}; util.each(map, function(key, value) { var result = translate(value, shape.value); if (result === undefined) out[key] = null; else out[key] = result; }); return out; } function translateScalar(value, shape) { return shape.toType(value); } /** * @api private */ module.exports = JsonParser; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/api.js": /*!***********************************************!*\ !*** ./node_modules/aws-sdk/lib/model/api.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Collection = __webpack_require__(/*! ./collection */ "./node_modules/aws-sdk/lib/model/collection.js"); var Operation = __webpack_require__(/*! ./operation */ "./node_modules/aws-sdk/lib/model/operation.js"); var Shape = __webpack_require__(/*! ./shape */ "./node_modules/aws-sdk/lib/model/shape.js"); var Paginator = __webpack_require__(/*! ./paginator */ "./node_modules/aws-sdk/lib/model/paginator.js"); var ResourceWaiter = __webpack_require__(/*! ./resource_waiter */ "./node_modules/aws-sdk/lib/model/resource_waiter.js"); var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var property = util.property; var memoizedProperty = util.memoizedProperty; function Api(api, options) { var self = this; api = api || {}; options = options || {}; options.api = this; api.metadata = api.metadata || {}; property(this, 'isApi', true, false); property(this, 'apiVersion', api.metadata.apiVersion); property(this, 'endpointPrefix', api.metadata.endpointPrefix); property(this, 'signingName', api.metadata.signingName); property(this, 'globalEndpoint', api.metadata.globalEndpoint); property(this, 'signatureVersion', api.metadata.signatureVersion); property(this, 'jsonVersion', api.metadata.jsonVersion); property(this, 'targetPrefix', api.metadata.targetPrefix); property(this, 'protocol', api.metadata.protocol); property(this, 'timestampFormat', api.metadata.timestampFormat); property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); property(this, 'abbreviation', api.metadata.serviceAbbreviation); property(this, 'fullName', api.metadata.serviceFullName); property(this, 'serviceId', api.metadata.serviceId); memoizedProperty(this, 'className', function() { var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; if (!name) return null; name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); if (name === 'ElasticLoadBalancing') name = 'ELB'; return name; }); function addEndpointOperation(name, operation) { if (operation.endpointoperation === true) { property(self, 'endpointOperation', util.string.lowerFirst(name)); } } property(this, 'operations', new Collection(api.operations, options, function(name, operation) { return new Operation(name, operation, options); }, util.string.lowerFirst, addEndpointOperation)); property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { return Shape.create(shape, options); })); property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { return new Paginator(name, paginator, options); })); property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { return new ResourceWaiter(name, waiter, options); }, util.string.lowerFirst)); if (options.documentation) { property(this, 'documentation', api.documentation); property(this, 'documentationUrl', api.documentationUrl); } } /** * @api private */ module.exports = Api; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/collection.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/lib/model/collection.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var memoizedProperty = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js").memoizedProperty; function memoize(name, value, factory, nameTr) { memoizedProperty(this, nameTr(name), function() { return factory(name, value); }); } function Collection(iterable, options, factory, nameTr, callback) { nameTr = nameTr || String; var self = this; for (var id in iterable) { if (Object.prototype.hasOwnProperty.call(iterable, id)) { memoize.call(self, id, iterable[id], factory, nameTr); if (callback) callback(id, iterable[id]); } } } /** * @api private */ module.exports = Collection; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/operation.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/model/operation.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Shape = __webpack_require__(/*! ./shape */ "./node_modules/aws-sdk/lib/model/shape.js"); var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var property = util.property; var memoizedProperty = util.memoizedProperty; function Operation(name, operation, options) { var self = this; options = options || {}; property(this, 'name', operation.name || name); property(this, 'api', options.api, false); operation.http = operation.http || {}; property(this, 'endpoint', operation.endpoint); property(this, 'httpMethod', operation.http.method || 'POST'); property(this, 'httpPath', operation.http.requestUri || '/'); property(this, 'authtype', operation.authtype || ''); property( this, 'endpointDiscoveryRequired', operation.endpointdiscovery ? (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') : 'NULL' ); memoizedProperty(this, 'input', function() { if (!operation.input) { return new Shape.create({type: 'structure'}, options); } return Shape.create(operation.input, options); }); memoizedProperty(this, 'output', function() { if (!operation.output) { return new Shape.create({type: 'structure'}, options); } return Shape.create(operation.output, options); }); memoizedProperty(this, 'errors', function() { var list = []; if (!operation.errors) return null; for (var i = 0; i < operation.errors.length; i++) { list.push(Shape.create(operation.errors[i], options)); } return list; }); memoizedProperty(this, 'paginator', function() { return options.api.paginators[name]; }); if (options.documentation) { property(this, 'documentation', operation.documentation); property(this, 'documentationUrl', operation.documentationUrl); } // idempotentMembers only tracks top-level input shapes memoizedProperty(this, 'idempotentMembers', function() { var idempotentMembers = []; var input = self.input; var members = input.members; if (!input.members) { return idempotentMembers; } for (var name in members) { if (!members.hasOwnProperty(name)) { continue; } if (members[name].isIdempotent === true) { idempotentMembers.push(name); } } return idempotentMembers; }); memoizedProperty(this, 'hasEventOutput', function() { var output = self.output; return hasEventStream(output); }); } function hasEventStream(topLevelShape) { var members = topLevelShape.members; var payload = topLevelShape.payload; if (!topLevelShape.members) { return false; } if (payload) { var payloadMember = members[payload]; return payloadMember.isEventStream; } // check if any member is an event stream for (var name in members) { if (!members.hasOwnProperty(name)) { if (members[name].isEventStream === true) { return true; } } } return false; } /** * @api private */ module.exports = Operation; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/paginator.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/model/paginator.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var property = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js").property; function Paginator(name, paginator) { property(this, 'inputToken', paginator.input_token); property(this, 'limitKey', paginator.limit_key); property(this, 'moreResults', paginator.more_results); property(this, 'outputToken', paginator.output_token); property(this, 'resultKey', paginator.result_key); } /** * @api private */ module.exports = Paginator; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/resource_waiter.js": /*!***********************************************************!*\ !*** ./node_modules/aws-sdk/lib/model/resource_waiter.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var property = util.property; function ResourceWaiter(name, waiter, options) { options = options || {}; property(this, 'name', name); property(this, 'api', options.api, false); if (waiter.operation) { property(this, 'operation', util.string.lowerFirst(waiter.operation)); } var self = this; var keys = [ 'type', 'description', 'delay', 'maxAttempts', 'acceptors' ]; keys.forEach(function(key) { var value = waiter[key]; if (value) { property(self, key, value); } }); } /** * @api private */ module.exports = ResourceWaiter; /***/ }), /***/ "./node_modules/aws-sdk/lib/model/shape.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/model/shape.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Collection = __webpack_require__(/*! ./collection */ "./node_modules/aws-sdk/lib/model/collection.js"); var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); function property(obj, name, value) { if (value !== null && value !== undefined) { util.property.apply(this, arguments); } } function memoizedProperty(obj, name) { if (!obj.constructor.prototype[name]) { util.memoizedProperty.apply(this, arguments); } } function Shape(shape, options, memberName) { options = options || {}; property(this, 'shape', shape.shape); property(this, 'api', options.api, false); property(this, 'type', shape.type); property(this, 'enum', shape.enum); property(this, 'min', shape.min); property(this, 'max', shape.max); property(this, 'pattern', shape.pattern); property(this, 'location', shape.location || this.location || 'body'); property(this, 'name', this.name || shape.xmlName || shape.queryName || shape.locationName || memberName); property(this, 'isStreaming', shape.streaming || this.isStreaming || false); property(this, 'requiresLength', shape.requiresLength, false); property(this, 'isComposite', shape.isComposite || false); property(this, 'isShape', true, false); property(this, 'isQueryName', Boolean(shape.queryName), false); property(this, 'isLocationName', Boolean(shape.locationName), false); property(this, 'isIdempotent', shape.idempotencyToken === true); property(this, 'isJsonValue', shape.jsonvalue === true); property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true); property(this, 'isEventStream', Boolean(shape.eventstream), false); property(this, 'isEvent', Boolean(shape.event), false); property(this, 'isEventPayload', Boolean(shape.eventpayload), false); property(this, 'isEventHeader', Boolean(shape.eventheader), false); property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false); property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false); property(this, 'hostLabel', Boolean(shape.hostLabel), false); if (options.documentation) { property(this, 'documentation', shape.documentation); property(this, 'documentationUrl', shape.documentationUrl); } if (shape.xmlAttribute) { property(this, 'isXmlAttribute', shape.xmlAttribute || false); } // type conversion and parsing property(this, 'defaultValue', null); this.toWireFormat = function(value) { if (value === null || value === undefined) return ''; return value; }; this.toType = function(value) { return value; }; } /** * @api private */ Shape.normalizedTypes = { character: 'string', double: 'float', long: 'integer', short: 'integer', biginteger: 'integer', bigdecimal: 'float', blob: 'binary' }; /** * @api private */ Shape.types = { 'structure': StructureShape, 'list': ListShape, 'map': MapShape, 'boolean': BooleanShape, 'timestamp': TimestampShape, 'float': FloatShape, 'integer': IntegerShape, 'string': StringShape, 'base64': Base64Shape, 'binary': BinaryShape }; Shape.resolve = function resolve(shape, options) { if (shape.shape) { var refShape = options.api.shapes[shape.shape]; if (!refShape) { throw new Error('Cannot find shape reference: ' + shape.shape); } return refShape; } else { return null; } }; Shape.create = function create(shape, options, memberName) { if (shape.isShape) return shape; var refShape = Shape.resolve(shape, options); if (refShape) { var filteredKeys = Object.keys(shape); if (!options.documentation) { filteredKeys = filteredKeys.filter(function(name) { return !name.match(/documentation/); }); } // create an inline shape with extra members var InlineShape = function() { refShape.constructor.call(this, shape, options, memberName); }; InlineShape.prototype = refShape; return new InlineShape(); } else { // set type if not set if (!shape.type) { if (shape.members) shape.type = 'structure'; else if (shape.member) shape.type = 'list'; else if (shape.key) shape.type = 'map'; else shape.type = 'string'; } // normalize types var origType = shape.type; if (Shape.normalizedTypes[shape.type]) { shape.type = Shape.normalizedTypes[shape.type]; } if (Shape.types[shape.type]) { return new Shape.types[shape.type](shape, options, memberName); } else { throw new Error('Unrecognized shape type: ' + origType); } } }; function CompositeShape(shape) { Shape.apply(this, arguments); property(this, 'isComposite', true); if (shape.flattened) { property(this, 'flattened', shape.flattened || false); } } function StructureShape(shape, options) { var self = this; var requiredMap = null, firstInit = !this.isShape; CompositeShape.apply(this, arguments); if (firstInit) { property(this, 'defaultValue', function() { return {}; }); property(this, 'members', {}); property(this, 'memberNames', []); property(this, 'required', []); property(this, 'isRequired', function() { return false; }); } if (shape.members) { property(this, 'members', new Collection(shape.members, options, function(name, member) { return Shape.create(member, options, name); })); memoizedProperty(this, 'memberNames', function() { return shape.xmlOrder || Object.keys(shape.members); }); if (shape.event) { memoizedProperty(this, 'eventPayloadMemberName', function() { var members = self.members; var memberNames = self.memberNames; // iterate over members to find ones that are event payloads for (var i = 0, iLen = memberNames.length; i < iLen; i++) { if (members[memberNames[i]].isEventPayload) { return memberNames[i]; } } }); memoizedProperty(this, 'eventHeaderMemberNames', function() { var members = self.members; var memberNames = self.memberNames; var eventHeaderMemberNames = []; // iterate over members to find ones that are event headers for (var i = 0, iLen = memberNames.length; i < iLen; i++) { if (members[memberNames[i]].isEventHeader) { eventHeaderMemberNames.push(memberNames[i]); } } return eventHeaderMemberNames; }); } } if (shape.required) { property(this, 'required', shape.required); property(this, 'isRequired', function(name) { if (!requiredMap) { requiredMap = {}; for (var i = 0; i < shape.required.length; i++) { requiredMap[shape.required[i]] = true; } } return requiredMap[name]; }, false, true); } property(this, 'resultWrapper', shape.resultWrapper || null); if (shape.payload) { property(this, 'payload', shape.payload); } if (typeof shape.xmlNamespace === 'string') { property(this, 'xmlNamespaceUri', shape.xmlNamespace); } else if (typeof shape.xmlNamespace === 'object') { property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix); property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri); } } function ListShape(shape, options) { var self = this, firstInit = !this.isShape; CompositeShape.apply(this, arguments); if (firstInit) { property(this, 'defaultValue', function() { return []; }); } if (shape.member) { memoizedProperty(this, 'member', function() { return Shape.create(shape.member, options); }); } if (this.flattened) { var oldName = this.name; memoizedProperty(this, 'name', function() { return self.member.name || oldName; }); } } function MapShape(shape, options) { var firstInit = !this.isShape; CompositeShape.apply(this, arguments); if (firstInit) { property(this, 'defaultValue', function() { return {}; }); property(this, 'key', Shape.create({type: 'string'}, options)); property(this, 'value', Shape.create({type: 'string'}, options)); } if (shape.key) { memoizedProperty(this, 'key', function() { return Shape.create(shape.key, options); }); } if (shape.value) { memoizedProperty(this, 'value', function() { return Shape.create(shape.value, options); }); } } function TimestampShape(shape) { var self = this; Shape.apply(this, arguments); if (shape.timestampFormat) { property(this, 'timestampFormat', shape.timestampFormat); } else if (self.isTimestampFormatSet && this.timestampFormat) { property(this, 'timestampFormat', this.timestampFormat); } else if (this.location === 'header') { property(this, 'timestampFormat', 'rfc822'); } else if (this.location === 'querystring') { property(this, 'timestampFormat', 'iso8601'); } else if (this.api) { switch (this.api.protocol) { case 'json': case 'rest-json': property(this, 'timestampFormat', 'unixTimestamp'); break; case 'rest-xml': case 'query': case 'ec2': property(this, 'timestampFormat', 'iso8601'); break; } } this.toType = function(value) { if (value === null || value === undefined) return null; if (typeof value.toUTCString === 'function') return value; return typeof value === 'string' || typeof value === 'number' ? util.date.parseTimestamp(value) : null; }; this.toWireFormat = function(value) { return util.date.format(value, self.timestampFormat); }; } function StringShape() { Shape.apply(this, arguments); var nullLessProtocols = ['rest-xml', 'query', 'ec2']; this.toType = function(value) { value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ? value || '' : value; if (this.isJsonValue) { return JSON.parse(value); } return value && typeof value.toString === 'function' ? value.toString() : value; }; this.toWireFormat = function(value) { return this.isJsonValue ? JSON.stringify(value) : value; }; } function FloatShape() { Shape.apply(this, arguments); this.toType = function(value) { if (value === null || value === undefined) return null; return parseFloat(value); }; this.toWireFormat = this.toType; } function IntegerShape() { Shape.apply(this, arguments); this.toType = function(value) { if (value === null || value === undefined) return null; return parseInt(value, 10); }; this.toWireFormat = this.toType; } function BinaryShape() { Shape.apply(this, arguments); this.toType = function(value) { var buf = util.base64.decode(value); if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') { /* Node.js can create a Buffer that is not isolated. * i.e. buf.byteLength !== buf.buffer.byteLength * This means that the sensitive data is accessible to anyone with access to buf.buffer. * If this is the node shared Buffer, then other code within this process _could_ find this secret. * Copy sensitive data to an isolated Buffer and zero the sensitive data. * While this is safe to do here, copying this code somewhere else may produce unexpected results. */ var secureBuf = util.Buffer.alloc(buf.length, buf); buf.fill(0); buf = secureBuf; } return buf; }; this.toWireFormat = util.base64.encode; } function Base64Shape() { BinaryShape.apply(this, arguments); } function BooleanShape() { Shape.apply(this, arguments); this.toType = function(value) { if (typeof value === 'boolean') return value; if (value === null || value === undefined) return null; return value === 'true'; }; } /** * @api private */ Shape.shapes = { StructureShape: StructureShape, ListShape: ListShape, MapShape: MapShape, StringShape: StringShape, BooleanShape: BooleanShape, Base64Shape: Base64Shape }; /** * @api private */ module.exports = Shape; /***/ }), /***/ "./node_modules/aws-sdk/lib/param_validator.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/param_validator.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); /** * @api private */ AWS.ParamValidator = AWS.util.inherit({ /** * Create a new validator object. * * @param validation [Boolean|map] whether input parameters should be * validated against the operation description before sending the * request. Pass a map to enable any of the following specific * validation features: * * * **min** [Boolean] — Validates that a value meets the min * constraint. This is enabled by default when paramValidation is set * to `true`. * * **max** [Boolean] — Validates that a value meets the max * constraint. * * **pattern** [Boolean] — Validates that a string value matches a * regular expression. * * **enum** [Boolean] — Validates that a string value matches one * of the allowable enum values. */ constructor: function ParamValidator(validation) { if (validation === true || validation === undefined) { validation = {'min': true}; } this.validation = validation; }, validate: function validate(shape, params, context) { this.errors = []; this.validateMember(shape, params || {}, context || 'params'); if (this.errors.length > 1) { var msg = this.errors.join('\n* '); msg = 'There were ' + this.errors.length + ' validation errors:\n* ' + msg; throw AWS.util.error(new Error(msg), {code: 'MultipleValidationErrors', errors: this.errors}); } else if (this.errors.length === 1) { throw this.errors[0]; } else { return true; } }, fail: function fail(code, message) { this.errors.push(AWS.util.error(new Error(message), {code: code})); }, validateStructure: function validateStructure(shape, params, context) { this.validateType(params, context, ['object'], 'structure'); var paramName; for (var i = 0; shape.required && i < shape.required.length; i++) { paramName = shape.required[i]; var value = params[paramName]; if (value === undefined || value === null) { this.fail('MissingRequiredParameter', 'Missing required key \'' + paramName + '\' in ' + context); } } // validate hash members for (paramName in params) { if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue; var paramValue = params[paramName], memberShape = shape.members[paramName]; if (memberShape !== undefined) { var memberContext = [context, paramName].join('.'); this.validateMember(memberShape, paramValue, memberContext); } else { this.fail('UnexpectedParameter', 'Unexpected key \'' + paramName + '\' found in ' + context); } } return true; }, validateMember: function validateMember(shape, param, context) { switch (shape.type) { case 'structure': return this.validateStructure(shape, param, context); case 'list': return this.validateList(shape, param, context); case 'map': return this.validateMap(shape, param, context); default: return this.validateScalar(shape, param, context); } }, validateList: function validateList(shape, params, context) { if (this.validateType(params, context, [Array])) { this.validateRange(shape, params.length, context, 'list member count'); // validate array members for (var i = 0; i < params.length; i++) { this.validateMember(shape.member, params[i], context + '[' + i + ']'); } } }, validateMap: function validateMap(shape, params, context) { if (this.validateType(params, context, ['object'], 'map')) { // Build up a count of map members to validate range traits. var mapCount = 0; for (var param in params) { if (!Object.prototype.hasOwnProperty.call(params, param)) continue; // Validate any map key trait constraints this.validateMember(shape.key, param, context + '[key=\'' + param + '\']'); this.validateMember(shape.value, params[param], context + '[\'' + param + '\']'); mapCount++; } this.validateRange(shape, mapCount, context, 'map member count'); } }, validateScalar: function validateScalar(shape, value, context) { switch (shape.type) { case null: case undefined: case 'string': return this.validateString(shape, value, context); case 'base64': case 'binary': return this.validatePayload(value, context); case 'integer': case 'float': return this.validateNumber(shape, value, context); case 'boolean': return this.validateType(value, context, ['boolean']); case 'timestamp': return this.validateType(value, context, [Date, /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], 'Date object, ISO-8601 string, or a UNIX timestamp'); default: return this.fail('UnkownType', 'Unhandled type ' + shape.type + ' for ' + context); } }, validateString: function validateString(shape, value, context) { var validTypes = ['string']; if (shape.isJsonValue) { validTypes = validTypes.concat(['number', 'object', 'boolean']); } if (value !== null && this.validateType(value, context, validTypes)) { this.validateEnum(shape, value, context); this.validateRange(shape, value.length, context, 'string length'); this.validatePattern(shape, value, context); this.validateUri(shape, value, context); } }, validateUri: function validateUri(shape, value, context) { if (shape['location'] === 'uri') { if (value.length === 0) { this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,' + ' but found "' + value +'" for ' + context); } } }, validatePattern: function validatePattern(shape, value, context) { if (this.validation['pattern'] && shape['pattern'] !== undefined) { if (!(new RegExp(shape['pattern'])).test(value)) { this.fail('PatternMatchError', 'Provided value "' + value + '" ' + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + context); } } }, validateRange: function validateRange(shape, value, context, descriptor) { if (this.validation['min']) { if (shape['min'] !== undefined && value < shape['min']) { this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' + shape['min'] + ', but found ' + value + ' for ' + context); } } if (this.validation['max']) { if (shape['max'] !== undefined && value > shape['max']) { this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + shape['max'] + ', but found ' + value + ' for ' + context); } } }, validateEnum: function validateRange(shape, value, context) { if (this.validation['enum'] && shape['enum'] !== undefined) { // Fail if the string value is not present in the enum list if (shape['enum'].indexOf(value) === -1) { this.fail('EnumError', 'Found string value of ' + value + ', but ' + 'expected ' + shape['enum'].join('|') + ' for ' + context); } } }, validateType: function validateType(value, context, acceptedTypes, type) { // We will not log an error for null or undefined, but we will return // false so that callers know that the expected type was not strictly met. if (value === null || value === undefined) return false; var foundInvalidType = false; for (var i = 0; i < acceptedTypes.length; i++) { if (typeof acceptedTypes[i] === 'string') { if (typeof value === acceptedTypes[i]) return true; } else if (acceptedTypes[i] instanceof RegExp) { if ((value || '').toString().match(acceptedTypes[i])) return true; } else { if (value instanceof acceptedTypes[i]) return true; if (AWS.util.isType(value, acceptedTypes[i])) return true; if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); } foundInvalidType = true; } var acceptedType = type; if (!acceptedType) { acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); } var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + vowel + ' ' + acceptedType); return false; }, validateNumber: function validateNumber(shape, value, context) { if (value === null || value === undefined) return; if (typeof value === 'string') { var castedValue = parseFloat(value); if (castedValue.toString() === value) value = castedValue; } if (this.validateType(value, context, ['number'])) { this.validateRange(shape, value, context, 'numeric value'); } }, validatePayload: function validatePayload(value, context) { if (value === null || value === undefined) return; if (typeof value === 'string') return; if (value && typeof value.byteLength === 'number') return; // typed arrays if (AWS.util.isNode()) { // special check for buffer/stream in Node.js var Stream = AWS.util.stream.Stream; if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; } else { if (typeof Blob !== void 0 && value instanceof Blob) return; } var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; if (value) { for (var i = 0; i < types.length; i++) { if (AWS.util.isType(value, types[i])) return; if (AWS.util.typeName(value.constructor) === types[i]) return; } } this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + 'string, Buffer, Stream, Blob, or typed array object'); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/protocol/helpers.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/lib/protocol/helpers.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); /** * Prepend prefix defined by API model to endpoint that's already * constructed. This feature does not apply to operations using * endpoint discovery and can be disabled. * @api private */ function populateHostPrefix(request) { var enabled = request.service.config.hostPrefixEnabled; if (!enabled) return request; var operationModel = request.service.api.operations[request.operation]; //don't marshal host prefix when operation has endpoint discovery traits if (hasEndpointDiscover(request)) return request; if (operationModel.endpoint && operationModel.endpoint.hostPrefix) { var hostPrefixNotation = operationModel.endpoint.hostPrefix; var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input); prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix); validateHostname(request.httpRequest.endpoint.hostname); } return request; } /** * @api private */ function hasEndpointDiscover(request) { var api = request.service.api; var operationModel = api.operations[request.operation]; var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name)); return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true); } /** * @api private */ function expandHostPrefix(hostPrefixNotation, params, shape) { util.each(shape.members, function(name, member) { if (member.hostLabel === true) { if (typeof params[name] !== 'string' || params[name] === '') { throw util.error(new Error(), { message: 'Parameter ' + name + ' should be a non-empty string.', code: 'InvalidParameter' }); } var regex = new RegExp('\\{' + name + '\\}', 'g'); hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]); } }); return hostPrefixNotation; } /** * @api private */ function prependEndpointPrefix(endpoint, prefix) { if (endpoint.host) { endpoint.host = prefix + endpoint.host; } if (endpoint.hostname) { endpoint.hostname = prefix + endpoint.hostname; } } /** * @api private */ function validateHostname(hostname) { var labels = hostname.split('.'); //Reference: https://tools.ietf.org/html/rfc1123#section-2 var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/; util.arrayEach(labels, function(label) { if (!label.length || label.length < 1 || label.length > 63) { throw util.error(new Error(), { code: 'ValidationError', message: 'Hostname label length should be between 1 to 63 characters, inclusive.' }); } if (!hostPattern.test(label)) { throw AWS.util.error(new Error(), {code: 'ValidationError', message: label + ' is not hostname compatible.'}); } }); } module.exports = { populateHostPrefix: populateHostPrefix }; /***/ }), /***/ "./node_modules/aws-sdk/lib/protocol/json.js": /*!***************************************************!*\ !*** ./node_modules/aws-sdk/lib/protocol/json.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var JsonBuilder = __webpack_require__(/*! ../json/builder */ "./node_modules/aws-sdk/lib/json/builder.js"); var JsonParser = __webpack_require__(/*! ../json/parser */ "./node_modules/aws-sdk/lib/json/parser.js"); var populateHostPrefix = __webpack_require__(/*! ./helpers */ "./node_modules/aws-sdk/lib/protocol/helpers.js").populateHostPrefix; function buildRequest(req) { var httpRequest = req.httpRequest; var api = req.service.api; var target = api.targetPrefix + '.' + api.operations[req.operation].name; var version = api.jsonVersion || '1.0'; var input = api.operations[req.operation].input; var builder = new JsonBuilder(); if (version === 1) version = '1.0'; httpRequest.body = builder.build(req.params || {}, input); httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; httpRequest.headers['X-Amz-Target'] = target; populateHostPrefix(req); } function extractError(resp) { var error = {}; var httpResponse = resp.httpResponse; error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; if (typeof error.code === 'string') { error.code = error.code.split(':')[0]; } if (httpResponse.body.length > 0) { try { var e = JSON.parse(httpResponse.body.toString()); if (e.__type || e.code) { error.code = (e.__type || e.code).split('#').pop(); } if (error.code === 'RequestEntityTooLarge') { error.message = 'Request body must be less than 1 MB'; } else { error.message = (e.message || e.Message || null); } } catch (e) { error.statusCode = httpResponse.statusCode; error.message = httpResponse.statusMessage; } } else { error.statusCode = httpResponse.statusCode; error.message = httpResponse.statusCode.toString(); } resp.error = util.error(new Error(), error); } function extractData(resp) { var body = resp.httpResponse.body.toString() || '{}'; if (resp.request.service.config.convertResponseTypes === false) { resp.data = JSON.parse(body); } else { var operation = resp.request.service.api.operations[resp.request.operation]; var shape = operation.output || {}; var parser = new JsonParser(); resp.data = parser.parse(body, shape); } } /** * @api private */ module.exports = { buildRequest: buildRequest, extractError: extractError, extractData: extractData }; /***/ }), /***/ "./node_modules/aws-sdk/lib/protocol/query.js": /*!****************************************************!*\ !*** ./node_modules/aws-sdk/lib/protocol/query.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var QueryParamSerializer = __webpack_require__(/*! ../query/query_param_serializer */ "./node_modules/aws-sdk/lib/query/query_param_serializer.js"); var Shape = __webpack_require__(/*! ../model/shape */ "./node_modules/aws-sdk/lib/model/shape.js"); var populateHostPrefix = __webpack_require__(/*! ./helpers */ "./node_modules/aws-sdk/lib/protocol/helpers.js").populateHostPrefix; function buildRequest(req) { var operation = req.service.api.operations[req.operation]; var httpRequest = req.httpRequest; httpRequest.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'; httpRequest.params = { Version: req.service.api.apiVersion, Action: operation.name }; // convert the request parameters into a list of query params, // e.g. Deeply.NestedParam.0.Name=value var builder = new QueryParamSerializer(); builder.serialize(req.params, operation.input, function(name, value) { httpRequest.params[name] = value; }); httpRequest.body = util.queryParamsToString(httpRequest.params); populateHostPrefix(req); } function extractError(resp) { var data, body = resp.httpResponse.body.toString(); if (body.match('= 0 ? '&' : '?'); var parts = []; util.arrayEach(Object.keys(queryString).sort(), function(key) { if (!Array.isArray(queryString[key])) { queryString[key] = [queryString[key]]; } for (var i = 0; i < queryString[key].length; i++) { parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); } }); uri += parts.join('&'); } return uri; } function populateURI(req) { var operation = req.service.api.operations[req.operation]; var input = operation.input; var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); req.httpRequest.path = uri; } function populateHeaders(req) { var operation = req.service.api.operations[req.operation]; util.each(operation.input.members, function (name, member) { var value = req.params[name]; if (value === null || value === undefined) return; if (member.location === 'headers' && member.type === 'map') { util.each(value, function(key, memberValue) { req.httpRequest.headers[member.name + key] = memberValue; }); } else if (member.location === 'header') { value = member.toWireFormat(value).toString(); if (member.isJsonValue) { value = util.base64.encode(value); } req.httpRequest.headers[member.name] = value; } }); } function buildRequest(req) { populateMethod(req); populateURI(req); populateHeaders(req); populateHostPrefix(req); } function extractError() { } function extractData(resp) { var req = resp.request; var data = {}; var r = resp.httpResponse; var operation = req.service.api.operations[req.operation]; var output = operation.output; // normalize headers names to lower-cased keys for matching var headers = {}; util.each(r.headers, function (k, v) { headers[k.toLowerCase()] = v; }); util.each(output.members, function(name, member) { var header = (member.name || name).toLowerCase(); if (member.location === 'headers' && member.type === 'map') { data[name] = {}; var location = member.isLocationName ? member.name : ''; var pattern = new RegExp('^' + location + '(.+)', 'i'); util.each(r.headers, function (k, v) { var result = k.match(pattern); if (result !== null) { data[name][result[1]] = v; } }); } else if (member.location === 'header') { if (headers[header] !== undefined) { var value = member.isJsonValue ? util.base64.decode(headers[header]) : headers[header]; data[name] = member.toType(value); } } else if (member.location === 'statusCode') { data[name] = parseInt(r.statusCode, 10); } }); resp.data = data; } /** * @api private */ module.exports = { buildRequest: buildRequest, extractError: extractError, extractData: extractData, generateURI: generateURI }; /***/ }), /***/ "./node_modules/aws-sdk/lib/protocol/rest_json.js": /*!********************************************************!*\ !*** ./node_modules/aws-sdk/lib/protocol/rest_json.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var Rest = __webpack_require__(/*! ./rest */ "./node_modules/aws-sdk/lib/protocol/rest.js"); var Json = __webpack_require__(/*! ./json */ "./node_modules/aws-sdk/lib/protocol/json.js"); var JsonBuilder = __webpack_require__(/*! ../json/builder */ "./node_modules/aws-sdk/lib/json/builder.js"); var JsonParser = __webpack_require__(/*! ../json/parser */ "./node_modules/aws-sdk/lib/json/parser.js"); function populateBody(req) { var builder = new JsonBuilder(); var input = req.service.api.operations[req.operation].input; if (input.payload) { var params = {}; var payloadShape = input.members[input.payload]; params = req.params[input.payload]; if (params === undefined) return; if (payloadShape.type === 'structure') { req.httpRequest.body = builder.build(params, payloadShape); applyContentTypeHeader(req); } else { // non-JSON payload req.httpRequest.body = params; if (payloadShape.type === 'binary' || payloadShape.isStreaming) { applyContentTypeHeader(req, true); } } } else { var body = builder.build(req.params, input); if (body !== '{}' || req.httpRequest.method !== 'GET') { //don't send empty body for GET method req.httpRequest.body = body; } applyContentTypeHeader(req); } } function applyContentTypeHeader(req, isBinary) { var operation = req.service.api.operations[req.operation]; var input = operation.input; if (!req.httpRequest.headers['Content-Type']) { var type = isBinary ? 'binary/octet-stream' : 'application/json'; req.httpRequest.headers['Content-Type'] = type; } } function buildRequest(req) { Rest.buildRequest(req); // never send body payload on HEAD/DELETE if (['HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { populateBody(req); } } function extractError(resp) { Json.extractError(resp); } function extractData(resp) { Rest.extractData(resp); var req = resp.request; var operation = req.service.api.operations[req.operation]; var rules = req.service.api.operations[req.operation].output || {}; var parser; var hasEventOutput = operation.hasEventOutput; if (rules.payload) { var payloadMember = rules.members[rules.payload]; var body = resp.httpResponse.body; if (payloadMember.isEventStream) { parser = new JsonParser(); resp.data[payload] = util.createEventStream( AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body, parser, payloadMember ); } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') { var parser = new JsonParser(); resp.data[rules.payload] = parser.parse(body, payloadMember); } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { resp.data[rules.payload] = body; } else { resp.data[rules.payload] = payloadMember.toType(body); } } else { var data = resp.data; Json.extractData(resp); resp.data = util.merge(data, resp.data); } } /** * @api private */ module.exports = { buildRequest: buildRequest, extractError: extractError, extractData: extractData }; /***/ }), /***/ "./node_modules/aws-sdk/lib/protocol/rest_xml.js": /*!*******************************************************!*\ !*** ./node_modules/aws-sdk/lib/protocol/rest_xml.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var Rest = __webpack_require__(/*! ./rest */ "./node_modules/aws-sdk/lib/protocol/rest.js"); function populateBody(req) { var input = req.service.api.operations[req.operation].input; var builder = new AWS.XML.Builder(); var params = req.params; var payload = input.payload; if (payload) { var payloadMember = input.members[payload]; params = params[payload]; if (params === undefined) return; if (payloadMember.type === 'structure') { var rootElement = payloadMember.name; req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); } else { // non-xml payload req.httpRequest.body = params; } } else { req.httpRequest.body = builder.toXML(params, input, input.name || input.shape || util.string.upperFirst(req.operation) + 'Request'); } } function buildRequest(req) { Rest.buildRequest(req); // never send body payload on GET/HEAD if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { populateBody(req); } } function extractError(resp) { Rest.extractError(resp); var data; try { data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString()); } catch (e) { data = { Code: resp.httpResponse.statusCode, Message: resp.httpResponse.statusMessage }; } if (data.Errors) data = data.Errors; if (data.Error) data = data.Error; if (data.Code) { resp.error = util.error(new Error(), { code: data.Code, message: data.Message }); } else { resp.error = util.error(new Error(), { code: resp.httpResponse.statusCode, message: null }); } } function extractData(resp) { Rest.extractData(resp); var parser; var req = resp.request; var body = resp.httpResponse.body; var operation = req.service.api.operations[req.operation]; var output = operation.output; var hasEventOutput = operation.hasEventOutput; var payload = output.payload; if (payload) { var payloadMember = output.members[payload]; if (payloadMember.isEventStream) { parser = new AWS.XML.Parser(); resp.data[payload] = util.createEventStream( AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body, parser, payloadMember ); } else if (payloadMember.type === 'structure') { parser = new AWS.XML.Parser(); resp.data[payload] = parser.parse(body.toString(), payloadMember); } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { resp.data[payload] = body; } else { resp.data[payload] = payloadMember.toType(body); } } else if (body.length > 0) { parser = new AWS.XML.Parser(); var data = parser.parse(body.toString(), output); util.update(resp.data, data); } } /** * @api private */ module.exports = { buildRequest: buildRequest, extractError: extractError, extractData: extractData }; /***/ }), /***/ "./node_modules/aws-sdk/lib/query/query_param_serializer.js": /*!******************************************************************!*\ !*** ./node_modules/aws-sdk/lib/query/query_param_serializer.js ***! \******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); function QueryParamSerializer() { } QueryParamSerializer.prototype.serialize = function(params, shape, fn) { serializeStructure('', params, shape, fn); }; function ucfirst(shape) { if (shape.isQueryName || shape.api.protocol !== 'ec2') { return shape.name; } else { return shape.name[0].toUpperCase() + shape.name.substr(1); } } function serializeStructure(prefix, struct, rules, fn) { util.each(rules.members, function(name, member) { var value = struct[name]; if (value === null || value === undefined) return; var memberName = ucfirst(member); memberName = prefix ? prefix + '.' + memberName : memberName; serializeMember(memberName, value, member, fn); }); } function serializeMap(name, map, rules, fn) { var i = 1; util.each(map, function (key, value) { var prefix = rules.flattened ? '.' : '.entry.'; var position = prefix + (i++) + '.'; var keyName = position + (rules.key.name || 'key'); var valueName = position + (rules.value.name || 'value'); serializeMember(name + keyName, key, rules.key, fn); serializeMember(name + valueName, value, rules.value, fn); }); } function serializeList(name, list, rules, fn) { var memberRules = rules.member || {}; if (list.length === 0) { fn.call(this, name, null); return; } util.arrayEach(list, function (v, n) { var suffix = '.' + (n + 1); if (rules.api.protocol === 'ec2') { // Do nothing for EC2 suffix = suffix + ''; // make linter happy } else if (rules.flattened) { if (memberRules.name) { var parts = name.split('.'); parts.pop(); parts.push(ucfirst(memberRules)); name = parts.join('.'); } } else { suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix; } serializeMember(name + suffix, v, memberRules, fn); }); } function serializeMember(name, value, rules, fn) { if (value === null || value === undefined) return; if (rules.type === 'structure') { serializeStructure(name, value, rules, fn); } else if (rules.type === 'list') { serializeList(name, value, rules, fn); } else if (rules.type === 'map') { serializeMap(name, value, rules, fn); } else { fn(name, rules.toWireFormat(value).toString()); } } /** * @api private */ module.exports = QueryParamSerializer; /***/ }), /***/ "./node_modules/aws-sdk/lib/realclock/browserClock.js": /*!************************************************************!*\ !*** ./node_modules/aws-sdk/lib/realclock/browserClock.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = { //provide realtime clock for performance measurement now: function now() { if (typeof performance !== 'undefined' && typeof performance.now === 'function') { return performance.now(); } return Date.now(); } }; /***/ }), /***/ "./node_modules/aws-sdk/lib/region_config.js": /*!***************************************************!*\ !*** ./node_modules/aws-sdk/lib/region_config.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ./util */ "./node_modules/aws-sdk/lib/util.js"); var regionConfig = __webpack_require__(/*! ./region_config_data.json */ "./node_modules/aws-sdk/lib/region_config_data.json"); function generateRegionPrefix(region) { if (!region) return null; var parts = region.split('-'); if (parts.length < 3) return null; return parts.slice(0, parts.length - 2).join('-') + '-*'; } function derivedKeys(service) { var region = service.config.region; var regionPrefix = generateRegionPrefix(region); var endpointPrefix = service.api.endpointPrefix; return [ [region, endpointPrefix], [regionPrefix, endpointPrefix], [region, '*'], [regionPrefix, '*'], ['*', endpointPrefix], ['*', '*'] ].map(function(item) { return item[0] && item[1] ? item.join('/') : null; }); } function applyConfig(service, config) { util.each(config, function(key, value) { if (key === 'globalEndpoint') return; if (service.config[key] === undefined || service.config[key] === null) { service.config[key] = value; } }); } function configureEndpoint(service) { var keys = derivedKeys(service); for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!key) continue; if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) { var config = regionConfig.rules[key]; if (typeof config === 'string') { config = regionConfig.patterns[config]; } // set dualstack endpoint if (service.config.useDualstack && util.isDualstackAvailable(service)) { config = util.copy(config); config.endpoint = '{service}.dualstack.{region}.amazonaws.com'; } // set global endpoint service.isGlobalEndpoint = !!config.globalEndpoint; // signature version if (!config.signatureVersion) config.signatureVersion = 'v4'; // merge config applyConfig(service, config); return; } } } /** * @api private */ module.exports = configureEndpoint; /***/ }), /***/ "./node_modules/aws-sdk/lib/region_config_data.json": /*!**********************************************************!*\ !*** ./node_modules/aws-sdk/lib/region_config_data.json ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":{"endpoint":"https://{service}.amazonaws.com","signatureVersion":"v3https","globalEndpoint":true},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}} /***/ }), /***/ "./node_modules/aws-sdk/lib/request.js": /*!*********************************************!*\ !*** ./node_modules/aws-sdk/lib/request.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var AcceptorStateMachine = __webpack_require__(/*! ./state_machine */ "./node_modules/aws-sdk/lib/state_machine.js"); var inherit = AWS.util.inherit; var domain = AWS.util.domain; var jmespath = __webpack_require__(/*! jmespath */ "./node_modules/jmespath/jmespath.js"); /** * @api private */ var hardErrorStates = {success: 1, error: 1, complete: 1}; function isTerminalState(machine) { return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState); } var fsm = new AcceptorStateMachine(); fsm.setupStates = function() { var transition = function(_, done) { var self = this; self._haltHandlersOnError = false; self.emit(self._asm.currentState, function(err) { if (err) { if (isTerminalState(self)) { if (domain && self.domain instanceof domain.Domain) { err.domainEmitter = self; err.domain = self.domain; err.domainThrown = false; self.domain.emit('error', err); } else { throw err; } } else { self.response.error = err; done(err); } } else { done(self.response.error); } }); }; this.addState('validate', 'build', 'error', transition); this.addState('build', 'afterBuild', 'restart', transition); this.addState('afterBuild', 'sign', 'restart', transition); this.addState('sign', 'send', 'retry', transition); this.addState('retry', 'afterRetry', 'afterRetry', transition); this.addState('afterRetry', 'sign', 'error', transition); this.addState('send', 'validateResponse', 'retry', transition); this.addState('validateResponse', 'extractData', 'extractError', transition); this.addState('extractError', 'extractData', 'retry', transition); this.addState('extractData', 'success', 'retry', transition); this.addState('restart', 'build', 'error', transition); this.addState('success', 'complete', 'complete', transition); this.addState('error', 'complete', 'complete', transition); this.addState('complete', null, null, transition); }; fsm.setupStates(); /** * ## Asynchronous Requests * * All requests made through the SDK are asynchronous and use a * callback interface. Each service method that kicks off a request * returns an `AWS.Request` object that you can use to register * callbacks. * * For example, the following service method returns the request * object as "request", which can be used to register callbacks: * * ```javascript * // request is an AWS.Request object * var request = ec2.describeInstances(); * * // register callbacks on request to retrieve response data * request.on('success', function(response) { * console.log(response.data); * }); * ``` * * When a request is ready to be sent, the {send} method should * be called: * * ```javascript * request.send(); * ``` * * Since registered callbacks may or may not be idempotent, requests should only * be sent once. To perform the same operation multiple times, you will need to * create multiple request objects, each with its own registered callbacks. * * ## Removing Default Listeners for Events * * Request objects are built with default listeners for the various events, * depending on the service type. In some cases, you may want to remove * some built-in listeners to customize behaviour. Doing this requires * access to the built-in listener functions, which are exposed through * the {AWS.EventListeners.Core} namespace. For instance, you may * want to customize the HTTP handler used when sending a request. In this * case, you can remove the built-in listener associated with the 'send' * event, the {AWS.EventListeners.Core.SEND} listener and add your own. * * ## Multiple Callbacks and Chaining * * You can register multiple callbacks on any request object. The * callbacks can be registered for different events, or all for the * same event. In addition, you can chain callback registration, for * example: * * ```javascript * request. * on('success', function(response) { * console.log("Success!"); * }). * on('error', function(error, response) { * console.log("Error!"); * }). * on('complete', function(response) { * console.log("Always!"); * }). * send(); * ``` * * The above example will print either "Success! Always!", or "Error! Always!", * depending on whether the request succeeded or not. * * @!attribute httpRequest * @readonly * @!group HTTP Properties * @return [AWS.HttpRequest] the raw HTTP request object * containing request headers and body information * sent by the service. * * @!attribute startTime * @readonly * @!group Operation Properties * @return [Date] the time that the request started * * @!group Request Building Events * * @!event validate(request) * Triggered when a request is being validated. Listeners * should throw an error if the request should not be sent. * @param request [Request] the request object being sent * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS * @see AWS.EventListeners.Core.VALIDATE_REGION * @example Ensuring that a certain parameter is set before sending a request * var req = s3.putObject(params); * req.on('validate', function() { * if (!req.params.Body.match(/^Hello\s/)) { * throw new Error('Body must start with "Hello "'); * } * }); * req.send(function(err, data) { ... }); * * @!event build(request) * Triggered when the request payload is being built. Listeners * should fill the necessary information to send the request * over HTTP. * @param (see AWS.Request~validate) * @example Add a custom HTTP header to a request * var req = s3.putObject(params); * req.on('build', function() { * req.httpRequest.headers['Custom-Header'] = 'value'; * }); * req.send(function(err, data) { ... }); * * @!event sign(request) * Triggered when the request is being signed. Listeners should * add the correct authentication headers and/or adjust the body, * depending on the authentication mechanism being used. * @param (see AWS.Request~validate) * * @!group Request Sending Events * * @!event send(response) * Triggered when the request is ready to be sent. Listeners * should call the underlying transport layer to initiate * the sending of the request. * @param response [Response] the response object * @context [Request] the request object that was sent * @see AWS.EventListeners.Core.SEND * * @!event retry(response) * Triggered when a request failed and might need to be retried or redirected. * If the response is retryable, the listener should set the * `response.error.retryable` property to `true`, and optionally set * `response.error.retryDelay` to the millisecond delay for the next attempt. * In the case of a redirect, `response.error.redirect` should be set to * `true` with `retryDelay` set to an optional delay on the next request. * * If a listener decides that a request should not be retried, * it should set both `retryable` and `redirect` to false. * * Note that a retryable error will be retried at most * {AWS.Config.maxRetries} times (based on the service object's config). * Similarly, a request that is redirected will only redirect at most * {AWS.Config.maxRedirects} times. * * @param (see AWS.Request~send) * @context (see AWS.Request~send) * @example Adding a custom retry for a 404 response * request.on('retry', function(response) { * // this resource is not yet available, wait 10 seconds to get it again * if (response.httpResponse.statusCode === 404 && response.error) { * response.error.retryable = true; // retry this error * response.error.retryDelay = 10000; // wait 10 seconds * } * }); * * @!group Data Parsing Events * * @!event extractError(response) * Triggered on all non-2xx requests so that listeners can extract * error details from the response body. Listeners to this event * should set the `response.error` property. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!event extractData(response) * Triggered in successful requests to allow listeners to * de-serialize the response body into `response.data`. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!group Completion Events * * @!event success(response) * Triggered when the request completed successfully. * `response.data` will contain the response data and * `response.error` will be null. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!event error(error, response) * Triggered when an error occurs at any point during the * request. `response.error` will contain details about the error * that occurred. `response.data` will be null. * @param error [Error] the error object containing details about * the error that occurred. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!event complete(response) * Triggered whenever a request cycle completes. `response.error` * should be checked, since the request may have failed. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!group HTTP Events * * @!event httpHeaders(statusCode, headers, response, statusMessage) * Triggered when headers are sent by the remote server * @param statusCode [Integer] the HTTP response code * @param headers [map] the response headers * @param (see AWS.Request~send) * @param statusMessage [String] A status message corresponding to the HTTP * response code * @context (see AWS.Request~send) * * @!event httpData(chunk, response) * Triggered when data is sent by the remote server * @param chunk [Buffer] the buffer data containing the next data chunk * from the server * @param (see AWS.Request~send) * @context (see AWS.Request~send) * @see AWS.EventListeners.Core.HTTP_DATA * * @!event httpUploadProgress(progress, response) * Triggered when the HTTP request has uploaded more data * @param progress [map] An object containing the `loaded` and `total` bytes * of the request. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * @note This event will not be emitted in Node.js 0.8.x. * * @!event httpDownloadProgress(progress, response) * Triggered when the HTTP request has downloaded more data * @param progress [map] An object containing the `loaded` and `total` bytes * of the request. * @param (see AWS.Request~send) * @context (see AWS.Request~send) * @note This event will not be emitted in Node.js 0.8.x. * * @!event httpError(error, response) * Triggered when the HTTP request failed * @param error [Error] the error object that was thrown * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @!event httpDone(response) * Triggered when the server is finished sending data * @param (see AWS.Request~send) * @context (see AWS.Request~send) * * @see AWS.Response */ AWS.Request = inherit({ /** * Creates a request for an operation on a given service with * a set of input parameters. * * @param service [AWS.Service] the service to perform the operation on * @param operation [String] the operation to perform on the service * @param params [Object] parameters to send to the operation. * See the operation's documentation for the format of the * parameters. */ constructor: function Request(service, operation, params) { var endpoint = service.endpoint; var region = service.config.region; var customUserAgent = service.config.customUserAgent; // global endpoints sign as us-east-1 if (service.isGlobalEndpoint) region = 'us-east-1'; this.domain = domain && domain.active; this.service = service; this.operation = operation; this.params = params || {}; this.httpRequest = new AWS.HttpRequest(endpoint, region); this.httpRequest.appendToUserAgent(customUserAgent); this.startTime = service.getSkewCorrectedDate(); this.response = new AWS.Response(this); this._asm = new AcceptorStateMachine(fsm.states, 'validate'); this._haltHandlersOnError = false; AWS.SequentialExecutor.call(this); this.emit = this.emitEvent; }, /** * @!group Sending a Request */ /** * @overload send(callback = null) * Sends the request object. * * @callback callback function(err, data) * If a callback is supplied, it is called when a response is returned * from the service. * @context [AWS.Request] the request object being sent. * @param err [Error] the error object returned from the request. * Set to `null` if the request is successful. * @param data [Object] the de-serialized data returned from * the request. Set to `null` if a request error occurs. * @example Sending a request with a callback * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); * request.send(function(err, data) { console.log(err, data); }); * @example Sending a request with no callback (using event handlers) * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); * request.on('complete', function(response) { ... }); // register a callback * request.send(); */ send: function send(callback) { if (callback) { // append to user agent this.httpRequest.appendToUserAgent('callback'); this.on('complete', function (resp) { callback.call(resp, resp.error, resp.data); }); } this.runTo(); return this.response; }, /** * @!method promise() * Sends the request and returns a 'thenable' promise. * * Two callbacks can be provided to the `then` method on the returned promise. * The first callback will be called if the promise is fulfilled, and the second * callback will be called if the promise is rejected. * @callback fulfilledCallback function(data) * Called if the promise is fulfilled. * @param data [Object] the de-serialized data returned from the request. * @callback rejectedCallback function(error) * Called if the promise is rejected. * @param error [Error] the error object returned from the request. * @return [Promise] A promise that represents the state of the request. * @example Sending a request using promises. * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); * var result = request.promise(); * result.then(function(data) { ... }, function(error) { ... }); */ /** * @api private */ build: function build(callback) { return this.runTo('send', callback); }, /** * @api private */ runTo: function runTo(state, done) { this._asm.runTo(state, done, this); return this; }, /** * Aborts a request, emitting the error and complete events. * * @!macro nobrowser * @example Aborting a request after sending * var params = { * Bucket: 'bucket', Key: 'key', * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload * }; * var request = s3.putObject(params); * request.send(function (err, data) { * if (err) console.log("Error:", err.code, err.message); * else console.log(data); * }); * * // abort request in 1 second * setTimeout(request.abort.bind(request), 1000); * * // prints "Error: RequestAbortedError Request aborted by user" * @return [AWS.Request] the same request object, for chaining. * @since v1.4.0 */ abort: function abort() { this.removeAllListeners('validateResponse'); this.removeAllListeners('extractError'); this.on('validateResponse', function addAbortedError(resp) { resp.error = AWS.util.error(new Error('Request aborted by user'), { code: 'RequestAbortedError', retryable: false }); }); if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream this.httpRequest.stream.abort(); if (this.httpRequest._abortCallback) { this.httpRequest._abortCallback(); } else { this.removeAllListeners('send'); // haven't sent yet, so let's not } } return this; }, /** * Iterates over each page of results given a pageable request, calling * the provided callback with each page of data. After all pages have been * retrieved, the callback is called with `null` data. * * @note This operation can generate multiple requests to a service. * @example Iterating over multiple pages of objects in an S3 bucket * var pages = 1; * s3.listObjects().eachPage(function(err, data) { * if (err) return; * console.log("Page", pages++); * console.log(data); * }); * @example Iterating over multiple pages with an asynchronous callback * s3.listObjects(params).eachPage(function(err, data, done) { * doSomethingAsyncAndOrExpensive(function() { * // The next page of results isn't fetched until done is called * done(); * }); * }); * @callback callback function(err, data, [doneCallback]) * Called with each page of resulting data from the request. If the * optional `doneCallback` is provided in the function, it must be called * when the callback is complete. * * @param err [Error] an error object, if an error occurred. * @param data [Object] a single page of response data. If there is no * more data, this object will be `null`. * @param doneCallback [Function] an optional done callback. If this * argument is defined in the function declaration, it should be called * when the next page is ready to be retrieved. This is useful for * controlling serial pagination across asynchronous operations. * @return [Boolean] if the callback returns `false`, pagination will * stop. * * @see AWS.Request.eachItem * @see AWS.Response.nextPage * @since v1.4.0 */ eachPage: function eachPage(callback) { // Make all callbacks async-ish callback = AWS.util.fn.makeAsync(callback, 3); function wrappedCallback(response) { callback.call(response, response.error, response.data, function (result) { if (result === false) return; if (response.hasNextPage()) { response.nextPage().on('complete', wrappedCallback).send(); } else { callback.call(response, null, null, AWS.util.fn.noop); } }); } this.on('complete', wrappedCallback).send(); }, /** * Enumerates over individual items of a request, paging the responses if * necessary. * * @api experimental * @since v1.4.0 */ eachItem: function eachItem(callback) { var self = this; function wrappedCallback(err, data) { if (err) return callback(err, null); if (data === null) return callback(null, null); var config = self.service.paginationConfig(self.operation); var resultKey = config.resultKey; if (Array.isArray(resultKey)) resultKey = resultKey[0]; var items = jmespath.search(data, resultKey); var continueIteration = true; AWS.util.arrayEach(items, function(item) { continueIteration = callback(null, item); if (continueIteration === false) { return AWS.util.abort; } }); return continueIteration; } this.eachPage(wrappedCallback); }, /** * @return [Boolean] whether the operation can return multiple pages of * response data. * @see AWS.Response.eachPage * @since v1.4.0 */ isPageable: function isPageable() { return this.service.paginationConfig(this.operation) ? true : false; }, /** * Sends the request and converts the request object into a readable stream * that can be read from or piped into a writable stream. * * @note The data read from a readable stream contains only * the raw HTTP body contents. * @example Manually reading from a stream * request.createReadStream().on('data', function(data) { * console.log("Got data:", data.toString()); * }); * @example Piping a request body into a file * var out = fs.createWriteStream('/path/to/outfile.jpg'); * s3.service.getObject(params).createReadStream().pipe(out); * @return [Stream] the readable stream object that can be piped * or read from (by registering 'data' event listeners). * @!macro nobrowser */ createReadStream: function createReadStream() { var streams = AWS.util.stream; var req = this; var stream = null; if (AWS.HttpClient.streamsApiVersion === 2) { stream = new streams.PassThrough(); process.nextTick(function() { req.send(); }); } else { stream = new streams.Stream(); stream.readable = true; stream.sent = false; stream.on('newListener', function(event) { if (!stream.sent && event === 'data') { stream.sent = true; process.nextTick(function() { req.send(); }); } }); } this.on('error', function(err) { stream.emit('error', err); }); this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { if (statusCode < 300) { req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); req.on('httpError', function streamHttpError(error) { resp.error = error; resp.error.retryable = false; }); var shouldCheckContentLength = false; var expectedLen; if (req.httpRequest.method !== 'HEAD') { expectedLen = parseInt(headers['content-length'], 10); } if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) { shouldCheckContentLength = true; var receivedLen = 0; } var checkContentLengthAndEmit = function checkContentLengthAndEmit() { if (shouldCheckContentLength && receivedLen !== expectedLen) { stream.emit('error', AWS.util.error( new Error('Stream content length mismatch. Received ' + receivedLen + ' of ' + expectedLen + ' bytes.'), { code: 'StreamContentLengthMismatch' } )); } else if (AWS.HttpClient.streamsApiVersion === 2) { stream.end(); } else { stream.emit('end'); } }; var httpStream = resp.httpResponse.createUnbufferedStream(); if (AWS.HttpClient.streamsApiVersion === 2) { if (shouldCheckContentLength) { var lengthAccumulator = new streams.PassThrough(); lengthAccumulator._write = function(chunk) { if (chunk && chunk.length) { receivedLen += chunk.length; } return streams.PassThrough.prototype._write.apply(this, arguments); }; lengthAccumulator.on('end', checkContentLengthAndEmit); stream.on('error', function(err) { shouldCheckContentLength = false; httpStream.unpipe(lengthAccumulator); lengthAccumulator.emit('end'); lengthAccumulator.end(); }); httpStream.pipe(lengthAccumulator).pipe(stream, { end: false }); } else { httpStream.pipe(stream); } } else { if (shouldCheckContentLength) { httpStream.on('data', function(arg) { if (arg && arg.length) { receivedLen += arg.length; } }); } httpStream.on('data', function(arg) { stream.emit('data', arg); }); httpStream.on('end', checkContentLengthAndEmit); } httpStream.on('error', function(err) { shouldCheckContentLength = false; stream.emit('error', err); }); } }); return stream; }, /** * @param [Array,Response] args This should be the response object, * or an array of args to send to the event. * @api private */ emitEvent: function emit(eventName, args, done) { if (typeof args === 'function') { done = args; args = null; } if (!done) done = function() { }; if (!args) args = this.eventParameters(eventName, this.response); var origEmit = AWS.SequentialExecutor.prototype.emit; origEmit.call(this, eventName, args, function (err) { if (err) this.response.error = err; done.call(this, err); }); }, /** * @api private */ eventParameters: function eventParameters(eventName) { switch (eventName) { case 'restart': case 'validate': case 'sign': case 'build': case 'afterValidate': case 'afterBuild': return [this]; case 'error': return [this.response.error, this.response]; default: return [this.response]; } }, /** * @api private */ presign: function presign(expires, callback) { if (!callback && typeof expires === 'function') { callback = expires; expires = null; } return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); }, /** * @api private */ isPresigned: function isPresigned() { return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires'); }, /** * @api private */ toUnauthenticated: function toUnauthenticated() { this._unAuthenticated = true; this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); this.removeListener('sign', AWS.EventListeners.Core.SIGN); return this; }, /** * @api private */ toGet: function toGet() { if (this.service.api.protocol === 'query' || this.service.api.protocol === 'ec2') { this.removeListener('build', this.buildAsGet); this.addListener('build', this.buildAsGet); } return this; }, /** * @api private */ buildAsGet: function buildAsGet(request) { request.httpRequest.method = 'GET'; request.httpRequest.path = request.service.endpoint.path + '?' + request.httpRequest.body; request.httpRequest.body = ''; // don't need these headers on a GET request delete request.httpRequest.headers['Content-Length']; delete request.httpRequest.headers['Content-Type']; }, /** * @api private */ haltHandlersOnError: function haltHandlersOnError() { this._haltHandlersOnError = true; } }); /** * @api private */ AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) { this.prototype.promise = function promise() { var self = this; // append to user agent this.httpRequest.appendToUserAgent('promise'); return new PromiseDependency(function(resolve, reject) { self.on('complete', function(resp) { if (resp.error) { reject(resp.error); } else { // define $response property so that it is not enumberable // this prevents circular reference errors when stringifying the JSON object resolve(Object.defineProperty( resp.data || {}, '$response', {value: resp} )); } }); self.runTo(); }); }; }; /** * @api private */ AWS.Request.deletePromisesFromClass = function deletePromisesFromClass() { delete this.prototype.promise; }; AWS.util.addPromises(AWS.Request); AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/aws-sdk/lib/resource_waiter.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/resource_waiter.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You * may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific * language governing permissions and limitations under the License. */ var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; var jmespath = __webpack_require__(/*! jmespath */ "./node_modules/jmespath/jmespath.js"); /** * @api private */ function CHECK_ACCEPTORS(resp) { var waiter = resp.request._waiter; var acceptors = waiter.config.acceptors; var acceptorMatched = false; var state = 'retry'; acceptors.forEach(function(acceptor) { if (!acceptorMatched) { var matcher = waiter.matchers[acceptor.matcher]; if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { acceptorMatched = true; state = acceptor.state; } } }); if (!acceptorMatched && resp.error) state = 'failure'; if (state === 'success') { waiter.setSuccess(resp); } else { waiter.setError(resp, state === 'retry'); } } /** * @api private */ AWS.ResourceWaiter = inherit({ /** * Waits for a given state on a service object * @param service [Service] the service object to wait on * @param state [String] the state (defined in waiter configuration) to wait * for. * @example Create a waiter for running EC2 instances * var ec2 = new AWS.EC2; * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); */ constructor: function constructor(service, state) { this.service = service; this.state = state; this.loadWaiterConfig(this.state); }, service: null, state: null, config: null, matchers: { path: function(resp, expected, argument) { try { var result = jmespath.search(resp.data, argument); } catch (err) { return false; } return jmespath.strictDeepEqual(result,expected); }, pathAll: function(resp, expected, argument) { try { var results = jmespath.search(resp.data, argument); } catch (err) { return false; } if (!Array.isArray(results)) results = [results]; var numResults = results.length; if (!numResults) return false; for (var ind = 0 ; ind < numResults; ind++) { if (!jmespath.strictDeepEqual(results[ind], expected)) { return false; } } return true; }, pathAny: function(resp, expected, argument) { try { var results = jmespath.search(resp.data, argument); } catch (err) { return false; } if (!Array.isArray(results)) results = [results]; var numResults = results.length; for (var ind = 0 ; ind < numResults; ind++) { if (jmespath.strictDeepEqual(results[ind], expected)) { return true; } } return false; }, status: function(resp, expected) { var statusCode = resp.httpResponse.statusCode; return (typeof statusCode === 'number') && (statusCode === expected); }, error: function(resp, expected) { if (typeof expected === 'string' && resp.error) { return expected === resp.error.code; } // if expected is not string, can be boolean indicating presence of error return expected === !!resp.error; } }, listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) { add('RETRY_CHECK', 'retry', function(resp) { var waiter = resp.request._waiter; if (resp.error && resp.error.code === 'ResourceNotReady') { resp.error.retryDelay = (waiter.config.delay || 0) * 1000; } }); add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); }), /** * @return [AWS.Request] */ wait: function wait(params, callback) { if (typeof params === 'function') { callback = params; params = undefined; } if (params && params.$waiter) { params = AWS.util.copy(params); if (typeof params.$waiter.delay === 'number') { this.config.delay = params.$waiter.delay; } if (typeof params.$waiter.maxAttempts === 'number') { this.config.maxAttempts = params.$waiter.maxAttempts; } delete params.$waiter; } var request = this.service.makeRequest(this.config.operation, params); request._waiter = this; request.response.maxRetries = this.config.maxAttempts; request.addListeners(this.listeners); if (callback) request.send(callback); return request; }, setSuccess: function setSuccess(resp) { resp.error = null; resp.data = resp.data || {}; resp.request.removeAllListeners('extractData'); }, setError: function setError(resp, retryable) { resp.data = null; resp.error = AWS.util.error(resp.error || new Error(), { code: 'ResourceNotReady', message: 'Resource is not in the state ' + this.state, retryable: retryable }); }, /** * Loads waiter configuration from API configuration * * @api private */ loadWaiterConfig: function loadWaiterConfig(state) { if (!this.service.api.waiters[state]) { throw new AWS.util.error(new Error(), { code: 'StateNotFoundError', message: 'State ' + state + ' not found.' }); } this.config = AWS.util.copy(this.service.api.waiters[state]); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/response.js": /*!**********************************************!*\ !*** ./node_modules/aws-sdk/lib/response.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; var jmespath = __webpack_require__(/*! jmespath */ "./node_modules/jmespath/jmespath.js"); /** * This class encapsulates the response information * from a service request operation sent through {AWS.Request}. * The response object has two main properties for getting information * back from a request: * * ## The `data` property * * The `response.data` property contains the serialized object data * retrieved from the service request. For instance, for an * Amazon DynamoDB `listTables` method call, the response data might * look like: * * ``` * > resp.data * { TableNames: * [ 'table1', 'table2', ... ] } * ``` * * The `data` property can be null if an error occurs (see below). * * ## The `error` property * * In the event of a service error (or transfer error), the * `response.error` property will be filled with the given * error data in the form: * * ``` * { code: 'SHORT_UNIQUE_ERROR_CODE', * message: 'Some human readable error message' } * ``` * * In the case of an error, the `data` property will be `null`. * Note that if you handle events that can be in a failure state, * you should always check whether `response.error` is set * before attempting to access the `response.data` property. * * @!attribute data * @readonly * @!group Data Properties * @note Inside of a {AWS.Request~httpData} event, this * property contains a single raw packet instead of the * full de-serialized service response. * @return [Object] the de-serialized response data * from the service. * * @!attribute error * An structure containing information about a service * or networking error. * @readonly * @!group Data Properties * @note This attribute is only filled if a service or * networking error occurs. * @return [Error] * * code [String] a unique short code representing the * error that was emitted. * * message [String] a longer human readable error message * * retryable [Boolean] whether the error message is * retryable. * * statusCode [Numeric] in the case of a request that reached the service, * this value contains the response status code. * * time [Date] the date time object when the error occurred. * * hostname [String] set when a networking error occurs to easily * identify the endpoint of the request. * * region [String] set when a networking error occurs to easily * identify the region of the request. * * @!attribute requestId * @readonly * @!group Data Properties * @return [String] the unique request ID associated with the response. * Log this value when debugging requests for AWS support. * * @!attribute retryCount * @readonly * @!group Operation Properties * @return [Integer] the number of retries that were * attempted before the request was completed. * * @!attribute redirectCount * @readonly * @!group Operation Properties * @return [Integer] the number of redirects that were * followed before the request was completed. * * @!attribute httpResponse * @readonly * @!group HTTP Properties * @return [AWS.HttpResponse] the raw HTTP response object * containing the response headers and body information * from the server. * * @see AWS.Request */ AWS.Response = inherit({ /** * @api private */ constructor: function Response(request) { this.request = request; this.data = null; this.error = null; this.retryCount = 0; this.redirectCount = 0; this.httpResponse = new AWS.HttpResponse(); if (request) { this.maxRetries = request.service.numRetries(); this.maxRedirects = request.service.config.maxRedirects; } }, /** * Creates a new request for the next page of response data, calling the * callback with the page data if a callback is provided. * * @callback callback function(err, data) * Called when a page of data is returned from the next request. * * @param err [Error] an error object, if an error occurred in the request * @param data [Object] the next page of data, or null, if there are no * more pages left. * @return [AWS.Request] the request object for the next page of data * @return [null] if no callback is provided and there are no pages left * to retrieve. * @since v1.4.0 */ nextPage: function nextPage(callback) { var config; var service = this.request.service; var operation = this.request.operation; try { config = service.paginationConfig(operation, true); } catch (e) { this.error = e; } if (!this.hasNextPage()) { if (callback) callback(this.error, null); else if (this.error) throw this.error; return null; } var params = AWS.util.copy(this.request.params); if (!this.nextPageTokens) { return callback ? callback(null, null) : null; } else { var inputTokens = config.inputToken; if (typeof inputTokens === 'string') inputTokens = [inputTokens]; for (var i = 0; i < inputTokens.length; i++) { params[inputTokens[i]] = this.nextPageTokens[i]; } return service.makeRequest(this.request.operation, params, callback); } }, /** * @return [Boolean] whether more pages of data can be returned by further * requests * @since v1.4.0 */ hasNextPage: function hasNextPage() { this.cacheNextPageTokens(); if (this.nextPageTokens) return true; if (this.nextPageTokens === undefined) return undefined; else return false; }, /** * @api private */ cacheNextPageTokens: function cacheNextPageTokens() { if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens; this.nextPageTokens = undefined; var config = this.request.service.paginationConfig(this.request.operation); if (!config) return this.nextPageTokens; this.nextPageTokens = null; if (config.moreResults) { if (!jmespath.search(this.data, config.moreResults)) { return this.nextPageTokens; } } var exprs = config.outputToken; if (typeof exprs === 'string') exprs = [exprs]; AWS.util.arrayEach.call(this, exprs, function (expr) { var output = jmespath.search(this.data, expr); if (output) { this.nextPageTokens = this.nextPageTokens || []; this.nextPageTokens.push(output); } }); return this.nextPageTokens; } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/s3/managed_upload.js": /*!*******************************************************!*\ !*** ./node_modules/aws-sdk/lib/s3/managed_upload.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var byteLength = AWS.util.string.byteLength; var Buffer = AWS.util.Buffer; /** * The managed uploader allows for easy and efficient uploading of buffers, * blobs, or streams, using a configurable amount of concurrency to perform * multipart uploads where possible. This abstraction also enables uploading * streams of unknown size due to the use of multipart uploads. * * To construct a managed upload object, see the {constructor} function. * * ## Tracking upload progress * * The managed upload object can also track progress by attaching an * 'httpUploadProgress' listener to the upload manager. This event is similar * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more * information. * * ## Handling Multipart Cleanup * * By default, this class will automatically clean up any multipart uploads * when an individual part upload fails. This behavior can be disabled in order * to manually handle failures by setting the `leavePartsOnError` configuration * option to `true` when initializing the upload object. * * @!event httpUploadProgress(progress) * Triggered when the uploader has uploaded more data. * @note The `total` property may not be set if the stream being uploaded has * not yet finished chunking. In this case the `total` will be undefined * until the total stream size is known. * @note This event will not be emitted in Node.js 0.8.x. * @param progress [map] An object containing the `loaded` and `total` bytes * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload * size is known. * @context (see AWS.Request~send) */ AWS.S3.ManagedUpload = AWS.util.inherit({ /** * Creates a managed upload object with a set of configuration options. * * @note A "Body" parameter is required to be set prior to calling {send}. * @note In Node.js, sending "Body" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream} * may result in upload hangs. Using buffer stream is preferable. * @option options params [map] a map of parameters to pass to the upload * requests. The "Body" parameter is required to be specified either on * the service or in the params option. * @note ContentMD5 should not be provided when using the managed upload object. * Instead, setting "computeChecksums" to true will enable automatic ContentMD5 generation * by the managed upload object. * @option options queueSize [Number] (4) the size of the concurrent queue * manager to upload parts in parallel. Set to 1 for synchronous uploading * of parts. Note that the uploader will buffer at most queueSize * partSize * bytes into memory at any given time. * @option options partSize [Number] (5mb) the size in bytes for each * individual part to be uploaded. Adjust the part size to ensure the number * of parts does not exceed {maxTotalParts}. See {minPartSize} for the * minimum allowed part size. * @option options leavePartsOnError [Boolean] (false) whether to abort the * multipart upload if an error occurs. Set to true if you want to handle * failures manually. * @option options service [AWS.S3] an optional S3 service object to use for * requests. This object might have bound parameters used by the uploader. * @option options tags [Array] The tags to apply to the uploaded object. * Each tag should have a `Key` and `Value` keys. * @example Creating a default uploader for a stream object * var upload = new AWS.S3.ManagedUpload({ * params: {Bucket: 'bucket', Key: 'key', Body: stream} * }); * @example Creating an uploader with concurrency of 1 and partSize of 10mb * var upload = new AWS.S3.ManagedUpload({ * partSize: 10 * 1024 * 1024, queueSize: 1, * params: {Bucket: 'bucket', Key: 'key', Body: stream} * }); * @example Creating an uploader with tags * var upload = new AWS.S3.ManagedUpload({ * params: {Bucket: 'bucket', Key: 'key', Body: stream}, * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}] * }); * @see send */ constructor: function ManagedUpload(options) { var self = this; AWS.SequentialExecutor.call(self); self.body = null; self.sliceFn = null; self.callback = null; self.parts = {}; self.completeInfo = []; self.fillQueue = function() { self.callback(new Error('Unsupported body payload ' + typeof self.body)); }; self.configure(options); }, /** * @api private */ configure: function configure(options) { options = options || {}; this.partSize = this.minPartSize; if (options.queueSize) this.queueSize = options.queueSize; if (options.partSize) this.partSize = options.partSize; if (options.leavePartsOnError) this.leavePartsOnError = true; if (options.tags) { if (!Array.isArray(options.tags)) { throw new Error('Tags must be specified as an array; ' + typeof options.tags + ' provided.'); } this.tags = options.tags; } if (this.partSize < this.minPartSize) { throw new Error('partSize must be greater than ' + this.minPartSize); } this.service = options.service; this.bindServiceObject(options.params); this.validateBody(); this.adjustTotalBytes(); }, /** * @api private */ leavePartsOnError: false, /** * @api private */ queueSize: 4, /** * @api private */ partSize: null, /** * @readonly * @return [Number] the minimum number of bytes for an individual part * upload. */ minPartSize: 1024 * 1024 * 5, /** * @readonly * @return [Number] the maximum allowed number of parts in a multipart upload. */ maxTotalParts: 10000, /** * Initiates the managed upload for the payload. * * @callback callback function(err, data) * @param err [Error] an error or null if no error occurred. * @param data [map] The response data from the successful upload: * * `Location` (String) the URL of the uploaded object * * `ETag` (String) the ETag of the uploaded object * * `Bucket` (String) the bucket to which the object was uploaded * * `Key` (String) the key to which the object was uploaded * @example Sending a managed upload object * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; * var upload = new AWS.S3.ManagedUpload({params: params}); * upload.send(function(err, data) { * console.log(err, data); * }); */ send: function(callback) { var self = this; self.failed = false; self.callback = callback || function(err) { if (err) throw err; }; var runFill = true; if (self.sliceFn) { self.fillQueue = self.fillBuffer; } else if (AWS.util.isNode()) { var Stream = AWS.util.stream.Stream; if (self.body instanceof Stream) { runFill = false; self.fillQueue = self.fillStream; self.partBuffers = []; self.body. on('error', function(err) { self.cleanup(err); }). on('readable', function() { self.fillQueue(); }). on('end', function() { self.isDoneChunking = true; self.numParts = self.totalPartNumbers; self.fillQueue.call(self); if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) { self.finishMultiPart(); } }); } } if (runFill) self.fillQueue.call(self); }, /** * @!method promise() * Returns a 'thenable' promise. * * Two callbacks can be provided to the `then` method on the returned promise. * The first callback will be called if the promise is fulfilled, and the second * callback will be called if the promise is rejected. * @callback fulfilledCallback function(data) * Called if the promise is fulfilled. * @param data [map] The response data from the successful upload: * `Location` (String) the URL of the uploaded object * `ETag` (String) the ETag of the uploaded object * `Bucket` (String) the bucket to which the object was uploaded * `Key` (String) the key to which the object was uploaded * @callback rejectedCallback function(err) * Called if the promise is rejected. * @param err [Error] an error or null if no error occurred. * @return [Promise] A promise that represents the state of the upload request. * @example Sending an upload request using promises. * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream}); * var promise = upload.promise(); * promise.then(function(data) { ... }, function(err) { ... }); */ /** * Aborts a managed upload, including all concurrent upload requests. * @note By default, calling this function will cleanup a multipart upload * if one was created. To leave the multipart upload around after aborting * a request, configure `leavePartsOnError` to `true` in the {constructor}. * @note Calling {abort} in the browser environment will not abort any requests * that are already in flight. If a multipart upload was created, any parts * not yet uploaded will not be sent, and the multipart upload will be cleaned up. * @example Aborting an upload * var params = { * Bucket: 'bucket', Key: 'key', * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload * }; * var upload = s3.upload(params); * upload.send(function (err, data) { * if (err) console.log("Error:", err.code, err.message); * else console.log(data); * }); * * // abort request in 1 second * setTimeout(upload.abort.bind(upload), 1000); */ abort: function() { var self = this; //abort putObject request if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) { self.singlePart.abort(); } else { self.cleanup(AWS.util.error(new Error('Request aborted by user'), { code: 'RequestAbortedError', retryable: false })); } }, /** * @api private */ validateBody: function validateBody() { var self = this; self.body = self.service.config.params.Body; if (typeof self.body === 'string') { self.body = AWS.util.buffer.toBuffer(self.body); } else if (!self.body) { throw new Error('params.Body is required'); } self.sliceFn = AWS.util.arraySliceFn(self.body); }, /** * @api private */ bindServiceObject: function bindServiceObject(params) { params = params || {}; var self = this; // bind parameters to new service object if (!self.service) { self.service = new AWS.S3({params: params}); } else { var service = self.service; var config = AWS.util.copy(service.config); config.signatureVersion = service.getSignatureVersion(); self.service = new service.constructor.__super__(config); self.service.config.params = AWS.util.merge(self.service.config.params || {}, params); } }, /** * @api private */ adjustTotalBytes: function adjustTotalBytes() { var self = this; try { // try to get totalBytes self.totalBytes = byteLength(self.body); } catch (e) { } // try to adjust partSize if we know payload length if (self.totalBytes) { var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts); if (newPartSize > self.partSize) self.partSize = newPartSize; } else { self.totalBytes = undefined; } }, /** * @api private */ isDoneChunking: false, /** * @api private */ partPos: 0, /** * @api private */ totalChunkedBytes: 0, /** * @api private */ totalUploadedBytes: 0, /** * @api private */ totalBytes: undefined, /** * @api private */ numParts: 0, /** * @api private */ totalPartNumbers: 0, /** * @api private */ activeParts: 0, /** * @api private */ doneParts: 0, /** * @api private */ parts: null, /** * @api private */ completeInfo: null, /** * @api private */ failed: false, /** * @api private */ multipartReq: null, /** * @api private */ partBuffers: null, /** * @api private */ partBufferLength: 0, /** * @api private */ fillBuffer: function fillBuffer() { var self = this; var bodyLen = byteLength(self.body); if (bodyLen === 0) { self.isDoneChunking = true; self.numParts = 1; self.nextChunk(self.body); return; } while (self.activeParts < self.queueSize && self.partPos < bodyLen) { var endPos = Math.min(self.partPos + self.partSize, bodyLen); var buf = self.sliceFn.call(self.body, self.partPos, endPos); self.partPos += self.partSize; if (byteLength(buf) < self.partSize || self.partPos === bodyLen) { self.isDoneChunking = true; self.numParts = self.totalPartNumbers + 1; } self.nextChunk(buf); } }, /** * @api private */ fillStream: function fillStream() { var self = this; if (self.activeParts >= self.queueSize) return; var buf = self.body.read(self.partSize - self.partBufferLength) || self.body.read(); if (buf) { self.partBuffers.push(buf); self.partBufferLength += buf.length; self.totalChunkedBytes += buf.length; } if (self.partBufferLength >= self.partSize) { // if we have single buffer we avoid copyfull concat var pbuf = self.partBuffers.length === 1 ? self.partBuffers[0] : Buffer.concat(self.partBuffers); self.partBuffers = []; self.partBufferLength = 0; // if we have more than partSize, push the rest back on the queue if (pbuf.length > self.partSize) { var rest = pbuf.slice(self.partSize); self.partBuffers.push(rest); self.partBufferLength += rest.length; pbuf = pbuf.slice(0, self.partSize); } self.nextChunk(pbuf); } if (self.isDoneChunking && !self.isDoneSending) { // if we have single buffer we avoid copyfull concat pbuf = self.partBuffers.length === 1 ? self.partBuffers[0] : Buffer.concat(self.partBuffers); self.partBuffers = []; self.partBufferLength = 0; self.totalBytes = self.totalChunkedBytes; self.isDoneSending = true; if (self.numParts === 0 || pbuf.length > 0) { self.numParts++; self.nextChunk(pbuf); } } self.body.read(0); }, /** * @api private */ nextChunk: function nextChunk(chunk) { var self = this; if (self.failed) return null; var partNumber = ++self.totalPartNumbers; if (self.isDoneChunking && partNumber === 1) { var params = {Body: chunk}; if (this.tags) { params.Tagging = this.getTaggingHeader(); } var req = self.service.putObject(params); req._managedUpload = self; req.on('httpUploadProgress', self.progress).send(self.finishSinglePart); self.singlePart = req; //save the single part request return null; } else if (self.service.config.params.ContentMD5) { var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), { code: 'InvalidDigest', retryable: false }); self.cleanup(err); return null; } if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) { return null; // Already uploaded this part. } self.activeParts++; if (!self.service.config.params.UploadId) { if (!self.multipartReq) { // create multipart self.multipartReq = self.service.createMultipartUpload(); self.multipartReq.on('success', function(resp) { self.service.config.params.UploadId = resp.data.UploadId; self.multipartReq = null; }); self.queueChunks(chunk, partNumber); self.multipartReq.on('error', function(err) { self.cleanup(err); }); self.multipartReq.send(); } else { self.queueChunks(chunk, partNumber); } } else { // multipart is created, just send self.uploadPart(chunk, partNumber); } }, /** * @api private */ getTaggingHeader: function getTaggingHeader() { var kvPairStrings = []; for (var i = 0; i < this.tags.length; i++) { kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' + AWS.util.uriEscape(this.tags[i].Value)); } return kvPairStrings.join('&'); }, /** * @api private */ uploadPart: function uploadPart(chunk, partNumber) { var self = this; var partParams = { Body: chunk, ContentLength: AWS.util.string.byteLength(chunk), PartNumber: partNumber }; var partInfo = {ETag: null, PartNumber: partNumber}; self.completeInfo[partNumber] = partInfo; var req = self.service.uploadPart(partParams); self.parts[partNumber] = req; req._lastUploadedBytes = 0; req._managedUpload = self; req.on('httpUploadProgress', self.progress); req.send(function(err, data) { delete self.parts[partParams.PartNumber]; self.activeParts--; if (!err && (!data || !data.ETag)) { var message = 'No access to ETag property on response.'; if (AWS.util.isBrowser()) { message += ' Check CORS configuration to expose ETag header.'; } err = AWS.util.error(new Error(message), { code: 'ETagMissing', retryable: false }); } if (err) return self.cleanup(err); //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304) if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null; partInfo.ETag = data.ETag; self.doneParts++; if (self.isDoneChunking && self.doneParts === self.numParts) { self.finishMultiPart(); } else { self.fillQueue.call(self); } }); }, /** * @api private */ queueChunks: function queueChunks(chunk, partNumber) { var self = this; self.multipartReq.on('success', function() { self.uploadPart(chunk, partNumber); }); }, /** * @api private */ cleanup: function cleanup(err) { var self = this; if (self.failed) return; // clean up stream if (typeof self.body.removeAllListeners === 'function' && typeof self.body.resume === 'function') { self.body.removeAllListeners('readable'); self.body.removeAllListeners('end'); self.body.resume(); } // cleanup multipartReq listeners if (self.multipartReq) { self.multipartReq.removeAllListeners('success'); self.multipartReq.removeAllListeners('error'); self.multipartReq.removeAllListeners('complete'); delete self.multipartReq; } if (self.service.config.params.UploadId && !self.leavePartsOnError) { self.service.abortMultipartUpload().send(); } else if (self.leavePartsOnError) { self.isDoneChunking = false; } AWS.util.each(self.parts, function(partNumber, part) { part.removeAllListeners('complete'); part.abort(); }); self.activeParts = 0; self.partPos = 0; self.numParts = 0; self.totalPartNumbers = 0; self.parts = {}; self.failed = true; self.callback(err); }, /** * @api private */ finishMultiPart: function finishMultiPart() { var self = this; var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } }; self.service.completeMultipartUpload(completeParams, function(err, data) { if (err) { return self.cleanup(err); } if (data && typeof data.Location === 'string') { data.Location = data.Location.replace(/%2F/g, '/'); } if (Array.isArray(self.tags)) { for (var i = 0; i < self.tags.length; i++) { self.tags[i].Value = String(self.tags[i].Value); } self.service.putObjectTagging( {Tagging: {TagSet: self.tags}}, function(e, d) { if (e) { self.callback(e); } else { self.callback(e, data); } } ); } else { self.callback(err, data); } }); }, /** * @api private */ finishSinglePart: function finishSinglePart(err, data) { var upload = this.request._managedUpload; var httpReq = this.request.httpRequest; var endpoint = httpReq.endpoint; if (err) return upload.callback(err); data.Location = [endpoint.protocol, '//', endpoint.host, httpReq.path].join(''); data.key = this.request.params.Key; // will stay undocumented data.Key = this.request.params.Key; data.Bucket = this.request.params.Bucket; upload.callback(err, data); }, /** * @api private */ progress: function progress(info) { var upload = this._managedUpload; if (this.operation === 'putObject') { info.part = 1; info.key = this.params.Key; } else { upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes; this._lastUploadedBytes = info.loaded; info = { loaded: upload.totalUploadedBytes, total: upload.totalBytes, part: this.params.PartNumber, key: this.params.Key }; } upload.emit('httpUploadProgress', [info]); } }); AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor); /** * @api private */ AWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) { this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency); }; /** * @api private */ AWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() { delete this.prototype.promise; }; AWS.util.addPromises(AWS.S3.ManagedUpload); /** * @api private */ module.exports = AWS.S3.ManagedUpload; /***/ }), /***/ "./node_modules/aws-sdk/lib/sequential_executor.js": /*!*********************************************************!*\ !*** ./node_modules/aws-sdk/lib/sequential_executor.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); /** * @api private * @!method on(eventName, callback) * Registers an event listener callback for the event given by `eventName`. * Parameters passed to the callback function depend on the individual event * being triggered. See the event documentation for those parameters. * * @param eventName [String] the event name to register the listener for * @param callback [Function] the listener callback function * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true. * Default to be false. * @return [AWS.SequentialExecutor] the same object for chaining */ AWS.SequentialExecutor = AWS.util.inherit({ constructor: function SequentialExecutor() { this._events = {}; }, /** * @api private */ listeners: function listeners(eventName) { return this._events[eventName] ? this._events[eventName].slice(0) : []; }, on: function on(eventName, listener, toHead) { if (this._events[eventName]) { toHead ? this._events[eventName].unshift(listener) : this._events[eventName].push(listener); } else { this._events[eventName] = [listener]; } return this; }, onAsync: function onAsync(eventName, listener, toHead) { listener._isAsync = true; return this.on(eventName, listener, toHead); }, removeListener: function removeListener(eventName, listener) { var listeners = this._events[eventName]; if (listeners) { var length = listeners.length; var position = -1; for (var i = 0; i < length; ++i) { if (listeners[i] === listener) { position = i; } } if (position > -1) { listeners.splice(position, 1); } } return this; }, removeAllListeners: function removeAllListeners(eventName) { if (eventName) { delete this._events[eventName]; } else { this._events = {}; } return this; }, /** * @api private */ emit: function emit(eventName, eventArgs, doneCallback) { if (!doneCallback) doneCallback = function() { }; var listeners = this.listeners(eventName); var count = listeners.length; this.callListeners(listeners, eventArgs, doneCallback); return count > 0; }, /** * @api private */ callListeners: function callListeners(listeners, args, doneCallback, prevError) { var self = this; var error = prevError || null; function callNextListener(err) { if (err) { error = AWS.util.error(error || new Error(), err); if (self._haltHandlersOnError) { return doneCallback.call(self, error); } } self.callListeners(listeners, args, doneCallback, error); } while (listeners.length > 0) { var listener = listeners.shift(); if (listener._isAsync) { // asynchronous listener listener.apply(self, args.concat([callNextListener])); return; // stop here, callNextListener will continue } else { // synchronous listener try { listener.apply(self, args); } catch (err) { error = AWS.util.error(error || new Error(), err); } if (error && self._haltHandlersOnError) { doneCallback.call(self, error); return; } } } doneCallback.call(self, error); }, /** * Adds or copies a set of listeners from another list of * listeners or SequentialExecutor object. * * @param listeners [map>, AWS.SequentialExecutor] * a list of events and callbacks, or an event emitter object * containing listeners to add to this emitter object. * @return [AWS.SequentialExecutor] the emitter object, for chaining. * @example Adding listeners from a map of listeners * emitter.addListeners({ * event1: [function() { ... }, function() { ... }], * event2: [function() { ... }] * }); * emitter.emit('event1'); // emitter has event1 * emitter.emit('event2'); // emitter has event2 * @example Adding listeners from another emitter object * var emitter1 = new AWS.SequentialExecutor(); * emitter1.on('event1', function() { ... }); * emitter1.on('event2', function() { ... }); * var emitter2 = new AWS.SequentialExecutor(); * emitter2.addListeners(emitter1); * emitter2.emit('event1'); // emitter2 has event1 * emitter2.emit('event2'); // emitter2 has event2 */ addListeners: function addListeners(listeners) { var self = this; // extract listeners if parameter is an SequentialExecutor object if (listeners._events) listeners = listeners._events; AWS.util.each(listeners, function(event, callbacks) { if (typeof callbacks === 'function') callbacks = [callbacks]; AWS.util.arrayEach(callbacks, function(callback) { self.on(event, callback); }); }); return self; }, /** * Registers an event with {on} and saves the callback handle function * as a property on the emitter object using a given `name`. * * @param name [String] the property name to set on this object containing * the callback function handle so that the listener can be removed in * the future. * @param (see on) * @return (see on) * @example Adding a named listener DATA_CALLBACK * var listener = function() { doSomething(); }; * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); * * // the following prints: true * console.log(emitter.DATA_CALLBACK == listener); */ addNamedListener: function addNamedListener(name, eventName, callback, toHead) { this[name] = callback; this.addListener(eventName, callback, toHead); return this; }, /** * @api private */ addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) { callback._isAsync = true; return this.addNamedListener(name, eventName, callback, toHead); }, /** * Helper method to add a set of named listeners using * {addNamedListener}. The callback contains a parameter * with a handle to the `addNamedListener` method. * * @callback callback function(add) * The callback function is called immediately in order to provide * the `add` function to the block. This simplifies the addition of * a large group of named listeners. * @param add [Function] the {addNamedListener} function to call * when registering listeners. * @example Adding a set of named listeners * emitter.addNamedListeners(function(add) { * add('DATA_CALLBACK', 'data', function() { ... }); * add('OTHER', 'otherEvent', function() { ... }); * add('LAST', 'lastEvent', function() { ... }); * }); * * // these properties are now set: * emitter.DATA_CALLBACK; * emitter.OTHER; * emitter.LAST; */ addNamedListeners: function addNamedListeners(callback) { var self = this; callback( function() { self.addNamedListener.apply(self, arguments); }, function() { self.addNamedAsyncListener.apply(self, arguments); } ); return this; } }); /** * {on} is the prefered method. * @api private */ AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; /** * @api private */ module.exports = AWS.SequentialExecutor; /***/ }), /***/ "./node_modules/aws-sdk/lib/service.js": /*!*********************************************!*\ !*** ./node_modules/aws-sdk/lib/service.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); var Api = __webpack_require__(/*! ./model/api */ "./node_modules/aws-sdk/lib/model/api.js"); var regionConfig = __webpack_require__(/*! ./region_config */ "./node_modules/aws-sdk/lib/region_config.js"); var inherit = AWS.util.inherit; var clientCount = 0; /** * The service class representing an AWS service. * * @class_abstract This class is an abstract class. * * @!attribute apiVersions * @return [Array] the list of API versions supported by this service. * @readonly */ AWS.Service = inherit({ /** * Create a new service object with a configuration object * * @param config [map] a map of configuration options */ constructor: function Service(config) { if (!this.loadServiceClass) { throw AWS.util.error(new Error(), 'Service must be constructed with `new\' operator'); } var ServiceClass = this.loadServiceClass(config || {}); if (ServiceClass) { var originalConfig = AWS.util.copy(config); var svc = new ServiceClass(config); Object.defineProperty(svc, '_originalConfig', { get: function() { return originalConfig; }, enumerable: false, configurable: true }); svc._clientId = ++clientCount; return svc; } this.initialize(config); }, /** * @api private */ initialize: function initialize(config) { var svcConfig = AWS.config[this.serviceIdentifier]; this.config = new AWS.Config(AWS.config); if (svcConfig) this.config.update(svcConfig, true); if (config) this.config.update(config, true); this.validateService(); if (!this.config.endpoint) regionConfig(this); this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); this.setEndpoint(this.config.endpoint); //enable attaching listeners to service client AWS.SequentialExecutor.call(this); AWS.Service.addDefaultMonitoringListeners(this); if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) { var publisher = this.publisher; this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) { process.nextTick(function() {publisher.eventHandler(event);}); }); this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) { process.nextTick(function() {publisher.eventHandler(event);}); }); } }, /** * @api private */ validateService: function validateService() { }, /** * @api private */ loadServiceClass: function loadServiceClass(serviceConfig) { var config = serviceConfig; if (!AWS.util.isEmpty(this.api)) { return null; } else if (config.apiConfig) { return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); } else if (!this.constructor.services) { return null; } else { config = new AWS.Config(AWS.config); config.update(serviceConfig, true); var version = config.apiVersions[this.constructor.serviceIdentifier]; version = version || config.apiVersion; return this.getLatestServiceClass(version); } }, /** * @api private */ getLatestServiceClass: function getLatestServiceClass(version) { version = this.getLatestServiceVersion(version); if (this.constructor.services[version] === null) { AWS.Service.defineServiceApi(this.constructor, version); } return this.constructor.services[version]; }, /** * @api private */ getLatestServiceVersion: function getLatestServiceVersion(version) { if (!this.constructor.services || this.constructor.services.length === 0) { throw new Error('No services defined on ' + this.constructor.serviceIdentifier); } if (!version) { version = 'latest'; } else if (AWS.util.isType(version, Date)) { version = AWS.util.date.iso8601(version).split('T')[0]; } if (Object.hasOwnProperty(this.constructor.services, version)) { return version; } var keys = Object.keys(this.constructor.services).sort(); var selectedVersion = null; for (var i = keys.length - 1; i >= 0; i--) { // versions that end in "*" are not available on disk and can be // skipped, so do not choose these as selectedVersions if (keys[i][keys[i].length - 1] !== '*') { selectedVersion = keys[i]; } if (keys[i].substr(0, 10) <= version) { return selectedVersion; } } throw new Error('Could not find ' + this.constructor.serviceIdentifier + ' API to satisfy version constraint `' + version + '\''); }, /** * @api private */ api: {}, /** * @api private */ defaultRetryCount: 3, /** * @api private */ customizeRequests: function customizeRequests(callback) { if (!callback) { this.customRequestHandler = null; } else if (typeof callback === 'function') { this.customRequestHandler = callback; } else { throw new Error('Invalid callback type \'' + typeof callback + '\' provided in customizeRequests'); } }, /** * Calls an operation on a service with the given input parameters. * * @param operation [String] the name of the operation to call on the service. * @param params [map] a map of input options for the operation * @callback callback function(err, data) * If a callback is supplied, it is called when a response is returned * from the service. * @param err [Error] the error object returned from the request. * Set to `null` if the request is successful. * @param data [Object] the de-serialized data returned from * the request. Set to `null` if a request error occurs. */ makeRequest: function makeRequest(operation, params, callback) { if (typeof params === 'function') { callback = params; params = null; } params = params || {}; if (this.config.params) { // copy only toplevel bound params var rules = this.api.operations[operation]; if (rules) { params = AWS.util.copy(params); AWS.util.each(this.config.params, function(key, value) { if (rules.input.members[key]) { if (params[key] === undefined || params[key] === null) { params[key] = value; } } }); } } var request = new AWS.Request(this, operation, params); this.addAllRequestListeners(request); this.attachMonitoringEmitter(request); if (callback) request.send(callback); return request; }, /** * Calls an operation on a service with the given input parameters, without * any authentication data. This method is useful for "public" API operations. * * @param operation [String] the name of the operation to call on the service. * @param params [map] a map of input options for the operation * @callback callback function(err, data) * If a callback is supplied, it is called when a response is returned * from the service. * @param err [Error] the error object returned from the request. * Set to `null` if the request is successful. * @param data [Object] the de-serialized data returned from * the request. Set to `null` if a request error occurs. */ makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { if (typeof params === 'function') { callback = params; params = {}; } var request = this.makeRequest(operation, params).toUnauthenticated(); return callback ? request.send(callback) : request; }, /** * Waits for a given state * * @param state [String] the state on the service to wait for * @param params [map] a map of parameters to pass with each request * @option params $waiter [map] a map of configuration options for the waiter * @option params $waiter.delay [Number] The number of seconds to wait between * requests * @option params $waiter.maxAttempts [Number] The maximum number of requests * to send while waiting * @callback callback function(err, data) * If a callback is supplied, it is called when a response is returned * from the service. * @param err [Error] the error object returned from the request. * Set to `null` if the request is successful. * @param data [Object] the de-serialized data returned from * the request. Set to `null` if a request error occurs. */ waitFor: function waitFor(state, params, callback) { var waiter = new AWS.ResourceWaiter(this, state); return waiter.wait(params, callback); }, /** * @api private */ addAllRequestListeners: function addAllRequestListeners(request) { var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), AWS.EventListeners.CorePost]; for (var i = 0; i < list.length; i++) { if (list[i]) request.addListeners(list[i]); } // disable parameter validation if (!this.config.paramValidation) { request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); } if (this.config.logger) { // add logging events request.addListeners(AWS.EventListeners.Logger); } this.setupRequestListeners(request); // call prototype's customRequestHandler if (typeof this.constructor.prototype.customRequestHandler === 'function') { this.constructor.prototype.customRequestHandler(request); } // call instance's customRequestHandler if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') { this.customRequestHandler(request); } }, /** * Event recording metrics for a whole API call. * @returns {object} a subset of api call metrics * @api private */ apiCallEvent: function apiCallEvent(request) { var api = request.service.api.operations[request.operation]; var monitoringEvent = { Type: 'ApiCall', Api: api ? api.name : request.operation, Version: 1, Service: request.service.api.serviceId || request.service.api.endpointPrefix, Region: request.httpRequest.region, MaxRetriesExceeded: 0, UserAgent: request.httpRequest.getUserAgent(), }; var response = request.response; if (response.httpResponse.statusCode) { monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode; } if (response.error) { var error = response.error; var statusCode = response.httpResponse.statusCode; if (statusCode > 299) { if (error.code) monitoringEvent.FinalAwsException = error.code; if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message; } else { if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name; if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message; } } return monitoringEvent; }, /** * Event recording metrics for an API call attempt. * @returns {object} a subset of api call attempt metrics * @api private */ apiAttemptEvent: function apiAttemptEvent(request) { var api = request.service.api.operations[request.operation]; var monitoringEvent = { Type: 'ApiCallAttempt', Api: api ? api.name : request.operation, Version: 1, Service: request.service.api.serviceId || request.service.api.endpointPrefix, Fqdn: request.httpRequest.endpoint.hostname, UserAgent: request.httpRequest.getUserAgent(), }; var response = request.response; if (response.httpResponse.statusCode) { monitoringEvent.HttpStatusCode = response.httpResponse.statusCode; } if ( !request._unAuthenticated && request.service.config.credentials && request.service.config.credentials.accessKeyId ) { monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId; } if (!response.httpResponse.headers) return monitoringEvent; if (request.httpRequest.headers['x-amz-security-token']) { monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token']; } if (response.httpResponse.headers['x-amzn-requestid']) { monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid']; } if (response.httpResponse.headers['x-amz-request-id']) { monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id']; } if (response.httpResponse.headers['x-amz-id-2']) { monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2']; } return monitoringEvent; }, /** * Add metrics of failed request. * @api private */ attemptFailEvent: function attemptFailEvent(request) { var monitoringEvent = this.apiAttemptEvent(request); var response = request.response; var error = response.error; if (response.httpResponse.statusCode > 299 ) { if (error.code) monitoringEvent.AwsException = error.code; if (error.message) monitoringEvent.AwsExceptionMessage = error.message; } else { if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name; if (error.message) monitoringEvent.SdkExceptionMessage = error.message; } return monitoringEvent; }, /** * Attach listeners to request object to fetch metrics of each request * and emit data object through \'ApiCall\' and \'ApiCallAttempt\' events. * @api private */ attachMonitoringEmitter: function attachMonitoringEmitter(request) { var attemptTimestamp; //timestamp marking the beginning of a request attempt var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency var attemptLatency; //latency from request sent out to http response reaching SDK var callStartRealTime; //Start time of API call. Used to calculating API call latency var attemptCount = 0; //request.retryCount is not reliable here var region; //region cache region for each attempt since it can be updated in plase (e.g. s3) var callTimestamp; //timestamp when the request is created var self = this; var addToHead = true; request.on('validate', function () { callStartRealTime = AWS.util.realClock.now(); callTimestamp = Date.now(); }, addToHead); request.on('sign', function () { attemptStartRealTime = AWS.util.realClock.now(); attemptTimestamp = Date.now(); region = request.httpRequest.region; attemptCount++; }, addToHead); request.on('validateResponse', function() { attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime); }); request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() { var apiAttemptEvent = self.apiAttemptEvent(request); apiAttemptEvent.Timestamp = attemptTimestamp; apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0; apiAttemptEvent.Region = region; self.emit('apiCallAttempt', [apiAttemptEvent]); }); request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() { var apiAttemptEvent = self.attemptFailEvent(request); apiAttemptEvent.Timestamp = attemptTimestamp; //attemptLatency may not be available if fail before response attemptLatency = attemptLatency || Math.round(AWS.util.realClock.now() - attemptStartRealTime); apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0; apiAttemptEvent.Region = region; self.emit('apiCallAttempt', [apiAttemptEvent]); }); request.addNamedListener('API_CALL', 'complete', function API_CALL() { var apiCallEvent = self.apiCallEvent(request); apiCallEvent.AttemptCount = attemptCount; if (apiCallEvent.AttemptCount <= 0) return; apiCallEvent.Timestamp = callTimestamp; var latency = Math.round(AWS.util.realClock.now() - callStartRealTime); apiCallEvent.Latency = latency >= 0 ? latency : 0; var response = request.response; if ( typeof response.retryCount === 'number' && typeof response.maxRetries === 'number' && (response.retryCount >= response.maxRetries) ) { apiCallEvent.MaxRetriesExceeded = 1; } self.emit('apiCall', [apiCallEvent]); }); }, /** * Override this method to setup any custom request listeners for each * new request to the service. * * @method_abstract This is an abstract method. */ setupRequestListeners: function setupRequestListeners(request) { }, /** * Gets the signer class for a given request * @api private */ getSignerClass: function getSignerClass(request) { var version; // get operation authtype if present var operation = null; var authtype = ''; if (request) { var operations = request.service.api.operations || {}; operation = operations[request.operation] || null; authtype = operation ? operation.authtype : ''; } if (this.config.signatureVersion) { version = this.config.signatureVersion; } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { version = 'v4'; } else { version = this.api.signatureVersion; } return AWS.Signers.RequestSigner.getVersion(version); }, /** * @api private */ serviceInterface: function serviceInterface() { switch (this.api.protocol) { case 'ec2': return AWS.EventListeners.Query; case 'query': return AWS.EventListeners.Query; case 'json': return AWS.EventListeners.Json; case 'rest-json': return AWS.EventListeners.RestJson; case 'rest-xml': return AWS.EventListeners.RestXml; } if (this.api.protocol) { throw new Error('Invalid service `protocol\' ' + this.api.protocol + ' in API config'); } }, /** * @api private */ successfulResponse: function successfulResponse(resp) { return resp.httpResponse.statusCode < 300; }, /** * How many times a failed request should be retried before giving up. * the defaultRetryCount can be overriden by service classes. * * @api private */ numRetries: function numRetries() { if (this.config.maxRetries !== undefined) { return this.config.maxRetries; } else { return this.defaultRetryCount; } }, /** * @api private */ retryDelays: function retryDelays(retryCount) { return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions); }, /** * @api private */ retryableError: function retryableError(error) { if (this.timeoutError(error)) return true; if (this.networkingError(error)) return true; if (this.expiredCredentialsError(error)) return true; if (this.throttledError(error)) return true; if (error.statusCode >= 500) return true; return false; }, /** * @api private */ networkingError: function networkingError(error) { return error.code === 'NetworkingError'; }, /** * @api private */ timeoutError: function timeoutError(error) { return error.code === 'TimeoutError'; }, /** * @api private */ expiredCredentialsError: function expiredCredentialsError(error) { // TODO : this only handles *one* of the expired credential codes return (error.code === 'ExpiredTokenException'); }, /** * @api private */ clockSkewError: function clockSkewError(error) { switch (error.code) { case 'RequestTimeTooSkewed': case 'RequestExpired': case 'InvalidSignatureException': case 'SignatureDoesNotMatch': case 'AuthFailure': case 'RequestInTheFuture': return true; default: return false; } }, /** * @api private */ getSkewCorrectedDate: function getSkewCorrectedDate() { return new Date(Date.now() + this.config.systemClockOffset); }, /** * @api private */ applyClockOffset: function applyClockOffset(newServerTime) { if (newServerTime) { this.config.systemClockOffset = newServerTime - Date.now(); } }, /** * @api private */ isClockSkewed: function isClockSkewed(newServerTime) { if (newServerTime) { return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 30000; } }, /** * @api private */ throttledError: function throttledError(error) { // this logic varies between services switch (error.code) { case 'ProvisionedThroughputExceededException': case 'Throttling': case 'ThrottlingException': case 'RequestLimitExceeded': case 'RequestThrottled': case 'RequestThrottledException': case 'TooManyRequestsException': case 'TransactionInProgressException': //dynamodb return true; default: return false; } }, /** * @api private */ endpointFromTemplate: function endpointFromTemplate(endpoint) { if (typeof endpoint !== 'string') return endpoint; var e = endpoint; e = e.replace(/\{service\}/g, this.api.endpointPrefix); e = e.replace(/\{region\}/g, this.config.region); e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); return e; }, /** * @api private */ setEndpoint: function setEndpoint(endpoint) { this.endpoint = new AWS.Endpoint(endpoint, this.config); }, /** * @api private */ paginationConfig: function paginationConfig(operation, throwException) { var paginator = this.api.operations[operation].paginator; if (!paginator) { if (throwException) { var e = new Error(); throw AWS.util.error(e, 'No pagination configuration for ' + operation); } return null; } return paginator; } }); AWS.util.update(AWS.Service, { /** * Adds one method for each operation described in the api configuration * * @api private */ defineMethods: function defineMethods(svc) { AWS.util.each(svc.prototype.api.operations, function iterator(method) { if (svc.prototype[method]) return; var operation = svc.prototype.api.operations[method]; if (operation.authtype === 'none') { svc.prototype[method] = function (params, callback) { return this.makeUnauthenticatedRequest(method, params, callback); }; } else { svc.prototype[method] = function (params, callback) { return this.makeRequest(method, params, callback); }; } }); }, /** * Defines a new Service class using a service identifier and list of versions * including an optional set of features (functions) to apply to the class * prototype. * * @param serviceIdentifier [String] the identifier for the service * @param versions [Array] a list of versions that work with this * service * @param features [Object] an object to attach to the prototype * @return [Class] the service class defined by this function. */ defineService: function defineService(serviceIdentifier, versions, features) { AWS.Service._serviceMap[serviceIdentifier] = true; if (!Array.isArray(versions)) { features = versions; versions = []; } var svc = inherit(AWS.Service, features || {}); if (typeof serviceIdentifier === 'string') { AWS.Service.addVersions(svc, versions); var identifier = svc.serviceIdentifier || serviceIdentifier; svc.serviceIdentifier = identifier; } else { // defineService called with an API svc.prototype.api = serviceIdentifier; AWS.Service.defineMethods(svc); } AWS.SequentialExecutor.call(this.prototype); //util.clientSideMonitoring is only available in node if (!this.prototype.publisher && AWS.util.clientSideMonitoring) { var Publisher = AWS.util.clientSideMonitoring.Publisher; var configProvider = AWS.util.clientSideMonitoring.configProvider; var publisherConfig = configProvider(); this.prototype.publisher = new Publisher(publisherConfig); if (publisherConfig.enabled) { //if csm is enabled in environment, SDK should send all metrics AWS.Service._clientSideMonitoring = true; } } AWS.SequentialExecutor.call(svc.prototype); AWS.Service.addDefaultMonitoringListeners(svc.prototype); return svc; }, /** * @api private */ addVersions: function addVersions(svc, versions) { if (!Array.isArray(versions)) versions = [versions]; svc.services = svc.services || {}; for (var i = 0; i < versions.length; i++) { if (svc.services[versions[i]] === undefined) { svc.services[versions[i]] = null; } } svc.apiVersions = Object.keys(svc.services).sort(); }, /** * @api private */ defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { var svc = inherit(superclass, { serviceIdentifier: superclass.serviceIdentifier }); function setApi(api) { if (api.isApi) { svc.prototype.api = api; } else { svc.prototype.api = new Api(api); } } if (typeof version === 'string') { if (apiConfig) { setApi(apiConfig); } else { try { setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); } catch (err) { throw AWS.util.error(err, { message: 'Could not find API configuration ' + superclass.serviceIdentifier + '-' + version }); } } if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) { superclass.apiVersions = superclass.apiVersions.concat(version).sort(); } superclass.services[version] = svc; } else { setApi(version); } AWS.Service.defineMethods(svc); return svc; }, /** * @api private */ hasService: function(identifier) { return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier); }, /** * @param attachOn attach default monitoring listeners to object * * Each monitoring event should be emitted from service client to service constructor prototype and then * to global service prototype like bubbling up. These default monitoring events listener will transfer * the monitoring events to the upper layer. * @api private */ addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) { attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) { var baseClass = Object.getPrototypeOf(attachOn); if (baseClass._events) baseClass.emit('apiCallAttempt', [event]); }); attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) { var baseClass = Object.getPrototypeOf(attachOn); if (baseClass._events) baseClass.emit('apiCall', [event]); }); }, /** * @api private */ _serviceMap: {} }); AWS.util.mixin(AWS.Service, AWS.SequentialExecutor); /** * @api private */ module.exports = AWS.Service; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/aws-sdk/lib/services/cognitoidentity.js": /*!**************************************************************!*\ !*** ./node_modules/aws-sdk/lib/services/cognitoidentity.js ***! \**************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); AWS.util.update(AWS.CognitoIdentity.prototype, { getOpenIdToken: function getOpenIdToken(params, callback) { return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); }, getId: function getId(params, callback) { return this.makeUnauthenticatedRequest('getId', params, callback); }, getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/services/s3.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/services/s3.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var v4Credentials = __webpack_require__(/*! ../signers/v4_credentials */ "./node_modules/aws-sdk/lib/signers/v4_credentials.js"); // Pull in managed upload extension __webpack_require__(/*! ../s3/managed_upload */ "./node_modules/aws-sdk/lib/s3/managed_upload.js"); /** * @api private */ var operationsWith200StatusCodeError = { 'completeMultipartUpload': true, 'copyObject': true, 'uploadPartCopy': true }; /** * @api private */ var regionRedirectErrorCodes = [ 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints 'BadRequest', // head operations on virtual-hosted global bucket endpoints 'PermanentRedirect', // non-head operations on path-style or regional endpoints 301 // head operations on path-style or regional endpoints ]; AWS.util.update(AWS.S3.prototype, { /** * @api private */ getSignatureVersion: function getSignatureVersion(request) { var defaultApiVersion = this.api.signatureVersion; var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null; var regionDefinedVersion = this.config.signatureVersion; var isPresigned = request ? request.isPresigned() : false; /* 1) User defined version specified: a) always return user defined version 2) No user defined version specified: a) default to lowest version the region supports b) If using presigned urls, default to lowest version the region supports */ if (userDefinedVersion) { userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion; return userDefinedVersion; } if (isPresigned !== true) { defaultApiVersion = 'v4'; } else if (regionDefinedVersion) { defaultApiVersion = regionDefinedVersion; } return defaultApiVersion; }, /** * @api private */ getSignerClass: function getSignerClass(request) { var signatureVersion = this.getSignatureVersion(request); return AWS.Signers.RequestSigner.getVersion(signatureVersion); }, /** * @api private */ validateService: function validateService() { var msg; var messages = []; // default to us-east-1 when no region is provided if (!this.config.region) this.config.region = 'us-east-1'; if (!this.config.endpoint && this.config.s3BucketEndpoint) { messages.push('An endpoint must be provided when configuring ' + '`s3BucketEndpoint` to true.'); } if (messages.length === 1) { msg = messages[0]; } else if (messages.length > 1) { msg = 'Multiple configuration errors:\n' + messages.join('\n'); } if (msg) { throw AWS.util.error(new Error(), {name: 'InvalidEndpoint', message: msg}); } }, /** * @api private */ shouldDisableBodySigning: function shouldDisableBodySigning(request) { var signerClass = this.getSignerClass(); if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4 && request.httpRequest.endpoint.protocol === 'https:') { return true; } return false; }, /** * @api private */ setupRequestListeners: function setupRequestListeners(request) { var prependListener = true; request.addListener('validate', this.validateScheme); request.addListener('validate', this.validateBucketEndpoint); request.addListener('validate', this.correctBucketRegionFromCache); request.addListener('validate', this.validateBucketName, prependListener); request.addListener('build', this.addContentType); request.addListener('build', this.populateURI); request.addListener('build', this.computeContentMd5); request.addListener('build', this.computeSseCustomerKeyMd5); request.addListener('afterBuild', this.addExpect100Continue); request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_REGION); request.addListener('extractError', this.extractError); request.onAsync('extractError', this.requestBucketRegion); request.addListener('extractData', this.extractData); request.addListener('extractData', AWS.util.hoistPayloadMember); request.addListener('beforePresign', this.prepareSignedUrl); if (AWS.util.isBrowser()) { request.onAsync('retry', this.reqRegionForNetworkingError); } if (this.shouldDisableBodySigning(request)) { request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); request.addListener('afterBuild', this.disableBodySigning); } }, /** * @api private */ validateScheme: function(req) { var params = req.params, scheme = req.httpRequest.endpoint.protocol, sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey; if (sensitive && scheme !== 'https:') { var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' + 'to \'true\' in your configuration'; throw AWS.util.error(new Error(), { code: 'ConfigError', message: msg }); } }, /** * @api private */ validateBucketEndpoint: function(req) { if (!req.params.Bucket && req.service.config.s3BucketEndpoint) { var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.'; throw AWS.util.error(new Error(), { code: 'ConfigError', message: msg }); } }, /** * @api private */ validateBucketName: function validateBucketName(req) { var service = req.service; var signatureVersion = service.getSignatureVersion(req); var bucket = req.params && req.params.Bucket; var key = req.params && req.params.Key; var slashIndex = bucket && bucket.indexOf('/'); if (bucket && slashIndex >= 0) { if (typeof key === 'string' && slashIndex > 0) { req.params = AWS.util.copy(req.params); // Need to include trailing slash to match sigv2 behavior var prefix = bucket.substr(slashIndex + 1) || ''; req.params.Key = prefix + '/' + key; req.params.Bucket = bucket.substr(0, slashIndex); } else if (signatureVersion === 'v4') { var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket; throw AWS.util.error(new Error(), { code: 'InvalidBucket', message: msg }); } } }, /** * @api private */ isValidAccelerateOperation: function isValidAccelerateOperation(operation) { var invalidOperations = [ 'createBucket', 'deleteBucket', 'listBuckets' ]; return invalidOperations.indexOf(operation) === -1; }, /** * S3 prefers dns-compatible bucket names to be moved from the uri path * to the hostname as a sub-domain. This is not possible, even for dns-compat * buckets when using SSL and the bucket name contains a dot ('.'). The * ssl wildcard certificate is only 1-level deep. * * @api private */ populateURI: function populateURI(req) { var httpRequest = req.httpRequest; var b = req.params.Bucket; var service = req.service; var endpoint = httpRequest.endpoint; if (b) { if (!service.pathStyleBucketName(b)) { if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) { if (service.config.useDualstack) { endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com'; } else { endpoint.hostname = b + '.s3-accelerate.amazonaws.com'; } } else if (!service.config.s3BucketEndpoint) { endpoint.hostname = b + '.' + endpoint.hostname; } var port = endpoint.port; if (port !== 80 && port !== 443) { endpoint.host = endpoint.hostname + ':' + endpoint.port; } else { endpoint.host = endpoint.hostname; } httpRequest.virtualHostedBucket = b; // needed for signing the request service.removeVirtualHostedBucketFromPath(req); } } }, /** * Takes the bucket name out of the path if bucket is virtual-hosted * * @api private */ removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) { var httpRequest = req.httpRequest; var bucket = httpRequest.virtualHostedBucket; if (bucket && httpRequest.path) { if (req.params && req.params.Key) { var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key); if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) { //path only contains key or path contains only key and querystring return; } } httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), ''); if (httpRequest.path[0] !== '/') { httpRequest.path = '/' + httpRequest.path; } } }, /** * Adds Expect: 100-continue header if payload is greater-or-equal 1MB * @api private */ addExpect100Continue: function addExpect100Continue(req) { var len = req.httpRequest.headers['Content-Length']; if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) { req.httpRequest.headers['Expect'] = '100-continue'; } }, /** * Adds a default content type if none is supplied. * * @api private */ addContentType: function addContentType(req) { var httpRequest = req.httpRequest; if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') { // Content-Type is not set in GET/HEAD requests delete httpRequest.headers['Content-Type']; return; } if (!httpRequest.headers['Content-Type']) { // always have a Content-Type httpRequest.headers['Content-Type'] = 'application/octet-stream'; } var contentType = httpRequest.headers['Content-Type']; if (AWS.util.isBrowser()) { if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) { var charset = '; charset=UTF-8'; httpRequest.headers['Content-Type'] += charset; } else { var replaceFn = function(_, prefix, charsetName) { return prefix + charsetName.toUpperCase(); }; httpRequest.headers['Content-Type'] = contentType.replace(/(;\s*charset=)(.+)$/, replaceFn); } } }, /** * @api private */ computableChecksumOperations: { putBucketCors: true, putBucketLifecycle: true, putBucketLifecycleConfiguration: true, putBucketTagging: true, deleteObjects: true, putBucketReplication: true, putObjectLegalHold: true, putObjectRetention: true, putObjectLockConfiguration: true }, /** * Checks whether checksums should be computed for the request. * If the request requires checksums to be computed, this will always * return true, otherwise it depends on whether {AWS.Config.computeChecksums} * is set. * * @param req [AWS.Request] the request to check against * @return [Boolean] whether to compute checksums for a request. * @api private */ willComputeChecksums: function willComputeChecksums(req) { if (this.computableChecksumOperations[req.operation]) return true; if (!this.config.computeChecksums) return false; // TODO: compute checksums for Stream objects if (!AWS.util.Buffer.isBuffer(req.httpRequest.body) && typeof req.httpRequest.body !== 'string') { return false; } var rules = req.service.api.operations[req.operation].input.members; // Sha256 signing disabled, and not a presigned url if (req.service.shouldDisableBodySigning(req) && !Object.prototype.hasOwnProperty.call(req.httpRequest.headers, 'presigned-expires')) { if (rules.ContentMD5 && !req.params.ContentMD5) { return true; } } // V4 signer uses SHA256 signatures so only compute MD5 if it is required if (req.service.getSignerClass(req) === AWS.Signers.V4) { if (rules.ContentMD5 && !rules.ContentMD5.required) return false; } if (rules.ContentMD5 && !req.params.ContentMD5) return true; }, /** * A listener that computes the Content-MD5 and sets it in the header. * @see AWS.S3.willComputeChecksums * @api private */ computeContentMd5: function computeContentMd5(req) { if (req.service.willComputeChecksums(req)) { var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64'); req.httpRequest.headers['Content-MD5'] = md5; } }, /** * @api private */ computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) { var keys = { SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5', CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5' }; AWS.util.each(keys, function(key, header) { if (req.params[key]) { var value = AWS.util.crypto.md5(req.params[key], 'base64'); req.httpRequest.headers[header] = value; } }); }, /** * Returns true if the bucket name should be left in the URI path for * a request to S3. This function takes into account the current * endpoint protocol (e.g. http or https). * * @api private */ pathStyleBucketName: function pathStyleBucketName(bucketName) { // user can force path style requests via the configuration if (this.config.s3ForcePathStyle) return true; if (this.config.s3BucketEndpoint) return false; if (this.dnsCompatibleBucketName(bucketName)) { return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false; } else { return true; // not dns compatible names must always use path style } }, /** * Returns true if the bucket name is DNS compatible. Buckets created * outside of the classic region MUST be DNS compatible. * * @api private */ dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) { var b = bucketName; var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/); var ipAddress = new RegExp(/(\d+\.){3}\d+/); var dots = new RegExp(/\.\./); return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false; }, /** * @return [Boolean] whether response contains an error * @api private */ successfulResponse: function successfulResponse(resp) { var req = resp.request; var httpResponse = resp.httpResponse; if (operationsWith200StatusCodeError[req.operation] && httpResponse.body.toString().match('')) { return false; } else { return httpResponse.statusCode < 300; } }, /** * @return [Boolean] whether the error can be retried * @api private */ retryableError: function retryableError(error, request) { if (operationsWith200StatusCodeError[request.operation] && error.statusCode === 200) { return true; } else if (request._requestRegionForBucket && request.service.bucketRegionCache[request._requestRegionForBucket]) { return false; } else if (error && error.code === 'RequestTimeout') { return true; } else if (error && regionRedirectErrorCodes.indexOf(error.code) != -1 && error.region && error.region != request.httpRequest.region) { request.httpRequest.region = error.region; if (error.statusCode === 301) { request.service.updateReqBucketRegion(request); } return true; } else { var _super = AWS.Service.prototype.retryableError; return _super.call(this, error, request); } }, /** * Updates httpRequest with region. If region is not provided, then * the httpRequest will be updated based on httpRequest.region * * @api private */ updateReqBucketRegion: function updateReqBucketRegion(request, region) { var httpRequest = request.httpRequest; if (typeof region === 'string' && region.length) { httpRequest.region = region; } if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) { return; } var service = request.service; var s3Config = service.config; var s3BucketEndpoint = s3Config.s3BucketEndpoint; if (s3BucketEndpoint) { delete s3Config.s3BucketEndpoint; } var newConfig = AWS.util.copy(s3Config); delete newConfig.endpoint; newConfig.region = httpRequest.region; httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint; service.populateURI(request); s3Config.s3BucketEndpoint = s3BucketEndpoint; httpRequest.headers.Host = httpRequest.endpoint.host; if (request._asm.currentState === 'validate') { request.removeListener('build', service.populateURI); request.addListener('build', service.removeVirtualHostedBucketFromPath); } }, /** * Provides a specialized parser for getBucketLocation -- all other * operations are parsed by the super class. * * @api private */ extractData: function extractData(resp) { var req = resp.request; if (req.operation === 'getBucketLocation') { var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/); delete resp.data['_']; if (match) { resp.data.LocationConstraint = match[1]; } else { resp.data.LocationConstraint = ''; } } var bucket = req.params.Bucket || null; if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) { req.service.clearBucketRegionCache(bucket); } else { var headers = resp.httpResponse.headers || {}; var region = headers['x-amz-bucket-region'] || null; if (!region && req.operation === 'createBucket' && !resp.error) { var createBucketConfiguration = req.params.CreateBucketConfiguration; if (!createBucketConfiguration) { region = 'us-east-1'; } else if (createBucketConfiguration.LocationConstraint === 'EU') { region = 'eu-west-1'; } else { region = createBucketConfiguration.LocationConstraint; } } if (region) { if (bucket && region !== req.service.bucketRegionCache[bucket]) { req.service.bucketRegionCache[bucket] = region; } } } req.service.extractRequestIds(resp); }, /** * Extracts an error object from the http response. * * @api private */ extractError: function extractError(resp) { var codes = { 304: 'NotModified', 403: 'Forbidden', 400: 'BadRequest', 404: 'NotFound' }; var req = resp.request; var code = resp.httpResponse.statusCode; var body = resp.httpResponse.body || ''; var headers = resp.httpResponse.headers || {}; var region = headers['x-amz-bucket-region'] || null; var bucket = req.params.Bucket || null; var bucketRegionCache = req.service.bucketRegionCache; if (region && bucket && region !== bucketRegionCache[bucket]) { bucketRegionCache[bucket] = region; } var cachedRegion; if (codes[code] && body.length === 0) { if (bucket && !region) { cachedRegion = bucketRegionCache[bucket] || null; if (cachedRegion !== req.httpRequest.region) { region = cachedRegion; } } resp.error = AWS.util.error(new Error(), { code: codes[code], message: null, region: region }); } else { var data = new AWS.XML.Parser().parse(body.toString()); if (data.Region && !region) { region = data.Region; if (bucket && region !== bucketRegionCache[bucket]) { bucketRegionCache[bucket] = region; } } else if (bucket && !region && !data.Region) { cachedRegion = bucketRegionCache[bucket] || null; if (cachedRegion !== req.httpRequest.region) { region = cachedRegion; } } resp.error = AWS.util.error(new Error(), { code: data.Code || code, message: data.Message || null, region: region }); } req.service.extractRequestIds(resp); }, /** * If region was not obtained synchronously, then send async request * to get bucket region for errors resulting from wrong region. * * @api private */ requestBucketRegion: function requestBucketRegion(resp, done) { var error = resp.error; var req = resp.request; var bucket = req.params.Bucket || null; if (!error || !bucket || error.region || req.operation === 'listObjects' || (AWS.util.isNode() && req.operation === 'headBucket') || (error.statusCode === 400 && req.operation !== 'headObject') || regionRedirectErrorCodes.indexOf(error.code) === -1) { return done(); } var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects'; var reqParams = {Bucket: bucket}; if (reqOperation === 'listObjects') reqParams.MaxKeys = 0; var regionReq = req.service[reqOperation](reqParams); regionReq._requestRegionForBucket = bucket; regionReq.send(function() { var region = req.service.bucketRegionCache[bucket] || null; error.region = region; done(); }); }, /** * For browser only. If NetworkingError received, will attempt to obtain * the bucket region. * * @api private */ reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) { if (!AWS.util.isBrowser()) { return done(); } var error = resp.error; var request = resp.request; var bucket = request.params.Bucket; if (!error || error.code !== 'NetworkingError' || !bucket || request.httpRequest.region === 'us-east-1') { return done(); } var service = request.service; var bucketRegionCache = service.bucketRegionCache; var cachedRegion = bucketRegionCache[bucket] || null; if (cachedRegion && cachedRegion !== request.httpRequest.region) { service.updateReqBucketRegion(request, cachedRegion); done(); } else if (!service.dnsCompatibleBucketName(bucket)) { service.updateReqBucketRegion(request, 'us-east-1'); if (bucketRegionCache[bucket] !== 'us-east-1') { bucketRegionCache[bucket] = 'us-east-1'; } done(); } else if (request.httpRequest.virtualHostedBucket) { var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0}); service.updateReqBucketRegion(getRegionReq, 'us-east-1'); getRegionReq._requestRegionForBucket = bucket; getRegionReq.send(function() { var region = service.bucketRegionCache[bucket] || null; if (region && region !== request.httpRequest.region) { service.updateReqBucketRegion(request, region); } done(); }); } else { // DNS-compatible path-style // (s3ForcePathStyle or bucket name with dot over https) // Cannot obtain region information for this case done(); } }, /** * Cache for bucket region. * * @api private */ bucketRegionCache: {}, /** * Clears bucket region cache. * * @api private */ clearBucketRegionCache: function(buckets) { var bucketRegionCache = this.bucketRegionCache; if (!buckets) { buckets = Object.keys(bucketRegionCache); } else if (typeof buckets === 'string') { buckets = [buckets]; } for (var i = 0; i < buckets.length; i++) { delete bucketRegionCache[buckets[i]]; } return bucketRegionCache; }, /** * Corrects request region if bucket's cached region is different * * @api private */ correctBucketRegionFromCache: function correctBucketRegionFromCache(req) { var bucket = req.params.Bucket || null; if (bucket) { var service = req.service; var requestRegion = req.httpRequest.region; var cachedRegion = service.bucketRegionCache[bucket]; if (cachedRegion && cachedRegion !== requestRegion) { service.updateReqBucketRegion(req, cachedRegion); } } }, /** * Extracts S3 specific request ids from the http response. * * @api private */ extractRequestIds: function extractRequestIds(resp) { var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null; var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null; resp.extendedRequestId = extendedRequestId; resp.cfId = cfId; if (resp.error) { resp.error.requestId = resp.requestId || null; resp.error.extendedRequestId = extendedRequestId; resp.error.cfId = cfId; } }, /** * Get a pre-signed URL for a given operation name. * * @note You must ensure that you have static or previously resolved * credentials if you call this method synchronously (with no callback), * otherwise it may not properly sign the request. If you cannot guarantee * this (you are using an asynchronous credential provider, i.e., EC2 * IAM roles), you should always call this method with an asynchronous * callback. * @note Not all operation parameters are supported when using pre-signed * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`, * `ContentLength`, or `Tagging` must be provided as headers when sending a * request. If you are using pre-signed URLs to upload from a browser and * need to use these fields, see {createPresignedPost}. * @note The default signer allows altering the request by adding corresponding * headers to set some parameters (e.g. Range) and these added parameters * won't be signed. You must use signatureVersion v4 to to include these * parameters in the signed portion of the URL and enforce exact matching * between headers and signed params in the URL. * @note This operation cannot be used with a promise. See note above regarding * asynchronous credentials and use with a callback. * @param operation [String] the name of the operation to call * @param params [map] parameters to pass to the operation. See the given * operation for the expected operation parameters. In addition, you can * also pass the "Expires" parameter to inform S3 how long the URL should * work for. * @option params Expires [Integer] (900) the number of seconds to expire * the pre-signed URL operation in. Defaults to 15 minutes. * @param callback [Function] if a callback is provided, this function will * pass the URL as the second parameter (after the error parameter) to * the callback function. * @return [String] if called synchronously (with no callback), returns the * signed URL. * @return [null] nothing is returned if a callback is provided. * @example Pre-signing a getObject operation (synchronously) * var params = {Bucket: 'bucket', Key: 'key'}; * var url = s3.getSignedUrl('getObject', params); * console.log('The URL is', url); * @example Pre-signing a putObject (asynchronously) * var params = {Bucket: 'bucket', Key: 'key'}; * s3.getSignedUrl('putObject', params, function (err, url) { * console.log('The URL is', url); * }); * @example Pre-signing a putObject operation with a specific payload * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; * var url = s3.getSignedUrl('putObject', params); * console.log('The URL is', url); * @example Passing in a 1-minute expiry time for a pre-signed URL * var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; * var url = s3.getSignedUrl('getObject', params); * console.log('The URL is', url); // expires in 60 seconds */ getSignedUrl: function getSignedUrl(operation, params, callback) { params = AWS.util.copy(params || {}); var expires = params.Expires || 900; if (typeof expires !== 'number') { throw AWS.util.error(new Error(), { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires }); } delete params.Expires; // we can't validate this var request = this.makeRequest(operation, params); if (callback) { AWS.util.defer(function() { request.presign(expires, callback); }); } else { return request.presign(expires, callback); } }, /** * Get a pre-signed POST policy to support uploading to S3 directly from an * HTML form. * * @param params [map] * @option params Bucket [String] The bucket to which the post should be * uploaded * @option params Expires [Integer] (3600) The number of seconds for which * the presigned policy should be valid. * @option params Conditions [Array] An array of conditions that must be met * for the presigned policy to allow the * upload. This can include required tags, * the accepted range for content lengths, * etc. * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html * @option params Fields [map] Fields to include in the form. All * values passed in as fields will be * signed as exact match conditions. * @param callback [Function] * * @note All fields passed in when creating presigned post data will be signed * as exact match conditions. Any fields that will be interpolated by S3 * must be added to the fields hash after signing, and an appropriate * condition for such fields must be explicitly added to the Conditions * array passed to this function before signing. * * @example Presiging post data with a known key * var params = { * Bucket: 'bucket', * Fields: { * key: 'key' * } * }; * s3.createPresignedPost(params, function(err, data) { * if (err) { * console.error('Presigning post data encountered an error', err); * } else { * console.log('The post data is', data); * } * }); * * @example Presigning post data with an interpolated key * var params = { * Bucket: 'bucket', * Conditions: [ * ['starts-with', '$key', 'path/to/uploads/'] * ] * }; * s3.createPresignedPost(params, function(err, data) { * if (err) { * console.error('Presigning post data encountered an error', err); * } else { * data.Fields.key = 'path/to/uploads/${filename}'; * console.log('The post data is', data); * } * }); * * @note You must ensure that you have static or previously resolved * credentials if you call this method synchronously (with no callback), * otherwise it may not properly sign the request. If you cannot guarantee * this (you are using an asynchronous credential provider, i.e., EC2 * IAM roles), you should always call this method with an asynchronous * callback. * * @return [map] If called synchronously (with no callback), returns a hash * with the url to set as the form action and a hash of fields * to include in the form. * @return [null] Nothing is returned if a callback is provided. * * @callback callback function (err, data) * @param err [Error] the error object returned from the policy signer * @param data [map] The data necessary to construct an HTML form * @param data.url [String] The URL to use as the action of the form * @param data.fields [map] A hash of fields that must be included in the * form for the upload to succeed. This hash will * include the signed POST policy, your access key * ID and security token (if present), etc. These * may be safely included as input elements of type * 'hidden.' */ createPresignedPost: function createPresignedPost(params, callback) { if (typeof params === 'function' && callback === undefined) { callback = params; params = null; } params = AWS.util.copy(params || {}); var boundParams = this.config.params || {}; var bucket = params.Bucket || boundParams.Bucket, self = this, config = this.config, endpoint = AWS.util.copy(this.endpoint); if (!config.s3BucketEndpoint) { endpoint.pathname = '/' + bucket; } function finalizePost() { return { url: AWS.util.urlFormat(endpoint), fields: self.preparePostFields( config.credentials, config.region, bucket, params.Fields, params.Conditions, params.Expires ) }; } if (callback) { config.getCredentials(function (err) { if (err) { callback(err); } callback(null, finalizePost()); }); } else { return finalizePost(); } }, /** * @api private */ preparePostFields: function preparePostFields( credentials, region, bucket, fields, conditions, expiresInSeconds ) { var now = this.getSkewCorrectedDate(); if (!credentials || !region || !bucket) { throw new Error('Unable to create a POST object policy without a bucket,' + ' region, and credentials'); } fields = AWS.util.copy(fields || {}); conditions = (conditions || []).slice(0); expiresInSeconds = expiresInSeconds || 3600; var signingDate = AWS.util.date.iso8601(now).replace(/[:\-]|\.\d{3}/g, ''); var shortDate = signingDate.substr(0, 8); var scope = v4Credentials.createScope(shortDate, region, 's3'); var credential = credentials.accessKeyId + '/' + scope; fields['bucket'] = bucket; fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'; fields['X-Amz-Credential'] = credential; fields['X-Amz-Date'] = signingDate; if (credentials.sessionToken) { fields['X-Amz-Security-Token'] = credentials.sessionToken; } for (var field in fields) { if (fields.hasOwnProperty(field)) { var condition = {}; condition[field] = fields[field]; conditions.push(condition); } } fields.Policy = this.preparePostPolicy( new Date(now.valueOf() + expiresInSeconds * 1000), conditions ); fields['X-Amz-Signature'] = AWS.util.crypto.hmac( v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true), fields.Policy, 'hex' ); return fields; }, /** * @api private */ preparePostPolicy: function preparePostPolicy(expiration, conditions) { return AWS.util.base64.encode(JSON.stringify({ expiration: AWS.util.date.iso8601(expiration), conditions: conditions })); }, /** * @api private */ prepareSignedUrl: function prepareSignedUrl(request) { request.addListener('validate', request.service.noPresignedContentLength); request.removeListener('build', request.service.addContentType); if (!request.params.Body) { // no Content-MD5/SHA-256 if body is not provided request.removeListener('build', request.service.computeContentMd5); } else { request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); } }, /** * @api private * @param request */ disableBodySigning: function disableBodySigning(request) { var headers = request.httpRequest.headers; // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) { headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; } }, /** * @api private */ noPresignedContentLength: function noPresignedContentLength(request) { if (request.params.ContentLength !== undefined) { throw AWS.util.error(new Error(), {code: 'UnexpectedParameter', message: 'ContentLength is not supported in pre-signed URLs.'}); } }, createBucket: function createBucket(params, callback) { // When creating a bucket *outside* the classic region, the location // constraint must be set for the bucket and it must match the endpoint. // This chunk of code will set the location constraint param based // on the region (when possible), but it will not override a passed-in // location constraint. if (typeof params === 'function' || !params) { callback = callback || params; params = {}; } var hostname = this.endpoint.hostname; if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) { params.CreateBucketConfiguration = { LocationConstraint: this.config.region }; } return this.makeRequest('createBucket', params, callback); }, /** * @see AWS.S3.ManagedUpload * @overload upload(params = {}, [options], [callback]) * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent * concurrent handling of parts if the payload is large enough. You can * configure the concurrent queue size by setting `options`. Note that this * is the only operation for which the SDK can retry requests with stream * bodies. * * @param (see AWS.S3.putObject) * @option (see AWS.S3.ManagedUpload.constructor) * @return [AWS.S3.ManagedUpload] the managed upload object that can call * `send()` or track progress. * @example Uploading a stream object * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; * s3.upload(params, function(err, data) { * console.log(err, data); * }); * @example Uploading a stream with concurrency of 1 and partSize of 10mb * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; * var options = {partSize: 10 * 1024 * 1024, queueSize: 1}; * s3.upload(params, options, function(err, data) { * console.log(err, data); * }); * @callback callback function(err, data) * @param err [Error] an error or null if no error occurred. * @param data [map] The response data from the successful upload: * @param data.Location [String] the URL of the uploaded object * @param data.ETag [String] the ETag of the uploaded object * @param data.Bucket [String] the bucket to which the object was uploaded * @param data.Key [String] the key to which the object was uploaded */ upload: function upload(params, options, callback) { if (typeof options === 'function' && callback === undefined) { callback = options; options = null; } options = options || {}; options = AWS.util.merge(options || {}, {service: this, params: params}); var uploader = new AWS.S3.ManagedUpload(options); if (typeof callback === 'function') uploader.send(callback); return uploader; } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/services/sts.js": /*!**************************************************!*\ !*** ./node_modules/aws-sdk/lib/services/sts.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); AWS.util.update(AWS.STS.prototype, { /** * @overload credentialsFrom(data, credentials = null) * Creates a credentials object from STS response data containing * credentials information. Useful for quickly setting AWS credentials. * * @note This is a low-level utility function. If you want to load temporary * credentials into your process for subsequent requests to AWS resources, * you should use {AWS.TemporaryCredentials} instead. * @param data [map] data retrieved from a call to {getFederatedToken}, * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}. * @param credentials [AWS.Credentials] an optional credentials object to * fill instead of creating a new object. Useful when modifying an * existing credentials object from a refresh call. * @return [AWS.TemporaryCredentials] the set of temporary credentials * loaded from a raw STS operation response. * @example Using credentialsFrom to load global AWS credentials * var sts = new AWS.STS(); * sts.getSessionToken(function (err, data) { * if (err) console.log("Error getting credentials"); * else { * AWS.config.credentials = sts.credentialsFrom(data); * } * }); * @see AWS.TemporaryCredentials */ credentialsFrom: function credentialsFrom(data, credentials) { if (!data) return null; if (!credentials) credentials = new AWS.TemporaryCredentials(); credentials.expired = false; credentials.accessKeyId = data.Credentials.AccessKeyId; credentials.secretAccessKey = data.Credentials.SecretAccessKey; credentials.sessionToken = data.Credentials.SessionToken; credentials.expireTime = data.Credentials.Expiration; return credentials; }, assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) { return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback); }, assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) { return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback); } }); /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/presign.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/presign.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * @api private */ var expiresHeader = 'presigned-expires'; /** * @api private */ function signedUrlBuilder(request) { var expires = request.httpRequest.headers[expiresHeader]; var signerClass = request.service.getSignerClass(request); delete request.httpRequest.headers['User-Agent']; delete request.httpRequest.headers['X-Amz-User-Agent']; if (signerClass === AWS.Signers.V4) { if (expires > 604800) { // one week expiry is invalid var message = 'Presigning does not support expiry time greater ' + 'than a week with SigV4 signing.'; throw AWS.util.error(new Error(), { code: 'InvalidExpiryTime', message: message, retryable: false }); } request.httpRequest.headers[expiresHeader] = expires; } else if (signerClass === AWS.Signers.S3) { var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate(); request.httpRequest.headers[expiresHeader] = parseInt( AWS.util.date.unixTimestamp(now) + expires, 10).toString(); } else { throw AWS.util.error(new Error(), { message: 'Presigning only supports S3 or SigV4 signing.', code: 'UnsupportedSigner', retryable: false }); } } /** * @api private */ function signedUrlSigner(request) { var endpoint = request.httpRequest.endpoint; var parsedUrl = AWS.util.urlParse(request.httpRequest.path); var queryParams = {}; if (parsedUrl.search) { queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); } var auth = request.httpRequest.headers['Authorization'].split(' '); if (auth[0] === 'AWS') { auth = auth[1].split(':'); queryParams['AWSAccessKeyId'] = auth[0]; queryParams['Signature'] = auth[1]; AWS.util.each(request.httpRequest.headers, function (key, value) { if (key === expiresHeader) key = 'Expires'; if (key.indexOf('x-amz-meta-') === 0) { // Delete existing, potentially not normalized key delete queryParams[key]; key = key.toLowerCase(); } queryParams[key] = value; }); delete request.httpRequest.headers[expiresHeader]; delete queryParams['Authorization']; delete queryParams['Host']; } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing auth.shift(); var rest = auth.join(' '); var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; queryParams['X-Amz-Signature'] = signature; delete queryParams['Expires']; } // build URL endpoint.pathname = parsedUrl.pathname; endpoint.search = AWS.util.queryParamsToString(queryParams); } /** * @api private */ AWS.Signers.Presign = inherit({ /** * @api private */ sign: function sign(request, expireTime, callback) { request.httpRequest.headers[expiresHeader] = expireTime || 3600; request.on('build', signedUrlBuilder); request.on('sign', signedUrlSigner); request.removeListener('afterBuild', AWS.EventListeners.Core.SET_CONTENT_LENGTH); request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); request.emit('beforePresign', [request]); if (callback) { request.build(function() { if (this.response.error) callback(this.response.error); else { callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); } }); } else { request.build(); if (request.response.error) throw request.response.error; return AWS.util.urlFormat(request.httpRequest.endpoint); } } }); /** * @api private */ module.exports = AWS.Signers.Presign; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/request_signer.js": /*!************************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/request_signer.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * @api private */ AWS.Signers.RequestSigner = inherit({ constructor: function RequestSigner(request) { this.request = request; }, setServiceClientId: function setServiceClientId(id) { this.serviceClientId = id; }, getServiceClientId: function getServiceClientId() { return this.serviceClientId; } }); AWS.Signers.RequestSigner.getVersion = function getVersion(version) { switch (version) { case 'v2': return AWS.Signers.V2; case 'v3': return AWS.Signers.V3; case 's3v4': return AWS.Signers.V4; case 'v4': return AWS.Signers.V4; case 's3': return AWS.Signers.S3; case 'v3https': return AWS.Signers.V3Https; } throw new Error('Unknown signing version ' + version); }; __webpack_require__(/*! ./v2 */ "./node_modules/aws-sdk/lib/signers/v2.js"); __webpack_require__(/*! ./v3 */ "./node_modules/aws-sdk/lib/signers/v3.js"); __webpack_require__(/*! ./v3https */ "./node_modules/aws-sdk/lib/signers/v3https.js"); __webpack_require__(/*! ./v4 */ "./node_modules/aws-sdk/lib/signers/v4.js"); __webpack_require__(/*! ./s3 */ "./node_modules/aws-sdk/lib/signers/s3.js"); __webpack_require__(/*! ./presign */ "./node_modules/aws-sdk/lib/signers/presign.js"); /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/s3.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/s3.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * @api private */ AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { /** * When building the stringToSign, these sub resource params should be * part of the canonical resource string with their NON-decoded values */ subResources: { 'acl': 1, 'accelerate': 1, 'analytics': 1, 'cors': 1, 'lifecycle': 1, 'delete': 1, 'inventory': 1, 'location': 1, 'logging': 1, 'metrics': 1, 'notification': 1, 'partNumber': 1, 'policy': 1, 'requestPayment': 1, 'replication': 1, 'restore': 1, 'tagging': 1, 'torrent': 1, 'uploadId': 1, 'uploads': 1, 'versionId': 1, 'versioning': 1, 'versions': 1, 'website': 1 }, // when building the stringToSign, these querystring params should be // part of the canonical resource string with their NON-encoded values responseHeaders: { 'response-content-type': 1, 'response-content-language': 1, 'response-expires': 1, 'response-cache-control': 1, 'response-content-disposition': 1, 'response-content-encoding': 1 }, addAuthorization: function addAuthorization(credentials, date) { if (!this.request.headers['presigned-expires']) { this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); } if (credentials.sessionToken) { // presigned URLs require this header to be lowercased this.request.headers['x-amz-security-token'] = credentials.sessionToken; } var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; this.request.headers['Authorization'] = auth; }, stringToSign: function stringToSign() { var r = this.request; var parts = []; parts.push(r.method); parts.push(r.headers['Content-MD5'] || ''); parts.push(r.headers['Content-Type'] || ''); // This is the "Date" header, but we use X-Amz-Date. // The S3 signing mechanism requires us to pass an empty // string for this Date header regardless. parts.push(r.headers['presigned-expires'] || ''); var headers = this.canonicalizedAmzHeaders(); if (headers) parts.push(headers); parts.push(this.canonicalizedResource()); return parts.join('\n'); }, canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { var amzHeaders = []; AWS.util.each(this.request.headers, function (name) { if (name.match(/^x-amz-/i)) amzHeaders.push(name); }); amzHeaders.sort(function (a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1; }); var parts = []; AWS.util.arrayEach.call(this, amzHeaders, function (name) { parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); }); return parts.join('\n'); }, canonicalizedResource: function canonicalizedResource() { var r = this.request; var parts = r.path.split('?'); var path = parts[0]; var querystring = parts[1]; var resource = ''; if (r.virtualHostedBucket) resource += '/' + r.virtualHostedBucket; resource += path; if (querystring) { // collect a list of sub resources and query params that need to be signed var resources = []; AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { var name = param.split('=')[0]; var value = param.split('=')[1]; if (this.subResources[name] || this.responseHeaders[name]) { var subresource = { name: name }; if (value !== undefined) { if (this.subResources[name]) { subresource.value = value; } else { subresource.value = decodeURIComponent(value); } } resources.push(subresource); } }); resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); if (resources.length) { querystring = []; AWS.util.arrayEach(resources, function (res) { if (res.value === undefined) { querystring.push(res.name); } else { querystring.push(res.name + '=' + res.value); } }); resource += '?' + querystring.join('&'); } } return resource; }, sign: function sign(secret, string) { return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); } }); /** * @api private */ module.exports = AWS.Signers.S3; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/v2.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/v2.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * @api private */ AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { addAuthorization: function addAuthorization(credentials, date) { if (!date) date = AWS.util.date.getDate(); var r = this.request; r.params.Timestamp = AWS.util.date.iso8601(date); r.params.SignatureVersion = '2'; r.params.SignatureMethod = 'HmacSHA256'; r.params.AWSAccessKeyId = credentials.accessKeyId; if (credentials.sessionToken) { r.params.SecurityToken = credentials.sessionToken; } delete r.params.Signature; // delete old Signature for re-signing r.params.Signature = this.signature(credentials); r.body = AWS.util.queryParamsToString(r.params); r.headers['Content-Length'] = r.body.length; }, signature: function signature(credentials) { return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); }, stringToSign: function stringToSign() { var parts = []; parts.push(this.request.method); parts.push(this.request.endpoint.host.toLowerCase()); parts.push(this.request.pathname()); parts.push(AWS.util.queryParamsToString(this.request.params)); return parts.join('\n'); } }); /** * @api private */ module.exports = AWS.Signers.V2; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/v3.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/v3.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; /** * @api private */ AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { addAuthorization: function addAuthorization(credentials, date) { var datetime = AWS.util.date.rfc822(date); this.request.headers['X-Amz-Date'] = datetime; if (credentials.sessionToken) { this.request.headers['x-amz-security-token'] = credentials.sessionToken; } this.request.headers['X-Amzn-Authorization'] = this.authorization(credentials, datetime); }, authorization: function authorization(credentials) { return 'AWS3 ' + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 'Algorithm=HmacSHA256,' + 'SignedHeaders=' + this.signedHeaders() + ',' + 'Signature=' + this.signature(credentials); }, signedHeaders: function signedHeaders() { var headers = []; AWS.util.arrayEach(this.headersToSign(), function iterator(h) { headers.push(h.toLowerCase()); }); return headers.sort().join(';'); }, canonicalHeaders: function canonicalHeaders() { var headers = this.request.headers; var parts = []; AWS.util.arrayEach(this.headersToSign(), function iterator(h) { parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); }); return parts.sort().join('\n') + '\n'; }, headersToSign: function headersToSign() { var headers = []; AWS.util.each(this.request.headers, function iterator(k) { if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { headers.push(k); } }); return headers; }, signature: function signature(credentials) { return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); }, stringToSign: function stringToSign() { var parts = []; parts.push(this.request.method); parts.push('/'); parts.push(''); parts.push(this.canonicalHeaders()); parts.push(this.request.body); return AWS.util.crypto.sha256(parts.join('\n')); } }); /** * @api private */ module.exports = AWS.Signers.V3; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/v3https.js": /*!*****************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/v3https.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var inherit = AWS.util.inherit; __webpack_require__(/*! ./v3 */ "./node_modules/aws-sdk/lib/signers/v3.js"); /** * @api private */ AWS.Signers.V3Https = inherit(AWS.Signers.V3, { authorization: function authorization(credentials) { return 'AWS3-HTTPS ' + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 'Algorithm=HmacSHA256,' + 'Signature=' + this.signature(credentials); }, stringToSign: function stringToSign() { return this.request.headers['X-Amz-Date']; } }); /** * @api private */ module.exports = AWS.Signers.V3Https; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/v4.js": /*!************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/v4.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); var v4Credentials = __webpack_require__(/*! ./v4_credentials */ "./node_modules/aws-sdk/lib/signers/v4_credentials.js"); var inherit = AWS.util.inherit; /** * @api private */ var expiresHeader = 'presigned-expires'; /** * @api private */ AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { constructor: function V4(request, serviceName, options) { AWS.Signers.RequestSigner.call(this, request); this.serviceName = serviceName; options = options || {}; this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true; this.operation = options.operation; this.signatureVersion = options.signatureVersion; }, algorithm: 'AWS4-HMAC-SHA256', addAuthorization: function addAuthorization(credentials, date) { var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); if (this.isPresigned()) { this.updateForPresigned(credentials, datetime); } else { this.addHeaders(credentials, datetime); } this.request.headers['Authorization'] = this.authorization(credentials, datetime); }, addHeaders: function addHeaders(credentials, datetime) { this.request.headers['X-Amz-Date'] = datetime; if (credentials.sessionToken) { this.request.headers['x-amz-security-token'] = credentials.sessionToken; } }, updateForPresigned: function updateForPresigned(credentials, datetime) { var credString = this.credentialString(datetime); var qs = { 'X-Amz-Date': datetime, 'X-Amz-Algorithm': this.algorithm, 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, 'X-Amz-Expires': this.request.headers[expiresHeader], 'X-Amz-SignedHeaders': this.signedHeaders() }; if (credentials.sessionToken) { qs['X-Amz-Security-Token'] = credentials.sessionToken; } if (this.request.headers['Content-Type']) { qs['Content-Type'] = this.request.headers['Content-Type']; } if (this.request.headers['Content-MD5']) { qs['Content-MD5'] = this.request.headers['Content-MD5']; } if (this.request.headers['Cache-Control']) { qs['Cache-Control'] = this.request.headers['Cache-Control']; } // need to pull in any other X-Amz-* headers AWS.util.each.call(this, this.request.headers, function(key, value) { if (key === expiresHeader) return; if (this.isSignableHeader(key)) { var lowerKey = key.toLowerCase(); // Metadata should be normalized if (lowerKey.indexOf('x-amz-meta-') === 0) { qs[lowerKey] = value; } else if (lowerKey.indexOf('x-amz-') === 0) { qs[key] = value; } } }); var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; this.request.path += sep + AWS.util.queryParamsToString(qs); }, authorization: function authorization(credentials, datetime) { var parts = []; var credString = this.credentialString(datetime); parts.push(this.algorithm + ' Credential=' + credentials.accessKeyId + '/' + credString); parts.push('SignedHeaders=' + this.signedHeaders()); parts.push('Signature=' + this.signature(credentials, datetime)); return parts.join(', '); }, signature: function signature(credentials, datetime) { var signingKey = v4Credentials.getSigningKey( credentials, datetime.substr(0, 8), this.request.region, this.serviceName, this.signatureCache ); return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex'); }, stringToSign: function stringToSign(datetime) { var parts = []; parts.push('AWS4-HMAC-SHA256'); parts.push(datetime); parts.push(this.credentialString(datetime)); parts.push(this.hexEncodedHash(this.canonicalString())); return parts.join('\n'); }, canonicalString: function canonicalString() { var parts = [], pathname = this.request.pathname(); if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname); parts.push(this.request.method); parts.push(pathname); parts.push(this.request.search()); parts.push(this.canonicalHeaders() + '\n'); parts.push(this.signedHeaders()); parts.push(this.hexEncodedBodyHash()); return parts.join('\n'); }, canonicalHeaders: function canonicalHeaders() { var headers = []; AWS.util.each.call(this, this.request.headers, function (key, item) { headers.push([key, item]); }); headers.sort(function (a, b) { return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; }); var parts = []; AWS.util.arrayEach.call(this, headers, function (item) { var key = item[0].toLowerCase(); if (this.isSignableHeader(key)) { var value = item[1]; if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') { throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), { code: 'InvalidHeader' }); } parts.push(key + ':' + this.canonicalHeaderValues(value.toString())); } }); return parts.join('\n'); }, canonicalHeaderValues: function canonicalHeaderValues(values) { return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); }, signedHeaders: function signedHeaders() { var keys = []; AWS.util.each.call(this, this.request.headers, function (key) { key = key.toLowerCase(); if (this.isSignableHeader(key)) keys.push(key); }); return keys.sort().join(';'); }, credentialString: function credentialString(datetime) { return v4Credentials.createScope( datetime.substr(0, 8), this.request.region, this.serviceName ); }, hexEncodedHash: function hash(string) { return AWS.util.crypto.sha256(string, 'hex'); }, hexEncodedBodyHash: function hexEncodedBodyHash() { var request = this.request; if (this.isPresigned() && this.serviceName === 's3' && !request.body) { return 'UNSIGNED-PAYLOAD'; } else if (request.headers['X-Amz-Content-Sha256']) { return request.headers['X-Amz-Content-Sha256']; } else { return this.hexEncodedHash(this.request.body || ''); } }, unsignableHeaders: [ 'authorization', 'content-type', 'content-length', 'user-agent', expiresHeader, 'expect', 'x-amzn-trace-id' ], isSignableHeader: function isSignableHeader(key) { if (key.toLowerCase().indexOf('x-amz-') === 0) return true; return this.unsignableHeaders.indexOf(key) < 0; }, isPresigned: function isPresigned() { return this.request.headers[expiresHeader] ? true : false; } }); /** * @api private */ module.exports = AWS.Signers.V4; /***/ }), /***/ "./node_modules/aws-sdk/lib/signers/v4_credentials.js": /*!************************************************************!*\ !*** ./node_modules/aws-sdk/lib/signers/v4_credentials.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AWS = __webpack_require__(/*! ../core */ "./node_modules/aws-sdk/lib/core.js"); /** * @api private */ var cachedSecret = {}; /** * @api private */ var cacheQueue = []; /** * @api private */ var maxCacheEntries = 50; /** * @api private */ var v4Identifier = 'aws4_request'; /** * @api private */ module.exports = { /** * @api private * * @param date [String] * @param region [String] * @param serviceName [String] * @return [String] */ createScope: function createScope(date, region, serviceName) { return [ date.substr(0, 8), region, serviceName, v4Identifier ].join('/'); }, /** * @api private * * @param credentials [Credentials] * @param date [String] * @param region [String] * @param service [String] * @param shouldCache [Boolean] * @return [String] */ getSigningKey: function getSigningKey( credentials, date, region, service, shouldCache ) { var credsIdentifier = AWS.util.crypto .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); var cacheKey = [credsIdentifier, date, region, service].join('_'); shouldCache = shouldCache !== false; if (shouldCache && (cacheKey in cachedSecret)) { return cachedSecret[cacheKey]; } var kDate = AWS.util.crypto.hmac( 'AWS4' + credentials.secretAccessKey, date, 'buffer' ); var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); if (shouldCache) { cachedSecret[cacheKey] = signingKey; cacheQueue.push(cacheKey); if (cacheQueue.length > maxCacheEntries) { // remove the oldest entry (not the least recently used) delete cachedSecret[cacheQueue.shift()]; } } return signingKey; }, /** * @api private * * Empties the derived signing key cache. Made available for testing purposes * only. */ emptyCache: function emptyCache() { cachedSecret = {}; cacheQueue = []; } }; /***/ }), /***/ "./node_modules/aws-sdk/lib/state_machine.js": /*!***************************************************!*\ !*** ./node_modules/aws-sdk/lib/state_machine.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { function AcceptorStateMachine(states, state) { this.currentState = state || null; this.states = states || {}; } AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { if (typeof finalState === 'function') { inputError = bindObject; bindObject = done; done = finalState; finalState = null; } var self = this; var state = self.states[self.currentState]; state.fn.call(bindObject || self, inputError, function(err) { if (err) { if (state.fail) self.currentState = state.fail; else return done ? done.call(bindObject, err) : null; } else { if (state.accept) self.currentState = state.accept; else return done ? done.call(bindObject) : null; } if (self.currentState === finalState) { return done ? done.call(bindObject, err) : null; } self.runTo(finalState, done, bindObject, err); }); }; AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { if (typeof acceptState === 'function') { fn = acceptState; acceptState = null; failState = null; } else if (typeof failState === 'function') { fn = failState; failState = null; } if (!this.currentState) this.currentState = name; this.states[name] = { accept: acceptState, fail: failState, fn: fn }; return this; }; /** * @api private */ module.exports = AcceptorStateMachine; /***/ }), /***/ "./node_modules/aws-sdk/lib/util.js": /*!******************************************!*\ !*** ./node_modules/aws-sdk/lib/util.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ var AWS; /** * A set of utility methods for use with the AWS SDK. * * @!attribute abort * Return this value from an iterator function {each} or {arrayEach} * to break out of the iteration. * @example Breaking out of an iterator function * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { * if (key == 'b') return AWS.util.abort; * }); * @see each * @see arrayEach * @api private */ var util = { environment: 'nodejs', engine: function engine() { if (util.isBrowser() && typeof navigator !== 'undefined') { return navigator.userAgent; } else { var engine = process.platform + '/' + process.version; if (Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).AWS_EXECUTION_ENV) { engine += ' exec-env/' + Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).AWS_EXECUTION_ENV; } return engine; } }, userAgent: function userAgent() { var name = util.environment; var agent = 'aws-sdk-' + name + '/' + __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js").VERSION; if (name === 'nodejs') agent += ' ' + util.engine(); return agent; }, uriEscape: function uriEscape(string) { var output = encodeURIComponent(string); output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); // AWS percent-encodes some extra non-standard characters in a URI output = output.replace(/[*]/g, function(ch) { return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); }); return output; }, uriEscapePath: function uriEscapePath(string) { var parts = []; util.arrayEach(string.split('/'), function (part) { parts.push(util.uriEscape(part)); }); return parts.join('/'); }, urlParse: function urlParse(url) { return util.url.parse(url); }, urlFormat: function urlFormat(url) { return util.url.format(url); }, queryStringParse: function queryStringParse(qs) { return util.querystring.parse(qs); }, queryParamsToString: function queryParamsToString(params) { var items = []; var escape = util.uriEscape; var sortedKeys = Object.keys(params).sort(); util.arrayEach(sortedKeys, function(name) { var value = params[name]; var ename = escape(name); var result = ename + '='; if (Array.isArray(value)) { var vals = []; util.arrayEach(value, function(item) { vals.push(escape(item)); }); result = ename + '=' + vals.sort().join('&' + ename + '='); } else if (value !== undefined && value !== null) { result = ename + '=' + escape(value); } items.push(result); }); return items.join('&'); }, readFileSync: function readFileSync(path) { if (util.isBrowser()) return null; return __webpack_require__(/*! fs */ 0).readFileSync(path, 'utf-8'); }, base64: { encode: function encode64(string) { if (typeof string === 'number') { throw util.error(new Error('Cannot base64 encode number ' + string)); } if (string === null || typeof string === 'undefined') { return string; } var buf = util.buffer.toBuffer(string); return buf.toString('base64'); }, decode: function decode64(string) { if (typeof string === 'number') { throw util.error(new Error('Cannot base64 decode number ' + string)); } if (string === null || typeof string === 'undefined') { return string; } return util.buffer.toBuffer(string, 'base64'); } }, buffer: { /** * Buffer constructor for Node buffer and buffer pollyfill */ toBuffer: function(data, encoding) { return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(data, encoding) : new util.Buffer(data, encoding); }, alloc: function(size, fill, encoding) { if (typeof size !== 'number') { throw new Error('size passed to alloc must be a number.'); } if (typeof util.Buffer.alloc === 'function') { return util.Buffer.alloc(size, fill, encoding); } else { var buf = new util.Buffer(size); if (fill !== undefined && typeof buf.fill === 'function') { buf.fill(fill, undefined, undefined, encoding); } return buf; } }, toStream: function toStream(buffer) { if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer); var readable = new (util.stream.Readable)(); var pos = 0; readable._read = function(size) { if (pos >= buffer.length) return readable.push(null); var end = pos + size; if (end > buffer.length) end = buffer.length; readable.push(buffer.slice(pos, end)); pos = end; }; return readable; }, /** * Concatenates a list of Buffer objects. */ concat: function(buffers) { var length = 0, offset = 0, buffer = null, i; for (i = 0; i < buffers.length; i++) { length += buffers[i].length; } buffer = util.buffer.alloc(length); for (i = 0; i < buffers.length; i++) { buffers[i].copy(buffer, offset); offset += buffers[i].length; } return buffer; } }, string: { byteLength: function byteLength(string) { if (string === null || string === undefined) return 0; if (typeof string === 'string') string = util.buffer.toBuffer(string); if (typeof string.byteLength === 'number') { return string.byteLength; } else if (typeof string.length === 'number') { return string.length; } else if (typeof string.size === 'number') { return string.size; } else if (typeof string.path === 'string') { return __webpack_require__(/*! fs */ 0).lstatSync(string.path).size; } else { throw util.error(new Error('Cannot determine length of ' + string), { object: string }); } }, upperFirst: function upperFirst(string) { return string[0].toUpperCase() + string.substr(1); }, lowerFirst: function lowerFirst(string) { return string[0].toLowerCase() + string.substr(1); } }, ini: { parse: function string(ini) { var currentSection, map = {}; util.arrayEach(ini.split(/\r?\n/), function(line) { line = line.split(/(^|\s)[;#]/)[0]; // remove comments var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); if (section) { currentSection = section[1]; } else if (currentSection) { var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); if (item) { map[currentSection] = map[currentSection] || {}; map[currentSection][item[1]] = item[2]; } } }); return map; } }, fn: { noop: function() {}, callback: function (err) { if (err) throw err; }, /** * Turn a synchronous function into as "async" function by making it call * a callback. The underlying function is called with all but the last argument, * which is treated as the callback. The callback is passed passed a first argument * of null on success to mimick standard node callbacks. */ makeAsync: function makeAsync(fn, expectedArgs) { if (expectedArgs && expectedArgs <= fn.length) { return fn; } return function() { var args = Array.prototype.slice.call(arguments, 0); var callback = args.pop(); var result = fn.apply(null, args); callback(result); }; } }, /** * Date and time utility functions. */ date: { /** * @return [Date] the current JavaScript date object. Since all * AWS services rely on this date object, you can override * this function to provide a special time value to AWS service * requests. */ getDate: function getDate() { if (!AWS) AWS = __webpack_require__(/*! ./core */ "./node_modules/aws-sdk/lib/core.js"); if (AWS.config.systemClockOffset) { // use offset when non-zero return new Date(new Date().getTime() + AWS.config.systemClockOffset); } else { return new Date(); } }, /** * @return [String] the date in ISO-8601 format */ iso8601: function iso8601(date) { if (date === undefined) { date = util.date.getDate(); } return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); }, /** * @return [String] the date in RFC 822 format */ rfc822: function rfc822(date) { if (date === undefined) { date = util.date.getDate(); } return date.toUTCString(); }, /** * @return [Integer] the UNIX timestamp value for the current time */ unixTimestamp: function unixTimestamp(date) { if (date === undefined) { date = util.date.getDate(); } return date.getTime() / 1000; }, /** * @param [String,number,Date] date * @return [Date] */ from: function format(date) { if (typeof date === 'number') { return new Date(date * 1000); // unix timestamp } else { return new Date(date); } }, /** * Given a Date or date-like value, this function formats the * date into a string of the requested value. * @param [String,number,Date] date * @param [String] formatter Valid formats are: # * 'iso8601' # * 'rfc822' # * 'unixTimestamp' * @return [String] */ format: function format(date, formatter) { if (!formatter) formatter = 'iso8601'; return util.date[formatter](util.date.from(date)); }, parseTimestamp: function parseTimestamp(value) { if (typeof value === 'number') { // unix timestamp (number) return new Date(value * 1000); } else if (value.match(/^\d+$/)) { // unix timestamp return new Date(value * 1000); } else if (value.match(/^\d{4}/)) { // iso8601 return new Date(value); } else if (value.match(/^\w{3},/)) { // rfc822 return new Date(value); } else { throw util.error( new Error('unhandled timestamp format: ' + value), {code: 'TimestampParserError'}); } } }, crypto: { crc32Table: [ 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D], crc32: function crc32(data) { var tbl = util.crypto.crc32Table; var crc = 0 ^ -1; if (typeof data === 'string') { data = util.buffer.toBuffer(data); } for (var i = 0; i < data.length; i++) { var code = data.readUInt8(i); crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; } return (crc ^ -1) >>> 0; }, hmac: function hmac(key, string, digest, fn) { if (!digest) digest = 'binary'; if (digest === 'buffer') { digest = undefined; } if (!fn) fn = 'sha256'; if (typeof string === 'string') string = util.buffer.toBuffer(string); return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); }, md5: function md5(data, digest, callback) { return util.crypto.hash('md5', data, digest, callback); }, sha256: function sha256(data, digest, callback) { return util.crypto.hash('sha256', data, digest, callback); }, hash: function(algorithm, data, digest, callback) { var hash = util.crypto.createHash(algorithm); if (!digest) { digest = 'binary'; } if (digest === 'buffer') { digest = undefined; } if (typeof data === 'string') data = util.buffer.toBuffer(data); var sliceFn = util.arraySliceFn(data); var isBuffer = util.Buffer.isBuffer(data); //Identifying objects with an ArrayBuffer as buffers if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; if (callback && typeof data === 'object' && typeof data.on === 'function' && !isBuffer) { data.on('data', function(chunk) { hash.update(chunk); }); data.on('error', function(err) { callback(err); }); data.on('end', function() { callback(null, hash.digest(digest)); }); } else if (callback && sliceFn && !isBuffer && typeof FileReader !== 'undefined') { // this might be a File/Blob var index = 0, size = 1024 * 512; var reader = new FileReader(); reader.onerror = function() { callback(new Error('Failed to read data.')); }; reader.onload = function() { var buf = new util.Buffer(new Uint8Array(reader.result)); hash.update(buf); index += buf.length; reader._continueReading(); }; reader._continueReading = function() { if (index >= data.size) { callback(null, hash.digest(digest)); return; } var back = index + size; if (back > data.size) back = data.size; reader.readAsArrayBuffer(sliceFn.call(data, index, back)); }; reader._continueReading(); } else { if (util.isBrowser() && typeof data === 'object' && !isBuffer) { data = new util.Buffer(new Uint8Array(data)); } var out = hash.update(data).digest(digest); if (callback) callback(null, out); return out; } }, toHex: function toHex(data) { var out = []; for (var i = 0; i < data.length; i++) { out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); } return out.join(''); }, createHash: function createHash(algorithm) { return util.crypto.lib.createHash(algorithm); } }, /** @!ignore */ /* Abort constant */ abort: {}, each: function each(object, iterFunction) { for (var key in object) { if (Object.prototype.hasOwnProperty.call(object, key)) { var ret = iterFunction.call(this, key, object[key]); if (ret === util.abort) break; } } }, arrayEach: function arrayEach(array, iterFunction) { for (var idx in array) { if (Object.prototype.hasOwnProperty.call(array, idx)) { var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); if (ret === util.abort) break; } } }, update: function update(obj1, obj2) { util.each(obj2, function iterator(key, item) { obj1[key] = item; }); return obj1; }, merge: function merge(obj1, obj2) { return util.update(util.copy(obj1), obj2); }, copy: function copy(object) { if (object === null || object === undefined) return object; var dupe = {}; // jshint forin:false for (var key in object) { dupe[key] = object[key]; } return dupe; }, isEmpty: function isEmpty(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { return false; } } return true; }, arraySliceFn: function arraySliceFn(obj) { var fn = obj.slice || obj.webkitSlice || obj.mozSlice; return typeof fn === 'function' ? fn : null; }, isType: function isType(obj, type) { // handle cross-"frame" objects if (typeof type === 'function') type = util.typeName(type); return Object.prototype.toString.call(obj) === '[object ' + type + ']'; }, typeName: function typeName(type) { if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; var str = type.toString(); var match = str.match(/^\s*function (.+)\(/); return match ? match[1] : str; }, error: function error(err, options) { var originalError = null; if (typeof err.message === 'string' && err.message !== '') { if (typeof options === 'string' || (options && options.message)) { originalError = util.copy(err); originalError.message = err.message; } } err.message = err.message || null; if (typeof options === 'string') { err.message = options; } else if (typeof options === 'object' && options !== null) { util.update(err, options); if (options.message) err.message = options.message; if (options.code || options.name) err.code = options.code || options.name; if (options.stack) err.stack = options.stack; } if (typeof Object.defineProperty === 'function') { Object.defineProperty(err, 'name', {writable: true, enumerable: false}); Object.defineProperty(err, 'message', {enumerable: true}); } err.name = options && options.name || err.name || err.code || 'Error'; err.time = new Date(); if (originalError) err.originalError = originalError; return err; }, /** * @api private */ inherit: function inherit(klass, features) { var newObject = null; if (features === undefined) { features = klass; klass = Object; newObject = {}; } else { var ctor = function ConstructorWrapper() {}; ctor.prototype = klass.prototype; newObject = new ctor(); } // constructor not supplied, create pass-through ctor if (features.constructor === Object) { features.constructor = function() { if (klass !== Object) { return klass.apply(this, arguments); } }; } features.constructor.prototype = newObject; util.update(features.constructor.prototype, features); features.constructor.__super__ = klass; return features.constructor; }, /** * @api private */ mixin: function mixin() { var klass = arguments[0]; for (var i = 1; i < arguments.length; i++) { // jshint forin:false for (var prop in arguments[i].prototype) { var fn = arguments[i].prototype[prop]; if (prop !== 'constructor') { klass.prototype[prop] = fn; } } } return klass; }, /** * @api private */ hideProperties: function hideProperties(obj, props) { if (typeof Object.defineProperty !== 'function') return; util.arrayEach(props, function (key) { Object.defineProperty(obj, key, { enumerable: false, writable: true, configurable: true }); }); }, /** * @api private */ property: function property(obj, name, value, enumerable, isValue) { var opts = { configurable: true, enumerable: enumerable !== undefined ? enumerable : true }; if (typeof value === 'function' && !isValue) { opts.get = value; } else { opts.value = value; opts.writable = true; } Object.defineProperty(obj, name, opts); }, /** * @api private */ memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { var cachedValue = null; // build enumerable attribute for each value with lazy accessor. util.property(obj, name, function() { if (cachedValue === null) { cachedValue = get(); } return cachedValue; }, enumerable); }, /** * TODO Remove in major version revision * This backfill populates response data without the * top-level payload name. * * @api private */ hoistPayloadMember: function hoistPayloadMember(resp) { var req = resp.request; var operationName = req.operation; var operation = req.service.api.operations[operationName]; var output = operation.output; if (output.payload && !operation.hasEventOutput) { var payloadMember = output.members[output.payload]; var responsePayload = resp.data[output.payload]; if (payloadMember.type === 'structure') { util.each(responsePayload, function(key, value) { util.property(resp.data, key, value, false); }); } } }, /** * Compute SHA-256 checksums of streams * * @api private */ computeSha256: function computeSha256(body, done) { if (util.isNode()) { var Stream = util.stream.Stream; var fs = __webpack_require__(/*! fs */ 0); if (typeof Stream === 'function' && body instanceof Stream) { if (typeof body.path === 'string') { // assume file object var settings = {}; if (typeof body.start === 'number') { settings.start = body.start; } if (typeof body.end === 'number') { settings.end = body.end; } body = fs.createReadStream(body.path, settings); } else { // TODO support other stream types return done(new Error('Non-file stream objects are ' + 'not supported with SigV4')); } } } util.crypto.sha256(body, 'hex', function(err, sha) { if (err) done(err); else done(null, sha); }); }, /** * @api private */ isClockSkewed: function isClockSkewed(serverTime) { if (serverTime) { util.property(AWS.config, 'isClockSkewed', Math.abs(new Date().getTime() - serverTime) >= 300000, false); return AWS.config.isClockSkewed; } }, applyClockOffset: function applyClockOffset(serverTime) { if (serverTime) AWS.config.systemClockOffset = serverTime - new Date().getTime(); }, /** * @api private */ extractRequestId: function extractRequestId(resp) { var requestId = resp.httpResponse.headers['x-amz-request-id'] || resp.httpResponse.headers['x-amzn-requestid']; if (!requestId && resp.data && resp.data.ResponseMetadata) { requestId = resp.data.ResponseMetadata.RequestId; } if (requestId) { resp.requestId = requestId; } if (resp.error) { resp.error.requestId = requestId; } }, /** * @api private */ addPromises: function addPromises(constructors, PromiseDependency) { var deletePromises = false; if (PromiseDependency === undefined && AWS && AWS.config) { PromiseDependency = AWS.config.getPromisesDependency(); } if (PromiseDependency === undefined && typeof Promise !== 'undefined') { PromiseDependency = Promise; } if (typeof PromiseDependency !== 'function') deletePromises = true; if (!Array.isArray(constructors)) constructors = [constructors]; for (var ind = 0; ind < constructors.length; ind++) { var constructor = constructors[ind]; if (deletePromises) { if (constructor.deletePromisesFromClass) { constructor.deletePromisesFromClass(); } } else if (constructor.addPromisesToClass) { constructor.addPromisesToClass(PromiseDependency); } } }, /** * @api private */ promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { return function promise() { var self = this; return new PromiseDependency(function(resolve, reject) { self[methodName](function(err, data) { if (err) { reject(err); } else { resolve(data); } }); }); }; }, /** * @api private */ isDualstackAvailable: function isDualstackAvailable(service) { if (!service) return false; var metadata = __webpack_require__(/*! ../apis/metadata.json */ "./node_modules/aws-sdk/apis/metadata.json"); if (typeof service !== 'string') service = service.serviceIdentifier; if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; return !!metadata[service].dualstackAvailable; }, /** * @api private */ calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions) { if (!retryDelayOptions) retryDelayOptions = {}; var customBackoff = retryDelayOptions.customBackoff || null; if (typeof customBackoff === 'function') { return customBackoff(retryCount); } var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; var delay = Math.random() * (Math.pow(2, retryCount) * base); return delay; }, /** * @api private */ handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { if (!options) options = {}; var http = AWS.HttpClient.getInstance(); var httpOptions = options.httpOptions || {}; var retryCount = 0; var errCallback = function(err) { var maxRetries = options.maxRetries || 0; if (err && err.code === 'TimeoutError') err.retryable = true; if (err && err.retryable && retryCount < maxRetries) { retryCount++; var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions); setTimeout(sendRequest, delay + (err.retryAfter || 0)); } else { cb(err); } }; var sendRequest = function() { var data = ''; http.handleRequest(httpRequest, httpOptions, function(httpResponse) { httpResponse.on('data', function(chunk) { data += chunk.toString(); }); httpResponse.on('end', function() { var statusCode = httpResponse.statusCode; if (statusCode < 300) { cb(null, data); } else { var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; var err = util.error(new Error(), { retryable: statusCode >= 500 || statusCode === 429 } ); if (retryAfter && err.retryable) err.retryAfter = retryAfter; errCallback(err); } }); }, errCallback); }; AWS.util.defer(sendRequest); }, /** * @api private */ uuid: { v4: function uuidV4() { return __webpack_require__(/*! uuid */ "./node_modules/aws-sdk/node_modules/uuid/index.js").v4(); } }, /** * @api private */ convertPayloadToString: function convertPayloadToString(resp) { var req = resp.request; var operation = req.operation; var rules = req.service.api.operations[operation].output || {}; if (rules.payload && resp.data[rules.payload]) { resp.data[rules.payload] = resp.data[rules.payload].toString(); } }, /** * @api private */ defer: function defer(callback) { if (typeof process === 'object' && typeof process.nextTick === 'function') { process.nextTick(callback); } else if (typeof setImmediate === 'function') { setImmediate(callback); } else { setTimeout(callback, 0); } }, /** * @api private */ getRequestPayloadShape: function getRequestPayloadShape(req) { var operations = req.service.api.operations; if (!operations) return undefined; var operation = (operations || {})[req.operation]; if (!operation || !operation.input || !operation.input.payload) return undefined; return operation.input.members[operation.input.payload]; }, getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) { var profiles = {}; var profilesFromConfig = {}; if (Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[util.configOptInEnv]) { var profilesFromConfig = iniLoader.loadFrom({ isConfig: true, filename: Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[util.sharedConfigFileEnv] }); } var profilesFromCreds = iniLoader.loadFrom({ filename: filename || (Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[util.configOptInEnv] && Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})[util.sharedCredentialsFileEnv]) }); for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) { profiles[profileNames[i]] = profilesFromConfig[profileNames[i]]; } for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) { profiles[profileNames[i]] = profilesFromCreds[profileNames[i]]; } return profiles; }, /** * @api private */ defaultProfile: 'default', /** * @api private */ configOptInEnv: 'AWS_SDK_LOAD_CONFIG', /** * @api private */ sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', /** * @api private */ sharedConfigFileEnv: 'AWS_CONFIG_FILE', /** * @api private */ imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED' }; /** * @api private */ module.exports = util; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate)) /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/browser_parser.js": /*!********************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/browser_parser.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var Shape = __webpack_require__(/*! ../model/shape */ "./node_modules/aws-sdk/lib/model/shape.js"); function DomXmlParser() { } DomXmlParser.prototype.parse = function(xml, shape) { if (xml.replace(/^\s+/, '') === '') return {}; var result, error; try { if (window.DOMParser) { try { var parser = new DOMParser(); result = parser.parseFromString(xml, 'text/xml'); } catch (syntaxError) { throw util.error(new Error('Parse error in document'), { originalError: syntaxError, code: 'XMLParserError', retryable: true }); } if (result.documentElement === null) { throw util.error(new Error('Cannot parse empty document.'), { code: 'XMLParserError', retryable: true }); } var isError = result.getElementsByTagName('parsererror')[0]; if (isError && (isError.parentNode === result || isError.parentNode.nodeName === 'body' || isError.parentNode.parentNode === result || isError.parentNode.parentNode.nodeName === 'body')) { var errorElement = isError.getElementsByTagName('div')[0] || isError; throw util.error(new Error(errorElement.textContent || 'Parser error in document'), { code: 'XMLParserError', retryable: true }); } } else if (window.ActiveXObject) { result = new window.ActiveXObject('Microsoft.XMLDOM'); result.async = false; if (!result.loadXML(xml)) { throw util.error(new Error('Parse error in document'), { code: 'XMLParserError', retryable: true }); } } else { throw new Error('Cannot load XML parser'); } } catch (e) { error = e; } if (result && result.documentElement && !error) { var data = parseXml(result.documentElement, shape); var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata'); if (metadata) { data.ResponseMetadata = parseXml(metadata, {}); } return data; } else if (error) { throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true}); } else { // empty xml document return {}; } }; function getElementByTagName(xml, tag) { var elements = xml.getElementsByTagName(tag); for (var i = 0, iLen = elements.length; i < iLen; i++) { if (elements[i].parentNode === xml) { return elements[i]; } } } function parseXml(xml, shape) { if (!shape) shape = {}; switch (shape.type) { case 'structure': return parseStructure(xml, shape); case 'map': return parseMap(xml, shape); case 'list': return parseList(xml, shape); case undefined: case null: return parseUnknown(xml); default: return parseScalar(xml, shape); } } function parseStructure(xml, shape) { var data = {}; if (xml === null) return data; util.each(shape.members, function(memberName, memberShape) { if (memberShape.isXmlAttribute) { if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) { var value = xml.attributes[memberShape.name].value; data[memberName] = parseXml({textContent: value}, memberShape); } } else { var xmlChild = memberShape.flattened ? xml : getElementByTagName(xml, memberShape.name); if (xmlChild) { data[memberName] = parseXml(xmlChild, memberShape); } else if (!memberShape.flattened && memberShape.type === 'list') { data[memberName] = memberShape.defaultValue; } } }); return data; } function parseMap(xml, shape) { var data = {}; var xmlKey = shape.key.name || 'key'; var xmlValue = shape.value.name || 'value'; var tagName = shape.flattened ? shape.name : 'entry'; var child = xml.firstElementChild; while (child) { if (child.nodeName === tagName) { var key = getElementByTagName(child, xmlKey).textContent; var value = getElementByTagName(child, xmlValue); data[key] = parseXml(value, shape.value); } child = child.nextElementSibling; } return data; } function parseList(xml, shape) { var data = []; var tagName = shape.flattened ? shape.name : (shape.member.name || 'member'); var child = xml.firstElementChild; while (child) { if (child.nodeName === tagName) { data.push(parseXml(child, shape.member)); } child = child.nextElementSibling; } return data; } function parseScalar(xml, shape) { if (xml.getAttribute) { var encoding = xml.getAttribute('encoding'); if (encoding === 'base64') { shape = new Shape.create({type: encoding}); } } var text = xml.textContent; if (text === '') text = null; if (typeof shape.toType === 'function') { return shape.toType(text); } else { return text; } } function parseUnknown(xml) { if (xml === undefined || xml === null) return ''; // empty object if (!xml.firstElementChild) { if (xml.parentNode.parentNode === null) return {}; if (xml.childNodes.length === 0) return ''; else return xml.textContent; } // object, parse as structure var shape = {type: 'structure', members: {}}; var child = xml.firstElementChild; while (child) { var tag = child.nodeName; if (Object.prototype.hasOwnProperty.call(shape.members, tag)) { // multiple tags of the same name makes it a list shape.members[tag].type = 'list'; } else { shape.members[tag] = {name: tag}; } child = child.nextElementSibling; } return parseStructure(xml, shape); } /** * @api private */ module.exports = DomXmlParser; /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/builder.js": /*!*************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/builder.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../util */ "./node_modules/aws-sdk/lib/util.js"); var XmlNode = __webpack_require__(/*! ./xml-node */ "./node_modules/aws-sdk/lib/xml/xml-node.js").XmlNode; var XmlText = __webpack_require__(/*! ./xml-text */ "./node_modules/aws-sdk/lib/xml/xml-text.js").XmlText; function XmlBuilder() { } XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { var xml = new XmlNode(rootElement); applyNamespaces(xml, shape, true); serialize(xml, params, shape); return xml.children.length > 0 || noEmpty ? xml.toString() : ''; }; function serialize(xml, value, shape) { switch (shape.type) { case 'structure': return serializeStructure(xml, value, shape); case 'map': return serializeMap(xml, value, shape); case 'list': return serializeList(xml, value, shape); default: return serializeScalar(xml, value, shape); } } function serializeStructure(xml, params, shape) { util.arrayEach(shape.memberNames, function(memberName) { var memberShape = shape.members[memberName]; if (memberShape.location !== 'body') return; var value = params[memberName]; var name = memberShape.name; if (value !== undefined && value !== null) { if (memberShape.isXmlAttribute) { xml.addAttribute(name, value); } else if (memberShape.flattened) { serialize(xml, value, memberShape); } else { var element = new XmlNode(name); xml.addChildNode(element); applyNamespaces(element, memberShape); serialize(element, value, memberShape); } } }); } function serializeMap(xml, map, shape) { var xmlKey = shape.key.name || 'key'; var xmlValue = shape.value.name || 'value'; util.each(map, function(key, value) { var entry = new XmlNode(shape.flattened ? shape.name : 'entry'); xml.addChildNode(entry); var entryKey = new XmlNode(xmlKey); var entryValue = new XmlNode(xmlValue); entry.addChildNode(entryKey); entry.addChildNode(entryValue); serialize(entryKey, key, shape.key); serialize(entryValue, value, shape.value); }); } function serializeList(xml, list, shape) { if (shape.flattened) { util.arrayEach(list, function(value) { var name = shape.member.name || shape.name; var element = new XmlNode(name); xml.addChildNode(element); serialize(element, value, shape.member); }); } else { util.arrayEach(list, function(value) { var name = shape.member.name || 'member'; var element = new XmlNode(name); xml.addChildNode(element); serialize(element, value, shape.member); }); } } function serializeScalar(xml, value, shape) { xml.addChildNode( new XmlText(shape.toWireFormat(value)) ); } function applyNamespaces(xml, shape, isRoot) { var uri, prefix = 'xmlns'; if (shape.xmlNamespaceUri) { uri = shape.xmlNamespaceUri; if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; } else if (isRoot && shape.api.xmlNamespaceUri) { uri = shape.api.xmlNamespaceUri; } if (uri) xml.addAttribute(prefix, uri); } /** * @api private */ module.exports = XmlBuilder; /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/escape-attribute.js": /*!**********************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/escape-attribute.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Escapes characters that can not be in an XML attribute. */ function escapeAttribute(value) { return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/"/g, '"'); } /** * @api private */ module.exports = { escapeAttribute: escapeAttribute }; /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/escape-element.js": /*!********************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/escape-element.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Escapes characters that can not be in an XML element. */ function escapeElement(value) { return value.replace(/&/g, '&').replace(//g, '>'); } /** * @api private */ module.exports = { escapeElement: escapeElement }; /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/xml-node.js": /*!**************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/xml-node.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var escapeAttribute = __webpack_require__(/*! ./escape-attribute */ "./node_modules/aws-sdk/lib/xml/escape-attribute.js").escapeAttribute; /** * Represents an XML node. * @api private */ function XmlNode(name, children) { if (children === void 0) { children = []; } this.name = name; this.children = children; this.attributes = {}; } XmlNode.prototype.addAttribute = function (name, value) { this.attributes[name] = value; return this; }; XmlNode.prototype.addChildNode = function (child) { this.children.push(child); return this; }; XmlNode.prototype.removeAttribute = function (name) { delete this.attributes[name]; return this; }; XmlNode.prototype.toString = function () { var hasChildren = Boolean(this.children.length); var xmlText = '<' + this.name; // add attributes var attributes = this.attributes; for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) { var attributeName = attributeNames[i]; var attribute = attributes[attributeName]; if (typeof attribute !== 'undefined' && attribute !== null) { xmlText += ' ' + attributeName + '=\"' + escapeAttribute('' + attribute) + '\"'; } } return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + ''; }; /** * @api private */ module.exports = { XmlNode: XmlNode }; /***/ }), /***/ "./node_modules/aws-sdk/lib/xml/xml-text.js": /*!**************************************************!*\ !*** ./node_modules/aws-sdk/lib/xml/xml-text.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var escapeElement = __webpack_require__(/*! ./escape-element */ "./node_modules/aws-sdk/lib/xml/escape-element.js").escapeElement; /** * Represents an XML text value. * @api private */ function XmlText(value) { this.value = value; } XmlText.prototype.toString = function () { return escapeElement('' + this.value); }; /** * @api private */ module.exports = { XmlText: XmlText }; /***/ }), /***/ "./node_modules/aws-sdk/node_modules/uuid/index.js": /*!*********************************************************!*\ !*** ./node_modules/aws-sdk/node_modules/uuid/index.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var v1 = __webpack_require__(/*! ./v1 */ "./node_modules/aws-sdk/node_modules/uuid/v1.js"); var v4 = __webpack_require__(/*! ./v4 */ "./node_modules/aws-sdk/node_modules/uuid/v4.js"); var uuid = v4; uuid.v1 = v1; uuid.v4 = v4; module.exports = uuid; /***/ }), /***/ "./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js": /*!*******************************************************************!*\ !*** ./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js ***! \*******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ var byteToHex = []; for (var i = 0; i < 256; ++i) { byteToHex[i] = (i + 0x100).toString(16).substr(1); } function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 return ([bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]]).join(''); } module.exports = bytesToUuid; /***/ }), /***/ "./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js": /*!*******************************************************************!*\ !*** ./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js ***! \*******************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via // feature-detection // getRandomValues needs to be invoked in a context where "this" is a Crypto // implementation. Also, find the complete implementation of crypto on IE11. var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); if (getRandomValues) { // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef module.exports = function whatwgRNG() { getRandomValues(rnds8); return rnds8; }; } else { // Math.random()-based (RNG) // // If all else fails, use Math.random(). It's fast, but is of unspecified // quality. var rnds = new Array(16); module.exports = function mathRNG() { for (var i = 0, r; i < 16; i++) { if ((i & 0x03) === 0) r = Math.random() * 0x100000000; rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; } return rnds; }; } /***/ }), /***/ "./node_modules/aws-sdk/node_modules/uuid/v1.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/node_modules/uuid/v1.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js"); // **`v1()` - Generate time-based UUID** // // Inspired by https://github.com/LiosK/UUID.js // and http://docs.python.org/library/uuid.html var _nodeId; var _clockseq; // Previous uuid creation time var _lastMSecs = 0; var _lastNSecs = 0; // See https://github.com/broofa/node-uuid for API details function v1(options, buf, offset) { var i = buf && offset || 0; var b = buf || []; options = options || {}; var node = options.node || _nodeId; var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not // specified. We do this lazily to minimize issues related to insufficient // system entropy. See #189 if (node == null || clockseq == null) { var seedBytes = rng(); if (node == null) { // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) node = _nodeId = [ seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] ]; } if (clockseq == null) { // Per 4.2.2, randomize (14 bit) clockseq clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; } } // UUID timestamps are 100 nano-second units since the Gregorian epoch, // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock // cycle to simulate higher resolution clock var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; // Per 4.2.1.2, Bump clockseq on clock regression if (dt < 0 && options.clockseq === undefined) { clockseq = clockseq + 1 & 0x3fff; } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new // time interval if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { nsecs = 0; } // Per 4.2.1.2 Throw error if too many uuids are requested if (nsecs >= 10000) { throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); } _lastMSecs = msecs; _lastNSecs = nsecs; _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch msecs += 12219292800000; // `time_low` var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; b[i++] = tl >>> 24 & 0xff; b[i++] = tl >>> 16 & 0xff; b[i++] = tl >>> 8 & 0xff; b[i++] = tl & 0xff; // `time_mid` var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; b[i++] = tmh >>> 8 & 0xff; b[i++] = tmh & 0xff; // `time_high_and_version` b[i++] = tmh >>> 24 & 0xf | 0x10; // include version b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` b[i++] = clockseq & 0xff; // `node` for (var n = 0; n < 6; ++n) { b[i + n] = node[n]; } return buf ? buf : bytesToUuid(b); } module.exports = v1; /***/ }), /***/ "./node_modules/aws-sdk/node_modules/uuid/v4.js": /*!******************************************************!*\ !*** ./node_modules/aws-sdk/node_modules/uuid/v4.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js"); var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js"); function v4(options, buf, offset) { var i = buf && offset || 0; if (typeof(options) == 'string') { buf = options === 'binary' ? new Array(16) : null; options = null; } options = options || {}; var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40; rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided if (buf) { for (var ii = 0; ii < 16; ++ii) { buf[i + ii] = rnds[ii]; } } return buf || bytesToUuid(rnds); } module.exports = v4; /***/ }), /***/ "./node_modules/aws-sdk/vendor/endpoint-cache/index.js": /*!*************************************************************!*\ !*** ./node_modules/aws-sdk/vendor/endpoint-cache/index.js ***! \*************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var LRU_1 = __webpack_require__(/*! ./utils/LRU */ "./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js"); var CACHE_SIZE = 1000; /** * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache] */ var EndpointCache = /** @class */ (function () { function EndpointCache(maxSize) { if (maxSize === void 0) { maxSize = CACHE_SIZE; } this.maxSize = maxSize; this.cache = new LRU_1.LRUCache(maxSize); } ; Object.defineProperty(EndpointCache.prototype, "size", { get: function () { return this.cache.length; }, enumerable: true, configurable: true }); EndpointCache.prototype.put = function (key, value) { var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; var endpointRecord = this.populateValue(value); this.cache.put(keyString, endpointRecord); }; EndpointCache.prototype.get = function (key) { var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; var now = Date.now(); var records = this.cache.get(keyString); if (records) { for (var i = 0; i < records.length; i++) { var record = records[i]; if (record.Expire < now) { this.cache.remove(keyString); return undefined; } } } return records; }; EndpointCache.getKeyString = function (key) { var identifiers = []; var identifierNames = Object.keys(key).sort(); for (var i = 0; i < identifierNames.length; i++) { var identifierName = identifierNames[i]; if (key[identifierName] === undefined) continue; identifiers.push(key[identifierName]); } return identifiers.join(' '); }; EndpointCache.prototype.populateValue = function (endpoints) { var now = Date.now(); return endpoints.map(function (endpoint) { return ({ Address: endpoint.Address || '', Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000 }); }); }; EndpointCache.prototype.empty = function () { this.cache.empty(); }; EndpointCache.prototype.remove = function (key) { var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; this.cache.remove(keyString); }; return EndpointCache; }()); exports.EndpointCache = EndpointCache; /***/ }), /***/ "./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js": /*!*****************************************************************!*\ !*** ./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js ***! \*****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var LinkedListNode = /** @class */ (function () { function LinkedListNode(key, value) { this.key = key; this.value = value; } return LinkedListNode; }()); var LRUCache = /** @class */ (function () { function LRUCache(size) { this.nodeMap = {}; this.size = 0; if (typeof size !== 'number' || size < 1) { throw new Error('Cache size can only be positive number'); } this.sizeLimit = size; } Object.defineProperty(LRUCache.prototype, "length", { get: function () { return this.size; }, enumerable: true, configurable: true }); LRUCache.prototype.prependToList = function (node) { if (!this.headerNode) { this.tailNode = node; } else { this.headerNode.prev = node; node.next = this.headerNode; } this.headerNode = node; this.size++; }; LRUCache.prototype.removeFromTail = function () { if (!this.tailNode) { return undefined; } var node = this.tailNode; var prevNode = node.prev; if (prevNode) { prevNode.next = undefined; } node.prev = undefined; this.tailNode = prevNode; this.size--; return node; }; LRUCache.prototype.detachFromList = function (node) { if (this.headerNode === node) { this.headerNode = node.next; } if (this.tailNode === node) { this.tailNode = node.prev; } if (node.prev) { node.prev.next = node.next; } if (node.next) { node.next.prev = node.prev; } node.next = undefined; node.prev = undefined; this.size--; }; LRUCache.prototype.get = function (key) { if (this.nodeMap[key]) { var node = this.nodeMap[key]; this.detachFromList(node); this.prependToList(node); return node.value; } }; LRUCache.prototype.remove = function (key) { if (this.nodeMap[key]) { var node = this.nodeMap[key]; this.detachFromList(node); delete this.nodeMap[key]; } }; LRUCache.prototype.put = function (key, value) { if (this.nodeMap[key]) { this.remove(key); } else if (this.size === this.sizeLimit) { var tailNode = this.removeFromTail(); var key_1 = tailNode.key; delete this.nodeMap[key_1]; } var newNode = new LinkedListNode(key, value); this.nodeMap[key] = newNode; this.prependToList(newNode); }; LRUCache.prototype.empty = function () { var keys = Object.keys(this.nodeMap); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var node = this.nodeMap[key]; this.detachFromList(node); delete this.nodeMap[key]; } }; return LRUCache; }()); exports.LRUCache = LRUCache; /***/ }), /***/ "./node_modules/axios/index.js": /*!*************************************!*\ !*** ./node_modules/axios/index.js ***! \*************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js"); /***/ }), /***/ "./node_modules/axios/lib/adapters/xhr.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/adapters/xhr.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js"); var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js"); var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js"); var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js"); var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js"); module.exports = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve, reject) { var requestData = config.data; var requestHeaders = config.headers; if (utils.isFormData(requestData)) { delete requestHeaders['Content-Type']; // Let the browser set it } var request = new XMLHttpRequest(); // HTTP basic authentication if (config.auth) { var username = config.auth.username || ''; var password = config.auth.password || ''; requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS request.timeout = config.timeout; // Listen for ready state request.onreadystatechange = function handleLoad() { if (!request || request.readyState !== 4) { return; } // The request errored out and we didn't get a response, this will be // handled by onerror instead // With one exception: request that using file: protocol, most browsers // will return status as 0 even though it's a successful request if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { return; } // Prepare the response var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; var response = { data: responseData, status: request.status, statusText: request.statusText, headers: responseHeaders, config: config, request: request }; settle(resolve, reject, response); // Clean up request request = null; }; // Handle browser request cancellation (as opposed to a manual cancellation) request.onabort = function handleAbort() { if (!request) { return; } reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request request = null; }; // Handle low level network errors request.onerror = function handleError() { // Real errors are hidden from us by the browser // onerror should only fire if it's a network error reject(createError('Network Error', config, null, request)); // Clean up request request = null; }; // Handle timeout request.ontimeout = function handleTimeout() { reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request request = null; }; // Add xsrf header // This is only done if running in a standard browser environment. // Specifically not if we're in a web worker, or react-native. if (utils.isStandardBrowserEnv()) { var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js"); // Add xsrf header var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; if (xsrfValue) { requestHeaders[config.xsrfHeaderName] = xsrfValue; } } // Add headers to the request if ('setRequestHeader' in request) { utils.forEach(requestHeaders, function setRequestHeader(val, key) { if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { // Remove Content-Type if data is undefined delete requestHeaders[key]; } else { // Otherwise add header to the request request.setRequestHeader(key, val); } }); } // Add withCredentials to request if needed if (config.withCredentials) { request.withCredentials = true; } // Add responseType to request if needed if (config.responseType) { try { request.responseType = config.responseType; } catch (e) { // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. if (config.responseType !== 'json') { throw e; } } } // Handle progress if needed if (typeof config.onDownloadProgress === 'function') { request.addEventListener('progress', config.onDownloadProgress); } // Not all browsers support upload events if (typeof config.onUploadProgress === 'function' && request.upload) { request.upload.addEventListener('progress', config.onUploadProgress); } if (config.cancelToken) { // Handle cancellation config.cancelToken.promise.then(function onCanceled(cancel) { if (!request) { return; } request.abort(); reject(cancel); // Clean up request request = null; }); } if (requestData === undefined) { requestData = null; } // Send the request request.send(requestData); }); }; /***/ }), /***/ "./node_modules/axios/lib/axios.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/axios.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js"); var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js"); var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js"); var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults.js"); /** * Create an instance of Axios * * @param {Object} defaultConfig The default config for the instance * @return {Axios} A new instance of Axios */ function createInstance(defaultConfig) { var context = new Axios(defaultConfig); var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance utils.extend(instance, Axios.prototype, context); // Copy context to instance utils.extend(instance, context); return instance; } // Create the default instance to be exported var axios = createInstance(defaults); // Expose Axios class to allow class inheritance axios.Axios = Axios; // Factory for creating new instances axios.create = function create(instanceConfig) { return createInstance(mergeConfig(axios.defaults, instanceConfig)); }; // Expose Cancel & CancelToken axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js"); axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js"); // Expose all/spread axios.all = function all(promises) { return Promise.all(promises); }; axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/axios/lib/helpers/spread.js"); module.exports = axios; // Allow use of default import syntax in TypeScript module.exports.default = axios; /***/ }), /***/ "./node_modules/axios/lib/cancel/Cancel.js": /*!*************************************************!*\ !*** ./node_modules/axios/lib/cancel/Cancel.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * A `Cancel` is an object that is thrown when an operation is canceled. * * @class * @param {string=} message The message. */ function Cancel(message) { this.message = message; } Cancel.prototype.toString = function toString() { return 'Cancel' + (this.message ? ': ' + this.message : ''); }; Cancel.prototype.__CANCEL__ = true; module.exports = Cancel; /***/ }), /***/ "./node_modules/axios/lib/cancel/CancelToken.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); /** * A `CancelToken` is an object that can be used to request cancellation of an operation. * * @class * @param {Function} executor The executor function. */ function CancelToken(executor) { if (typeof executor !== 'function') { throw new TypeError('executor must be a function.'); } var resolvePromise; this.promise = new Promise(function promiseExecutor(resolve) { resolvePromise = resolve; }); var token = this; executor(function cancel(message) { if (token.reason) { // Cancellation has already been requested return; } token.reason = new Cancel(message); resolvePromise(token.reason); }); } /** * Throws a `Cancel` if cancellation has been requested. */ CancelToken.prototype.throwIfRequested = function throwIfRequested() { if (this.reason) { throw this.reason; } }; /** * Returns an object that contains a new `CancelToken` and a function that, when called, * cancels the `CancelToken`. */ CancelToken.source = function source() { var cancel; var token = new CancelToken(function executor(c) { cancel = c; }); return { token: token, cancel: cancel }; }; module.exports = CancelToken; /***/ }), /***/ "./node_modules/axios/lib/cancel/isCancel.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/cancel/isCancel.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function isCancel(value) { return !!(value && value.__CANCEL__); }; /***/ }), /***/ "./node_modules/axios/lib/core/Axios.js": /*!**********************************************!*\ !*** ./node_modules/axios/lib/core/Axios.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js"); var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js"); var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js"); var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js"); /** * Create a new instance of Axios * * @param {Object} instanceConfig The default config for the instance */ function Axios(instanceConfig) { this.defaults = instanceConfig; this.interceptors = { request: new InterceptorManager(), response: new InterceptorManager() }; } /** * Dispatch a request * * @param {Object} config The config specific for this request (merged with this.defaults) */ Axios.prototype.request = function request(config) { /*eslint no-param-reassign:0*/ // Allow for axios('example/url'[, config]) a la fetch API if (typeof config === 'string') { config = arguments[1] || {}; config.url = arguments[0]; } else { config = config || {}; } config = mergeConfig(this.defaults, config); config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; var promise = Promise.resolve(config); this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { chain.unshift(interceptor.fulfilled, interceptor.rejected); }); this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { chain.push(interceptor.fulfilled, interceptor.rejected); }); while (chain.length) { promise = promise.then(chain.shift(), chain.shift()); } return promise; }; Axios.prototype.getUri = function getUri(config) { config = mergeConfig(this.defaults, config); return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); }; // Provide aliases for supported request methods utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, config) { return this.request(utils.merge(config || {}, { method: method, url: url })); }; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, data, config) { return this.request(utils.merge(config || {}, { method: method, url: url, data: data })); }; }); module.exports = Axios; /***/ }), /***/ "./node_modules/axios/lib/core/InterceptorManager.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); function InterceptorManager() { this.handlers = []; } /** * Add a new interceptor to the stack * * @param {Function} fulfilled The function to handle `then` for a `Promise` * @param {Function} rejected The function to handle `reject` for a `Promise` * * @return {Number} An ID used to remove interceptor later */ InterceptorManager.prototype.use = function use(fulfilled, rejected) { this.handlers.push({ fulfilled: fulfilled, rejected: rejected }); return this.handlers.length - 1; }; /** * Remove an interceptor from the stack * * @param {Number} id The ID that was returned by `use` */ InterceptorManager.prototype.eject = function eject(id) { if (this.handlers[id]) { this.handlers[id] = null; } }; /** * Iterate over all the registered interceptors * * This method is particularly useful for skipping over any * interceptors that may have become `null` calling `eject`. * * @param {Function} fn The function to call for each interceptor */ InterceptorManager.prototype.forEach = function forEach(fn) { utils.forEach(this.handlers, function forEachHandler(h) { if (h !== null) { fn(h); } }); }; module.exports = InterceptorManager; /***/ }), /***/ "./node_modules/axios/lib/core/createError.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/createError.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); /** * Create an Error with the specified message, config, error code, request and response. * * @param {string} message The error message. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The created error. */ module.exports = function createError(message, config, code, request, response) { var error = new Error(message); return enhanceError(error, config, code, request, response); }; /***/ }), /***/ "./node_modules/axios/lib/core/dispatchRequest.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js"); var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js"); var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js"); var isAbsoluteURL = __webpack_require__(/*! ./../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); var combineURLs = __webpack_require__(/*! ./../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js"); /** * Throws a `Cancel` if cancellation has been requested. */ function throwIfCancellationRequested(config) { if (config.cancelToken) { config.cancelToken.throwIfRequested(); } } /** * Dispatch a request to the server using the configured adapter. * * @param {object} config The config that is to be used for the request * @returns {Promise} The Promise to be fulfilled */ module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); // Support baseURL config if (config.baseURL && !isAbsoluteURL(config.url)) { config.url = combineURLs(config.baseURL, config.url); } // Ensure headers exist config.headers = config.headers || {}; // Transform request data config.data = transformData( config.data, config.headers, config.transformRequest ); // Flatten headers config.headers = utils.merge( config.headers.common || {}, config.headers[config.method] || {}, config.headers || {} ); utils.forEach( ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) { delete config.headers[method]; } ); var adapter = config.adapter || defaults.adapter; return adapter(config).then(function onAdapterResolution(response) { throwIfCancellationRequested(config); // Transform response data response.data = transformData( response.data, response.headers, config.transformResponse ); return response; }, function onAdapterRejection(reason) { if (!isCancel(reason)) { throwIfCancellationRequested(config); // Transform response data if (reason && reason.response) { reason.response.data = transformData( reason.response.data, reason.response.headers, config.transformResponse ); } } return Promise.reject(reason); }); }; /***/ }), /***/ "./node_modules/axios/lib/core/enhanceError.js": /*!*****************************************************!*\ !*** ./node_modules/axios/lib/core/enhanceError.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Update an Error with the specified config, error code, and response. * * @param {Error} error The error to update. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The error. */ module.exports = function enhanceError(error, config, code, request, response) { error.config = config; if (code) { error.code = code; } error.request = request; error.response = response; error.isAxiosError = true; error.toJSON = function() { return { // Standard message: this.message, name: this.name, // Microsoft description: this.description, number: this.number, // Mozilla fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, // Axios config: this.config, code: this.code }; }; return error; }; /***/ }), /***/ "./node_modules/axios/lib/core/mergeConfig.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/core/mergeConfig.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); /** * Config-specific merge-function which creates a new config-object * by merging two configuration objects together. * * @param {Object} config1 * @param {Object} config2 * @returns {Object} New object resulting from merging config2 to config1 */ module.exports = function mergeConfig(config1, config2) { // eslint-disable-next-line no-param-reassign config2 = config2 || {}; var config = {}; utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } }); utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) { if (utils.isObject(config2[prop])) { config[prop] = utils.deepMerge(config1[prop], config2[prop]); } else if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } else if (utils.isObject(config1[prop])) { config[prop] = utils.deepMerge(config1[prop]); } else if (typeof config1[prop] !== 'undefined') { config[prop] = config1[prop]; } }); utils.forEach([ 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath' ], function defaultToConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } else if (typeof config1[prop] !== 'undefined') { config[prop] = config1[prop]; } }); return config; }; /***/ }), /***/ "./node_modules/axios/lib/core/settle.js": /*!***********************************************!*\ !*** ./node_modules/axios/lib/core/settle.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js"); /** * Resolve or reject a Promise based on response status. * * @param {Function} resolve A function that resolves the promise. * @param {Function} reject A function that rejects the promise. * @param {object} response The response. */ module.exports = function settle(resolve, reject, response) { var validateStatus = response.config.validateStatus; if (!validateStatus || validateStatus(response.status)) { resolve(response); } else { reject(createError( 'Request failed with status code ' + response.status, response.config, null, response.request, response )); } }; /***/ }), /***/ "./node_modules/axios/lib/core/transformData.js": /*!******************************************************!*\ !*** ./node_modules/axios/lib/core/transformData.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); /** * Transform the data for a request or a response * * @param {Object|String} data The data to be transformed * @param {Array} headers The headers for the request or response * @param {Array|Function} fns A single function or Array of functions * @returns {*} The resulting transformed data */ module.exports = function transformData(data, headers, fns) { /*eslint no-param-reassign:0*/ utils.forEach(fns, function transform(fn) { data = fn(data, headers); }); return data; }; /***/ }), /***/ "./node_modules/axios/lib/defaults.js": /*!********************************************!*\ !*** ./node_modules/axios/lib/defaults.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) { var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js"); var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/axios/lib/helpers/normalizeHeaderName.js"); var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' }; function setContentTypeIfUnset(headers, value) { if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { headers['Content-Type'] = value; } } function getDefaultAdapter() { var adapter; // Only Node.JS has a process variable that is of [[Class]] process if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { // For node use HTTP adapter adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js"); } else if (typeof XMLHttpRequest !== 'undefined') { // For browsers use XHR adapter adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js"); } return adapter; } var defaults = { adapter: getDefaultAdapter(), transformRequest: [function transformRequest(data, headers) { normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(headers, 'Content-Type'); if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data) ) { return data; } if (utils.isArrayBufferView(data)) { return data.buffer; } if (utils.isURLSearchParams(data)) { setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); return data.toString(); } if (utils.isObject(data)) { setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); return JSON.stringify(data); } return data; }], transformResponse: [function transformResponse(data) { /*eslint no-param-reassign:0*/ if (typeof data === 'string') { try { data = JSON.parse(data); } catch (e) { /* Ignore */ } } return data; }], /** * A timeout in milliseconds to abort a request. If set to 0 (default) a * timeout is not created. */ timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, validateStatus: function validateStatus(status) { return status >= 200 && status < 300; } }; defaults.headers = { common: { 'Accept': 'application/json, text/plain, */*' } }; utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { defaults.headers[method] = {}; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); }); module.exports = defaults; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/axios/lib/helpers/bind.js": /*!************************************************!*\ !*** ./node_modules/axios/lib/helpers/bind.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function bind(fn, thisArg) { return function wrap() { var args = new Array(arguments.length); for (var i = 0; i < args.length; i++) { args[i] = arguments[i]; } return fn.apply(thisArg, args); }; }; /***/ }), /***/ "./node_modules/axios/lib/helpers/buildURL.js": /*!****************************************************!*\ !*** ./node_modules/axios/lib/helpers/buildURL.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); function encode(val) { return encodeURIComponent(val). replace(/%40/gi, '@'). replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). replace(/%20/g, '+'). replace(/%5B/gi, '['). replace(/%5D/gi, ']'); } /** * Build a URL by appending params to the end * * @param {string} url The base of the url (e.g., http://www.google.com) * @param {object} [params] The params to be appended * @returns {string} The formatted url */ module.exports = function buildURL(url, params, paramsSerializer) { /*eslint no-param-reassign:0*/ if (!params) { return url; } var serializedParams; if (paramsSerializer) { serializedParams = paramsSerializer(params); } else if (utils.isURLSearchParams(params)) { serializedParams = params.toString(); } else { var parts = []; utils.forEach(params, function serialize(val, key) { if (val === null || typeof val === 'undefined') { return; } if (utils.isArray(val)) { key = key + '[]'; } else { val = [val]; } utils.forEach(val, function parseValue(v) { if (utils.isDate(v)) { v = v.toISOString(); } else if (utils.isObject(v)) { v = JSON.stringify(v); } parts.push(encode(key) + '=' + encode(v)); }); }); serializedParams = parts.join('&'); } if (serializedParams) { var hashmarkIndex = url.indexOf('#'); if (hashmarkIndex !== -1) { url = url.slice(0, hashmarkIndex); } url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; } return url; }; /***/ }), /***/ "./node_modules/axios/lib/helpers/combineURLs.js": /*!*******************************************************!*\ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Creates a new URL by combining the specified URLs * * @param {string} baseURL The base URL * @param {string} relativeURL The relative URL * @returns {string} The combined URL */ module.exports = function combineURLs(baseURL, relativeURL) { return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; }; /***/ }), /***/ "./node_modules/axios/lib/helpers/cookies.js": /*!***************************************************!*\ !*** ./node_modules/axios/lib/helpers/cookies.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie (function standardBrowserEnv() { return { write: function write(name, value, expires, path, domain, secure) { var cookie = []; cookie.push(name + '=' + encodeURIComponent(value)); if (utils.isNumber(expires)) { cookie.push('expires=' + new Date(expires).toGMTString()); } if (utils.isString(path)) { cookie.push('path=' + path); } if (utils.isString(domain)) { cookie.push('domain=' + domain); } if (secure === true) { cookie.push('secure'); } document.cookie = cookie.join('; '); }, read: function read(name) { var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); return (match ? decodeURIComponent(match[3]) : null); }, remove: function remove(name) { this.write(name, '', Date.now() - 86400000); } }; })() : // Non standard browser env (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return { write: function write() {}, read: function read() { return null; }, remove: function remove() {} }; })() ); /***/ }), /***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": /*!*********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Determines whether the specified URL is absolute * * @param {string} url The URL to test * @returns {boolean} True if the specified URL is absolute, otherwise false */ module.exports = function isAbsoluteURL(url) { // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed // by any combination of letters, digits, plus, period, or hyphen. return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); }; /***/ }), /***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": /*!***********************************************************!*\ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test // whether the request URL is of the same origin as current location. (function standardBrowserEnv() { var msie = /(msie|trident)/i.test(navigator.userAgent); var urlParsingNode = document.createElement('a'); var originURL; /** * Parse a URL to discover it's components * * @param {String} url The URL to be parsed * @returns {Object} */ function resolveURL(url) { var href = url; if (msie) { // IE needs attribute set twice to normalize properties urlParsingNode.setAttribute('href', href); href = urlParsingNode.href; } urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils return { href: urlParsingNode.href, protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', host: urlParsingNode.host, search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', hostname: urlParsingNode.hostname, port: urlParsingNode.port, pathname: (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname : '/' + urlParsingNode.pathname }; } originURL = resolveURL(window.location.href); /** * Determine if a URL shares the same origin as the current location * * @param {String} requestURL The URL to test * @returns {boolean} True if URL shares the same origin, otherwise false */ return function isURLSameOrigin(requestURL) { var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; return (parsed.protocol === originURL.protocol && parsed.host === originURL.host); }; })() : // Non standard browser envs (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return function isURLSameOrigin() { return true; }; })() ); /***/ }), /***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": /*!***************************************************************!*\ !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); module.exports = function normalizeHeaderName(headers, normalizedName) { utils.forEach(headers, function processHeader(value, name) { if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { headers[normalizedName] = value; delete headers[name]; } }); }; /***/ }), /***/ "./node_modules/axios/lib/helpers/parseHeaders.js": /*!********************************************************!*\ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); // Headers whose duplicates are ignored by node // c.f. https://nodejs.org/api/http.html#http_message_headers var ignoreDuplicateOf = [ 'age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent' ]; /** * Parse headers into an object * * ``` * Date: Wed, 27 Aug 2014 08:58:49 GMT * Content-Type: application/json * Connection: keep-alive * Transfer-Encoding: chunked * ``` * * @param {String} headers Headers needing to be parsed * @returns {Object} Headers parsed into an object */ module.exports = function parseHeaders(headers) { var parsed = {}; var key; var val; var i; if (!headers) { return parsed; } utils.forEach(headers.split('\n'), function parser(line) { i = line.indexOf(':'); key = utils.trim(line.substr(0, i)).toLowerCase(); val = utils.trim(line.substr(i + 1)); if (key) { if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { return; } if (key === 'set-cookie') { parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); } else { parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; } } }); return parsed; }; /***/ }), /***/ "./node_modules/axios/lib/helpers/spread.js": /*!**************************************************!*\ !*** ./node_modules/axios/lib/helpers/spread.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Syntactic sugar for invoking a function and expanding an array for arguments. * * Common use case would be to use `Function.prototype.apply`. * * ```js * function f(x, y, z) {} * var args = [1, 2, 3]; * f.apply(null, args); * ``` * * With `spread` this example can be re-written. * * ```js * spread(function(x, y, z) {})([1, 2, 3]); * ``` * * @param {Function} callback * @returns {Function} */ module.exports = function spread(callback) { return function wrap(arr) { return callback.apply(null, arr); }; }; /***/ }), /***/ "./node_modules/axios/lib/utils.js": /*!*****************************************!*\ !*** ./node_modules/axios/lib/utils.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); var isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/axios/node_modules/is-buffer/index.js"); /*global toString:true*/ // utils is a library of generic helper functions non-specific to axios var toString = Object.prototype.toString; /** * Determine if a value is an Array * * @param {Object} val The value to test * @returns {boolean} True if value is an Array, otherwise false */ function isArray(val) { return toString.call(val) === '[object Array]'; } /** * Determine if a value is an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is an ArrayBuffer, otherwise false */ function isArrayBuffer(val) { return toString.call(val) === '[object ArrayBuffer]'; } /** * Determine if a value is a FormData * * @param {Object} val The value to test * @returns {boolean} True if value is an FormData, otherwise false */ function isFormData(val) { return (typeof FormData !== 'undefined') && (val instanceof FormData); } /** * Determine if a value is a view on an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false */ function isArrayBufferView(val) { var result; if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { result = ArrayBuffer.isView(val); } else { result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); } return result; } /** * Determine if a value is a String * * @param {Object} val The value to test * @returns {boolean} True if value is a String, otherwise false */ function isString(val) { return typeof val === 'string'; } /** * Determine if a value is a Number * * @param {Object} val The value to test * @returns {boolean} True if value is a Number, otherwise false */ function isNumber(val) { return typeof val === 'number'; } /** * Determine if a value is undefined * * @param {Object} val The value to test * @returns {boolean} True if the value is undefined, otherwise false */ function isUndefined(val) { return typeof val === 'undefined'; } /** * Determine if a value is an Object * * @param {Object} val The value to test * @returns {boolean} True if value is an Object, otherwise false */ function isObject(val) { return val !== null && typeof val === 'object'; } /** * Determine if a value is a Date * * @param {Object} val The value to test * @returns {boolean} True if value is a Date, otherwise false */ function isDate(val) { return toString.call(val) === '[object Date]'; } /** * Determine if a value is a File * * @param {Object} val The value to test * @returns {boolean} True if value is a File, otherwise false */ function isFile(val) { return toString.call(val) === '[object File]'; } /** * Determine if a value is a Blob * * @param {Object} val The value to test * @returns {boolean} True if value is a Blob, otherwise false */ function isBlob(val) { return toString.call(val) === '[object Blob]'; } /** * Determine if a value is a Function * * @param {Object} val The value to test * @returns {boolean} True if value is a Function, otherwise false */ function isFunction(val) { return toString.call(val) === '[object Function]'; } /** * Determine if a value is a Stream * * @param {Object} val The value to test * @returns {boolean} True if value is a Stream, otherwise false */ function isStream(val) { return isObject(val) && isFunction(val.pipe); } /** * Determine if a value is a URLSearchParams object * * @param {Object} val The value to test * @returns {boolean} True if value is a URLSearchParams object, otherwise false */ function isURLSearchParams(val) { return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; } /** * Trim excess whitespace off the beginning and end of a string * * @param {String} str The String to trim * @returns {String} The String freed of excess whitespace */ function trim(str) { return str.replace(/^\s*/, '').replace(/\s*$/, ''); } /** * Determine if we're running in a standard browser environment * * This allows axios to run in a web worker, and react-native. * Both environments support XMLHttpRequest, but not fully standard globals. * * web workers: * typeof window -> undefined * typeof document -> undefined * * react-native: * navigator.product -> 'ReactNative' * nativescript * navigator.product -> 'NativeScript' or 'NS' */ function isStandardBrowserEnv() { if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) { return false; } return ( typeof window !== 'undefined' && typeof document !== 'undefined' ); } /** * Iterate over an Array or an Object invoking a function for each item. * * If `obj` is an Array callback will be called passing * the value, index, and complete array for each item. * * If 'obj' is an Object callback will be called passing * the value, key, and complete object for each property. * * @param {Object|Array} obj The object to iterate * @param {Function} fn The callback to invoke for each item */ function forEach(obj, fn) { // Don't bother if no value provided if (obj === null || typeof obj === 'undefined') { return; } // Force an array if not already something iterable if (typeof obj !== 'object') { /*eslint no-param-reassign:0*/ obj = [obj]; } if (isArray(obj)) { // Iterate over array values for (var i = 0, l = obj.length; i < l; i++) { fn.call(null, obj[i], i, obj); } } else { // Iterate over object keys for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { fn.call(null, obj[key], key, obj); } } } } /** * Accepts varargs expecting each argument to be an object, then * immutably merges the properties of each object and returns result. * * When multiple objects contain the same key the later object in * the arguments list will take precedence. * * Example: * * ```js * var result = merge({foo: 123}, {foo: 456}); * console.log(result.foo); // outputs 456 * ``` * * @param {Object} obj1 Object to merge * @returns {Object} Result of all merge properties */ function merge(/* obj1, obj2, obj3, ... */) { var result = {}; function assignValue(val, key) { if (typeof result[key] === 'object' && typeof val === 'object') { result[key] = merge(result[key], val); } else { result[key] = val; } } for (var i = 0, l = arguments.length; i < l; i++) { forEach(arguments[i], assignValue); } return result; } /** * Function equal to merge with the difference being that no reference * to original objects is kept. * * @see merge * @param {Object} obj1 Object to merge * @returns {Object} Result of all merge properties */ function deepMerge(/* obj1, obj2, obj3, ... */) { var result = {}; function assignValue(val, key) { if (typeof result[key] === 'object' && typeof val === 'object') { result[key] = deepMerge(result[key], val); } else if (typeof val === 'object') { result[key] = deepMerge({}, val); } else { result[key] = val; } } for (var i = 0, l = arguments.length; i < l; i++) { forEach(arguments[i], assignValue); } return result; } /** * Extends object a by mutably adding to it the properties of object b. * * @param {Object} a The object to be extended * @param {Object} b The object to copy properties from * @param {Object} thisArg The object to bind function to * @return {Object} The resulting value of object a */ function extend(a, b, thisArg) { forEach(b, function assignValue(val, key) { if (thisArg && typeof val === 'function') { a[key] = bind(val, thisArg); } else { a[key] = val; } }); return a; } module.exports = { isArray: isArray, isArrayBuffer: isArrayBuffer, isBuffer: isBuffer, isFormData: isFormData, isArrayBufferView: isArrayBufferView, isString: isString, isNumber: isNumber, isObject: isObject, isUndefined: isUndefined, isDate: isDate, isFile: isFile, isBlob: isBlob, isFunction: isFunction, isStream: isStream, isURLSearchParams: isURLSearchParams, isStandardBrowserEnv: isStandardBrowserEnv, forEach: forEach, merge: merge, deepMerge: deepMerge, extend: extend, trim: trim }; /***/ }), /***/ "./node_modules/axios/node_modules/is-buffer/index.js": /*!************************************************************!*\ !*** ./node_modules/axios/node_modules/is-buffer/index.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ module.exports = function isBuffer (obj) { return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) } /***/ }), /***/ "./node_modules/babel-runtime/core-js/object/assign.js": /*!*************************************************************!*\ !*** ./node_modules/babel-runtime/core-js/object/assign.js ***! \*************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/object/assign */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/core-js/object/create.js": /*!*************************************************************!*\ !*** ./node_modules/babel-runtime/core-js/object/create.js ***! \*************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/object/create */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/core-js/object/define-property.js": /*!**********************************************************************!*\ !*** ./node_modules/babel-runtime/core-js/object/define-property.js ***! \**********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/object/define-property */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/core-js/object/set-prototype-of.js": /*!***********************************************************************!*\ !*** ./node_modules/babel-runtime/core-js/object/set-prototype-of.js ***! \***********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/core-js/symbol.js": /*!******************************************************!*\ !*** ./node_modules/babel-runtime/core-js/symbol.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/symbol */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/core-js/symbol/iterator.js": /*!***************************************************************!*\ !*** ./node_modules/babel-runtime/core-js/symbol/iterator.js ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js"), __esModule: true }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/classCallCheck.js": /*!**************************************************************!*\ !*** ./node_modules/babel-runtime/helpers/classCallCheck.js ***! \**************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/createClass.js": /*!***********************************************************!*\ !*** ./node_modules/babel-runtime/helpers/createClass.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _defineProperty = __webpack_require__(/*! ../core-js/object/define-property */ "./node_modules/babel-runtime/core-js/object/define-property.js"); var _defineProperty2 = _interopRequireDefault(_defineProperty); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /***/ }), /***/ "./node_modules/babel-runtime/helpers/defineProperty.js": /*!**************************************************************!*\ !*** ./node_modules/babel-runtime/helpers/defineProperty.js ***! \**************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _defineProperty = __webpack_require__(/*! ../core-js/object/define-property */ "./node_modules/babel-runtime/core-js/object/define-property.js"); var _defineProperty2 = _interopRequireDefault(_defineProperty); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (obj, key, value) { if (key in obj) { (0, _defineProperty2.default)(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/extends.js": /*!*******************************************************!*\ !*** ./node_modules/babel-runtime/helpers/extends.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _assign = __webpack_require__(/*! ../core-js/object/assign */ "./node_modules/babel-runtime/core-js/object/assign.js"); var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = _assign2.default || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/inherits.js": /*!********************************************************!*\ !*** ./node_modules/babel-runtime/helpers/inherits.js ***! \********************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _setPrototypeOf = __webpack_require__(/*! ../core-js/object/set-prototype-of */ "./node_modules/babel-runtime/core-js/object/set-prototype-of.js"); var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); var _create = __webpack_require__(/*! ../core-js/object/create */ "./node_modules/babel-runtime/core-js/object/create.js"); var _create2 = _interopRequireDefault(_create); var _typeof2 = __webpack_require__(/*! ../helpers/typeof */ "./node_modules/babel-runtime/helpers/typeof.js"); var _typeof3 = _interopRequireDefault(_typeof2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); } subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js": /*!***********************************************************************!*\ !*** ./node_modules/babel-runtime/helpers/objectWithoutProperties.js ***! \***********************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = function (obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js": /*!*************************************************************************!*\ !*** ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js ***! \*************************************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _typeof2 = __webpack_require__(/*! ../helpers/typeof */ "./node_modules/babel-runtime/helpers/typeof.js"); var _typeof3 = _interopRequireDefault(_typeof2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; }; /***/ }), /***/ "./node_modules/babel-runtime/helpers/typeof.js": /*!******************************************************!*\ !*** ./node_modules/babel-runtime/helpers/typeof.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _iterator = __webpack_require__(/*! ../core-js/symbol/iterator */ "./node_modules/babel-runtime/core-js/symbol/iterator.js"); var _iterator2 = _interopRequireDefault(_iterator); var _symbol = __webpack_require__(/*! ../core-js/symbol */ "./node_modules/babel-runtime/core-js/symbol.js"); var _symbol2 = _interopRequireDefault(_symbol); var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof(obj); } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.object.assign */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js"); module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js").Object.assign; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.object.create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js"); var $Object = __webpack_require__(/*! ../../modules/_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js").Object; module.exports = function create(P, D) { return $Object.create(P, D); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js": /*!**********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js ***! \**********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.object.define-property */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js"); var $Object = __webpack_require__(/*! ../../modules/_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js").Object; module.exports = function defineProperty(it, key, desc) { return $Object.defineProperty(it, key, desc); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js": /*!***********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js ***! \***********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js"); module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js": /*!************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js ***! \************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.symbol */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js"); __webpack_require__(/*! ../../modules/es6.object.to-string */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js"); __webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js"); __webpack_require__(/*! ../../modules/es7.symbol.observable */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js"); module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js").Symbol; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ../../modules/es6.string.iterator */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js"); __webpack_require__(/*! ../../modules/web.dom.iterable */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js"); module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js").f('iterator'); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js": /*!************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js ***! \************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function () { /* empty */ }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js": /*!********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js ***! \********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js"); var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js"); module.exports = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) if (IS_INCLUDES || index in O) { if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js": /*!*********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js": /*!**********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var core = module.exports = { version: '2.5.3' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js": /*!*********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js"); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js")(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); var document = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js").document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js": /*!*******************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js ***! \*******************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js"); var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js"); var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js"); module.exports = function (it) { var result = getKeys(it); var getSymbols = gOPS.f; if (getSymbols) { var symbols = getSymbols(it); var isEnum = pIE.f; var i = 0; var key; while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); } return result; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js": /*!************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js ***! \************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js"); var core = __webpack_require__(/*! ./_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js"); var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js"); var hide = __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js"); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var IS_WRAP = type & $export.W; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE]; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; var key, own, out; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; if (own && key in exports) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function (C) { var F = function (a, b, c) { if (this instanceof C) { switch (arguments.length) { case 0: return new C(); case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if (IS_PROTO) { (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js": /*!***********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js ***! \***********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js": /*!************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js ***! \************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js": /*!*********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js": /*!**********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js"); var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js"); module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js": /*!**********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var document = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js").document; module.exports = document && document.documentElement; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js": /*!********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js ***! \********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js")(function () { return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(/*! ./_cof */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js"); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js": /*!**************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js ***! \**************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(/*! ./_cof */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js"); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var create = __webpack_require__(/*! ./_object-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js"); var descriptor = __webpack_require__(/*! ./_property-desc */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js"); var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js"); var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; }); module.exports = function (Constructor, NAME, next) { Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js"); var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js"); var hide = __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js"); var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js"); var $iterCreate = __webpack_require__(/*! ./_iter-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js"); var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js"); var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js"); var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js")('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function () { return this; }; module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); var getMethod = function (kind) { if (!BUGGY && kind in proto) return proto[kind]; switch (kind) { case KEYS: return function keys() { return new Constructor(this, kind); }; case VALUES: return function values() { return new Constructor(this, kind); }; } return function entries() { return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator'; var DEF_VALUES = DEFAULT == VALUES; var VALUES_BUG = false; var proto = Base.prototype; var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; var $default = (!BUGGY && $native) || getMethod(DEFAULT); var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; var methods, key, IteratorPrototype; // Fix native if ($anyNative) { IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; $default = function values() { return $native.call(this); }; } // Define iterator if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if (DEFAULT) { methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if (FORCED) for (key in methods) { if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function (done, value) { return { value: value, done: !!done }; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = true; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js": /*!**********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js ***! \**********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var META = __webpack_require__(/*! ./_uid */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js")('meta'); var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var setDesc = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js").f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !__webpack_require__(/*! ./_fails */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js")(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function (it) { setDesc(it, META, { value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs } }); }; var fastKey = function (it, create) { // return primitive with prefix if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return 'F'; // not necessary to add metadata if (!create) return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; var getWeak = function (it, create) { if (!has(it, META)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return true; // not necessary to add metadata if (!create) return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function (it) { if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js": /*!*******************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js ***! \*******************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.2.1 Object.assign(target, source, ...) var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js"); var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js"); var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js"); var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js"); var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js"); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(/*! ./_fails */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js")(function () { var A = {}; var B = {}; // eslint-disable-next-line no-undef var S = Symbol(); var K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function (k) { B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars var T = toObject(target); var aLen = arguments.length; var index = 1; var getSymbols = gOPS.f; var isEnum = pIE.f; while (aLen > index) { var S = IObject(arguments[index++]); var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); var length = keys.length; var j = 0; var key; while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; } return T; } : $assign; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js": /*!*******************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js ***! \*******************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js"); var dPs = __webpack_require__(/*! ./_object-dps */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js"); var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js"); var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = __webpack_require__(/*! ./_dom-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js")('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__(/*! ./_html */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js").appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : dPs(result, Properties); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js"); var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js"); var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js"); var dP = Object.defineProperty; exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js"); var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js"); var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js"); module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; var i = 0; var P; while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js"); var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js"); var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js"); var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js"); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js": /*!*********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js ***! \*********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js").f; var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return gOPN(it); } catch (e) { return windowNames.slice(); } }; module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js"); var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js"); var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); var ObjectProto = Object.prototype; module.exports = Object.getPrototypeOf || function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js": /*!**************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js ***! \**************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js")(false); var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO'); module.exports = function (object, names) { var O = toIObject(object); var i = 0; var result = []; var key; for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js": /*!*****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js ***! \*****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js"); var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js"); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js": /*!*******************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js ***! \*******************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js": /*!**************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js ***! \**************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js"); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js"); var check = function (O, proto) { anObject(O); if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line function (test, buggy, set) { try { set = __webpack_require__(/*! ./_ctx */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); } catch (e) { buggy = true; } return function setPrototypeOf(O, proto) { check(O, proto); if (buggy) O.__proto__ = proto; else set(O, proto); return O; }; }({}, false) : undefined), check: check }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js": /*!***********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js ***! \***********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js").f; var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js")('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(/*! ./_shared */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js")('keys'); var uid = __webpack_require__(/*! ./_uid */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js"); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js": /*!************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js ***! \************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js"); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); module.exports = function (key) { return store[key] || (store[key] = {}); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js"); var defined = __webpack_require__(/*! ./_defined */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js"); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { return function (that, pos) { var s = String(defined(that)); var i = toInteger(pos); var l = s.length; var a, b; if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js": /*!***********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js ***! \***********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js"); var max = Math.max; var min = Math.min; module.exports = function (index, length) { index = toInteger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; module.exports = function (it) { return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js"); var defined = __webpack_require__(/*! ./_defined */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js"); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js"); var min = Math.min; module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(/*! ./_defined */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js"); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js": /*!******************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js ***! \******************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { if (!isObject(it)) return it; var fn, val; if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js": /*!*********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js": /*!****************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js ***! \****************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js"); var core = __webpack_require__(/*! ./_core */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js"); var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js"); var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js"); var defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js").f; module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); }; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js": /*!*************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js ***! \*************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js"); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js": /*!*********************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js ***! \*********************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(/*! ./_shared */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js")('wks'); var uid = __webpack_require__(/*! ./_uid */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js"); var Symbol = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js").Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js": /*!***********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js ***! \***********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js"); var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js"); var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js"); var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(/*! ./_iter-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) { this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function () { var O = this._t; var kind = this._k; var index = this._i++; if (!O || index >= O.length) { this._t = undefined; return step(1); } if (kind == 'keys') return step(0, index); if (kind == 'values') return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js": /*!**********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js ***! \**********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); $export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js") }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js": /*!**********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js ***! \**********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) $export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js") }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js": /*!*******************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js ***! \*******************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) $export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js").f }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js": /*!********************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***! \********************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.19 Object.setPrototypeOf(O, proto) var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js").set }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js": /*!*************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.to-string.js ***! \*************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js": /*!************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js ***! \************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js")(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(/*! ./_iter-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () { var O = this._t; var index = this._i; var point; if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; return { value: point, done: false }; }); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js": /*!***************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js ***! \***************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // ECMAScript 6 symbols shim var global = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js"); var has = __webpack_require__(/*! ./_has */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js"); var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js"); var $export = __webpack_require__(/*! ./_export */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js"); var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js"); var META = __webpack_require__(/*! ./_meta */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js").KEY; var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js"); var shared = __webpack_require__(/*! ./_shared */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js"); var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js"); var uid = __webpack_require__(/*! ./_uid */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js"); var wks = __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js"); var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js"); var wksDefine = __webpack_require__(/*! ./_wks-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js"); var enumKeys = __webpack_require__(/*! ./_enum-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js"); var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js"); var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js"); var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js"); var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js"); var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js"); var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js"); var _create = __webpack_require__(/*! ./_object-create */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js"); var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js"); var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js"); var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js"); var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js"); var gOPD = $GOPD.f; var dP = $DP.f; var gOPN = gOPNExt.f; var $Symbol = global.Symbol; var $JSON = global.JSON; var _stringify = $JSON && $JSON.stringify; var PROTOTYPE = 'prototype'; var HIDDEN = wks('_hidden'); var TO_PRIMITIVE = wks('toPrimitive'); var isEnum = {}.propertyIsEnumerable; var SymbolRegistry = shared('symbol-registry'); var AllSymbols = shared('symbols'); var OPSymbols = shared('op-symbols'); var ObjectProto = Object[PROTOTYPE]; var USE_NATIVE = typeof $Symbol == 'function'; var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = DESCRIPTORS && $fails(function () { return _create(dP({}, 'a', { get: function () { return dP(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (it, key, D) { var protoDesc = gOPD(ObjectProto, key); if (protoDesc) delete ObjectProto[key]; dP(it, key, D); if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); } : dP; var wrap = function (tag) { var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); sym._k = tag; return sym; }; var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { return typeof it == 'symbol'; } : function (it) { return it instanceof $Symbol; }; var $defineProperty = function defineProperty(it, key, D) { if (it === ObjectProto) $defineProperty(OPSymbols, key, D); anObject(it); key = toPrimitive(key, true); anObject(D); if (has(AllSymbols, key)) { if (!D.enumerable) { if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; D = _create(D, { enumerable: createDesc(0, false) }); } return setSymbolDesc(it, key, D); } return dP(it, key, D); }; var $defineProperties = function defineProperties(it, P) { anObject(it); var keys = enumKeys(P = toIObject(P)); var i = 0; var l = keys.length; var key; while (l > i) $defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P) { return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key) { var E = isEnum.call(this, key = toPrimitive(key, true)); if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { it = toIObject(it); key = toPrimitive(key, true); if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; var D = gOPD(it, key); if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it) { var names = gOPN(toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); } return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { var IS_OP = it === ObjectProto; var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) if (!USE_NATIVE) { $Symbol = function Symbol() { if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); var tag = uid(arguments.length > 0 ? arguments[0] : undefined); var $set = function (value) { if (this === ObjectProto) $set.call(OPSymbols, value); if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); }; if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); return wrap(tag); }; redefine($Symbol[PROTOTYPE], 'toString', function toString() { return this._k; }); $GOPD.f = $getOwnPropertyDescriptor; $DP.f = $defineProperty; __webpack_require__(/*! ./_object-gopn */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames; __webpack_require__(/*! ./_object-pie */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable; __webpack_require__(/*! ./_object-gops */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js").f = $getOwnPropertySymbols; if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js")) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } wksExt.f = function (name) { return wrap(wks(name)); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); for (var es6Symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) 'for': function (key) { return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; }, useSetter: function () { setter = true; }, useSimple: function () { setter = false; } }); $export($export.S + $export.F * !USE_NATIVE, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); $replacer = replacer = args[1]; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; return _stringify.apply($JSON, args); } }); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js": /*!******************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***! \******************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./_wks-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js")('asyncIterator'); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js": /*!**************************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js ***! \**************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./_wks-define */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js")('observable'); /***/ }), /***/ "./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js": /*!*********************************************************************************************!*\ !*** ./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js ***! \*********************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js"); var global = __webpack_require__(/*! ./_global */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js"); var hide = __webpack_require__(/*! ./_hide */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js"); var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js"); var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js")('toStringTag'); var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 'TextTrackList,TouchList').split(','); for (var i = 0; i < DOMIterables.length; i++) { var NAME = DOMIterables[i]; var Collection = global[NAME]; var proto = Collection && Collection.prototype; if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = Iterators.Array; } /***/ }), /***/ "./node_modules/babel-runtime/regenerator/index.js": /*!*********************************************************!*\ !*** ./node_modules/babel-runtime/regenerator/index.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/regenerator-runtime/runtime-module.js"); /***/ }), /***/ "./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js": /*!*******************************************************************!*\ !*** ./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js ***! \*******************************************************************/ /*! dynamic exports provided */ /*! exports used: decode */ /***/ (function(module, exports) { /* * base64-arraybuffer * https://github.com/niklasvh/base64-arraybuffer * * Copyright (c) 2012 Niklas von Hertzen * Licensed under the MIT license. */ (function(){ "use strict"; var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; // Use a lookup table to find the index. var lookup = new Uint8Array(256); for (var i = 0; i < chars.length; i++) { lookup[chars.charCodeAt(i)] = i; } exports.encode = function(arraybuffer) { var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = ""; for (i = 0; i < len; i+=3) { base64 += chars[bytes[i] >> 2]; base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; base64 += chars[bytes[i + 2] & 63]; } if ((len % 3) === 2) { base64 = base64.substring(0, base64.length - 1) + "="; } else if (len % 3 === 1) { base64 = base64.substring(0, base64.length - 2) + "=="; } return base64; }; exports.decode = function(base64) { var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4; if (base64[base64.length - 1] === "=") { bufferLength--; if (base64[base64.length - 2] === "=") { bufferLength--; } } var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer); for (i = 0; i < len; i+=4) { encoded1 = lookup[base64.charCodeAt(i)]; encoded2 = lookup[base64.charCodeAt(i+1)]; encoded3 = lookup[base64.charCodeAt(i+2)]; encoded4 = lookup[base64.charCodeAt(i+3)]; bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); } return arraybuffer; }; })(); /***/ }), /***/ "./node_modules/base64-js/index.js": /*!*****************************************!*\ !*** ./node_modules/base64-js/index.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.byteLength = byteLength exports.toByteArray = toByteArray exports.fromByteArray = fromByteArray var lookup = [] var revLookup = [] var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i] revLookup[code.charCodeAt(i)] = i } revLookup['-'.charCodeAt(0)] = 62 revLookup['_'.charCodeAt(0)] = 63 function placeHoldersCount (b64) { var len = b64.length if (len % 4 > 0) { throw new Error('Invalid string. Length must be a multiple of 4') } // the number of equal signs (place holders) // if there are two placeholders, than the two characters before it // represent one byte // if there is only one, then the three characters before it represent 2 bytes // this is just a cheap hack to not do indexOf twice return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 } function byteLength (b64) { // base64 is 4/3 + up to two characters of the original data return (b64.length * 3 / 4) - placeHoldersCount(b64) } function toByteArray (b64) { var i, l, tmp, placeHolders, arr var len = b64.length placeHolders = placeHoldersCount(b64) arr = new Arr((len * 3 / 4) - placeHolders) // if there are placeholders, only get up to the last complete 4 chars l = placeHolders > 0 ? len - 4 : len var L = 0 for (i = 0; i < l; i += 4) { tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] arr[L++] = (tmp >> 16) & 0xFF arr[L++] = (tmp >> 8) & 0xFF arr[L++] = tmp & 0xFF } if (placeHolders === 2) { tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) arr[L++] = tmp & 0xFF } else if (placeHolders === 1) { tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) arr[L++] = (tmp >> 8) & 0xFF arr[L++] = tmp & 0xFF } return arr } function tripletToBase64 (num) { return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] } function encodeChunk (uint8, start, end) { var tmp var output = [] for (var i = start; i < end; i += 3) { tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) output.push(tripletToBase64(tmp)) } return output.join('') } function fromByteArray (uint8) { var tmp var len = uint8.length var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes var output = '' var parts = [] var maxChunkLength = 16383 // must be multiple of 3 // go through the array every three bytes, we'll deal with trailing stuff later for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) } // pad the end with zeros, but make sure to not forget the extra bytes if (extraBytes === 1) { tmp = uint8[len - 1] output += lookup[tmp >> 2] output += lookup[(tmp << 4) & 0x3F] output += '==' } else if (extraBytes === 2) { tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) output += lookup[tmp >> 10] output += lookup[(tmp >> 4) & 0x3F] output += lookup[(tmp << 2) & 0x3F] output += '=' } parts.push(output) return parts.join('') } /***/ }), /***/ "./node_modules/bn.js/lib/bn.js": /*!**************************************!*\ !*** ./node_modules/bn.js/lib/bn.js ***! \**************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) { 'use strict'; // Utils function assert (val, msg) { if (!val) throw new Error(msg || 'Assertion failed'); } // Could use `inherits` module, but don't want to move from single file // architecture yet. function inherits (ctor, superCtor) { ctor.super_ = superCtor; var TempCtor = function () {}; TempCtor.prototype = superCtor.prototype; ctor.prototype = new TempCtor(); ctor.prototype.constructor = ctor; } // BN function BN (number, base, endian) { if (BN.isBN(number)) { return number; } this.negative = 0; this.words = null; this.length = 0; // Reduction context this.red = null; if (number !== null) { if (base === 'le' || base === 'be') { endian = base; base = 10; } this._init(number || 0, base || 10, endian || 'be'); } } if (typeof module === 'object') { module.exports = BN; } else { exports.BN = BN; } BN.BN = BN; BN.wordSize = 26; var Buffer; try { Buffer = __webpack_require__(/*! buffer */ 3).Buffer; } catch (e) { } BN.isBN = function isBN (num) { if (num instanceof BN) { return true; } return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); }; BN.max = function max (left, right) { if (left.cmp(right) > 0) return left; return right; }; BN.min = function min (left, right) { if (left.cmp(right) < 0) return left; return right; }; BN.prototype._init = function init (number, base, endian) { if (typeof number === 'number') { return this._initNumber(number, base, endian); } if (typeof number === 'object') { return this._initArray(number, base, endian); } if (base === 'hex') { base = 16; } assert(base === (base | 0) && base >= 2 && base <= 36); number = number.toString().replace(/\s+/g, ''); var start = 0; if (number[0] === '-') { start++; } if (base === 16) { this._parseHex(number, start); } else { this._parseBase(number, base, start); } if (number[0] === '-') { this.negative = 1; } this.strip(); if (endian !== 'le') return; this._initArray(this.toArray(), base, endian); }; BN.prototype._initNumber = function _initNumber (number, base, endian) { if (number < 0) { this.negative = 1; number = -number; } if (number < 0x4000000) { this.words = [ number & 0x3ffffff ]; this.length = 1; } else if (number < 0x10000000000000) { this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff ]; this.length = 2; } else { assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) this.words = [ number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, 1 ]; this.length = 3; } if (endian !== 'le') return; // Reverse the bytes this._initArray(this.toArray(), base, endian); }; BN.prototype._initArray = function _initArray (number, base, endian) { // Perhaps a Uint8Array assert(typeof number.length === 'number'); if (number.length <= 0) { this.words = [ 0 ]; this.length = 1; return this; } this.length = Math.ceil(number.length / 3); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; var off = 0; if (endian === 'be') { for (i = number.length - 1, j = 0; i >= 0; i -= 3) { w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } else if (endian === 'le') { for (i = 0, j = 0; i < number.length; i += 3) { w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; off += 24; if (off >= 26) { off -= 26; j++; } } } return this.strip(); }; function parseHex (str, start, end) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r <<= 4; // 'a' - 'f' if (c >= 49 && c <= 54) { r |= c - 49 + 0xa; // 'A' - 'F' } else if (c >= 17 && c <= 22) { r |= c - 17 + 0xa; // '0' - '9' } else { r |= c & 0xf; } } return r; } BN.prototype._parseHex = function _parseHex (number, start) { // Create possibly bigger array to ensure that it fits the number this.length = Math.ceil((number.length - start) / 6); this.words = new Array(this.length); for (var i = 0; i < this.length; i++) { this.words[i] = 0; } var j, w; // Scan 24-bit chunks and add them to the number var off = 0; for (i = number.length - 6, j = 0; i >= start; i -= 6) { w = parseHex(number, i, i + 6); this.words[j] |= (w << off) & 0x3ffffff; // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; off += 24; if (off >= 26) { off -= 26; j++; } } if (i + 6 !== start) { w = parseHex(number, start, i + 6); this.words[j] |= (w << off) & 0x3ffffff; this.words[j + 1] |= w >>> (26 - off) & 0x3fffff; } this.strip(); }; function parseBase (str, start, end, mul) { var r = 0; var len = Math.min(str.length, end); for (var i = start; i < len; i++) { var c = str.charCodeAt(i) - 48; r *= mul; // 'a' if (c >= 49) { r += c - 49 + 0xa; // 'A' } else if (c >= 17) { r += c - 17 + 0xa; // '0' - '9' } else { r += c; } } return r; } BN.prototype._parseBase = function _parseBase (number, base, start) { // Initialize as zero this.words = [ 0 ]; this.length = 1; // Find length of limb in base for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { limbLen++; } limbLen--; limbPow = (limbPow / base) | 0; var total = number.length - start; var mod = total % limbLen; var end = Math.min(total, total - mod) + start; var word = 0; for (var i = start; i < end; i += limbLen) { word = parseBase(number, i, i + limbLen, base); this.imuln(limbPow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } if (mod !== 0) { var pow = 1; word = parseBase(number, i, number.length, base); for (i = 0; i < mod; i++) { pow *= base; } this.imuln(pow); if (this.words[0] + word < 0x4000000) { this.words[0] += word; } else { this._iaddn(word); } } }; BN.prototype.copy = function copy (dest) { dest.words = new Array(this.length); for (var i = 0; i < this.length; i++) { dest.words[i] = this.words[i]; } dest.length = this.length; dest.negative = this.negative; dest.red = this.red; }; BN.prototype.clone = function clone () { var r = new BN(null); this.copy(r); return r; }; BN.prototype._expand = function _expand (size) { while (this.length < size) { this.words[this.length++] = 0; } return this; }; // Remove leading `0` from `this` BN.prototype.strip = function strip () { while (this.length > 1 && this.words[this.length - 1] === 0) { this.length--; } return this._normSign(); }; BN.prototype._normSign = function _normSign () { // -0 = 0 if (this.length === 1 && this.words[0] === 0) { this.negative = 0; } return this; }; BN.prototype.inspect = function inspect () { return (this.red ? ''; }; /* var zeros = []; var groupSizes = []; var groupBases = []; var s = ''; var i = -1; while (++i < BN.wordSize) { zeros[i] = s; s += '0'; } groupSizes[0] = 0; groupSizes[1] = 0; groupBases[0] = 0; groupBases[1] = 0; var base = 2 - 1; while (++base < 36 + 1) { var groupSize = 0; var groupBase = 1; while (groupBase < (1 << BN.wordSize) / base) { groupBase *= base; groupSize += 1; } groupSizes[base] = groupSize; groupBases[base] = groupBase; } */ var zeros = [ '', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000' ]; var groupSizes = [ 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ]; var groupBases = [ 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 ]; BN.prototype.toString = function toString (base, padding) { base = base || 10; padding = padding | 0 || 1; var out; if (base === 16 || base === 'hex') { out = ''; var off = 0; var carry = 0; for (var i = 0; i < this.length; i++) { var w = this.words[i]; var word = (((w << off) | carry) & 0xffffff).toString(16); carry = (w >>> (24 - off)) & 0xffffff; if (carry !== 0 || i !== this.length - 1) { out = zeros[6 - word.length] + word + out; } else { out = word + out; } off += 2; if (off >= 26) { off -= 26; i--; } } if (carry !== 0) { out = carry.toString(16) + out; } while (out.length % padding !== 0) { out = '0' + out; } if (this.negative !== 0) { out = '-' + out; } return out; } if (base === (base | 0) && base >= 2 && base <= 36) { // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize); var groupBase = groupBases[base]; out = ''; var c = this.clone(); c.negative = 0; while (!c.isZero()) { var r = c.modn(groupBase).toString(base); c = c.idivn(groupBase); if (!c.isZero()) { out = zeros[groupSize - r.length] + r + out; } else { out = r + out; } } if (this.isZero()) { out = '0' + out; } while (out.length % padding !== 0) { out = '0' + out; } if (this.negative !== 0) { out = '-' + out; } return out; } assert(false, 'Base should be between 2 and 36'); }; BN.prototype.toNumber = function toNumber () { var ret = this.words[0]; if (this.length === 2) { ret += this.words[1] * 0x4000000; } else if (this.length === 3 && this.words[2] === 0x01) { // NOTE: at this stage it is known that the top bit is set ret += 0x10000000000000 + (this.words[1] * 0x4000000); } else if (this.length > 2) { assert(false, 'Number can only safely store up to 53 bits'); } return (this.negative !== 0) ? -ret : ret; }; BN.prototype.toJSON = function toJSON () { return this.toString(16); }; BN.prototype.toBuffer = function toBuffer (endian, length) { assert(typeof Buffer !== 'undefined'); return this.toArrayLike(Buffer, endian, length); }; BN.prototype.toArray = function toArray (endian, length) { return this.toArrayLike(Array, endian, length); }; BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { var byteLength = this.byteLength(); var reqLength = length || Math.max(1, byteLength); assert(byteLength <= reqLength, 'byte array longer than desired length'); assert(reqLength > 0, 'Requested array length <= 0'); this.strip(); var littleEndian = endian === 'le'; var res = new ArrayType(reqLength); var b, i; var q = this.clone(); if (!littleEndian) { // Assume big-endian for (i = 0; i < reqLength - byteLength; i++) { res[i] = 0; } for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[reqLength - i - 1] = b; } } else { for (i = 0; !q.isZero(); i++) { b = q.andln(0xff); q.iushrn(8); res[i] = b; } for (; i < reqLength; i++) { res[i] = 0; } } return res; }; if (Math.clz32) { BN.prototype._countBits = function _countBits (w) { return 32 - Math.clz32(w); }; } else { BN.prototype._countBits = function _countBits (w) { var t = w; var r = 0; if (t >= 0x1000) { r += 13; t >>>= 13; } if (t >= 0x40) { r += 7; t >>>= 7; } if (t >= 0x8) { r += 4; t >>>= 4; } if (t >= 0x02) { r += 2; t >>>= 2; } return r + t; }; } BN.prototype._zeroBits = function _zeroBits (w) { // Short-cut if (w === 0) return 26; var t = w; var r = 0; if ((t & 0x1fff) === 0) { r += 13; t >>>= 13; } if ((t & 0x7f) === 0) { r += 7; t >>>= 7; } if ((t & 0xf) === 0) { r += 4; t >>>= 4; } if ((t & 0x3) === 0) { r += 2; t >>>= 2; } if ((t & 0x1) === 0) { r++; } return r; }; // Return number of used bits in a BN BN.prototype.bitLength = function bitLength () { var w = this.words[this.length - 1]; var hi = this._countBits(w); return (this.length - 1) * 26 + hi; }; function toBitArray (num) { var w = new Array(num.bitLength()); for (var bit = 0; bit < w.length; bit++) { var off = (bit / 26) | 0; var wbit = bit % 26; w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; } return w; } // Number of trailing zero bits BN.prototype.zeroBits = function zeroBits () { if (this.isZero()) return 0; var r = 0; for (var i = 0; i < this.length; i++) { var b = this._zeroBits(this.words[i]); r += b; if (b !== 26) break; } return r; }; BN.prototype.byteLength = function byteLength () { return Math.ceil(this.bitLength() / 8); }; BN.prototype.toTwos = function toTwos (width) { if (this.negative !== 0) { return this.abs().inotn(width).iaddn(1); } return this.clone(); }; BN.prototype.fromTwos = function fromTwos (width) { if (this.testn(width - 1)) { return this.notn(width).iaddn(1).ineg(); } return this.clone(); }; BN.prototype.isNeg = function isNeg () { return this.negative !== 0; }; // Return negative clone of `this` BN.prototype.neg = function neg () { return this.clone().ineg(); }; BN.prototype.ineg = function ineg () { if (!this.isZero()) { this.negative ^= 1; } return this; }; // Or `num` with `this` in-place BN.prototype.iuor = function iuor (num) { while (this.length < num.length) { this.words[this.length++] = 0; } for (var i = 0; i < num.length; i++) { this.words[i] = this.words[i] | num.words[i]; } return this.strip(); }; BN.prototype.ior = function ior (num) { assert((this.negative | num.negative) === 0); return this.iuor(num); }; // Or `num` with `this` BN.prototype.or = function or (num) { if (this.length > num.length) return this.clone().ior(num); return num.clone().ior(this); }; BN.prototype.uor = function uor (num) { if (this.length > num.length) return this.clone().iuor(num); return num.clone().iuor(this); }; // And `num` with `this` in-place BN.prototype.iuand = function iuand (num) { // b = min-length(num, this) var b; if (this.length > num.length) { b = num; } else { b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = this.words[i] & num.words[i]; } this.length = b.length; return this.strip(); }; BN.prototype.iand = function iand (num) { assert((this.negative | num.negative) === 0); return this.iuand(num); }; // And `num` with `this` BN.prototype.and = function and (num) { if (this.length > num.length) return this.clone().iand(num); return num.clone().iand(this); }; BN.prototype.uand = function uand (num) { if (this.length > num.length) return this.clone().iuand(num); return num.clone().iuand(this); }; // Xor `num` with `this` in-place BN.prototype.iuxor = function iuxor (num) { // a.length > b.length var a; var b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } for (var i = 0; i < b.length; i++) { this.words[i] = a.words[i] ^ b.words[i]; } if (this !== a) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = a.length; return this.strip(); }; BN.prototype.ixor = function ixor (num) { assert((this.negative | num.negative) === 0); return this.iuxor(num); }; // Xor `num` with `this` BN.prototype.xor = function xor (num) { if (this.length > num.length) return this.clone().ixor(num); return num.clone().ixor(this); }; BN.prototype.uxor = function uxor (num) { if (this.length > num.length) return this.clone().iuxor(num); return num.clone().iuxor(this); }; // Not ``this`` with ``width`` bitwidth BN.prototype.inotn = function inotn (width) { assert(typeof width === 'number' && width >= 0); var bytesNeeded = Math.ceil(width / 26) | 0; var bitsLeft = width % 26; // Extend the buffer with leading zeroes this._expand(bytesNeeded); if (bitsLeft > 0) { bytesNeeded--; } // Handle complete words for (var i = 0; i < bytesNeeded; i++) { this.words[i] = ~this.words[i] & 0x3ffffff; } // Handle the residue if (bitsLeft > 0) { this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); } // And remove leading zeroes return this.strip(); }; BN.prototype.notn = function notn (width) { return this.clone().inotn(width); }; // Set `bit` of `this` BN.prototype.setn = function setn (bit, val) { assert(typeof bit === 'number' && bit >= 0); var off = (bit / 26) | 0; var wbit = bit % 26; this._expand(off + 1); if (val) { this.words[off] = this.words[off] | (1 << wbit); } else { this.words[off] = this.words[off] & ~(1 << wbit); } return this.strip(); }; // Add `num` to `this` in-place BN.prototype.iadd = function iadd (num) { var r; // negative + positive if (this.negative !== 0 && num.negative === 0) { this.negative = 0; r = this.isub(num); this.negative ^= 1; return this._normSign(); // positive + negative } else if (this.negative === 0 && num.negative !== 0) { num.negative = 0; r = this.isub(num); num.negative = 1; return r._normSign(); } // a.length > b.length var a, b; if (this.length > num.length) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) + (b.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; this.words[i] = r & 0x3ffffff; carry = r >>> 26; } this.length = a.length; if (carry !== 0) { this.words[this.length] = carry; this.length++; // Copy the rest of the words } else if (a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } return this; }; // Add `num` to `this` BN.prototype.add = function add (num) { var res; if (num.negative !== 0 && this.negative === 0) { num.negative = 0; res = this.sub(num); num.negative ^= 1; return res; } else if (num.negative === 0 && this.negative !== 0) { this.negative = 0; res = num.sub(this); this.negative = 1; return res; } if (this.length > num.length) return this.clone().iadd(num); return num.clone().iadd(this); }; // Subtract `num` from `this` in-place BN.prototype.isub = function isub (num) { // this - (-num) = this + num if (num.negative !== 0) { num.negative = 0; var r = this.iadd(num); num.negative = 1; return r._normSign(); // -this - num = -(this + num) } else if (this.negative !== 0) { this.negative = 0; this.iadd(num); this.negative = 1; return this._normSign(); } // At this point both numbers are positive var cmp = this.cmp(num); // Optimization - zeroify if (cmp === 0) { this.negative = 0; this.length = 1; this.words[0] = 0; return this; } // a > b var a, b; if (cmp > 0) { a = this; b = num; } else { a = num; b = this; } var carry = 0; for (var i = 0; i < b.length; i++) { r = (a.words[i] | 0) - (b.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } for (; carry !== 0 && i < a.length; i++) { r = (a.words[i] | 0) + carry; carry = r >> 26; this.words[i] = r & 0x3ffffff; } // Copy rest of the words if (carry === 0 && i < a.length && a !== this) { for (; i < a.length; i++) { this.words[i] = a.words[i]; } } this.length = Math.max(this.length, i); if (a !== this) { this.negative = 1; } return this.strip(); }; // Subtract `num` from `this` BN.prototype.sub = function sub (num) { return this.clone().isub(num); }; function smallMulTo (self, num, out) { out.negative = num.negative ^ self.negative; var len = (self.length + num.length) | 0; out.length = len; len = (len - 1) | 0; // Peel one iteration (compiler can't do it, because of code complexity) var a = self.words[0] | 0; var b = num.words[0] | 0; var r = a * b; var lo = r & 0x3ffffff; var carry = (r / 0x4000000) | 0; out.words[0] = lo; for (var k = 1; k < len; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = carry >>> 26; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = (k - j) | 0; a = self.words[i] | 0; b = num.words[j] | 0; r = a * b + rword; ncarry += (r / 0x4000000) | 0; rword = r & 0x3ffffff; } out.words[k] = rword | 0; carry = ncarry | 0; } if (carry !== 0) { out.words[k] = carry | 0; } else { out.length--; } return out.strip(); } // TODO(indutny): it may be reasonable to omit it for users who don't need // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit // multiplication (like elliptic secp256k1). var comb10MulTo = function comb10MulTo (self, num, out) { var a = self.words; var b = num.words; var o = out.words; var c = 0; var lo; var mid; var hi; var a0 = a[0] | 0; var al0 = a0 & 0x1fff; var ah0 = a0 >>> 13; var a1 = a[1] | 0; var al1 = a1 & 0x1fff; var ah1 = a1 >>> 13; var a2 = a[2] | 0; var al2 = a2 & 0x1fff; var ah2 = a2 >>> 13; var a3 = a[3] | 0; var al3 = a3 & 0x1fff; var ah3 = a3 >>> 13; var a4 = a[4] | 0; var al4 = a4 & 0x1fff; var ah4 = a4 >>> 13; var a5 = a[5] | 0; var al5 = a5 & 0x1fff; var ah5 = a5 >>> 13; var a6 = a[6] | 0; var al6 = a6 & 0x1fff; var ah6 = a6 >>> 13; var a7 = a[7] | 0; var al7 = a7 & 0x1fff; var ah7 = a7 >>> 13; var a8 = a[8] | 0; var al8 = a8 & 0x1fff; var ah8 = a8 >>> 13; var a9 = a[9] | 0; var al9 = a9 & 0x1fff; var ah9 = a9 >>> 13; var b0 = b[0] | 0; var bl0 = b0 & 0x1fff; var bh0 = b0 >>> 13; var b1 = b[1] | 0; var bl1 = b1 & 0x1fff; var bh1 = b1 >>> 13; var b2 = b[2] | 0; var bl2 = b2 & 0x1fff; var bh2 = b2 >>> 13; var b3 = b[3] | 0; var bl3 = b3 & 0x1fff; var bh3 = b3 >>> 13; var b4 = b[4] | 0; var bl4 = b4 & 0x1fff; var bh4 = b4 >>> 13; var b5 = b[5] | 0; var bl5 = b5 & 0x1fff; var bh5 = b5 >>> 13; var b6 = b[6] | 0; var bl6 = b6 & 0x1fff; var bh6 = b6 >>> 13; var b7 = b[7] | 0; var bl7 = b7 & 0x1fff; var bh7 = b7 >>> 13; var b8 = b[8] | 0; var bl8 = b8 & 0x1fff; var bh8 = b8 >>> 13; var b9 = b[9] | 0; var bl9 = b9 & 0x1fff; var bh9 = b9 >>> 13; out.negative = self.negative ^ num.negative; out.length = 19; /* k = 0 */ lo = Math.imul(al0, bl0); mid = Math.imul(al0, bh0); mid = (mid + Math.imul(ah0, bl0)) | 0; hi = Math.imul(ah0, bh0); var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; w0 &= 0x3ffffff; /* k = 1 */ lo = Math.imul(al1, bl0); mid = Math.imul(al1, bh0); mid = (mid + Math.imul(ah1, bl0)) | 0; hi = Math.imul(ah1, bh0); lo = (lo + Math.imul(al0, bl1)) | 0; mid = (mid + Math.imul(al0, bh1)) | 0; mid = (mid + Math.imul(ah0, bl1)) | 0; hi = (hi + Math.imul(ah0, bh1)) | 0; var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; w1 &= 0x3ffffff; /* k = 2 */ lo = Math.imul(al2, bl0); mid = Math.imul(al2, bh0); mid = (mid + Math.imul(ah2, bl0)) | 0; hi = Math.imul(ah2, bh0); lo = (lo + Math.imul(al1, bl1)) | 0; mid = (mid + Math.imul(al1, bh1)) | 0; mid = (mid + Math.imul(ah1, bl1)) | 0; hi = (hi + Math.imul(ah1, bh1)) | 0; lo = (lo + Math.imul(al0, bl2)) | 0; mid = (mid + Math.imul(al0, bh2)) | 0; mid = (mid + Math.imul(ah0, bl2)) | 0; hi = (hi + Math.imul(ah0, bh2)) | 0; var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; w2 &= 0x3ffffff; /* k = 3 */ lo = Math.imul(al3, bl0); mid = Math.imul(al3, bh0); mid = (mid + Math.imul(ah3, bl0)) | 0; hi = Math.imul(ah3, bh0); lo = (lo + Math.imul(al2, bl1)) | 0; mid = (mid + Math.imul(al2, bh1)) | 0; mid = (mid + Math.imul(ah2, bl1)) | 0; hi = (hi + Math.imul(ah2, bh1)) | 0; lo = (lo + Math.imul(al1, bl2)) | 0; mid = (mid + Math.imul(al1, bh2)) | 0; mid = (mid + Math.imul(ah1, bl2)) | 0; hi = (hi + Math.imul(ah1, bh2)) | 0; lo = (lo + Math.imul(al0, bl3)) | 0; mid = (mid + Math.imul(al0, bh3)) | 0; mid = (mid + Math.imul(ah0, bl3)) | 0; hi = (hi + Math.imul(ah0, bh3)) | 0; var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; w3 &= 0x3ffffff; /* k = 4 */ lo = Math.imul(al4, bl0); mid = Math.imul(al4, bh0); mid = (mid + Math.imul(ah4, bl0)) | 0; hi = Math.imul(ah4, bh0); lo = (lo + Math.imul(al3, bl1)) | 0; mid = (mid + Math.imul(al3, bh1)) | 0; mid = (mid + Math.imul(ah3, bl1)) | 0; hi = (hi + Math.imul(ah3, bh1)) | 0; lo = (lo + Math.imul(al2, bl2)) | 0; mid = (mid + Math.imul(al2, bh2)) | 0; mid = (mid + Math.imul(ah2, bl2)) | 0; hi = (hi + Math.imul(ah2, bh2)) | 0; lo = (lo + Math.imul(al1, bl3)) | 0; mid = (mid + Math.imul(al1, bh3)) | 0; mid = (mid + Math.imul(ah1, bl3)) | 0; hi = (hi + Math.imul(ah1, bh3)) | 0; lo = (lo + Math.imul(al0, bl4)) | 0; mid = (mid + Math.imul(al0, bh4)) | 0; mid = (mid + Math.imul(ah0, bl4)) | 0; hi = (hi + Math.imul(ah0, bh4)) | 0; var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; w4 &= 0x3ffffff; /* k = 5 */ lo = Math.imul(al5, bl0); mid = Math.imul(al5, bh0); mid = (mid + Math.imul(ah5, bl0)) | 0; hi = Math.imul(ah5, bh0); lo = (lo + Math.imul(al4, bl1)) | 0; mid = (mid + Math.imul(al4, bh1)) | 0; mid = (mid + Math.imul(ah4, bl1)) | 0; hi = (hi + Math.imul(ah4, bh1)) | 0; lo = (lo + Math.imul(al3, bl2)) | 0; mid = (mid + Math.imul(al3, bh2)) | 0; mid = (mid + Math.imul(ah3, bl2)) | 0; hi = (hi + Math.imul(ah3, bh2)) | 0; lo = (lo + Math.imul(al2, bl3)) | 0; mid = (mid + Math.imul(al2, bh3)) | 0; mid = (mid + Math.imul(ah2, bl3)) | 0; hi = (hi + Math.imul(ah2, bh3)) | 0; lo = (lo + Math.imul(al1, bl4)) | 0; mid = (mid + Math.imul(al1, bh4)) | 0; mid = (mid + Math.imul(ah1, bl4)) | 0; hi = (hi + Math.imul(ah1, bh4)) | 0; lo = (lo + Math.imul(al0, bl5)) | 0; mid = (mid + Math.imul(al0, bh5)) | 0; mid = (mid + Math.imul(ah0, bl5)) | 0; hi = (hi + Math.imul(ah0, bh5)) | 0; var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; w5 &= 0x3ffffff; /* k = 6 */ lo = Math.imul(al6, bl0); mid = Math.imul(al6, bh0); mid = (mid + Math.imul(ah6, bl0)) | 0; hi = Math.imul(ah6, bh0); lo = (lo + Math.imul(al5, bl1)) | 0; mid = (mid + Math.imul(al5, bh1)) | 0; mid = (mid + Math.imul(ah5, bl1)) | 0; hi = (hi + Math.imul(ah5, bh1)) | 0; lo = (lo + Math.imul(al4, bl2)) | 0; mid = (mid + Math.imul(al4, bh2)) | 0; mid = (mid + Math.imul(ah4, bl2)) | 0; hi = (hi + Math.imul(ah4, bh2)) | 0; lo = (lo + Math.imul(al3, bl3)) | 0; mid = (mid + Math.imul(al3, bh3)) | 0; mid = (mid + Math.imul(ah3, bl3)) | 0; hi = (hi + Math.imul(ah3, bh3)) | 0; lo = (lo + Math.imul(al2, bl4)) | 0; mid = (mid + Math.imul(al2, bh4)) | 0; mid = (mid + Math.imul(ah2, bl4)) | 0; hi = (hi + Math.imul(ah2, bh4)) | 0; lo = (lo + Math.imul(al1, bl5)) | 0; mid = (mid + Math.imul(al1, bh5)) | 0; mid = (mid + Math.imul(ah1, bl5)) | 0; hi = (hi + Math.imul(ah1, bh5)) | 0; lo = (lo + Math.imul(al0, bl6)) | 0; mid = (mid + Math.imul(al0, bh6)) | 0; mid = (mid + Math.imul(ah0, bl6)) | 0; hi = (hi + Math.imul(ah0, bh6)) | 0; var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; w6 &= 0x3ffffff; /* k = 7 */ lo = Math.imul(al7, bl0); mid = Math.imul(al7, bh0); mid = (mid + Math.imul(ah7, bl0)) | 0; hi = Math.imul(ah7, bh0); lo = (lo + Math.imul(al6, bl1)) | 0; mid = (mid + Math.imul(al6, bh1)) | 0; mid = (mid + Math.imul(ah6, bl1)) | 0; hi = (hi + Math.imul(ah6, bh1)) | 0; lo = (lo + Math.imul(al5, bl2)) | 0; mid = (mid + Math.imul(al5, bh2)) | 0; mid = (mid + Math.imul(ah5, bl2)) | 0; hi = (hi + Math.imul(ah5, bh2)) | 0; lo = (lo + Math.imul(al4, bl3)) | 0; mid = (mid + Math.imul(al4, bh3)) | 0; mid = (mid + Math.imul(ah4, bl3)) | 0; hi = (hi + Math.imul(ah4, bh3)) | 0; lo = (lo + Math.imul(al3, bl4)) | 0; mid = (mid + Math.imul(al3, bh4)) | 0; mid = (mid + Math.imul(ah3, bl4)) | 0; hi = (hi + Math.imul(ah3, bh4)) | 0; lo = (lo + Math.imul(al2, bl5)) | 0; mid = (mid + Math.imul(al2, bh5)) | 0; mid = (mid + Math.imul(ah2, bl5)) | 0; hi = (hi + Math.imul(ah2, bh5)) | 0; lo = (lo + Math.imul(al1, bl6)) | 0; mid = (mid + Math.imul(al1, bh6)) | 0; mid = (mid + Math.imul(ah1, bl6)) | 0; hi = (hi + Math.imul(ah1, bh6)) | 0; lo = (lo + Math.imul(al0, bl7)) | 0; mid = (mid + Math.imul(al0, bh7)) | 0; mid = (mid + Math.imul(ah0, bl7)) | 0; hi = (hi + Math.imul(ah0, bh7)) | 0; var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; w7 &= 0x3ffffff; /* k = 8 */ lo = Math.imul(al8, bl0); mid = Math.imul(al8, bh0); mid = (mid + Math.imul(ah8, bl0)) | 0; hi = Math.imul(ah8, bh0); lo = (lo + Math.imul(al7, bl1)) | 0; mid = (mid + Math.imul(al7, bh1)) | 0; mid = (mid + Math.imul(ah7, bl1)) | 0; hi = (hi + Math.imul(ah7, bh1)) | 0; lo = (lo + Math.imul(al6, bl2)) | 0; mid = (mid + Math.imul(al6, bh2)) | 0; mid = (mid + Math.imul(ah6, bl2)) | 0; hi = (hi + Math.imul(ah6, bh2)) | 0; lo = (lo + Math.imul(al5, bl3)) | 0; mid = (mid + Math.imul(al5, bh3)) | 0; mid = (mid + Math.imul(ah5, bl3)) | 0; hi = (hi + Math.imul(ah5, bh3)) | 0; lo = (lo + Math.imul(al4, bl4)) | 0; mid = (mid + Math.imul(al4, bh4)) | 0; mid = (mid + Math.imul(ah4, bl4)) | 0; hi = (hi + Math.imul(ah4, bh4)) | 0; lo = (lo + Math.imul(al3, bl5)) | 0; mid = (mid + Math.imul(al3, bh5)) | 0; mid = (mid + Math.imul(ah3, bl5)) | 0; hi = (hi + Math.imul(ah3, bh5)) | 0; lo = (lo + Math.imul(al2, bl6)) | 0; mid = (mid + Math.imul(al2, bh6)) | 0; mid = (mid + Math.imul(ah2, bl6)) | 0; hi = (hi + Math.imul(ah2, bh6)) | 0; lo = (lo + Math.imul(al1, bl7)) | 0; mid = (mid + Math.imul(al1, bh7)) | 0; mid = (mid + Math.imul(ah1, bl7)) | 0; hi = (hi + Math.imul(ah1, bh7)) | 0; lo = (lo + Math.imul(al0, bl8)) | 0; mid = (mid + Math.imul(al0, bh8)) | 0; mid = (mid + Math.imul(ah0, bl8)) | 0; hi = (hi + Math.imul(ah0, bh8)) | 0; var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; w8 &= 0x3ffffff; /* k = 9 */ lo = Math.imul(al9, bl0); mid = Math.imul(al9, bh0); mid = (mid + Math.imul(ah9, bl0)) | 0; hi = Math.imul(ah9, bh0); lo = (lo + Math.imul(al8, bl1)) | 0; mid = (mid + Math.imul(al8, bh1)) | 0; mid = (mid + Math.imul(ah8, bl1)) | 0; hi = (hi + Math.imul(ah8, bh1)) | 0; lo = (lo + Math.imul(al7, bl2)) | 0; mid = (mid + Math.imul(al7, bh2)) | 0; mid = (mid + Math.imul(ah7, bl2)) | 0; hi = (hi + Math.imul(ah7, bh2)) | 0; lo = (lo + Math.imul(al6, bl3)) | 0; mid = (mid + Math.imul(al6, bh3)) | 0; mid = (mid + Math.imul(ah6, bl3)) | 0; hi = (hi + Math.imul(ah6, bh3)) | 0; lo = (lo + Math.imul(al5, bl4)) | 0; mid = (mid + Math.imul(al5, bh4)) | 0; mid = (mid + Math.imul(ah5, bl4)) | 0; hi = (hi + Math.imul(ah5, bh4)) | 0; lo = (lo + Math.imul(al4, bl5)) | 0; mid = (mid + Math.imul(al4, bh5)) | 0; mid = (mid + Math.imul(ah4, bl5)) | 0; hi = (hi + Math.imul(ah4, bh5)) | 0; lo = (lo + Math.imul(al3, bl6)) | 0; mid = (mid + Math.imul(al3, bh6)) | 0; mid = (mid + Math.imul(ah3, bl6)) | 0; hi = (hi + Math.imul(ah3, bh6)) | 0; lo = (lo + Math.imul(al2, bl7)) | 0; mid = (mid + Math.imul(al2, bh7)) | 0; mid = (mid + Math.imul(ah2, bl7)) | 0; hi = (hi + Math.imul(ah2, bh7)) | 0; lo = (lo + Math.imul(al1, bl8)) | 0; mid = (mid + Math.imul(al1, bh8)) | 0; mid = (mid + Math.imul(ah1, bl8)) | 0; hi = (hi + Math.imul(ah1, bh8)) | 0; lo = (lo + Math.imul(al0, bl9)) | 0; mid = (mid + Math.imul(al0, bh9)) | 0; mid = (mid + Math.imul(ah0, bl9)) | 0; hi = (hi + Math.imul(ah0, bh9)) | 0; var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; w9 &= 0x3ffffff; /* k = 10 */ lo = Math.imul(al9, bl1); mid = Math.imul(al9, bh1); mid = (mid + Math.imul(ah9, bl1)) | 0; hi = Math.imul(ah9, bh1); lo = (lo + Math.imul(al8, bl2)) | 0; mid = (mid + Math.imul(al8, bh2)) | 0; mid = (mid + Math.imul(ah8, bl2)) | 0; hi = (hi + Math.imul(ah8, bh2)) | 0; lo = (lo + Math.imul(al7, bl3)) | 0; mid = (mid + Math.imul(al7, bh3)) | 0; mid = (mid + Math.imul(ah7, bl3)) | 0; hi = (hi + Math.imul(ah7, bh3)) | 0; lo = (lo + Math.imul(al6, bl4)) | 0; mid = (mid + Math.imul(al6, bh4)) | 0; mid = (mid + Math.imul(ah6, bl4)) | 0; hi = (hi + Math.imul(ah6, bh4)) | 0; lo = (lo + Math.imul(al5, bl5)) | 0; mid = (mid + Math.imul(al5, bh5)) | 0; mid = (mid + Math.imul(ah5, bl5)) | 0; hi = (hi + Math.imul(ah5, bh5)) | 0; lo = (lo + Math.imul(al4, bl6)) | 0; mid = (mid + Math.imul(al4, bh6)) | 0; mid = (mid + Math.imul(ah4, bl6)) | 0; hi = (hi + Math.imul(ah4, bh6)) | 0; lo = (lo + Math.imul(al3, bl7)) | 0; mid = (mid + Math.imul(al3, bh7)) | 0; mid = (mid + Math.imul(ah3, bl7)) | 0; hi = (hi + Math.imul(ah3, bh7)) | 0; lo = (lo + Math.imul(al2, bl8)) | 0; mid = (mid + Math.imul(al2, bh8)) | 0; mid = (mid + Math.imul(ah2, bl8)) | 0; hi = (hi + Math.imul(ah2, bh8)) | 0; lo = (lo + Math.imul(al1, bl9)) | 0; mid = (mid + Math.imul(al1, bh9)) | 0; mid = (mid + Math.imul(ah1, bl9)) | 0; hi = (hi + Math.imul(ah1, bh9)) | 0; var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; w10 &= 0x3ffffff; /* k = 11 */ lo = Math.imul(al9, bl2); mid = Math.imul(al9, bh2); mid = (mid + Math.imul(ah9, bl2)) | 0; hi = Math.imul(ah9, bh2); lo = (lo + Math.imul(al8, bl3)) | 0; mid = (mid + Math.imul(al8, bh3)) | 0; mid = (mid + Math.imul(ah8, bl3)) | 0; hi = (hi + Math.imul(ah8, bh3)) | 0; lo = (lo + Math.imul(al7, bl4)) | 0; mid = (mid + Math.imul(al7, bh4)) | 0; mid = (mid + Math.imul(ah7, bl4)) | 0; hi = (hi + Math.imul(ah7, bh4)) | 0; lo = (lo + Math.imul(al6, bl5)) | 0; mid = (mid + Math.imul(al6, bh5)) | 0; mid = (mid + Math.imul(ah6, bl5)) | 0; hi = (hi + Math.imul(ah6, bh5)) | 0; lo = (lo + Math.imul(al5, bl6)) | 0; mid = (mid + Math.imul(al5, bh6)) | 0; mid = (mid + Math.imul(ah5, bl6)) | 0; hi = (hi + Math.imul(ah5, bh6)) | 0; lo = (lo + Math.imul(al4, bl7)) | 0; mid = (mid + Math.imul(al4, bh7)) | 0; mid = (mid + Math.imul(ah4, bl7)) | 0; hi = (hi + Math.imul(ah4, bh7)) | 0; lo = (lo + Math.imul(al3, bl8)) | 0; mid = (mid + Math.imul(al3, bh8)) | 0; mid = (mid + Math.imul(ah3, bl8)) | 0; hi = (hi + Math.imul(ah3, bh8)) | 0; lo = (lo + Math.imul(al2, bl9)) | 0; mid = (mid + Math.imul(al2, bh9)) | 0; mid = (mid + Math.imul(ah2, bl9)) | 0; hi = (hi + Math.imul(ah2, bh9)) | 0; var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; w11 &= 0x3ffffff; /* k = 12 */ lo = Math.imul(al9, bl3); mid = Math.imul(al9, bh3); mid = (mid + Math.imul(ah9, bl3)) | 0; hi = Math.imul(ah9, bh3); lo = (lo + Math.imul(al8, bl4)) | 0; mid = (mid + Math.imul(al8, bh4)) | 0; mid = (mid + Math.imul(ah8, bl4)) | 0; hi = (hi + Math.imul(ah8, bh4)) | 0; lo = (lo + Math.imul(al7, bl5)) | 0; mid = (mid + Math.imul(al7, bh5)) | 0; mid = (mid + Math.imul(ah7, bl5)) | 0; hi = (hi + Math.imul(ah7, bh5)) | 0; lo = (lo + Math.imul(al6, bl6)) | 0; mid = (mid + Math.imul(al6, bh6)) | 0; mid = (mid + Math.imul(ah6, bl6)) | 0; hi = (hi + Math.imul(ah6, bh6)) | 0; lo = (lo + Math.imul(al5, bl7)) | 0; mid = (mid + Math.imul(al5, bh7)) | 0; mid = (mid + Math.imul(ah5, bl7)) | 0; hi = (hi + Math.imul(ah5, bh7)) | 0; lo = (lo + Math.imul(al4, bl8)) | 0; mid = (mid + Math.imul(al4, bh8)) | 0; mid = (mid + Math.imul(ah4, bl8)) | 0; hi = (hi + Math.imul(ah4, bh8)) | 0; lo = (lo + Math.imul(al3, bl9)) | 0; mid = (mid + Math.imul(al3, bh9)) | 0; mid = (mid + Math.imul(ah3, bl9)) | 0; hi = (hi + Math.imul(ah3, bh9)) | 0; var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; w12 &= 0x3ffffff; /* k = 13 */ lo = Math.imul(al9, bl4); mid = Math.imul(al9, bh4); mid = (mid + Math.imul(ah9, bl4)) | 0; hi = Math.imul(ah9, bh4); lo = (lo + Math.imul(al8, bl5)) | 0; mid = (mid + Math.imul(al8, bh5)) | 0; mid = (mid + Math.imul(ah8, bl5)) | 0; hi = (hi + Math.imul(ah8, bh5)) | 0; lo = (lo + Math.imul(al7, bl6)) | 0; mid = (mid + Math.imul(al7, bh6)) | 0; mid = (mid + Math.imul(ah7, bl6)) | 0; hi = (hi + Math.imul(ah7, bh6)) | 0; lo = (lo + Math.imul(al6, bl7)) | 0; mid = (mid + Math.imul(al6, bh7)) | 0; mid = (mid + Math.imul(ah6, bl7)) | 0; hi = (hi + Math.imul(ah6, bh7)) | 0; lo = (lo + Math.imul(al5, bl8)) | 0; mid = (mid + Math.imul(al5, bh8)) | 0; mid = (mid + Math.imul(ah5, bl8)) | 0; hi = (hi + Math.imul(ah5, bh8)) | 0; lo = (lo + Math.imul(al4, bl9)) | 0; mid = (mid + Math.imul(al4, bh9)) | 0; mid = (mid + Math.imul(ah4, bl9)) | 0; hi = (hi + Math.imul(ah4, bh9)) | 0; var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; w13 &= 0x3ffffff; /* k = 14 */ lo = Math.imul(al9, bl5); mid = Math.imul(al9, bh5); mid = (mid + Math.imul(ah9, bl5)) | 0; hi = Math.imul(ah9, bh5); lo = (lo + Math.imul(al8, bl6)) | 0; mid = (mid + Math.imul(al8, bh6)) | 0; mid = (mid + Math.imul(ah8, bl6)) | 0; hi = (hi + Math.imul(ah8, bh6)) | 0; lo = (lo + Math.imul(al7, bl7)) | 0; mid = (mid + Math.imul(al7, bh7)) | 0; mid = (mid + Math.imul(ah7, bl7)) | 0; hi = (hi + Math.imul(ah7, bh7)) | 0; lo = (lo + Math.imul(al6, bl8)) | 0; mid = (mid + Math.imul(al6, bh8)) | 0; mid = (mid + Math.imul(ah6, bl8)) | 0; hi = (hi + Math.imul(ah6, bh8)) | 0; lo = (lo + Math.imul(al5, bl9)) | 0; mid = (mid + Math.imul(al5, bh9)) | 0; mid = (mid + Math.imul(ah5, bl9)) | 0; hi = (hi + Math.imul(ah5, bh9)) | 0; var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; w14 &= 0x3ffffff; /* k = 15 */ lo = Math.imul(al9, bl6); mid = Math.imul(al9, bh6); mid = (mid + Math.imul(ah9, bl6)) | 0; hi = Math.imul(ah9, bh6); lo = (lo + Math.imul(al8, bl7)) | 0; mid = (mid + Math.imul(al8, bh7)) | 0; mid = (mid + Math.imul(ah8, bl7)) | 0; hi = (hi + Math.imul(ah8, bh7)) | 0; lo = (lo + Math.imul(al7, bl8)) | 0; mid = (mid + Math.imul(al7, bh8)) | 0; mid = (mid + Math.imul(ah7, bl8)) | 0; hi = (hi + Math.imul(ah7, bh8)) | 0; lo = (lo + Math.imul(al6, bl9)) | 0; mid = (mid + Math.imul(al6, bh9)) | 0; mid = (mid + Math.imul(ah6, bl9)) | 0; hi = (hi + Math.imul(ah6, bh9)) | 0; var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; w15 &= 0x3ffffff; /* k = 16 */ lo = Math.imul(al9, bl7); mid = Math.imul(al9, bh7); mid = (mid + Math.imul(ah9, bl7)) | 0; hi = Math.imul(ah9, bh7); lo = (lo + Math.imul(al8, bl8)) | 0; mid = (mid + Math.imul(al8, bh8)) | 0; mid = (mid + Math.imul(ah8, bl8)) | 0; hi = (hi + Math.imul(ah8, bh8)) | 0; lo = (lo + Math.imul(al7, bl9)) | 0; mid = (mid + Math.imul(al7, bh9)) | 0; mid = (mid + Math.imul(ah7, bl9)) | 0; hi = (hi + Math.imul(ah7, bh9)) | 0; var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; w16 &= 0x3ffffff; /* k = 17 */ lo = Math.imul(al9, bl8); mid = Math.imul(al9, bh8); mid = (mid + Math.imul(ah9, bl8)) | 0; hi = Math.imul(ah9, bh8); lo = (lo + Math.imul(al8, bl9)) | 0; mid = (mid + Math.imul(al8, bh9)) | 0; mid = (mid + Math.imul(ah8, bl9)) | 0; hi = (hi + Math.imul(ah8, bh9)) | 0; var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; w17 &= 0x3ffffff; /* k = 18 */ lo = Math.imul(al9, bl9); mid = Math.imul(al9, bh9); mid = (mid + Math.imul(ah9, bl9)) | 0; hi = Math.imul(ah9, bh9); var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; w18 &= 0x3ffffff; o[0] = w0; o[1] = w1; o[2] = w2; o[3] = w3; o[4] = w4; o[5] = w5; o[6] = w6; o[7] = w7; o[8] = w8; o[9] = w9; o[10] = w10; o[11] = w11; o[12] = w12; o[13] = w13; o[14] = w14; o[15] = w15; o[16] = w16; o[17] = w17; o[18] = w18; if (c !== 0) { o[19] = c; out.length++; } return out; }; // Polyfill comb if (!Math.imul) { comb10MulTo = smallMulTo; } function bigMulTo (self, num, out) { out.negative = num.negative ^ self.negative; out.length = self.length + num.length; var carry = 0; var hncarry = 0; for (var k = 0; k < out.length - 1; k++) { // Sum all words with the same `i + j = k` and accumulate `ncarry`, // note that ncarry could be >= 0x3ffffff var ncarry = hncarry; hncarry = 0; var rword = carry & 0x3ffffff; var maxJ = Math.min(k, num.length - 1); for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { var i = k - j; var a = self.words[i] | 0; var b = num.words[j] | 0; var r = a * b; var lo = r & 0x3ffffff; ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; lo = (lo + rword) | 0; rword = lo & 0x3ffffff; ncarry = (ncarry + (lo >>> 26)) | 0; hncarry += ncarry >>> 26; ncarry &= 0x3ffffff; } out.words[k] = rword; carry = ncarry; ncarry = hncarry; } if (carry !== 0) { out.words[k] = carry; } else { out.length--; } return out.strip(); } function jumboMulTo (self, num, out) { var fftm = new FFTM(); return fftm.mulp(self, num, out); } BN.prototype.mulTo = function mulTo (num, out) { var res; var len = this.length + num.length; if (this.length === 10 && num.length === 10) { res = comb10MulTo(this, num, out); } else if (len < 63) { res = smallMulTo(this, num, out); } else if (len < 1024) { res = bigMulTo(this, num, out); } else { res = jumboMulTo(this, num, out); } return res; }; // Cooley-Tukey algorithm for FFT // slightly revisited to rely on looping instead of recursion function FFTM (x, y) { this.x = x; this.y = y; } FFTM.prototype.makeRBT = function makeRBT (N) { var t = new Array(N); var l = BN.prototype._countBits(N) - 1; for (var i = 0; i < N; i++) { t[i] = this.revBin(i, l, N); } return t; }; // Returns binary-reversed representation of `x` FFTM.prototype.revBin = function revBin (x, l, N) { if (x === 0 || x === N - 1) return x; var rb = 0; for (var i = 0; i < l; i++) { rb |= (x & 1) << (l - i - 1); x >>= 1; } return rb; }; // Performs "tweedling" phase, therefore 'emulating' // behaviour of the recursive algorithm FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { for (var i = 0; i < N; i++) { rtws[i] = rws[rbt[i]]; itws[i] = iws[rbt[i]]; } }; FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { this.permute(rbt, rws, iws, rtws, itws, N); for (var s = 1; s < N; s <<= 1) { var l = s << 1; var rtwdf = Math.cos(2 * Math.PI / l); var itwdf = Math.sin(2 * Math.PI / l); for (var p = 0; p < N; p += l) { var rtwdf_ = rtwdf; var itwdf_ = itwdf; for (var j = 0; j < s; j++) { var re = rtws[p + j]; var ie = itws[p + j]; var ro = rtws[p + j + s]; var io = itws[p + j + s]; var rx = rtwdf_ * ro - itwdf_ * io; io = rtwdf_ * io + itwdf_ * ro; ro = rx; rtws[p + j] = re + ro; itws[p + j] = ie + io; rtws[p + j + s] = re - ro; itws[p + j + s] = ie - io; /* jshint maxdepth : false */ if (j !== l) { rx = rtwdf * rtwdf_ - itwdf * itwdf_; itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; rtwdf_ = rx; } } } } }; FFTM.prototype.guessLen13b = function guessLen13b (n, m) { var N = Math.max(m, n) | 1; var odd = N & 1; var i = 0; for (N = N / 2 | 0; N; N = N >>> 1) { i++; } return 1 << i + 1 + odd; }; FFTM.prototype.conjugate = function conjugate (rws, iws, N) { if (N <= 1) return; for (var i = 0; i < N / 2; i++) { var t = rws[i]; rws[i] = rws[N - i - 1]; rws[N - i - 1] = t; t = iws[i]; iws[i] = -iws[N - i - 1]; iws[N - i - 1] = -t; } }; FFTM.prototype.normalize13b = function normalize13b (ws, N) { var carry = 0; for (var i = 0; i < N / 2; i++) { var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry; ws[i] = w & 0x3ffffff; if (w < 0x4000000) { carry = 0; } else { carry = w / 0x4000000 | 0; } } return ws; }; FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { var carry = 0; for (var i = 0; i < len; i++) { carry = carry + (ws[i] | 0); rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; } // Pad with zeroes for (i = 2 * len; i < N; ++i) { rws[i] = 0; } assert(carry === 0); assert((carry & ~0x1fff) === 0); }; FFTM.prototype.stub = function stub (N) { var ph = new Array(N); for (var i = 0; i < N; i++) { ph[i] = 0; } return ph; }; FFTM.prototype.mulp = function mulp (x, y, out) { var N = 2 * this.guessLen13b(x.length, y.length); var rbt = this.makeRBT(N); var _ = this.stub(N); var rws = new Array(N); var rwst = new Array(N); var iwst = new Array(N); var nrws = new Array(N); var nrwst = new Array(N); var niwst = new Array(N); var rmws = out.words; rmws.length = N; this.convert13b(x.words, x.length, rws, N); this.convert13b(y.words, y.length, nrws, N); this.transform(rws, _, rwst, iwst, N, rbt); this.transform(nrws, _, nrwst, niwst, N, rbt); for (var i = 0; i < N; i++) { var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; rwst[i] = rx; } this.conjugate(rwst, iwst, N); this.transform(rwst, iwst, rmws, _, N, rbt); this.conjugate(rmws, _, N); this.normalize13b(rmws, N); out.negative = x.negative ^ y.negative; out.length = x.length + y.length; return out.strip(); }; // Multiply `this` by `num` BN.prototype.mul = function mul (num) { var out = new BN(null); out.words = new Array(this.length + num.length); return this.mulTo(num, out); }; // Multiply employing FFT BN.prototype.mulf = function mulf (num) { var out = new BN(null); out.words = new Array(this.length + num.length); return jumboMulTo(this, num, out); }; // In-place Multiplication BN.prototype.imul = function imul (num) { return this.clone().mulTo(num, this); }; BN.prototype.imuln = function imuln (num) { assert(typeof num === 'number'); assert(num < 0x4000000); // Carry var carry = 0; for (var i = 0; i < this.length; i++) { var w = (this.words[i] | 0) * num; var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); carry >>= 26; carry += (w / 0x4000000) | 0; // NOTE: lo is 27bit maximum carry += lo >>> 26; this.words[i] = lo & 0x3ffffff; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.muln = function muln (num) { return this.clone().imuln(num); }; // `this` * `this` BN.prototype.sqr = function sqr () { return this.mul(this); }; // `this` * `this` in-place BN.prototype.isqr = function isqr () { return this.imul(this.clone()); }; // Math.pow(`this`, `num`) BN.prototype.pow = function pow (num) { var w = toBitArray(num); if (w.length === 0) return new BN(1); // Skip leading zeroes var res = this; for (var i = 0; i < w.length; i++, res = res.sqr()) { if (w[i] !== 0) break; } if (++i < w.length) { for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { if (w[i] === 0) continue; res = res.mul(q); } } return res; }; // Shift-left in-place BN.prototype.iushln = function iushln (bits) { assert(typeof bits === 'number' && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); var i; if (r !== 0) { var carry = 0; for (i = 0; i < this.length; i++) { var newCarry = this.words[i] & carryMask; var c = ((this.words[i] | 0) - newCarry) << r; this.words[i] = c | carry; carry = newCarry >>> (26 - r); } if (carry) { this.words[i] = carry; this.length++; } } if (s !== 0) { for (i = this.length - 1; i >= 0; i--) { this.words[i + s] = this.words[i]; } for (i = 0; i < s; i++) { this.words[i] = 0; } this.length += s; } return this.strip(); }; BN.prototype.ishln = function ishln (bits) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushln(bits); }; // Shift-right in-place // NOTE: `hint` is a lowest bit before trailing zeroes // NOTE: if `extended` is present - it will be filled with destroyed bits BN.prototype.iushrn = function iushrn (bits, hint, extended) { assert(typeof bits === 'number' && bits >= 0); var h; if (hint) { h = (hint - (hint % 26)) / 26; } else { h = 0; } var r = bits % 26; var s = Math.min((bits - r) / 26, this.length); var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); var maskedWords = extended; h -= s; h = Math.max(0, h); // Extended mode, copy masked part if (maskedWords) { for (var i = 0; i < s; i++) { maskedWords.words[i] = this.words[i]; } maskedWords.length = s; } if (s === 0) { // No-op, we should not move anything at all } else if (this.length > s) { this.length -= s; for (i = 0; i < this.length; i++) { this.words[i] = this.words[i + s]; } } else { this.words[0] = 0; this.length = 1; } var carry = 0; for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { var word = this.words[i] | 0; this.words[i] = (carry << (26 - r)) | (word >>> r); carry = word & mask; } // Push carried bits as a mask if (maskedWords && carry !== 0) { maskedWords.words[maskedWords.length++] = carry; } if (this.length === 0) { this.words[0] = 0; this.length = 1; } return this.strip(); }; BN.prototype.ishrn = function ishrn (bits, hint, extended) { // TODO(indutny): implement me assert(this.negative === 0); return this.iushrn(bits, hint, extended); }; // Shift-left BN.prototype.shln = function shln (bits) { return this.clone().ishln(bits); }; BN.prototype.ushln = function ushln (bits) { return this.clone().iushln(bits); }; // Shift-right BN.prototype.shrn = function shrn (bits) { return this.clone().ishrn(bits); }; BN.prototype.ushrn = function ushrn (bits) { return this.clone().iushrn(bits); }; // Test if n bit is set BN.prototype.testn = function testn (bit) { assert(typeof bit === 'number' && bit >= 0); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) return false; // Check bit and return var w = this.words[s]; return !!(w & q); }; // Return only lowers bits of number (in-place) BN.prototype.imaskn = function imaskn (bits) { assert(typeof bits === 'number' && bits >= 0); var r = bits % 26; var s = (bits - r) / 26; assert(this.negative === 0, 'imaskn works only with positive numbers'); if (this.length <= s) { return this; } if (r !== 0) { s++; } this.length = Math.min(s, this.length); if (r !== 0) { var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); this.words[this.length - 1] &= mask; } return this.strip(); }; // Return only lowers bits of number BN.prototype.maskn = function maskn (bits) { return this.clone().imaskn(bits); }; // Add plain number `num` to `this` BN.prototype.iaddn = function iaddn (num) { assert(typeof num === 'number'); assert(num < 0x4000000); if (num < 0) return this.isubn(-num); // Possible sign change if (this.negative !== 0) { if (this.length === 1 && (this.words[0] | 0) < num) { this.words[0] = num - (this.words[0] | 0); this.negative = 0; return this; } this.negative = 0; this.isubn(num); this.negative = 1; return this; } // Add without checks return this._iaddn(num); }; BN.prototype._iaddn = function _iaddn (num) { this.words[0] += num; // Carry for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { this.words[i] -= 0x4000000; if (i === this.length - 1) { this.words[i + 1] = 1; } else { this.words[i + 1]++; } } this.length = Math.max(this.length, i + 1); return this; }; // Subtract plain number `num` from `this` BN.prototype.isubn = function isubn (num) { assert(typeof num === 'number'); assert(num < 0x4000000); if (num < 0) return this.iaddn(-num); if (this.negative !== 0) { this.negative = 0; this.iaddn(num); this.negative = 1; return this; } this.words[0] -= num; if (this.length === 1 && this.words[0] < 0) { this.words[0] = -this.words[0]; this.negative = 1; } else { // Carry for (var i = 0; i < this.length && this.words[i] < 0; i++) { this.words[i] += 0x4000000; this.words[i + 1] -= 1; } } return this.strip(); }; BN.prototype.addn = function addn (num) { return this.clone().iaddn(num); }; BN.prototype.subn = function subn (num) { return this.clone().isubn(num); }; BN.prototype.iabs = function iabs () { this.negative = 0; return this; }; BN.prototype.abs = function abs () { return this.clone().iabs(); }; BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { var len = num.length + shift; var i; this._expand(len); var w; var carry = 0; for (i = 0; i < num.length; i++) { w = (this.words[i + shift] | 0) + carry; var right = (num.words[i] | 0) * mul; w -= right & 0x3ffffff; carry = (w >> 26) - ((right / 0x4000000) | 0); this.words[i + shift] = w & 0x3ffffff; } for (; i < this.length - shift; i++) { w = (this.words[i + shift] | 0) + carry; carry = w >> 26; this.words[i + shift] = w & 0x3ffffff; } if (carry === 0) return this.strip(); // Subtraction overflow assert(carry === -1); carry = 0; for (i = 0; i < this.length; i++) { w = -(this.words[i] | 0) + carry; carry = w >> 26; this.words[i] = w & 0x3ffffff; } this.negative = 1; return this.strip(); }; BN.prototype._wordDiv = function _wordDiv (num, mode) { var shift = this.length - num.length; var a = this.clone(); var b = num; // Normalize var bhi = b.words[b.length - 1] | 0; var bhiBits = this._countBits(bhi); shift = 26 - bhiBits; if (shift !== 0) { b = b.ushln(shift); a.iushln(shift); bhi = b.words[b.length - 1] | 0; } // Initialize quotient var m = a.length - b.length; var q; if (mode !== 'mod') { q = new BN(null); q.length = m + 1; q.words = new Array(q.length); for (var i = 0; i < q.length; i++) { q.words[i] = 0; } } var diff = a.clone()._ishlnsubmul(b, 1, m); if (diff.negative === 0) { a = diff; if (q) { q.words[m] = 1; } } for (var j = m - 1; j >= 0; j--) { var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max // (0x7ffffff) qj = Math.min((qj / bhi) | 0, 0x3ffffff); a._ishlnsubmul(b, qj, j); while (a.negative !== 0) { qj--; a.negative = 0; a._ishlnsubmul(b, 1, j); if (!a.isZero()) { a.negative ^= 1; } } if (q) { q.words[j] = qj; } } if (q) { q.strip(); } a.strip(); // Denormalize if (mode !== 'div' && shift !== 0) { a.iushrn(shift); } return { div: q || null, mod: a }; }; // NOTE: 1) `mode` can be set to `mod` to request mod only, // to `div` to request div only, or be absent to // request both div & mod // 2) `positive` is true if unsigned mod is requested BN.prototype.divmod = function divmod (num, mode, positive) { assert(!num.isZero()); if (this.isZero()) { return { div: new BN(0), mod: new BN(0) }; } var div, mod, res; if (this.negative !== 0 && num.negative === 0) { res = this.neg().divmod(num, mode); if (mode !== 'mod') { div = res.div.neg(); } if (mode !== 'div') { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.iadd(num); } } return { div: div, mod: mod }; } if (this.negative === 0 && num.negative !== 0) { res = this.divmod(num.neg(), mode); if (mode !== 'mod') { div = res.div.neg(); } return { div: div, mod: res.mod }; } if ((this.negative & num.negative) !== 0) { res = this.neg().divmod(num.neg(), mode); if (mode !== 'div') { mod = res.mod.neg(); if (positive && mod.negative !== 0) { mod.isub(num); } } return { div: res.div, mod: mod }; } // Both numbers are positive at this point // Strip both numbers to approximate shift value if (num.length > this.length || this.cmp(num) < 0) { return { div: new BN(0), mod: this }; } // Very short reduction if (num.length === 1) { if (mode === 'div') { return { div: this.divn(num.words[0]), mod: null }; } if (mode === 'mod') { return { div: null, mod: new BN(this.modn(num.words[0])) }; } return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) }; } return this._wordDiv(num, mode); }; // Find `this` / `num` BN.prototype.div = function div (num) { return this.divmod(num, 'div', false).div; }; // Find `this` % `num` BN.prototype.mod = function mod (num) { return this.divmod(num, 'mod', false).mod; }; BN.prototype.umod = function umod (num) { return this.divmod(num, 'mod', true).mod; }; // Find Round(`this` / `num`) BN.prototype.divRound = function divRound (num) { var dm = this.divmod(num); // Fast case - exact division if (dm.mod.isZero()) return dm.div; var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; var half = num.ushrn(1); var r2 = num.andln(1); var cmp = mod.cmp(half); // Round down if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); }; BN.prototype.modn = function modn (num) { assert(num <= 0x3ffffff); var p = (1 << 26) % num; var acc = 0; for (var i = this.length - 1; i >= 0; i--) { acc = (p * acc + (this.words[i] | 0)) % num; } return acc; }; // In-place division by number BN.prototype.idivn = function idivn (num) { assert(num <= 0x3ffffff); var carry = 0; for (var i = this.length - 1; i >= 0; i--) { var w = (this.words[i] | 0) + carry * 0x4000000; this.words[i] = (w / num) | 0; carry = w % num; } return this.strip(); }; BN.prototype.divn = function divn (num) { return this.clone().idivn(num); }; BN.prototype.egcd = function egcd (p) { assert(p.negative === 0); assert(!p.isZero()); var x = this; var y = p.clone(); if (x.negative !== 0) { x = x.umod(p); } else { x = x.clone(); } // A * x + B * y = x var A = new BN(1); var B = new BN(0); // C * x + D * y = y var C = new BN(0); var D = new BN(1); var g = 0; while (x.isEven() && y.isEven()) { x.iushrn(1); y.iushrn(1); ++g; } var yp = y.clone(); var xp = x.clone(); while (!x.isZero()) { for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); if (i > 0) { x.iushrn(i); while (i-- > 0) { if (A.isOdd() || B.isOdd()) { A.iadd(yp); B.isub(xp); } A.iushrn(1); B.iushrn(1); } } for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); if (j > 0) { y.iushrn(j); while (j-- > 0) { if (C.isOdd() || D.isOdd()) { C.iadd(yp); D.isub(xp); } C.iushrn(1); D.iushrn(1); } } if (x.cmp(y) >= 0) { x.isub(y); A.isub(C); B.isub(D); } else { y.isub(x); C.isub(A); D.isub(B); } } return { a: C, b: D, gcd: y.iushln(g) }; }; // This is reduced incarnation of the binary EEA // above, designated to invert members of the // _prime_ fields F(p) at a maximal speed BN.prototype._invmp = function _invmp (p) { assert(p.negative === 0); assert(!p.isZero()); var a = this; var b = p.clone(); if (a.negative !== 0) { a = a.umod(p); } else { a = a.clone(); } var x1 = new BN(1); var x2 = new BN(0); var delta = b.clone(); while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); if (i > 0) { a.iushrn(i); while (i-- > 0) { if (x1.isOdd()) { x1.iadd(delta); } x1.iushrn(1); } } for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); if (j > 0) { b.iushrn(j); while (j-- > 0) { if (x2.isOdd()) { x2.iadd(delta); } x2.iushrn(1); } } if (a.cmp(b) >= 0) { a.isub(b); x1.isub(x2); } else { b.isub(a); x2.isub(x1); } } var res; if (a.cmpn(1) === 0) { res = x1; } else { res = x2; } if (res.cmpn(0) < 0) { res.iadd(p); } return res; }; BN.prototype.gcd = function gcd (num) { if (this.isZero()) return num.abs(); if (num.isZero()) return this.abs(); var a = this.clone(); var b = num.clone(); a.negative = 0; b.negative = 0; // Remove common factor of two for (var shift = 0; a.isEven() && b.isEven(); shift++) { a.iushrn(1); b.iushrn(1); } do { while (a.isEven()) { a.iushrn(1); } while (b.isEven()) { b.iushrn(1); } var r = a.cmp(b); if (r < 0) { // Swap `a` and `b` to make `a` always bigger than `b` var t = a; a = b; b = t; } else if (r === 0 || b.cmpn(1) === 0) { break; } a.isub(b); } while (true); return b.iushln(shift); }; // Invert number in the field F(num) BN.prototype.invm = function invm (num) { return this.egcd(num).a.umod(num); }; BN.prototype.isEven = function isEven () { return (this.words[0] & 1) === 0; }; BN.prototype.isOdd = function isOdd () { return (this.words[0] & 1) === 1; }; // And first word and num BN.prototype.andln = function andln (num) { return this.words[0] & num; }; // Increment at the bit position in-line BN.prototype.bincn = function bincn (bit) { assert(typeof bit === 'number'); var r = bit % 26; var s = (bit - r) / 26; var q = 1 << r; // Fast case: bit is much higher than all existing words if (this.length <= s) { this._expand(s + 1); this.words[s] |= q; return this; } // Add bit and propagate, if needed var carry = q; for (var i = s; carry !== 0 && i < this.length; i++) { var w = this.words[i] | 0; w += carry; carry = w >>> 26; w &= 0x3ffffff; this.words[i] = w; } if (carry !== 0) { this.words[i] = carry; this.length++; } return this; }; BN.prototype.isZero = function isZero () { return this.length === 1 && this.words[0] === 0; }; BN.prototype.cmpn = function cmpn (num) { var negative = num < 0; if (this.negative !== 0 && !negative) return -1; if (this.negative === 0 && negative) return 1; this.strip(); var res; if (this.length > 1) { res = 1; } else { if (negative) { num = -num; } assert(num <= 0x3ffffff, 'Number is too big'); var w = this.words[0] | 0; res = w === num ? 0 : w < num ? -1 : 1; } if (this.negative !== 0) return -res | 0; return res; }; // Compare two numbers and return: // 1 - if `this` > `num` // 0 - if `this` == `num` // -1 - if `this` < `num` BN.prototype.cmp = function cmp (num) { if (this.negative !== 0 && num.negative === 0) return -1; if (this.negative === 0 && num.negative !== 0) return 1; var res = this.ucmp(num); if (this.negative !== 0) return -res | 0; return res; }; // Unsigned comparison BN.prototype.ucmp = function ucmp (num) { // At this point both numbers have the same sign if (this.length > num.length) return 1; if (this.length < num.length) return -1; var res = 0; for (var i = this.length - 1; i >= 0; i--) { var a = this.words[i] | 0; var b = num.words[i] | 0; if (a === b) continue; if (a < b) { res = -1; } else if (a > b) { res = 1; } break; } return res; }; BN.prototype.gtn = function gtn (num) { return this.cmpn(num) === 1; }; BN.prototype.gt = function gt (num) { return this.cmp(num) === 1; }; BN.prototype.gten = function gten (num) { return this.cmpn(num) >= 0; }; BN.prototype.gte = function gte (num) { return this.cmp(num) >= 0; }; BN.prototype.ltn = function ltn (num) { return this.cmpn(num) === -1; }; BN.prototype.lt = function lt (num) { return this.cmp(num) === -1; }; BN.prototype.lten = function lten (num) { return this.cmpn(num) <= 0; }; BN.prototype.lte = function lte (num) { return this.cmp(num) <= 0; }; BN.prototype.eqn = function eqn (num) { return this.cmpn(num) === 0; }; BN.prototype.eq = function eq (num) { return this.cmp(num) === 0; }; // // A reduce context, could be using montgomery or something better, depending // on the `m` itself. // BN.red = function red (num) { return new Red(num); }; BN.prototype.toRed = function toRed (ctx) { assert(!this.red, 'Already a number in reduction context'); assert(this.negative === 0, 'red works only with positives'); return ctx.convertTo(this)._forceRed(ctx); }; BN.prototype.fromRed = function fromRed () { assert(this.red, 'fromRed works only with numbers in reduction context'); return this.red.convertFrom(this); }; BN.prototype._forceRed = function _forceRed (ctx) { this.red = ctx; return this; }; BN.prototype.forceRed = function forceRed (ctx) { assert(!this.red, 'Already a number in reduction context'); return this._forceRed(ctx); }; BN.prototype.redAdd = function redAdd (num) { assert(this.red, 'redAdd works only with red numbers'); return this.red.add(this, num); }; BN.prototype.redIAdd = function redIAdd (num) { assert(this.red, 'redIAdd works only with red numbers'); return this.red.iadd(this, num); }; BN.prototype.redSub = function redSub (num) { assert(this.red, 'redSub works only with red numbers'); return this.red.sub(this, num); }; BN.prototype.redISub = function redISub (num) { assert(this.red, 'redISub works only with red numbers'); return this.red.isub(this, num); }; BN.prototype.redShl = function redShl (num) { assert(this.red, 'redShl works only with red numbers'); return this.red.shl(this, num); }; BN.prototype.redMul = function redMul (num) { assert(this.red, 'redMul works only with red numbers'); this.red._verify2(this, num); return this.red.mul(this, num); }; BN.prototype.redIMul = function redIMul (num) { assert(this.red, 'redMul works only with red numbers'); this.red._verify2(this, num); return this.red.imul(this, num); }; BN.prototype.redSqr = function redSqr () { assert(this.red, 'redSqr works only with red numbers'); this.red._verify1(this); return this.red.sqr(this); }; BN.prototype.redISqr = function redISqr () { assert(this.red, 'redISqr works only with red numbers'); this.red._verify1(this); return this.red.isqr(this); }; // Square root over p BN.prototype.redSqrt = function redSqrt () { assert(this.red, 'redSqrt works only with red numbers'); this.red._verify1(this); return this.red.sqrt(this); }; BN.prototype.redInvm = function redInvm () { assert(this.red, 'redInvm works only with red numbers'); this.red._verify1(this); return this.red.invm(this); }; // Return negative clone of `this` % `red modulo` BN.prototype.redNeg = function redNeg () { assert(this.red, 'redNeg works only with red numbers'); this.red._verify1(this); return this.red.neg(this); }; BN.prototype.redPow = function redPow (num) { assert(this.red && !num.red, 'redPow(normalNum)'); this.red._verify1(this); return this.red.pow(this, num); }; // Prime numbers with efficient reduction var primes = { k256: null, p224: null, p192: null, p25519: null }; // Pseudo-Mersenne prime function MPrime (name, p) { // P = 2 ^ N - K this.name = name; this.p = new BN(p, 16); this.n = this.p.bitLength(); this.k = new BN(1).iushln(this.n).isub(this.p); this.tmp = this._tmp(); } MPrime.prototype._tmp = function _tmp () { var tmp = new BN(null); tmp.words = new Array(Math.ceil(this.n / 13)); return tmp; }; MPrime.prototype.ireduce = function ireduce (num) { // Assumes that `num` is less than `P^2` // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) var r = num; var rlen; do { this.split(r, this.tmp); r = this.imulK(r); r = r.iadd(this.tmp); rlen = r.bitLength(); } while (rlen > this.n); var cmp = rlen < this.n ? -1 : r.ucmp(this.p); if (cmp === 0) { r.words[0] = 0; r.length = 1; } else if (cmp > 0) { r.isub(this.p); } else { r.strip(); } return r; }; MPrime.prototype.split = function split (input, out) { input.iushrn(this.n, 0, out); }; MPrime.prototype.imulK = function imulK (num) { return num.imul(this.k); }; function K256 () { MPrime.call( this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); } inherits(K256, MPrime); K256.prototype.split = function split (input, output) { // 256 = 9 * 26 + 22 var mask = 0x3fffff; var outLen = Math.min(input.length, 9); for (var i = 0; i < outLen; i++) { output.words[i] = input.words[i]; } output.length = outLen; if (input.length <= 9) { input.words[0] = 0; input.length = 1; return; } // Shift by 9 limbs var prev = input.words[9]; output.words[output.length++] = prev & mask; for (i = 10; i < input.length; i++) { var next = input.words[i] | 0; input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); prev = next; } prev >>>= 22; input.words[i - 10] = prev; if (prev === 0 && input.length > 10) { input.length -= 10; } else { input.length -= 9; } }; K256.prototype.imulK = function imulK (num) { // K = 0x1000003d1 = [ 0x40, 0x3d1 ] num.words[num.length] = 0; num.words[num.length + 1] = 0; num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 var lo = 0; for (var i = 0; i < num.length; i++) { var w = num.words[i] | 0; lo += w * 0x3d1; num.words[i] = lo & 0x3ffffff; lo = w * 0x40 + ((lo / 0x4000000) | 0); } // Fast length reduction if (num.words[num.length - 1] === 0) { num.length--; if (num.words[num.length - 1] === 0) { num.length--; } } return num; }; function P224 () { MPrime.call( this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); } inherits(P224, MPrime); function P192 () { MPrime.call( this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); } inherits(P192, MPrime); function P25519 () { // 2 ^ 255 - 19 MPrime.call( this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); } inherits(P25519, MPrime); P25519.prototype.imulK = function imulK (num) { // K = 0x13 var carry = 0; for (var i = 0; i < num.length; i++) { var hi = (num.words[i] | 0) * 0x13 + carry; var lo = hi & 0x3ffffff; hi >>>= 26; num.words[i] = lo; carry = hi; } if (carry !== 0) { num.words[num.length++] = carry; } return num; }; // Exported mostly for testing purposes, use plain name instead BN._prime = function prime (name) { // Cached version of prime if (primes[name]) return primes[name]; var prime; if (name === 'k256') { prime = new K256(); } else if (name === 'p224') { prime = new P224(); } else if (name === 'p192') { prime = new P192(); } else if (name === 'p25519') { prime = new P25519(); } else { throw new Error('Unknown prime ' + name); } primes[name] = prime; return prime; }; // // Base reduction engine // function Red (m) { if (typeof m === 'string') { var prime = BN._prime(m); this.m = prime.p; this.prime = prime; } else { assert(m.gtn(1), 'modulus must be greater than 1'); this.m = m; this.prime = null; } } Red.prototype._verify1 = function _verify1 (a) { assert(a.negative === 0, 'red works only with positives'); assert(a.red, 'red works only with red numbers'); }; Red.prototype._verify2 = function _verify2 (a, b) { assert((a.negative | b.negative) === 0, 'red works only with positives'); assert(a.red && a.red === b.red, 'red works only with red numbers'); }; Red.prototype.imod = function imod (a) { if (this.prime) return this.prime.ireduce(a)._forceRed(this); return a.umod(this.m)._forceRed(this); }; Red.prototype.neg = function neg (a) { if (a.isZero()) { return a.clone(); } return this.m.sub(a)._forceRed(this); }; Red.prototype.add = function add (a, b) { this._verify2(a, b); var res = a.add(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res._forceRed(this); }; Red.prototype.iadd = function iadd (a, b) { this._verify2(a, b); var res = a.iadd(b); if (res.cmp(this.m) >= 0) { res.isub(this.m); } return res; }; Red.prototype.sub = function sub (a, b) { this._verify2(a, b); var res = a.sub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res._forceRed(this); }; Red.prototype.isub = function isub (a, b) { this._verify2(a, b); var res = a.isub(b); if (res.cmpn(0) < 0) { res.iadd(this.m); } return res; }; Red.prototype.shl = function shl (a, num) { this._verify1(a); return this.imod(a.ushln(num)); }; Red.prototype.imul = function imul (a, b) { this._verify2(a, b); return this.imod(a.imul(b)); }; Red.prototype.mul = function mul (a, b) { this._verify2(a, b); return this.imod(a.mul(b)); }; Red.prototype.isqr = function isqr (a) { return this.imul(a, a.clone()); }; Red.prototype.sqr = function sqr (a) { return this.mul(a, a); }; Red.prototype.sqrt = function sqrt (a) { if (a.isZero()) return a.clone(); var mod3 = this.m.andln(3); assert(mod3 % 2 === 1); // Fast case if (mod3 === 3) { var pow = this.m.add(new BN(1)).iushrn(2); return this.pow(a, pow); } // Tonelli-Shanks algorithm (Totally unoptimized and slow) // // Find Q and S, that Q * 2 ^ S = (P - 1) var q = this.m.subn(1); var s = 0; while (!q.isZero() && q.andln(1) === 0) { s++; q.iushrn(1); } assert(!q.isZero()); var one = new BN(1).toRed(this); var nOne = one.redNeg(); // Find quadratic non-residue // NOTE: Max is such because of generalized Riemann hypothesis. var lpow = this.m.subn(1).iushrn(1); var z = this.m.bitLength(); z = new BN(2 * z * z).toRed(this); while (this.pow(z, lpow).cmp(nOne) !== 0) { z.redIAdd(nOne); } var c = this.pow(z, q); var r = this.pow(a, q.addn(1).iushrn(1)); var t = this.pow(a, q); var m = s; while (t.cmp(one) !== 0) { var tmp = t; for (var i = 0; tmp.cmp(one) !== 0; i++) { tmp = tmp.redSqr(); } assert(i < m); var b = this.pow(c, new BN(1).iushln(m - i - 1)); r = r.redMul(b); c = b.redSqr(); t = t.redMul(c); m = i; } return r; }; Red.prototype.invm = function invm (a) { var inv = a._invmp(this.m); if (inv.negative !== 0) { inv.negative = 0; return this.imod(inv).redNeg(); } else { return this.imod(inv); } }; Red.prototype.pow = function pow (a, num) { if (num.isZero()) return new BN(1).toRed(this); if (num.cmpn(1) === 0) return a.clone(); var windowSize = 4; var wnd = new Array(1 << windowSize); wnd[0] = new BN(1).toRed(this); wnd[1] = a; for (var i = 2; i < wnd.length; i++) { wnd[i] = this.mul(wnd[i - 1], a); } var res = wnd[0]; var current = 0; var currentLen = 0; var start = num.bitLength() % 26; if (start === 0) { start = 26; } for (i = num.length - 1; i >= 0; i--) { var word = num.words[i]; for (var j = start - 1; j >= 0; j--) { var bit = (word >> j) & 1; if (res !== wnd[0]) { res = this.sqr(res); } if (bit === 0 && current === 0) { currentLen = 0; continue; } current <<= 1; current |= bit; currentLen++; if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; res = this.mul(res, wnd[current]); currentLen = 0; current = 0; } start = 26; } return res; }; Red.prototype.convertTo = function convertTo (num) { var r = num.umod(this.m); return r === num ? r.clone() : r; }; Red.prototype.convertFrom = function convertFrom (num) { var res = num.clone(); res.red = null; return res; }; // // Montgomery method engine // BN.mont = function mont (num) { return new Mont(num); }; function Mont (m) { Red.call(this, m); this.shift = this.m.bitLength(); if (this.shift % 26 !== 0) { this.shift += 26 - (this.shift % 26); } this.r = new BN(1).iushln(this.shift); this.r2 = this.imod(this.r.sqr()); this.rinv = this.r._invmp(this.m); this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); this.minv = this.minv.umod(this.r); this.minv = this.r.sub(this.minv); } inherits(Mont, Red); Mont.prototype.convertTo = function convertTo (num) { return this.imod(num.ushln(this.shift)); }; Mont.prototype.convertFrom = function convertFrom (num) { var r = this.imod(num.mul(this.rinv)); r.red = null; return r; }; Mont.prototype.imul = function imul (a, b) { if (a.isZero() || b.isZero()) { a.words[0] = 0; a.length = 1; return a; } var t = a.imul(b); var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.mul = function mul (a, b) { if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); var t = a.mul(b); var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); var u = t.isub(c).iushrn(this.shift); var res = u; if (u.cmp(this.m) >= 0) { res = u.isub(this.m); } else if (u.cmpn(0) < 0) { res = u.iadd(this.m); } return res._forceRed(this); }; Mont.prototype.invm = function invm (a) { // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R var res = this.imod(a._invmp(this.m).mul(this.r2)); return res._forceRed(this); }; })(typeof module === 'undefined' || module, this); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) /***/ }), /***/ "./node_modules/brorand/index.js": /*!***************************************!*\ !*** ./node_modules/brorand/index.js ***! \***************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var r; module.exports = function rand(len) { if (!r) r = new Rand(null); return r.generate(len); }; function Rand(rand) { this.rand = rand; } module.exports.Rand = Rand; Rand.prototype.generate = function generate(len) { return this._rand(len); }; // Emulate crypto API using randy Rand.prototype._rand = function _rand(n) { if (this.rand.getBytes) return this.rand.getBytes(n); var res = new Uint8Array(n); for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte(); return res; }; if (typeof self === 'object') { if (self.crypto && self.crypto.getRandomValues) { // Modern browsers Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.crypto.getRandomValues(arr); return arr; }; } else if (self.msCrypto && self.msCrypto.getRandomValues) { // IE Rand.prototype._rand = function _rand(n) { var arr = new Uint8Array(n); self.msCrypto.getRandomValues(arr); return arr; }; // Safari's WebWorkers do not have `crypto` } else if (typeof window === 'object') { // Old junk Rand.prototype._rand = function() { throw new Error('Not implemented yet'); }; } } else { // Node.js or Web worker with no crypto support try { var crypto = __webpack_require__(/*! crypto */ 4); if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported'); Rand.prototype._rand = function _rand(n) { return crypto.randomBytes(n); }; } catch (e) { } } /***/ }), /***/ "./node_modules/browserify-aes/aes.js": /*!********************************************!*\ !*** ./node_modules/browserify-aes/aes.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { // based on the aes implimentation in triple sec // https://github.com/keybase/triplesec // which is in turn based on the one from crypto-js // https://code.google.com/p/crypto-js/ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer function asUInt32Array (buf) { if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) var len = (buf.length / 4) | 0 var out = new Array(len) for (var i = 0; i < len; i++) { out[i] = buf.readUInt32BE(i * 4) } return out } function scrubVec (v) { for (var i = 0; i < v.length; v++) { v[i] = 0 } } function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { var SUB_MIX0 = SUB_MIX[0] var SUB_MIX1 = SUB_MIX[1] var SUB_MIX2 = SUB_MIX[2] var SUB_MIX3 = SUB_MIX[3] var s0 = M[0] ^ keySchedule[0] var s1 = M[1] ^ keySchedule[1] var s2 = M[2] ^ keySchedule[2] var s3 = M[3] ^ keySchedule[3] var t0, t1, t2, t3 var ksRow = 4 for (var round = 1; round < nRounds; round++) { t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] s0 = t0 s1 = t1 s2 = t2 s3 = t3 } t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] t0 = t0 >>> 0 t1 = t1 >>> 0 t2 = t2 >>> 0 t3 = t3 >>> 0 return [t0, t1, t2, t3] } // AES constants var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] var G = (function () { // Compute double table var d = new Array(256) for (var j = 0; j < 256; j++) { if (j < 128) { d[j] = j << 1 } else { d[j] = (j << 1) ^ 0x11b } } var SBOX = [] var INV_SBOX = [] var SUB_MIX = [[], [], [], []] var INV_SUB_MIX = [[], [], [], []] // Walk GF(2^8) var x = 0 var xi = 0 for (var i = 0; i < 256; ++i) { // Compute sbox var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 SBOX[x] = sx INV_SBOX[sx] = x // Compute multiplication var x2 = d[x] var x4 = d[x2] var x8 = d[x4] // Compute sub bytes, mix columns tables var t = (d[sx] * 0x101) ^ (sx * 0x1010100) SUB_MIX[0][x] = (t << 24) | (t >>> 8) SUB_MIX[1][x] = (t << 16) | (t >>> 16) SUB_MIX[2][x] = (t << 8) | (t >>> 24) SUB_MIX[3][x] = t // Compute inv sub bytes, inv mix columns tables t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) INV_SUB_MIX[3][sx] = t if (x === 0) { x = xi = 1 } else { x = x2 ^ d[d[d[x8 ^ x2]]] xi ^= d[d[xi]] } } return { SBOX: SBOX, INV_SBOX: INV_SBOX, SUB_MIX: SUB_MIX, INV_SUB_MIX: INV_SUB_MIX } })() function AES (key) { this._key = asUInt32Array(key) this._reset() } AES.blockSize = 4 * 4 AES.keySize = 256 / 8 AES.prototype.blockSize = AES.blockSize AES.prototype.keySize = AES.keySize AES.prototype._reset = function () { var keyWords = this._key var keySize = keyWords.length var nRounds = keySize + 6 var ksRows = (nRounds + 1) * 4 var keySchedule = [] for (var k = 0; k < keySize; k++) { keySchedule[k] = keyWords[k] } for (k = keySize; k < ksRows; k++) { var t = keySchedule[k - 1] if (k % keySize === 0) { t = (t << 8) | (t >>> 24) t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | (G.SBOX[t & 0xff]) t ^= RCON[(k / keySize) | 0] << 24 } else if (keySize > 6 && k % keySize === 4) { t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | (G.SBOX[t & 0xff]) } keySchedule[k] = keySchedule[k - keySize] ^ t } var invKeySchedule = [] for (var ik = 0; ik < ksRows; ik++) { var ksR = ksRows - ik var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] if (ik < 4 || ksR <= 4) { invKeySchedule[ik] = tt } else { invKeySchedule[ik] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] } } this._nRounds = nRounds this._keySchedule = keySchedule this._invKeySchedule = invKeySchedule } AES.prototype.encryptBlockRaw = function (M) { M = asUInt32Array(M) return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) } AES.prototype.encryptBlock = function (M) { var out = this.encryptBlockRaw(M) var buf = Buffer.allocUnsafe(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[1], 4) buf.writeUInt32BE(out[2], 8) buf.writeUInt32BE(out[3], 12) return buf } AES.prototype.decryptBlock = function (M) { M = asUInt32Array(M) // swap var m1 = M[1] M[1] = M[3] M[3] = m1 var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) var buf = Buffer.allocUnsafe(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[3], 4) buf.writeUInt32BE(out[2], 8) buf.writeUInt32BE(out[1], 12) return buf } AES.prototype.scrub = function () { scrubVec(this._keySchedule) scrubVec(this._invKeySchedule) scrubVec(this._key) } module.exports.AES = AES /***/ }), /***/ "./node_modules/browserify-aes/authCipher.js": /*!***************************************************!*\ !*** ./node_modules/browserify-aes/authCipher.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var GHASH = __webpack_require__(/*! ./ghash */ "./node_modules/browserify-aes/ghash.js") var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") var incr32 = __webpack_require__(/*! ./incr32 */ "./node_modules/browserify-aes/incr32.js") function xorTest (a, b) { var out = 0 if (a.length !== b.length) out++ var len = Math.min(a.length, b.length) for (var i = 0; i < len; ++i) { out += (a[i] ^ b[i]) } return out } function calcIv (self, iv, ck) { if (iv.length === 12) { self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) } var ghash = new GHASH(ck) var len = iv.length var toPad = len % 16 ghash.update(iv) if (toPad) { toPad = 16 - toPad ghash.update(Buffer.alloc(toPad, 0)) } ghash.update(Buffer.alloc(8, 0)) var ivBits = len * 8 var tail = Buffer.alloc(8) tail.writeUIntBE(ivBits, 0, 8) ghash.update(tail) self._finID = ghash.state var out = Buffer.from(self._finID) incr32(out) return out } function StreamCipher (mode, key, iv, decrypt) { Transform.call(this) var h = Buffer.alloc(4, 0) this._cipher = new aes.AES(key) var ck = this._cipher.encryptBlock(h) this._ghash = new GHASH(ck) iv = calcIv(this, iv, ck) this._prev = Buffer.from(iv) this._cache = Buffer.allocUnsafe(0) this._secCache = Buffer.allocUnsafe(0) this._decrypt = decrypt this._alen = 0 this._len = 0 this._mode = mode this._authTag = null this._called = false } inherits(StreamCipher, Transform) StreamCipher.prototype._update = function (chunk) { if (!this._called && this._alen) { var rump = 16 - (this._alen % 16) if (rump < 16) { rump = Buffer.alloc(rump, 0) this._ghash.update(rump) } } this._called = true var out = this._mode.encrypt(this, chunk) if (this._decrypt) { this._ghash.update(chunk) } else { this._ghash.update(out) } this._len += chunk.length return out } StreamCipher.prototype._final = function () { if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data') this._authTag = tag this._cipher.scrub() } StreamCipher.prototype.getAuthTag = function getAuthTag () { if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') return this._authTag } StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') this._authTag = tag } StreamCipher.prototype.setAAD = function setAAD (buf) { if (this._called) throw new Error('Attempting to set AAD in unsupported state') this._ghash.update(buf) this._alen += buf.length } module.exports = StreamCipher /***/ }), /***/ "./node_modules/browserify-aes/browser.js": /*!************************************************!*\ !*** ./node_modules/browserify-aes/browser.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var ciphers = __webpack_require__(/*! ./encrypter */ "./node_modules/browserify-aes/encrypter.js") var deciphers = __webpack_require__(/*! ./decrypter */ "./node_modules/browserify-aes/decrypter.js") var modes = __webpack_require__(/*! ./modes/list.json */ "./node_modules/browserify-aes/modes/list.json") function getCiphers () { return Object.keys(modes) } exports.createCipher = exports.Cipher = ciphers.createCipher exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv exports.createDecipher = exports.Decipher = deciphers.createDecipher exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv exports.listCiphers = exports.getCiphers = getCiphers /***/ }), /***/ "./node_modules/browserify-aes/decrypter.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/decrypter.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") function Decipher (mode, key, iv) { Transform.call(this) this._cache = new Splitter() this._last = void 0 this._cipher = new aes.AES(key) this._prev = Buffer.from(iv) this._mode = mode this._autopadding = true } inherits(Decipher, Transform) Decipher.prototype._update = function (data) { this._cache.add(data) var chunk var thing var out = [] while ((chunk = this._cache.get(this._autopadding))) { thing = this._mode.decrypt(this, chunk) out.push(thing) } return Buffer.concat(out) } Decipher.prototype._final = function () { var chunk = this._cache.flush() if (this._autopadding) { return unpad(this._mode.decrypt(this, chunk)) } else if (chunk) { throw new Error('data not multiple of block length') } } Decipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo return this } function Splitter () { this.cache = Buffer.allocUnsafe(0) } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]) } Splitter.prototype.get = function (autoPadding) { var out if (autoPadding) { if (this.cache.length > 16) { out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } } else { if (this.cache.length >= 16) { out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } } return null } Splitter.prototype.flush = function () { if (this.cache.length) return this.cache } function unpad (last) { var padded = last[15] var i = -1 while (++i < padded) { if (last[(i + (16 - padded))] !== padded) { throw new Error('unable to decrypt data') } } if (padded === 16) return return last.slice(0, 16 - padded) } function createDecipheriv (suite, password, iv) { var config = MODES[suite.toLowerCase()] if (!config) throw new TypeError('invalid suite type') if (typeof iv === 'string') iv = Buffer.from(iv) if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) if (typeof password === 'string') password = Buffer.from(password) if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) if (config.type === 'stream') { return new StreamCipher(config.module, password, iv, true) } else if (config.type === 'auth') { return new AuthCipher(config.module, password, iv, true) } return new Decipher(config.module, password, iv) } function createDecipher (suite, password) { var config = MODES[suite.toLowerCase()] if (!config) throw new TypeError('invalid suite type') var keys = ebtk(password, false, config.key, config.iv) return createDecipheriv(suite, keys.key, keys.iv) } exports.createDecipher = createDecipher exports.createDecipheriv = createDecipheriv /***/ }), /***/ "./node_modules/browserify-aes/encrypter.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/encrypter.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") function Cipher (mode, key, iv) { Transform.call(this) this._cache = new Splitter() this._cipher = new aes.AES(key) this._prev = Buffer.from(iv) this._mode = mode this._autopadding = true } inherits(Cipher, Transform) Cipher.prototype._update = function (data) { this._cache.add(data) var chunk var thing var out = [] while ((chunk = this._cache.get())) { thing = this._mode.encrypt(this, chunk) out.push(thing) } return Buffer.concat(out) } var PADDING = Buffer.alloc(16, 0x10) Cipher.prototype._final = function () { var chunk = this._cache.flush() if (this._autopadding) { chunk = this._mode.encrypt(this, chunk) this._cipher.scrub() return chunk } if (!chunk.equals(PADDING)) { this._cipher.scrub() throw new Error('data not multiple of block length') } } Cipher.prototype.setAutoPadding = function (setTo) { this._autopadding = !!setTo return this } function Splitter () { this.cache = Buffer.allocUnsafe(0) } Splitter.prototype.add = function (data) { this.cache = Buffer.concat([this.cache, data]) } Splitter.prototype.get = function () { if (this.cache.length > 15) { var out = this.cache.slice(0, 16) this.cache = this.cache.slice(16) return out } return null } Splitter.prototype.flush = function () { var len = 16 - this.cache.length var padBuff = Buffer.allocUnsafe(len) var i = -1 while (++i < len) { padBuff.writeUInt8(len, i) } return Buffer.concat([this.cache, padBuff]) } function createCipheriv (suite, password, iv) { var config = MODES[suite.toLowerCase()] if (!config) throw new TypeError('invalid suite type') if (typeof password === 'string') password = Buffer.from(password) if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) if (typeof iv === 'string') iv = Buffer.from(iv) if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) if (config.type === 'stream') { return new StreamCipher(config.module, password, iv) } else if (config.type === 'auth') { return new AuthCipher(config.module, password, iv) } return new Cipher(config.module, password, iv) } function createCipher (suite, password) { var config = MODES[suite.toLowerCase()] if (!config) throw new TypeError('invalid suite type') var keys = ebtk(password, false, config.key, config.iv) return createCipheriv(suite, keys.key, keys.iv) } exports.createCipheriv = createCipheriv exports.createCipher = createCipher /***/ }), /***/ "./node_modules/browserify-aes/ghash.js": /*!**********************************************!*\ !*** ./node_modules/browserify-aes/ghash.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var ZEROES = Buffer.alloc(16, 0) function toArray (buf) { return [ buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12) ] } function fromArray (out) { var buf = Buffer.allocUnsafe(16) buf.writeUInt32BE(out[0] >>> 0, 0) buf.writeUInt32BE(out[1] >>> 0, 4) buf.writeUInt32BE(out[2] >>> 0, 8) buf.writeUInt32BE(out[3] >>> 0, 12) return buf } function GHASH (key) { this.h = key this.state = Buffer.alloc(16, 0) this.cache = Buffer.allocUnsafe(0) } // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html // by Juho Vähä-Herttua GHASH.prototype.ghash = function (block) { var i = -1 while (++i < block.length) { this.state[i] ^= block[i] } this._multiply() } GHASH.prototype._multiply = function () { var Vi = toArray(this.h) var Zi = [0, 0, 0, 0] var j, xi, lsbVi var i = -1 while (++i < 128) { xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 if (xi) { // Z_i+1 = Z_i ^ V_i Zi[0] ^= Vi[0] Zi[1] ^= Vi[1] Zi[2] ^= Vi[2] Zi[3] ^= Vi[3] } // Store the value of LSB(V_i) lsbVi = (Vi[3] & 1) !== 0 // V_i+1 = V_i >> 1 for (j = 3; j > 0; j--) { Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) } Vi[0] = Vi[0] >>> 1 // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R if (lsbVi) { Vi[0] = Vi[0] ^ (0xe1 << 24) } } this.state = fromArray(Zi) } GHASH.prototype.update = function (buf) { this.cache = Buffer.concat([this.cache, buf]) var chunk while (this.cache.length >= 16) { chunk = this.cache.slice(0, 16) this.cache = this.cache.slice(16) this.ghash(chunk) } } GHASH.prototype.final = function (abl, bl) { if (this.cache.length) { this.ghash(Buffer.concat([this.cache, ZEROES], 16)) } this.ghash(fromArray([0, abl, 0, bl])) return this.state } module.exports = GHASH /***/ }), /***/ "./node_modules/browserify-aes/incr32.js": /*!***********************************************!*\ !*** ./node_modules/browserify-aes/incr32.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { function incr32 (iv) { var len = iv.length var item while (len--) { item = iv.readUInt8(len) if (item === 255) { iv.writeUInt8(0, len) } else { item++ iv.writeUInt8(item, len) break } } } module.exports = incr32 /***/ }), /***/ "./node_modules/browserify-aes/modes/cbc.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/modes/cbc.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") exports.encrypt = function (self, block) { var data = xor(block, self._prev) self._prev = self._cipher.encryptBlock(data) return self._prev } exports.decrypt = function (self, block) { var pad = self._prev self._prev = block var out = self._cipher.decryptBlock(block) return xor(out, pad) } /***/ }), /***/ "./node_modules/browserify-aes/modes/cfb.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/modes/cfb.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") function encryptStart (self, data, decrypt) { var len = data.length var out = xor(data, self._cache) self._cache = self._cache.slice(len) self._prev = Buffer.concat([self._prev, decrypt ? data : out]) return out } exports.encrypt = function (self, data, decrypt) { var out = Buffer.allocUnsafe(0) var len while (data.length) { if (self._cache.length === 0) { self._cache = self._cipher.encryptBlock(self._prev) self._prev = Buffer.allocUnsafe(0) } if (self._cache.length <= data.length) { len = self._cache.length out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) data = data.slice(len) } else { out = Buffer.concat([out, encryptStart(self, data, decrypt)]) break } } return out } /***/ }), /***/ "./node_modules/browserify-aes/modes/cfb1.js": /*!***************************************************!*\ !*** ./node_modules/browserify-aes/modes/cfb1.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer function encryptByte (self, byteParam, decrypt) { var pad var i = -1 var len = 8 var out = 0 var bit, value while (++i < len) { pad = self._cipher.encryptBlock(self._prev) bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 value = pad[0] ^ bit out += ((value & 0x80) >> (i % 8)) self._prev = shiftIn(self._prev, decrypt ? bit : value) } return out } function shiftIn (buffer, value) { var len = buffer.length var i = -1 var out = Buffer.allocUnsafe(buffer.length) buffer = Buffer.concat([buffer, Buffer.from([value])]) while (++i < len) { out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) } return out } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length var out = Buffer.allocUnsafe(len) var i = -1 while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt) } return out } /***/ }), /***/ "./node_modules/browserify-aes/modes/cfb8.js": /*!***************************************************!*\ !*** ./node_modules/browserify-aes/modes/cfb8.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer function encryptByte (self, byteParam, decrypt) { var pad = self._cipher.encryptBlock(self._prev) var out = pad[0] ^ byteParam self._prev = Buffer.concat([ self._prev.slice(1), Buffer.from([decrypt ? byteParam : out]) ]) return out } exports.encrypt = function (self, chunk, decrypt) { var len = chunk.length var out = Buffer.allocUnsafe(len) var i = -1 while (++i < len) { out[i] = encryptByte(self, chunk[i], decrypt) } return out } /***/ }), /***/ "./node_modules/browserify-aes/modes/ctr.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/modes/ctr.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var incr32 = __webpack_require__(/*! ../incr32 */ "./node_modules/browserify-aes/incr32.js") function getBlock (self) { var out = self._cipher.encryptBlockRaw(self._prev) incr32(self._prev) return out } var blockSize = 16 exports.encrypt = function (self, chunk) { var chunkNum = Math.ceil(chunk.length / blockSize) var start = self._cache.length self._cache = Buffer.concat([ self._cache, Buffer.allocUnsafe(chunkNum * blockSize) ]) for (var i = 0; i < chunkNum; i++) { var out = getBlock(self) var offset = start + i * blockSize self._cache.writeUInt32BE(out[0], offset + 0) self._cache.writeUInt32BE(out[1], offset + 4) self._cache.writeUInt32BE(out[2], offset + 8) self._cache.writeUInt32BE(out[3], offset + 12) } var pad = self._cache.slice(0, chunk.length) self._cache = self._cache.slice(chunk.length) return xor(chunk, pad) } /***/ }), /***/ "./node_modules/browserify-aes/modes/ecb.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/modes/ecb.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { exports.encrypt = function (self, block) { return self._cipher.encryptBlock(block) } exports.decrypt = function (self, block) { return self._cipher.decryptBlock(block) } /***/ }), /***/ "./node_modules/browserify-aes/modes/index.js": /*!****************************************************!*\ !*** ./node_modules/browserify-aes/modes/index.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var modeModules = { ECB: __webpack_require__(/*! ./ecb */ "./node_modules/browserify-aes/modes/ecb.js"), CBC: __webpack_require__(/*! ./cbc */ "./node_modules/browserify-aes/modes/cbc.js"), CFB: __webpack_require__(/*! ./cfb */ "./node_modules/browserify-aes/modes/cfb.js"), CFB8: __webpack_require__(/*! ./cfb8 */ "./node_modules/browserify-aes/modes/cfb8.js"), CFB1: __webpack_require__(/*! ./cfb1 */ "./node_modules/browserify-aes/modes/cfb1.js"), OFB: __webpack_require__(/*! ./ofb */ "./node_modules/browserify-aes/modes/ofb.js"), CTR: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js"), GCM: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js") } var modes = __webpack_require__(/*! ./list.json */ "./node_modules/browserify-aes/modes/list.json") for (var key in modes) { modes[key].module = modeModules[modes[key].mode] } module.exports = modes /***/ }), /***/ "./node_modules/browserify-aes/modes/list.json": /*!*****************************************************!*\ !*** ./node_modules/browserify-aes/modes/list.json ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}} /***/ }), /***/ "./node_modules/browserify-aes/modes/ofb.js": /*!**************************************************!*\ !*** ./node_modules/browserify-aes/modes/ofb.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") function getBlock (self) { self._prev = self._cipher.encryptBlock(self._prev) return self._prev } exports.encrypt = function (self, chunk) { while (self._cache.length < chunk.length) { self._cache = Buffer.concat([self._cache, getBlock(self)]) } var pad = self._cache.slice(0, chunk.length) self._cache = self._cache.slice(chunk.length) return xor(chunk, pad) } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/browserify-aes/streamCipher.js": /*!*****************************************************!*\ !*** ./node_modules/browserify-aes/streamCipher.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") function StreamCipher (mode, key, iv, decrypt) { Transform.call(this) this._cipher = new aes.AES(key) this._prev = Buffer.from(iv) this._cache = Buffer.allocUnsafe(0) this._secCache = Buffer.allocUnsafe(0) this._decrypt = decrypt this._mode = mode } inherits(StreamCipher, Transform) StreamCipher.prototype._update = function (chunk) { return this._mode.encrypt(this, chunk, this._decrypt) } StreamCipher.prototype._final = function () { this._cipher.scrub() } module.exports = StreamCipher /***/ }), /***/ "./node_modules/browserify-cipher/browser.js": /*!***************************************************!*\ !*** ./node_modules/browserify-cipher/browser.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") var aes = __webpack_require__(/*! browserify-aes/browser */ "./node_modules/browserify-aes/browser.js") var DES = __webpack_require__(/*! browserify-des */ "./node_modules/browserify-des/index.js") var desModes = __webpack_require__(/*! browserify-des/modes */ "./node_modules/browserify-des/modes.js") var aesModes = __webpack_require__(/*! browserify-aes/modes */ "./node_modules/browserify-aes/modes/index.js") function createCipher (suite, password) { var keyLen, ivLen suite = suite.toLowerCase() if (aesModes[suite]) { keyLen = aesModes[suite].key ivLen = aesModes[suite].iv } else if (desModes[suite]) { keyLen = desModes[suite].key * 8 ivLen = desModes[suite].iv } else { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, keyLen, ivLen) return createCipheriv(suite, keys.key, keys.iv) } function createDecipher (suite, password) { var keyLen, ivLen suite = suite.toLowerCase() if (aesModes[suite]) { keyLen = aesModes[suite].key ivLen = aesModes[suite].iv } else if (desModes[suite]) { keyLen = desModes[suite].key * 8 ivLen = desModes[suite].iv } else { throw new TypeError('invalid suite type') } var keys = ebtk(password, false, keyLen, ivLen) return createDecipheriv(suite, keys.key, keys.iv) } function createCipheriv (suite, key, iv) { suite = suite.toLowerCase() if (aesModes[suite]) { return aes.createCipheriv(suite, key, iv) } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite }) } else { throw new TypeError('invalid suite type') } } function createDecipheriv (suite, key, iv) { suite = suite.toLowerCase() if (aesModes[suite]) { return aes.createDecipheriv(suite, key, iv) } else if (desModes[suite]) { return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) } else { throw new TypeError('invalid suite type') } } exports.createCipher = exports.Cipher = createCipher exports.createCipheriv = exports.Cipheriv = createCipheriv exports.createDecipher = exports.Decipher = createDecipher exports.createDecipheriv = exports.Decipheriv = createDecipheriv function getCiphers () { return Object.keys(desModes).concat(aes.getCiphers()) } exports.listCiphers = exports.getCiphers = getCiphers /***/ }), /***/ "./node_modules/browserify-des/index.js": /*!**********************************************!*\ !*** ./node_modules/browserify-des/index.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var CipherBase = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var des = __webpack_require__(/*! des.js */ "./node_modules/des.js/lib/des.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var modes = { 'des-ede3-cbc': des.CBC.instantiate(des.EDE), 'des-ede3': des.EDE, 'des-ede-cbc': des.CBC.instantiate(des.EDE), 'des-ede': des.EDE, 'des-cbc': des.CBC.instantiate(des.DES), 'des-ecb': des.DES } modes.des = modes['des-cbc'] modes.des3 = modes['des-ede3-cbc'] module.exports = DES inherits(DES, CipherBase) function DES (opts) { CipherBase.call(this) var modeName = opts.mode.toLowerCase() var mode = modes[modeName] var type if (opts.decrypt) { type = 'decrypt' } else { type = 'encrypt' } var key = opts.key if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { key = Buffer.concat([key, key.slice(0, 8)]) } var iv = opts.iv this._des = mode.create({ key: key, iv: iv, type: type }) } DES.prototype._update = function (data) { return new Buffer(this._des.update(data)) } DES.prototype._final = function () { return new Buffer(this._des.final()) } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/browserify-des/modes.js": /*!**********************************************!*\ !*** ./node_modules/browserify-des/modes.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { exports['des-ecb'] = { key: 8, iv: 0 } exports['des-cbc'] = exports.des = { key: 8, iv: 8 } exports['des-ede3-cbc'] = exports.des3 = { key: 24, iv: 8 } exports['des-ede3'] = { key: 24, iv: 0 } exports['des-ede-cbc'] = { key: 16, iv: 8 } exports['des-ede'] = { key: 16, iv: 0 } /***/ }), /***/ "./node_modules/browserify-rsa/index.js": /*!**********************************************!*\ !*** ./node_modules/browserify-rsa/index.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); module.exports = crt; function blind(priv) { var r = getr(priv); var blinder = r.toRed(bn.mont(priv.modulus)) .redPow(new bn(priv.publicExponent)).fromRed(); return { blinder: blinder, unblinder:r.invm(priv.modulus) }; } function crt(msg, priv) { var blinds = blind(priv); var len = priv.modulus.byteLength(); var mod = bn.mont(priv.modulus); var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus); var c1 = blinded.toRed(bn.mont(priv.prime1)); var c2 = blinded.toRed(bn.mont(priv.prime2)); var qinv = priv.coefficient; var p = priv.prime1; var q = priv.prime2; var m1 = c1.redPow(priv.exponent1); var m2 = c2.redPow(priv.exponent2); m1 = m1.fromRed(); m2 = m2.fromRed(); var h = m1.isub(m2).imul(qinv).umod(p); h.imul(q); m2.iadd(h); return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len)); } crt.getr = getr; function getr(priv) { var len = priv.modulus.byteLength(); var r = new bn(randomBytes(len)); while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) { r = new bn(randomBytes(len)); } return r; } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/browserify-sign/algos.js": /*!***********************************************!*\ !*** ./node_modules/browserify-sign/algos.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(/*! ./browser/algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") /***/ }), /***/ "./node_modules/browserify-sign/browser/algorithms.json": /*!**************************************************************!*\ !*** ./node_modules/browserify-sign/browser/algorithms.json ***! \**************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}} /***/ }), /***/ "./node_modules/browserify-sign/browser/curves.json": /*!**********************************************************!*\ !*** ./node_modules/browserify-sign/browser/curves.json ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"} /***/ }), /***/ "./node_modules/browserify-sign/browser/index.js": /*!*******************************************************!*\ !*** ./node_modules/browserify-sign/browser/index.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") var stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var sign = __webpack_require__(/*! ./sign */ "./node_modules/browserify-sign/browser/sign.js") var verify = __webpack_require__(/*! ./verify */ "./node_modules/browserify-sign/browser/verify.js") var algorithms = __webpack_require__(/*! ./algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") Object.keys(algorithms).forEach(function (key) { algorithms[key].id = new Buffer(algorithms[key].id, 'hex') algorithms[key.toLowerCase()] = algorithms[key] }) function Sign (algorithm) { stream.Writable.call(this) var data = algorithms[algorithm] if (!data) throw new Error('Unknown message digest') this._hashType = data.hash this._hash = createHash(data.hash) this._tag = data.id this._signType = data.sign } inherits(Sign, stream.Writable) Sign.prototype._write = function _write (data, _, done) { this._hash.update(data) done() } Sign.prototype.update = function update (data, enc) { if (typeof data === 'string') data = new Buffer(data, enc) this._hash.update(data) return this } Sign.prototype.sign = function signMethod (key, enc) { this.end() var hash = this._hash.digest() var sig = sign(hash, key, this._hashType, this._signType, this._tag) return enc ? sig.toString(enc) : sig } function Verify (algorithm) { stream.Writable.call(this) var data = algorithms[algorithm] if (!data) throw new Error('Unknown message digest') this._hash = createHash(data.hash) this._tag = data.id this._signType = data.sign } inherits(Verify, stream.Writable) Verify.prototype._write = function _write (data, _, done) { this._hash.update(data) done() } Verify.prototype.update = function update (data, enc) { if (typeof data === 'string') data = new Buffer(data, enc) this._hash.update(data) return this } Verify.prototype.verify = function verifyMethod (key, sig, enc) { if (typeof sig === 'string') sig = new Buffer(sig, enc) this.end() var hash = this._hash.digest() return verify(sig, hash, key, this._signType, this._tag) } function createSign (algorithm) { return new Sign(algorithm) } function createVerify (algorithm) { return new Verify(algorithm) } module.exports = { Sign: createSign, Verify: createVerify, createSign: createSign, createVerify: createVerify } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/browserify-sign/browser/sign.js": /*!******************************************************!*\ !*** ./node_modules/browserify-sign/browser/sign.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var createHmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") var EC = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") function sign (hash, key, hashType, signType, tag) { var priv = parseKeys(key) if (priv.curve) { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') return ecSign(hash, priv) } else if (priv.type === 'dsa') { if (signType !== 'dsa') throw new Error('wrong private key type') return dsaSign(hash, priv, hashType) } else { if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') } hash = Buffer.concat([tag, hash]) var len = priv.modulus.byteLength() var pad = [ 0, 1 ] while (hash.length + pad.length + 1 < len) pad.push(0xff) pad.push(0x00) var i = -1 while (++i < hash.length) pad.push(hash[i]) var out = crt(pad, priv) return out } function ecSign (hash, priv) { var curveId = curves[priv.curve.join('.')] if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) var curve = new EC(curveId) var key = curve.keyFromPrivate(priv.privateKey) var out = key.sign(hash) return new Buffer(out.toDER()) } function dsaSign (hash, priv, algo) { var x = priv.params.priv_key var p = priv.params.p var q = priv.params.q var g = priv.params.g var r = new BN(0) var k var H = bits2int(hash, q).mod(q) var s = false var kv = getKey(x, q, hash, algo) while (s === false) { k = makeKey(q, kv, algo) r = makeR(g, k, p, q) s = k.invm(q).imul(H.add(x.mul(r))).mod(q) if (s.cmpn(0) === 0) { s = false r = new BN(0) } } return toDER(r, s) } function toDER (r, s) { r = r.toArray() s = s.toArray() // Pad values if (r[0] & 0x80) r = [ 0 ].concat(r) if (s[0] & 0x80) s = [ 0 ].concat(s) var total = r.length + s.length + 4 var res = [ 0x30, total, 0x02, r.length ] res = res.concat(r, [ 0x02, s.length ], s) return new Buffer(res) } function getKey (x, q, hash, algo) { x = new Buffer(x.toArray()) if (x.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - x.length) zeros.fill(0) x = Buffer.concat([ zeros, x ]) } var hlen = hash.length var hbits = bits2octets(hash, q) var v = new Buffer(hlen) v.fill(1) var k = new Buffer(hlen) k.fill(0) k = createHmac(algo, k).update(v).update(new Buffer([ 0 ])).update(x).update(hbits).digest() v = createHmac(algo, k).update(v).digest() k = createHmac(algo, k).update(v).update(new Buffer([ 1 ])).update(x).update(hbits).digest() v = createHmac(algo, k).update(v).digest() return { k: k, v: v } } function bits2int (obits, q) { var bits = new BN(obits) var shift = (obits.length << 3) - q.bitLength() if (shift > 0) bits.ishrn(shift) return bits } function bits2octets (bits, q) { bits = bits2int(bits, q) bits = bits.mod(q) var out = new Buffer(bits.toArray()) if (out.length < q.byteLength()) { var zeros = new Buffer(q.byteLength() - out.length) zeros.fill(0) out = Buffer.concat([ zeros, out ]) } return out } function makeKey (q, kv, algo) { var t var k do { t = new Buffer(0) while (t.length * 8 < q.bitLength()) { kv.v = createHmac(algo, kv.k).update(kv.v).digest() t = Buffer.concat([ t, kv.v ]) } k = bits2int(t, q) kv.k = createHmac(algo, kv.k).update(kv.v).update(new Buffer([ 0 ])).digest() kv.v = createHmac(algo, kv.k).update(kv.v).digest() } while (k.cmp(q) !== -1) return k } function makeR (g, k, p, q) { return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) } module.exports = sign module.exports.getKey = getKey module.exports.makeKey = makeKey /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/browserify-sign/browser/verify.js": /*!********************************************************!*\ !*** ./node_modules/browserify-sign/browser/verify.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") var EC = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") function verify (sig, hash, key, signType, tag) { var pub = parseKeys(key) if (pub.type === 'ec') { // rsa keys can be interpreted as ecdsa ones in openssl if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') return ecVerify(sig, hash, pub) } else if (pub.type === 'dsa') { if (signType !== 'dsa') throw new Error('wrong public key type') return dsaVerify(sig, hash, pub) } else { if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') } hash = Buffer.concat([tag, hash]) var len = pub.modulus.byteLength() var pad = [ 1 ] var padNum = 0 while (hash.length + pad.length + 2 < len) { pad.push(0xff) padNum++ } pad.push(0x00) var i = -1 while (++i < hash.length) { pad.push(hash[i]) } pad = new Buffer(pad) var red = BN.mont(pub.modulus) sig = new BN(sig).toRed(red) sig = sig.redPow(new BN(pub.publicExponent)) sig = new Buffer(sig.fromRed().toArray()) var out = padNum < 8 ? 1 : 0 len = Math.min(sig.length, pad.length) if (sig.length !== pad.length) out = 1 i = -1 while (++i < len) out |= sig[i] ^ pad[i] return out === 0 } function ecVerify (sig, hash, pub) { var curveId = curves[pub.data.algorithm.curve.join('.')] if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) var curve = new EC(curveId) var pubkey = pub.data.subjectPrivateKey.data return curve.verify(hash, sig, pubkey) } function dsaVerify (sig, hash, pub) { var p = pub.data.p var q = pub.data.q var g = pub.data.g var y = pub.data.pub_key var unpacked = parseKeys.signature.decode(sig, 'der') var s = unpacked.s var r = unpacked.r checkValue(s, q) checkValue(r, q) var montp = BN.mont(p) var w = s.invm(q) var v = g.toRed(montp) .redPow(new BN(hash).mul(w).mod(q)) .fromRed() .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) .mod(p) .mod(q) return v.cmp(r) === 0 } function checkValue (b, q) { if (b.cmpn(0) <= 0) throw new Error('invalid sig') if (b.cmp(q) >= q) throw new Error('invalid sig') } module.exports = verify /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/buffer-equal-constant-time/index.js": /*!**********************************************************!*\ !*** ./node_modules/buffer-equal-constant-time/index.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /*jshint node:true */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer; // browserify var SlowBuffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").SlowBuffer; module.exports = bufferEq; function bufferEq(a, b) { // shortcutting on type is necessary for correctness if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { return false; } // buffer sizes should be well-known information, so despite this // shortcutting, it doesn't leak any information about the *contents* of the // buffers. if (a.length !== b.length) { return false; } var c = 0; for (var i = 0; i < a.length; i++) { /*jshint bitwise:false */ c |= a[i] ^ b[i]; // XOR } return c === 0; } bufferEq.install = function() { Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) { return bufferEq(this, that); }; }; var origBufEqual = Buffer.prototype.equal; var origSlowBufEqual = SlowBuffer.prototype.equal; bufferEq.restore = function() { Buffer.prototype.equal = origBufEqual; SlowBuffer.prototype.equal = origSlowBufEqual; }; /***/ }), /***/ "./node_modules/buffer-xor/index.js": /*!******************************************!*\ !*** ./node_modules/buffer-xor/index.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) { var length = Math.min(a.length, b.length) var buffer = new Buffer(length) for (var i = 0; i < length; ++i) { buffer[i] = a[i] ^ b[i] } return buffer } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/buffer/index.js": /*!**************************************!*\ !*** ./node_modules/buffer/index.js ***! \**************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */ var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js") var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js") var isArray = __webpack_require__(/*! isarray */ "./node_modules/buffer/node_modules/isarray/index.js") exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer exports.INSPECT_MAX_BYTES = 50 /** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Use Object implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * Due to various browser bugs, sometimes the Object implementation will be used even * when the browser supports typed arrays. * * Note: * * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. * * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. * * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of * incorrect length in some situations. * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they * get the Object implementation, which is slower but behaves correctly. */ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport() /* * Export kMaxLength after typed array support is determined. */ exports.kMaxLength = kMaxLength() function typedArraySupport () { try { var arr = new Uint8Array(1) arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} return arr.foo() === 42 && // typed array instances can be augmented typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` } catch (e) { return false } } function kMaxLength () { return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff } function createBuffer (that, length) { if (kMaxLength() < length) { throw new RangeError('Invalid typed array length') } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = new Uint8Array(length) that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class if (that === null) { that = new Buffer(length) } that.length = length } return that } /** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */ function Buffer (arg, encodingOrOffset, length) { if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { return new Buffer(arg, encodingOrOffset, length) } // Common case. if (typeof arg === 'number') { if (typeof encodingOrOffset === 'string') { throw new Error( 'If encoding is specified then the first argument must be a string' ) } return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } Buffer.poolSize = 8192 // not used by this implementation // TODO: Legacy, not needed anymore. Remove in next major version. Buffer._augment = function (arr) { arr.__proto__ = Buffer.prototype return arr } function from (that, value, encodingOrOffset, length) { if (typeof value === 'number') { throw new TypeError('"value" argument must not be a number') } if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { return fromArrayBuffer(that, value, encodingOrOffset, length) } if (typeof value === 'string') { return fromString(that, value, encodingOrOffset) } return fromObject(that, value) } /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/ Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { Buffer.prototype.__proto__ = Uint8Array.prototype Buffer.__proto__ = Uint8Array if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) { // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: true }) } } function assertSize (size) { if (typeof size !== 'number') { throw new TypeError('"size" argument must be a number') } else if (size < 0) { throw new RangeError('"size" argument must not be negative') } } function alloc (that, size, fill, encoding) { assertSize(size) if (size <= 0) { return createBuffer(that, size) } if (fill !== undefined) { // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) } return createBuffer(that, size) } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/ Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) } function allocUnsafe (that, size) { assertSize(size) that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) if (!Buffer.TYPED_ARRAY_SUPPORT) { for (var i = 0; i < size; ++i) { that[i] = 0 } } return that } /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */ Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) } /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */ Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) } function fromString (that, string, encoding) { if (typeof encoding !== 'string' || encoding === '') { encoding = 'utf8' } if (!Buffer.isEncoding(encoding)) { throw new TypeError('"encoding" must be a valid string encoding') } var length = byteLength(string, encoding) | 0 that = createBuffer(that, length) var actual = that.write(string, encoding) if (actual !== length) { // Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') that = that.slice(0, actual) } return that } function fromArrayLike (that, array) { var length = array.length < 0 ? 0 : checked(array.length) | 0 that = createBuffer(that, length) for (var i = 0; i < length; i += 1) { that[i] = array[i] & 255 } return that } function fromArrayBuffer (that, array, byteOffset, length) { array.byteLength // this throws if `array` is not a valid ArrayBuffer if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError('\'offset\' is out of bounds') } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError('\'length\' is out of bounds') } if (byteOffset === undefined && length === undefined) { array = new Uint8Array(array) } else if (length === undefined) { array = new Uint8Array(array, byteOffset) } else { array = new Uint8Array(array, byteOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = array that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class that = fromArrayLike(that, array) } return that } function fromObject (that, obj) { if (Buffer.isBuffer(obj)) { var len = checked(obj.length) | 0 that = createBuffer(that, len) if (that.length === 0) { return that } obj.copy(that, 0, 0, len) return that } if (obj) { if ((typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer) || 'length' in obj) { if (typeof obj.length !== 'number' || isnan(obj.length)) { return createBuffer(that, 0) } return fromArrayLike(that, obj) } if (obj.type === 'Buffer' && isArray(obj.data)) { return fromArrayLike(that, obj.data) } } throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') } function checked (length) { // Note: cannot use `length < kMaxLength()` here because that fails when // length is NaN (which is otherwise coerced to zero.) if (length >= kMaxLength()) { throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes') } return length | 0 } function SlowBuffer (length) { if (+length != length) { // eslint-disable-line eqeqeq length = 0 } return Buffer.alloc(+length) } Buffer.isBuffer = function isBuffer (b) { return !!(b != null && b._isBuffer) } Buffer.compare = function compare (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { throw new TypeError('Arguments must be Buffers') } if (a === b) return 0 var x = a.length var y = b.length for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i] y = b[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } Buffer.isEncoding = function isEncoding (encoding) { switch (String(encoding).toLowerCase()) { case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'latin1': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return true default: return false } } Buffer.concat = function concat (list, length) { if (!isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers') } if (list.length === 0) { return Buffer.alloc(0) } var i if (length === undefined) { length = 0 for (i = 0; i < list.length; ++i) { length += list[i].length } } var buffer = Buffer.allocUnsafe(length) var pos = 0 for (i = 0; i < list.length; ++i) { var buf = list[i] if (!Buffer.isBuffer(buf)) { throw new TypeError('"list" argument must be an Array of Buffers') } buf.copy(buffer, pos) pos += buf.length } return buffer } function byteLength (string, encoding) { if (Buffer.isBuffer(string)) { return string.length } if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { return string.byteLength } if (typeof string !== 'string') { string = '' + string } var len = string.length if (len === 0) return 0 // Use a for loop to avoid recursion var loweredCase = false for (;;) { switch (encoding) { case 'ascii': case 'latin1': case 'binary': return len case 'utf8': case 'utf-8': case undefined: return utf8ToBytes(string).length case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return len * 2 case 'hex': return len >>> 1 case 'base64': return base64ToBytes(string).length default: if (loweredCase) return utf8ToBytes(string).length // assume utf8 encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.byteLength = byteLength function slowToString (encoding, start, end) { var loweredCase = false // No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if (start === undefined || start < 0) { start = 0 } // Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if (start > this.length) { return '' } if (end === undefined || end > this.length) { end = this.length } if (end <= 0) { return '' } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. end >>>= 0 start >>>= 0 if (end <= start) { return '' } if (!encoding) encoding = 'utf8' while (true) { switch (encoding) { case 'hex': return hexSlice(this, start, end) case 'utf8': case 'utf-8': return utf8Slice(this, start, end) case 'ascii': return asciiSlice(this, start, end) case 'latin1': case 'binary': return latin1Slice(this, start, end) case 'base64': return base64Slice(this, start, end) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return utf16leSlice(this, start, end) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = (encoding + '').toLowerCase() loweredCase = true } } } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect // Buffer instances. Buffer.prototype._isBuffer = true function swap (b, n, m) { var i = b[n] b[n] = b[m] b[m] = i } Buffer.prototype.swap16 = function swap16 () { var len = this.length if (len % 2 !== 0) { throw new RangeError('Buffer size must be a multiple of 16-bits') } for (var i = 0; i < len; i += 2) { swap(this, i, i + 1) } return this } Buffer.prototype.swap32 = function swap32 () { var len = this.length if (len % 4 !== 0) { throw new RangeError('Buffer size must be a multiple of 32-bits') } for (var i = 0; i < len; i += 4) { swap(this, i, i + 3) swap(this, i + 1, i + 2) } return this } Buffer.prototype.swap64 = function swap64 () { var len = this.length if (len % 8 !== 0) { throw new RangeError('Buffer size must be a multiple of 64-bits') } for (var i = 0; i < len; i += 8) { swap(this, i, i + 7) swap(this, i + 1, i + 6) swap(this, i + 2, i + 5) swap(this, i + 3, i + 4) } return this } Buffer.prototype.toString = function toString () { var length = this.length | 0 if (length === 0) return '' if (arguments.length === 0) return utf8Slice(this, 0, length) return slowToString.apply(this, arguments) } Buffer.prototype.equals = function equals (b) { if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') if (this === b) return true return Buffer.compare(this, b) === 0 } Buffer.prototype.inspect = function inspect () { var str = '' var max = exports.INSPECT_MAX_BYTES if (this.length > 0) { str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') if (this.length > max) str += ' ... ' } return '' } Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) { throw new TypeError('Argument must be a Buffer') } if (start === undefined) { start = 0 } if (end === undefined) { end = target ? target.length : 0 } if (thisStart === undefined) { thisStart = 0 } if (thisEnd === undefined) { thisEnd = this.length } if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { throw new RangeError('out of range index') } if (thisStart >= thisEnd && start >= end) { return 0 } if (thisStart >= thisEnd) { return -1 } if (start >= end) { return 1 } start >>>= 0 end >>>= 0 thisStart >>>= 0 thisEnd >>>= 0 if (this === target) return 0 var x = thisEnd - thisStart var y = end - start var len = Math.min(x, y) var thisCopy = this.slice(thisStart, thisEnd) var targetCopy = target.slice(start, end) for (var i = 0; i < len; ++i) { if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i] y = targetCopy[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { // Empty buffer means no match if (buffer.length === 0) return -1 // Normalize byteOffset if (typeof byteOffset === 'string') { encoding = byteOffset byteOffset = 0 } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000 } byteOffset = +byteOffset // Coerce to Number. if (isNaN(byteOffset)) { // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset = dir ? 0 : (buffer.length - 1) } // Normalize byteOffset: negative offsets start from the end of the buffer if (byteOffset < 0) byteOffset = buffer.length + byteOffset if (byteOffset >= buffer.length) { if (dir) return -1 else byteOffset = buffer.length - 1 } else if (byteOffset < 0) { if (dir) byteOffset = 0 else return -1 } // Normalize val if (typeof val === 'string') { val = Buffer.from(val, encoding) } // Finally, search either indexOf (if dir is true) or lastIndexOf if (Buffer.isBuffer(val)) { // Special case: looking for empty string/buffer always fails if (val.length === 0) { return -1 } return arrayIndexOf(buffer, val, byteOffset, encoding, dir) } else if (typeof val === 'number') { val = val & 0xFF // Search for a byte value [0-255] if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') { if (dir) { return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) } else { return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) } } return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) } throw new TypeError('val must be string, number or Buffer') } function arrayIndexOf (arr, val, byteOffset, encoding, dir) { var indexSize = 1 var arrLength = arr.length var valLength = val.length if (encoding !== undefined) { encoding = String(encoding).toLowerCase() if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { if (arr.length < 2 || val.length < 2) { return -1 } indexSize = 2 arrLength /= 2 valLength /= 2 byteOffset /= 2 } } function read (buf, i) { if (indexSize === 1) { return buf[i] } else { return buf.readUInt16BE(i * indexSize) } } var i if (dir) { var foundIndex = -1 for (i = byteOffset; i < arrLength; i++) { if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { if (foundIndex === -1) foundIndex = i if (i - foundIndex + 1 === valLength) return foundIndex * indexSize } else { if (foundIndex !== -1) i -= i - foundIndex foundIndex = -1 } } } else { if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength for (i = byteOffset; i >= 0; i--) { var found = true for (var j = 0; j < valLength; j++) { if (read(arr, i + j) !== read(val, j)) { found = false break } } if (found) return i } } return -1 } Buffer.prototype.includes = function includes (val, byteOffset, encoding) { return this.indexOf(val, byteOffset, encoding) !== -1 } Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true) } Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false) } function hexWrite (buf, string, offset, length) { offset = Number(offset) || 0 var remaining = buf.length - offset if (!length) { length = remaining } else { length = Number(length) if (length > remaining) { length = remaining } } // must be an even number of digits var strLen = string.length if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') if (length > strLen / 2) { length = strLen / 2 } for (var i = 0; i < length; ++i) { var parsed = parseInt(string.substr(i * 2, 2), 16) if (isNaN(parsed)) return i buf[offset + i] = parsed } return i } function utf8Write (buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite (buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write (buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write (buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write (buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } Buffer.prototype.write = function write (string, offset, length, encoding) { // Buffer#write(string) if (offset === undefined) { encoding = 'utf8' length = this.length offset = 0 // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === 'string') { encoding = offset length = this.length offset = 0 // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset | 0 if (isFinite(length)) { length = length | 0 if (encoding === undefined) encoding = 'utf8' } else { encoding = length length = undefined } // legacy write(string, encoding, offset, length) - remove in v0.13 } else { throw new Error( 'Buffer.write(string, encoding, offset[, length]) is no longer supported' ) } var remaining = this.length - offset if (length === undefined || length > remaining) length = remaining if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { throw new RangeError('Attempt to write outside buffer bounds') } if (!encoding) encoding = 'utf8' var loweredCase = false for (;;) { switch (encoding) { case 'hex': return hexWrite(this, string, offset, length) case 'utf8': case 'utf-8': return utf8Write(this, string, offset, length) case 'ascii': return asciiWrite(this, string, offset, length) case 'latin1': case 'binary': return latin1Write(this, string, offset, length) case 'base64': // Warning: maxLength not taken into account in base64Write return base64Write(this, string, offset, length) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return ucs2Write(this, string, offset, length) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.prototype.toJSON = function toJSON () { return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } } function base64Slice (buf, start, end) { if (start === 0 && end === buf.length) { return base64.fromByteArray(buf) } else { return base64.fromByteArray(buf.slice(start, end)) } } function utf8Slice (buf, start, end) { end = Math.min(buf.length, end) var res = [] var i = start while (i < end) { var firstByte = buf[i] var codePoint = null var bytesPerSequence = (firstByte > 0xEF) ? 4 : (firstByte > 0xDF) ? 3 : (firstByte > 0xBF) ? 2 : 1 if (i + bytesPerSequence <= end) { var secondByte, thirdByte, fourthByte, tempCodePoint switch (bytesPerSequence) { case 1: if (firstByte < 0x80) { codePoint = firstByte } break case 2: secondByte = buf[i + 1] if ((secondByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) if (tempCodePoint > 0x7F) { codePoint = tempCodePoint } } break case 3: secondByte = buf[i + 1] thirdByte = buf[i + 2] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { codePoint = tempCodePoint } } break case 4: secondByte = buf[i + 1] thirdByte = buf[i + 2] fourthByte = buf[i + 3] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { codePoint = tempCodePoint } } } } if (codePoint === null) { // we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint = 0xFFFD bytesPerSequence = 1 } else if (codePoint > 0xFFFF) { // encode to utf16 (surrogate pair dance) codePoint -= 0x10000 res.push(codePoint >>> 10 & 0x3FF | 0xD800) codePoint = 0xDC00 | codePoint & 0x3FF } res.push(codePoint) i += bytesPerSequence } return decodeCodePointsArray(res) } // Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH = 0x1000 function decodeCodePointsArray (codePoints) { var len = codePoints.length if (len <= MAX_ARGUMENTS_LENGTH) { return String.fromCharCode.apply(String, codePoints) // avoid extra slice() } // Decode in chunks to avoid "call stack size exceeded". var res = '' var i = 0 while (i < len) { res += String.fromCharCode.apply( String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) ) } return res } function asciiSlice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i] & 0x7F) } return ret } function latin1Slice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i]) } return ret } function hexSlice (buf, start, end) { var len = buf.length if (!start || start < 0) start = 0 if (!end || end < 0 || end > len) end = len var out = '' for (var i = start; i < end; ++i) { out += toHex(buf[i]) } return out } function utf16leSlice (buf, start, end) { var bytes = buf.slice(start, end) var res = '' for (var i = 0; i < bytes.length; i += 2) { res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) } return res } Buffer.prototype.slice = function slice (start, end) { var len = this.length start = ~~start end = end === undefined ? len : ~~end if (start < 0) { start += len if (start < 0) start = 0 } else if (start > len) { start = len } if (end < 0) { end += len if (end < 0) end = 0 } else if (end > len) { end = len } if (end < start) end = start var newBuf if (Buffer.TYPED_ARRAY_SUPPORT) { newBuf = this.subarray(start, end) newBuf.__proto__ = Buffer.prototype } else { var sliceLen = end - start newBuf = new Buffer(sliceLen, undefined) for (var i = 0; i < sliceLen; ++i) { newBuf[i] = this[i + start] } } return newBuf } /* * Need to make sure that buffer isn't trying to write out of bounds. */ function checkOffset (offset, ext, length) { if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') } Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } return val } Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { checkOffset(offset, byteLength, this.length) } var val = this[offset + --byteLength] var mul = 1 while (byteLength > 0 && (mul *= 0x100)) { val += this[offset + --byteLength] * mul } return val } Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) return this[offset] } Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return this[offset] | (this[offset + 1] << 8) } Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return (this[offset] << 8) | this[offset + 1] } Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ((this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + (this[offset + 3] * 0x1000000) } Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] * 0x1000000) + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) } Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var i = byteLength var mul = 1 var val = this[offset + --i] while (i > 0 && (mul *= 0x100)) { val += this[offset + --i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) if (!(this[offset] & 0x80)) return (this[offset]) return ((0xff - this[offset] + 1) * -1) } Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset] | (this[offset + 1] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset + 1] | (this[offset] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24) } Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | (this[offset + 3]) } Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, true, 23, 4) } Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, false, 23, 4) } Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, true, 52, 8) } Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, false, 52, 8) } function checkInt (buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') if (offset + ext > buf.length) throw new RangeError('Index out of range') } Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1 var i = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1 var mul = 1 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) this[offset] = (value & 0xff) return offset + 1 } function objectWriteUInt16 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> (littleEndian ? i : 1 - i) * 8 } } Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } function objectWriteUInt32 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffffffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff } } Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset + 3] = (value >>> 24) this[offset + 2] = (value >>> 16) this[offset + 1] = (value >>> 8) this[offset] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0 var mul = 1 var sub = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1 var mul = 1 var sub = 0 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) if (value < 0) value = 0xff + value + 1 this[offset] = (value & 0xff) return offset + 1 } Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) this[offset + 2] = (value >>> 16) this[offset + 3] = (value >>> 24) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (value < 0) value = 0xffffffff + value + 1 if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } function checkIEEE754 (buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError('Index out of range') if (offset < 0) throw new RangeError('Index out of range') } function writeFloat (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } ieee754.write(buf, value, offset, littleEndian, 23, 4) return offset + 4 } Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { return writeFloat(this, value, offset, true, noAssert) } Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { return writeFloat(this, value, offset, false, noAssert) } function writeDouble (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) } ieee754.write(buf, value, offset, littleEndian, 52, 8) return offset + 8 } Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { return writeDouble(this, value, offset, true, noAssert) } Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { return writeDouble(this, value, offset, false, noAssert) } // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy = function copy (target, targetStart, start, end) { if (!start) start = 0 if (!end && end !== 0) end = this.length if (targetStart >= target.length) targetStart = target.length if (!targetStart) targetStart = 0 if (end > 0 && end < start) end = start // Copy 0 bytes; we're done if (end === start) return 0 if (target.length === 0 || this.length === 0) return 0 // Fatal error conditions if (targetStart < 0) { throw new RangeError('targetStart out of bounds') } if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') if (end < 0) throw new RangeError('sourceEnd out of bounds') // Are we oob? if (end > this.length) end = this.length if (target.length - targetStart < end - start) { end = target.length - targetStart + start } var len = end - start var i if (this === target && start < targetStart && targetStart < end) { // descending copy from end for (i = len - 1; i >= 0; --i) { target[i + targetStart] = this[i + start] } } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { // ascending copy from start for (i = 0; i < len; ++i) { target[i + targetStart] = this[i + start] } } else { Uint8Array.prototype.set.call( target, this.subarray(start, start + len), targetStart ) } return len } // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill (val, start, end, encoding) { // Handle string cases: if (typeof val === 'string') { if (typeof start === 'string') { encoding = start start = 0 end = this.length } else if (typeof end === 'string') { encoding = end end = this.length } if (val.length === 1) { var code = val.charCodeAt(0) if (code < 256) { val = code } } if (encoding !== undefined && typeof encoding !== 'string') { throw new TypeError('encoding must be a string') } if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { throw new TypeError('Unknown encoding: ' + encoding) } } else if (typeof val === 'number') { val = val & 255 } // Invalid ranges are not set to a default, so can range check early. if (start < 0 || this.length < start || this.length < end) { throw new RangeError('Out of range index') } if (end <= start) { return this } start = start >>> 0 end = end === undefined ? this.length : end >>> 0 if (!val) val = 0 var i if (typeof val === 'number') { for (i = start; i < end; ++i) { this[i] = val } } else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()) var len = bytes.length for (i = 0; i < end - start; ++i) { this[i + start] = bytes[i % len] } } return this } // HELPER FUNCTIONS // ================ var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g function base64clean (str) { // Node strips out invalid characters like \n and \t from the string, base64-js does not str = stringtrim(str).replace(INVALID_BASE64_RE, '') // Node converts strings with length < 2 to '' if (str.length < 2) return '' // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not while (str.length % 4 !== 0) { str = str + '=' } return str } function stringtrim (str) { if (str.trim) return str.trim() return str.replace(/^\s+|\s+$/g, '') } function toHex (n) { if (n < 16) return '0' + n.toString(16) return n.toString(16) } function utf8ToBytes (string, units) { units = units || Infinity var codePoint var length = string.length var leadSurrogate = null var bytes = [] for (var i = 0; i < length; ++i) { codePoint = string.charCodeAt(i) // is surrogate component if (codePoint > 0xD7FF && codePoint < 0xE000) { // last char was a lead if (!leadSurrogate) { // no lead yet if (codePoint > 0xDBFF) { // unexpected trail if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } else if (i + 1 === length) { // unpaired lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } // valid lead leadSurrogate = codePoint continue } // 2 leads in a row if (codePoint < 0xDC00) { if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) leadSurrogate = codePoint continue } // valid surrogate pair codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 } else if (leadSurrogate) { // valid bmp char, but last char was a lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) } leadSurrogate = null // encode utf8 if (codePoint < 0x80) { if ((units -= 1) < 0) break bytes.push(codePoint) } else if (codePoint < 0x800) { if ((units -= 2) < 0) break bytes.push( codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x10000) { if ((units -= 3) < 0) break bytes.push( codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x110000) { if ((units -= 4) < 0) break bytes.push( codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else { throw new Error('Invalid code point') } } return bytes } function asciiToBytes (str) { var byteArray = [] for (var i = 0; i < str.length; ++i) { // Node's code seems to be doing this and not & 0x7F.. byteArray.push(str.charCodeAt(i) & 0xFF) } return byteArray } function utf16leToBytes (str, units) { var c, hi, lo var byteArray = [] for (var i = 0; i < str.length; ++i) { if ((units -= 2) < 0) break c = str.charCodeAt(i) hi = c >> 8 lo = c % 256 byteArray.push(lo) byteArray.push(hi) } return byteArray } function base64ToBytes (str) { return base64.toByteArray(base64clean(str)) } function blitBuffer (src, dst, offset, length) { for (var i = 0; i < length; ++i) { if ((i + offset >= dst.length) || (i >= src.length)) break dst[i + offset] = src[i] } return i } function isnan (val) { return val !== val // eslint-disable-line no-self-compare } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) /***/ }), /***/ "./node_modules/buffer/node_modules/isarray/index.js": /*!***********************************************************!*\ !*** ./node_modules/buffer/node_modules/isarray/index.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; /***/ }), /***/ "./node_modules/chalk/index.js": /*!*************************************!*\ !*** ./node_modules/chalk/index.js ***! \*************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) { var escapeStringRegexp = __webpack_require__(/*! escape-string-regexp */ "./node_modules/escape-string-regexp/index.js"); var ansiStyles = __webpack_require__(/*! ansi-styles */ "./node_modules/chalk/node_modules/ansi-styles/index.js"); var stripAnsi = __webpack_require__(/*! strip-ansi */ "./node_modules/strip-ansi/index.js"); var hasAnsi = __webpack_require__(/*! has-ansi */ "./node_modules/has-ansi/index.js"); var supportsColor = __webpack_require__(/*! supports-color */ "./node_modules/chalk/node_modules/supports-color/index.js"); var defineProps = Object.defineProperties; var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).TERM); function Chalk(options) { // detect mode if not set manually this.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled; } // use bright blue on Windows as the normal blue color is illegible if (isSimpleWindowsTerm) { ansiStyles.blue.open = '\u001b[94m'; } var styles = (function () { var ret = {}; Object.keys(ansiStyles).forEach(function (key) { ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); ret[key] = { get: function () { return build.call(this, this._styles.concat(key)); } }; }); return ret; })(); var proto = defineProps(function chalk() {}, styles); function build(_styles) { var builder = function () { return applyStyle.apply(builder, arguments); }; builder._styles = _styles; builder.enabled = this.enabled; // __proto__ is used because we must return a function, but there is // no way to create a function with a different prototype. /* eslint-disable no-proto */ builder.__proto__ = proto; return builder; } function applyStyle() { // support varags, but simply cast to string in case there's only one arg var args = arguments; var argsLen = args.length; var str = argsLen !== 0 && String(arguments[0]); if (argsLen > 1) { // don't slice `arguments`, it prevents v8 optimizations for (var a = 1; a < argsLen; a++) { str += ' ' + args[a]; } } if (!this.enabled || !str) { return str; } var nestedStyles = this._styles; var i = nestedStyles.length; // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, // see https://github.com/chalk/chalk/issues/58 // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. var originalDim = ansiStyles.dim.open; if (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) { ansiStyles.dim.open = ''; } while (i--) { var code = ansiStyles[nestedStyles[i]]; // Replace any instances already present with a re-opening code // otherwise only the part of the string until said closing code // will be colored, and the rest will simply be 'plain'. str = code.open + str.replace(code.closeRe, code.open) + code.close; } // Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue. ansiStyles.dim.open = originalDim; return str; } function init() { var ret = {}; Object.keys(styles).forEach(function (name) { ret[name] = { get: function () { return build.call(this, [name]); } }; }); return ret; } defineProps(Chalk.prototype, init()); module.exports = new Chalk(); module.exports.styles = ansiStyles; module.exports.hasColor = hasAnsi; module.exports.stripColor = stripAnsi; module.exports.supportsColor = supportsColor; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/chalk/node_modules/ansi-styles/index.js": /*!**************************************************************!*\ !*** ./node_modules/chalk/node_modules/ansi-styles/index.js ***! \**************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(module) { function assembleStyles () { var styles = { modifiers: { reset: [0, 0], bold: [1, 22], // 21 isn't widely supported and 22 does the same thing dim: [2, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, colors: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], gray: [90, 39] }, bgColors: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49] } }; // fix humans styles.colors.grey = styles.colors.gray; Object.keys(styles).forEach(function (groupName) { var group = styles[groupName]; Object.keys(group).forEach(function (styleName) { var style = group[styleName]; styles[styleName] = group[styleName] = { open: '\u001b[' + style[0] + 'm', close: '\u001b[' + style[1] + 'm' }; }); Object.defineProperty(styles, groupName, { value: group, enumerable: false }); }); return styles; } Object.defineProperty(module, 'exports', { enumerable: true, get: assembleStyles }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) /***/ }), /***/ "./node_modules/chalk/node_modules/supports-color/index.js": /*!*****************************************************************!*\ !*** ./node_modules/chalk/node_modules/supports-color/index.js ***! \*****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) { var argv = process.argv; var terminator = argv.indexOf('--'); var hasFlag = function (flag) { flag = '--' + flag; var pos = argv.indexOf(flag); return pos !== -1 && (terminator !== -1 ? pos < terminator : true); }; module.exports = (function () { if ('FORCE_COLOR' in Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})) { return true; } if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { return false; } if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { return true; } if (process.stdout && !process.stdout.isTTY) { return false; } if (process.platform === 'win32') { return true; } if ('COLORTERM' in Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"})) { return true; } if (Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).TERM === 'dumb') { return false; } if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).TERM)) { return true; } return false; })(); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/cipher-base/index.js": /*!*******************************************!*\ !*** ./node_modules/cipher-base/index.js ***! \*******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var Transform = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform var StringDecoder = __webpack_require__(/*! string_decoder */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") function CipherBase (hashMode) { Transform.call(this) this.hashMode = typeof hashMode === 'string' if (this.hashMode) { this[hashMode] = this._finalOrDigest } else { this.final = this._finalOrDigest } if (this._final) { this.__final = this._final this._final = null } this._decoder = null this._encoding = null } inherits(CipherBase, Transform) CipherBase.prototype.update = function (data, inputEnc, outputEnc) { if (typeof data === 'string') { data = Buffer.from(data, inputEnc) } var outData = this._update(data) if (this.hashMode) return this if (outputEnc) { outData = this._toString(outData, outputEnc) } return outData } CipherBase.prototype.setAutoPadding = function () {} CipherBase.prototype.getAuthTag = function () { throw new Error('trying to get auth tag in unsupported state') } CipherBase.prototype.setAuthTag = function () { throw new Error('trying to set auth tag in unsupported state') } CipherBase.prototype.setAAD = function () { throw new Error('trying to set aad in unsupported state') } CipherBase.prototype._transform = function (data, _, next) { var err try { if (this.hashMode) { this._update(data) } else { this.push(this._update(data)) } } catch (e) { err = e } finally { next(err) } } CipherBase.prototype._flush = function (done) { var err try { this.push(this.__final()) } catch (e) { err = e } done(err) } CipherBase.prototype._finalOrDigest = function (outputEnc) { var outData = this.__final() || Buffer.alloc(0) if (outputEnc) { outData = this._toString(outData, outputEnc, true) } return outData } CipherBase.prototype._toString = function (value, enc, fin) { if (!this._decoder) { this._decoder = new StringDecoder(enc) this._encoding = enc } if (this._encoding !== enc) throw new Error('can\'t switch encodings') var out = this._decoder.write(value) if (fin) { out += this._decoder.end() } return out } module.exports = CipherBase /***/ }), /***/ "./node_modules/classnames/index.js": /*!******************************************!*\ !*** ./node_modules/classnames/index.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ /* global define */ (function () { 'use strict'; var hasOwn = {}.hasOwnProperty; function classNames () { var classes = []; for (var i = 0; i < arguments.length; i++) { var arg = arguments[i]; if (!arg) continue; var argType = typeof arg; if (argType === 'string' || argType === 'number') { classes.push(arg); } else if (Array.isArray(arg)) { classes.push(classNames.apply(null, arg)); } else if (argType === 'object') { for (var key in arg) { if (hasOwn.call(arg, key) && arg[key]) { classes.push(key); } } } } return classes.join(' '); } if (typeof module !== 'undefined' && module.exports) { module.exports = classNames; } else if (true) { // register as 'classnames', consistent with npm package name !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { return classNames; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { window.classNames = classNames; } }()); /***/ }), /***/ "./node_modules/component-classes/index.js": /*!*************************************************!*\ !*** ./node_modules/component-classes/index.js ***! \*************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { /** * Module dependencies. */ try { var index = __webpack_require__(/*! indexof */ "./node_modules/component-indexof/index.js"); } catch (err) { var index = __webpack_require__(/*! component-indexof */ "./node_modules/component-indexof/index.js"); } /** * Whitespace regexp. */ var re = /\s+/; /** * toString reference. */ var toString = Object.prototype.toString; /** * Wrap `el` in a `ClassList`. * * @param {Element} el * @return {ClassList} * @api public */ module.exports = function(el){ return new ClassList(el); }; /** * Initialize a new ClassList for `el`. * * @param {Element} el * @api private */ function ClassList(el) { if (!el || !el.nodeType) { throw new Error('A DOM element reference is required'); } this.el = el; this.list = el.classList; } /** * Add class `name` if not already present. * * @param {String} name * @return {ClassList} * @api public */ ClassList.prototype.add = function(name){ // classList if (this.list) { this.list.add(name); return this; } // fallback var arr = this.array(); var i = index(arr, name); if (!~i) arr.push(name); this.el.className = arr.join(' '); return this; }; /** * Remove class `name` when present, or * pass a regular expression to remove * any which match. * * @param {String|RegExp} name * @return {ClassList} * @api public */ ClassList.prototype.remove = function(name){ if ('[object RegExp]' == toString.call(name)) { return this.removeMatching(name); } // classList if (this.list) { this.list.remove(name); return this; } // fallback var arr = this.array(); var i = index(arr, name); if (~i) arr.splice(i, 1); this.el.className = arr.join(' '); return this; }; /** * Remove all classes matching `re`. * * @param {RegExp} re * @return {ClassList} * @api private */ ClassList.prototype.removeMatching = function(re){ var arr = this.array(); for (var i = 0; i < arr.length; i++) { if (re.test(arr[i])) { this.remove(arr[i]); } } return this; }; /** * Toggle class `name`, can force state via `force`. * * For browsers that support classList, but do not support `force` yet, * the mistake will be detected and corrected. * * @param {String} name * @param {Boolean} force * @return {ClassList} * @api public */ ClassList.prototype.toggle = function(name, force){ // classList if (this.list) { if ("undefined" !== typeof force) { if (force !== this.list.toggle(name, force)) { this.list.toggle(name); // toggle again to correct } } else { this.list.toggle(name); } return this; } // fallback if ("undefined" !== typeof force) { if (!force) { this.remove(name); } else { this.add(name); } } else { if (this.has(name)) { this.remove(name); } else { this.add(name); } } return this; }; /** * Return an array of classes. * * @return {Array} * @api public */ ClassList.prototype.array = function(){ var className = this.el.getAttribute('class') || ''; var str = className.replace(/^\s+|\s+$/g, ''); var arr = str.split(re); if ('' === arr[0]) arr.shift(); return arr; }; /** * Check if class `name` is present. * * @param {String} name * @return {ClassList} * @api public */ ClassList.prototype.has = ClassList.prototype.contains = function(name){ return this.list ? this.list.contains(name) : !! ~index(this.array(), name); }; /***/ }), /***/ "./node_modules/component-indexof/index.js": /*!*************************************************!*\ !*** ./node_modules/component-indexof/index.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = function(arr, obj){ if (arr.indexOf) return arr.indexOf(obj); for (var i = 0; i < arr.length; ++i) { if (arr[i] === obj) return i; } return -1; }; /***/ }), /***/ "./node_modules/component-type/index.js": /*!**********************************************!*\ !*** ./node_modules/component-type/index.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * toString ref. */ var toString = Object.prototype.toString; /** * Return the type of `val`. * * @param {Mixed} val * @return {String} * @api public */ module.exports = function(val){ switch (toString.call(val)) { case '[object Date]': return 'date'; case '[object RegExp]': return 'regexp'; case '[object Arguments]': return 'arguments'; case '[object Array]': return 'array'; case '[object Error]': return 'error'; } if (val === null) return 'null'; if (val === undefined) return 'undefined'; if (val !== val) return 'nan'; if (val && val.nodeType === 1) return 'element'; if (isBuffer(val)) return 'buffer'; val = val.valueOf ? val.valueOf() : Object.prototype.valueOf.apply(val); return typeof val; }; // code borrowed from https://github.com/feross/is-buffer/blob/master/index.js function isBuffer(obj) { return !!(obj != null && (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor) (obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)) )) } /***/ }), /***/ "./node_modules/core-util-is/lib/util.js": /*!***********************************************!*\ !*** ./node_modules/core-util-is/lib/util.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // NOTE: These type checking functions intentionally don't use `instanceof` // because it is fragile and can be easily faked with `Object.create()`. function isArray(arg) { if (Array.isArray) { return Array.isArray(arg); } return objectToString(arg) === '[object Array]'; } exports.isArray = isArray; function isBoolean(arg) { return typeof arg === 'boolean'; } exports.isBoolean = isBoolean; function isNull(arg) { return arg === null; } exports.isNull = isNull; function isNullOrUndefined(arg) { return arg == null; } exports.isNullOrUndefined = isNullOrUndefined; function isNumber(arg) { return typeof arg === 'number'; } exports.isNumber = isNumber; function isString(arg) { return typeof arg === 'string'; } exports.isString = isString; function isSymbol(arg) { return typeof arg === 'symbol'; } exports.isSymbol = isSymbol; function isUndefined(arg) { return arg === void 0; } exports.isUndefined = isUndefined; function isRegExp(re) { return objectToString(re) === '[object RegExp]'; } exports.isRegExp = isRegExp; function isObject(arg) { return typeof arg === 'object' && arg !== null; } exports.isObject = isObject; function isDate(d) { return objectToString(d) === '[object Date]'; } exports.isDate = isDate; function isError(e) { return (objectToString(e) === '[object Error]' || e instanceof Error); } exports.isError = isError; function isFunction(arg) { return typeof arg === 'function'; } exports.isFunction = isFunction; function isPrimitive(arg) { return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol typeof arg === 'undefined'; } exports.isPrimitive = isPrimitive; exports.isBuffer = Buffer.isBuffer; function objectToString(o) { return Object.prototype.toString.call(o); } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/create-ecdh/browser.js": /*!*********************************************!*\ !*** ./node_modules/create-ecdh/browser.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); module.exports = function createECDH(curve) { return new ECDH(curve); }; var aliases = { secp256k1: { name: 'secp256k1', byteLength: 32 }, secp224r1: { name: 'p224', byteLength: 28 }, prime256v1: { name: 'p256', byteLength: 32 }, prime192v1: { name: 'p192', byteLength: 24 }, ed25519: { name: 'ed25519', byteLength: 32 }, secp384r1: { name: 'p384', byteLength: 48 }, secp521r1: { name: 'p521', byteLength: 66 } }; aliases.p224 = aliases.secp224r1; aliases.p256 = aliases.secp256r1 = aliases.prime256v1; aliases.p192 = aliases.secp192r1 = aliases.prime192v1; aliases.p384 = aliases.secp384r1; aliases.p521 = aliases.secp521r1; function ECDH(curve) { this.curveType = aliases[curve]; if (!this.curveType ) { this.curveType = { name: curve }; } this.curve = new elliptic.ec(this.curveType.name); this.keys = void 0; } ECDH.prototype.generateKeys = function (enc, format) { this.keys = this.curve.genKeyPair(); return this.getPublicKey(enc, format); }; ECDH.prototype.computeSecret = function (other, inenc, enc) { inenc = inenc || 'utf8'; if (!Buffer.isBuffer(other)) { other = new Buffer(other, inenc); } var otherPub = this.curve.keyFromPublic(other).getPublic(); var out = otherPub.mul(this.keys.getPrivate()).getX(); return formatReturnValue(out, enc, this.curveType.byteLength); }; ECDH.prototype.getPublicKey = function (enc, format) { var key = this.keys.getPublic(format === 'compressed', true); if (format === 'hybrid') { if (key[key.length - 1] % 2) { key[0] = 7; } else { key [0] = 6; } } return formatReturnValue(key, enc); }; ECDH.prototype.getPrivateKey = function (enc) { return formatReturnValue(this.keys.getPrivate(), enc); }; ECDH.prototype.setPublicKey = function (pub, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this.keys._importPublic(pub); return this; }; ECDH.prototype.setPrivateKey = function (priv, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } var _priv = new BN(priv); _priv = _priv.toString(16); this.keys._importPrivate(_priv); return this; }; function formatReturnValue(bn, enc, len) { if (!Array.isArray(bn)) { bn = bn.toArray(); } var buf = new Buffer(bn); if (len && buf.length < len) { var zeros = new Buffer(len - buf.length); zeros.fill(0); buf = Buffer.concat([zeros, buf]); } if (!enc) { return buf; } else { return buf.toString(enc); } } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/create-hash/browser.js": /*!*********************************************!*\ !*** ./node_modules/create-hash/browser.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var md5 = __webpack_require__(/*! ./md5 */ "./node_modules/create-hash/md5.js") var RIPEMD160 = __webpack_require__(/*! ripemd160 */ "./node_modules/ripemd160/index.js") var sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js") var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") function HashNoConstructor (hash) { Base.call(this, 'digest') this._hash = hash this.buffers = [] } inherits(HashNoConstructor, Base) HashNoConstructor.prototype._update = function (data) { this.buffers.push(data) } HashNoConstructor.prototype._final = function () { var buf = Buffer.concat(this.buffers) var r = this._hash(buf) this.buffers = null return r } function Hash (hash) { Base.call(this, 'digest') this._hash = hash } inherits(Hash, Base) Hash.prototype._update = function (data) { this._hash.update(data) } Hash.prototype._final = function () { return this._hash.digest() } module.exports = function createHash (alg) { alg = alg.toLowerCase() if (alg === 'md5') return new HashNoConstructor(md5) if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160()) return new Hash(sha(alg)) } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/create-hash/make-hash.js": /*!***********************************************!*\ !*** ./node_modules/create-hash/make-hash.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { var intSize = 4 var zeroBuffer = new Buffer(intSize) zeroBuffer.fill(0) var charSize = 8 var hashSize = 16 function toArray (buf) { if ((buf.length % intSize) !== 0) { var len = buf.length + (intSize - (buf.length % intSize)) buf = Buffer.concat([buf, zeroBuffer], len) } var arr = new Array(buf.length >>> 2) for (var i = 0, j = 0; i < buf.length; i += intSize, j++) { arr[j] = buf.readInt32LE(i) } return arr } module.exports = function hash (buf, fn) { var arr = fn(toArray(buf), buf.length * charSize) buf = new Buffer(hashSize) for (var i = 0; i < arr.length; i++) { buf.writeInt32LE(arr[i], i << 2, true) } return buf } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/create-hash/md5.js": /*!*****************************************!*\ !*** ./node_modules/create-hash/md5.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. */ var makeHash = __webpack_require__(/*! ./make-hash */ "./node_modules/create-hash/make-hash.js") /* * Calculate the MD5 of an array of little-endian words, and a bit length */ function core_md5 (x, len) { /* append padding */ x[len >> 5] |= 0x80 << ((len) % 32) x[(((len + 64) >>> 9) << 4) + 14] = len var a = 1732584193 var b = -271733879 var c = -1732584194 var d = 271733878 for (var i = 0; i < x.length; i += 16) { var olda = a var oldb = b var oldc = c var oldd = d a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936) d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586) c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819) b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330) a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897) d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426) c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341) b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983) a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416) d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417) c = md5_ff(c, d, a, b, x[i + 10], 17, -42063) b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162) a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682) d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101) c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290) b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329) a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510) d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632) c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713) b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302) a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691) d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083) c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335) b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848) a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438) d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690) c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961) b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501) a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467) d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784) c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473) b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734) a = md5_hh(a, b, c, d, x[i + 5], 4, -378558) d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463) c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562) b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556) a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060) d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353) c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632) b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640) a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174) d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222) c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979) b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189) a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487) d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835) c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520) b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651) a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844) d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415) c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905) b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055) a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571) d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606) c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523) b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799) a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359) d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744) c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380) b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649) a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070) d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379) c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259) b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551) a = safe_add(a, olda) b = safe_add(b, oldb) c = safe_add(c, oldc) d = safe_add(d, oldd) } return [a, b, c, d] } /* * These functions implement the four basic operations the algorithm uses. */ function md5_cmn (q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) } function md5_ff (a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t) } function md5_gg (a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t) } function md5_hh (a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t) } function md5_ii (a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t) } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function safe_add (x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF) var msw = (x >> 16) + (y >> 16) + (lsw >> 16) return (msw << 16) | (lsw & 0xFFFF) } /* * Bitwise rotate a 32-bit number to the left. */ function bit_rol (num, cnt) { return (num << cnt) | (num >>> (32 - cnt)) } module.exports = function md5 (buf) { return makeHash(buf, core_md5) } /***/ }), /***/ "./node_modules/create-hmac/browser.js": /*!*********************************************!*\ !*** ./node_modules/create-hmac/browser.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var Legacy = __webpack_require__(/*! ./legacy */ "./node_modules/create-hmac/legacy.js") var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var md5 = __webpack_require__(/*! create-hash/md5 */ "./node_modules/create-hash/md5.js") var RIPEMD160 = __webpack_require__(/*! ripemd160 */ "./node_modules/ripemd160/index.js") var sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js") var ZEROS = Buffer.alloc(128) function Hmac (alg, key) { Base.call(this, 'digest') if (typeof key === 'string') { key = Buffer.from(key) } var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 this._alg = alg this._key = key if (key.length > blocksize) { var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) key = hash.update(key).digest() } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize) } var ipad = this._ipad = Buffer.allocUnsafe(blocksize) var opad = this._opad = Buffer.allocUnsafe(blocksize) for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36 opad[i] = key[i] ^ 0x5C } this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) this._hash.update(ipad) } inherits(Hmac, Base) Hmac.prototype._update = function (data) { this._hash.update(data) } Hmac.prototype._final = function () { var h = this._hash.digest() var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) return hash.update(this._opad).update(h).digest() } module.exports = function createHmac (alg, key) { alg = alg.toLowerCase() if (alg === 'rmd160' || alg === 'ripemd160') { return new Hmac('rmd160', key) } if (alg === 'md5') { return new Legacy(md5, key) } return new Hmac(alg, key) } /***/ }), /***/ "./node_modules/create-hmac/legacy.js": /*!********************************************!*\ !*** ./node_modules/create-hmac/legacy.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var Base = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") var ZEROS = Buffer.alloc(128) var blocksize = 64 function Hmac (alg, key) { Base.call(this, 'digest') if (typeof key === 'string') { key = Buffer.from(key) } this._alg = alg this._key = key if (key.length > blocksize) { key = alg(key) } else if (key.length < blocksize) { key = Buffer.concat([key, ZEROS], blocksize) } var ipad = this._ipad = Buffer.allocUnsafe(blocksize) var opad = this._opad = Buffer.allocUnsafe(blocksize) for (var i = 0; i < blocksize; i++) { ipad[i] = key[i] ^ 0x36 opad[i] = key[i] ^ 0x5C } this._hash = [ipad] } inherits(Hmac, Base) Hmac.prototype._update = function (data) { this._hash.push(data) } Hmac.prototype._final = function () { var h = this._alg(Buffer.concat(this._hash)) return this._alg(Buffer.concat([this._opad, h])) } module.exports = Hmac /***/ }), /***/ "./node_modules/crypto-browserify/index.js": /*!*************************************************!*\ !*** ./node_modules/crypto-browserify/index.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") exports.createHash = exports.Hash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") exports.createHmac = exports.Hmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") var algos = __webpack_require__(/*! browserify-sign/algos */ "./node_modules/browserify-sign/algos.js") var algoKeys = Object.keys(algos) var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys) exports.getHashes = function () { return hashes } var p = __webpack_require__(/*! pbkdf2 */ "./node_modules/pbkdf2/browser.js") exports.pbkdf2 = p.pbkdf2 exports.pbkdf2Sync = p.pbkdf2Sync var aes = __webpack_require__(/*! browserify-cipher */ "./node_modules/browserify-cipher/browser.js") exports.Cipher = aes.Cipher exports.createCipher = aes.createCipher exports.Cipheriv = aes.Cipheriv exports.createCipheriv = aes.createCipheriv exports.Decipher = aes.Decipher exports.createDecipher = aes.createDecipher exports.Decipheriv = aes.Decipheriv exports.createDecipheriv = aes.createDecipheriv exports.getCiphers = aes.getCiphers exports.listCiphers = aes.listCiphers var dh = __webpack_require__(/*! diffie-hellman */ "./node_modules/diffie-hellman/browser.js") exports.DiffieHellmanGroup = dh.DiffieHellmanGroup exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup exports.getDiffieHellman = dh.getDiffieHellman exports.createDiffieHellman = dh.createDiffieHellman exports.DiffieHellman = dh.DiffieHellman var sign = __webpack_require__(/*! browserify-sign */ "./node_modules/browserify-sign/browser/index.js") exports.createSign = sign.createSign exports.Sign = sign.Sign exports.createVerify = sign.createVerify exports.Verify = sign.Verify exports.createECDH = __webpack_require__(/*! create-ecdh */ "./node_modules/create-ecdh/browser.js") var publicEncrypt = __webpack_require__(/*! public-encrypt */ "./node_modules/public-encrypt/browser.js") exports.publicEncrypt = publicEncrypt.publicEncrypt exports.privateEncrypt = publicEncrypt.privateEncrypt exports.publicDecrypt = publicEncrypt.publicDecrypt exports.privateDecrypt = publicEncrypt.privateDecrypt // the least I can do is make error messages for the rest of the node.js/crypto api. // ;[ // 'createCredentials' // ].forEach(function (name) { // exports[name] = function () { // throw new Error([ // 'sorry, ' + name + ' is not implemented yet', // 'we accept pull requests', // 'https://github.com/crypto-browserify/crypto-browserify' // ].join('\n')) // } // }) var rf = __webpack_require__(/*! randomfill */ "./node_modules/randomfill/browser.js") exports.randomFill = rf.randomFill exports.randomFillSync = rf.randomFillSync exports.createCredentials = function () { throw new Error([ 'sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify' ].join('\n')) } exports.constants = { 'DH_CHECK_P_NOT_SAFE_PRIME': 2, 'DH_CHECK_P_NOT_PRIME': 1, 'DH_UNABLE_TO_CHECK_GENERATOR': 4, 'DH_NOT_SUITABLE_GENERATOR': 8, 'NPN_ENABLED': 1, 'ALPN_ENABLED': 1, 'RSA_PKCS1_PADDING': 1, 'RSA_SSLV23_PADDING': 2, 'RSA_NO_PADDING': 3, 'RSA_PKCS1_OAEP_PADDING': 4, 'RSA_X931_PADDING': 5, 'RSA_PKCS1_PSS_PADDING': 6, 'POINT_CONVERSION_COMPRESSED': 2, 'POINT_CONVERSION_UNCOMPRESSED': 4, 'POINT_CONVERSION_HYBRID': 6 } /***/ }), /***/ "./node_modules/crypto-js/core.js": /*!****************************************!*\ !*** ./node_modules/crypto-js/core.js ***! \****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory) { if (true) { // CommonJS module.exports = exports = factory(); } else if (typeof define === "function" && define.amd) { // AMD define([], factory); } else { // Global (browser) root.CryptoJS = factory(); } }(this, function () { /** * CryptoJS core components. */ var CryptoJS = CryptoJS || (function (Math, undefined) { /* * Local polyfil of Object.create */ var create = Object.create || (function () { function F() {}; return function (obj) { var subtype; F.prototype = obj; subtype = new F(); F.prototype = null; return subtype; }; }()) /** * CryptoJS namespace. */ var C = {}; /** * Library namespace. */ var C_lib = C.lib = {}; /** * Base object for prototypal inheritance. */ var Base = C_lib.Base = (function () { return { /** * Creates a new object that inherits from this object. * * @param {Object} overrides Properties to copy into the new object. * * @return {Object} The new object. * * @static * * @example * * var MyType = CryptoJS.lib.Base.extend({ * field: 'value', * * method: function () { * } * }); */ extend: function (overrides) { // Spawn var subtype = create(this); // Augment if (overrides) { subtype.mixIn(overrides); } // Create default initializer if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { subtype.init = function () { subtype.$super.init.apply(this, arguments); }; } // Initializer's prototype is the subtype object subtype.init.prototype = subtype; // Reference supertype subtype.$super = this; return subtype; }, /** * Extends this object and runs the init method. * Arguments to create() will be passed to init(). * * @return {Object} The new object. * * @static * * @example * * var instance = MyType.create(); */ create: function () { var instance = this.extend(); instance.init.apply(instance, arguments); return instance; }, /** * Initializes a newly created object. * Override this method to add some logic when your objects are created. * * @example * * var MyType = CryptoJS.lib.Base.extend({ * init: function () { * // ... * } * }); */ init: function () { }, /** * Copies properties into this object. * * @param {Object} properties The properties to mix in. * * @example * * MyType.mixIn({ * field: 'value' * }); */ mixIn: function (properties) { for (var propertyName in properties) { if (properties.hasOwnProperty(propertyName)) { this[propertyName] = properties[propertyName]; } } // IE won't copy toString using the loop above if (properties.hasOwnProperty('toString')) { this.toString = properties.toString; } }, /** * Creates a copy of this object. * * @return {Object} The clone. * * @example * * var clone = instance.clone(); */ clone: function () { return this.init.prototype.extend(this); } }; }()); /** * An array of 32-bit words. * * @property {Array} words The array of 32-bit words. * @property {number} sigBytes The number of significant bytes in this word array. */ var WordArray = C_lib.WordArray = Base.extend({ /** * Initializes a newly created word array. * * @param {Array} words (Optional) An array of 32-bit words. * @param {number} sigBytes (Optional) The number of significant bytes in the words. * * @example * * var wordArray = CryptoJS.lib.WordArray.create(); * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); */ init: function (words, sigBytes) { words = this.words = words || []; if (sigBytes != undefined) { this.sigBytes = sigBytes; } else { this.sigBytes = words.length * 4; } }, /** * Converts this word array to a string. * * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex * * @return {string} The stringified word array. * * @example * * var string = wordArray + ''; * var string = wordArray.toString(); * var string = wordArray.toString(CryptoJS.enc.Utf8); */ toString: function (encoder) { return (encoder || Hex).stringify(this); }, /** * Concatenates a word array to this word array. * * @param {WordArray} wordArray The word array to append. * * @return {WordArray} This word array. * * @example * * wordArray1.concat(wordArray2); */ concat: function (wordArray) { // Shortcuts var thisWords = this.words; var thatWords = wordArray.words; var thisSigBytes = this.sigBytes; var thatSigBytes = wordArray.sigBytes; // Clamp excess bits this.clamp(); // Concat if (thisSigBytes % 4) { // Copy one byte at a time for (var i = 0; i < thatSigBytes; i++) { var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); } } else { // Copy one word at a time for (var i = 0; i < thatSigBytes; i += 4) { thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; } } this.sigBytes += thatSigBytes; // Chainable return this; }, /** * Removes insignificant bits. * * @example * * wordArray.clamp(); */ clamp: function () { // Shortcuts var words = this.words; var sigBytes = this.sigBytes; // Clamp words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); words.length = Math.ceil(sigBytes / 4); }, /** * Creates a copy of this word array. * * @return {WordArray} The clone. * * @example * * var clone = wordArray.clone(); */ clone: function () { var clone = Base.clone.call(this); clone.words = this.words.slice(0); return clone; }, /** * Creates a word array filled with random bytes. * * @param {number} nBytes The number of random bytes to generate. * * @return {WordArray} The random word array. * * @static * * @example * * var wordArray = CryptoJS.lib.WordArray.random(16); */ random: function (nBytes) { var words = []; var r = (function (m_w) { var m_w = m_w; var m_z = 0x3ade68b1; var mask = 0xffffffff; return function () { m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; var result = ((m_z << 0x10) + m_w) & mask; result /= 0x100000000; result += 0.5; return result * (Math.random() > .5 ? 1 : -1); } }); for (var i = 0, rcache; i < nBytes; i += 4) { var _r = r((rcache || Math.random()) * 0x100000000); rcache = _r() * 0x3ade67b7; words.push((_r() * 0x100000000) | 0); } return new WordArray.init(words, nBytes); } }); /** * Encoder namespace. */ var C_enc = C.enc = {}; /** * Hex encoding strategy. */ var Hex = C_enc.Hex = { /** * Converts a word array to a hex string. * * @param {WordArray} wordArray The word array. * * @return {string} The hex string. * * @static * * @example * * var hexString = CryptoJS.enc.Hex.stringify(wordArray); */ stringify: function (wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var hexChars = []; for (var i = 0; i < sigBytes; i++) { var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; hexChars.push((bite >>> 4).toString(16)); hexChars.push((bite & 0x0f).toString(16)); } return hexChars.join(''); }, /** * Converts a hex string to a word array. * * @param {string} hexStr The hex string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Hex.parse(hexString); */ parse: function (hexStr) { // Shortcut var hexStrLength = hexStr.length; // Convert var words = []; for (var i = 0; i < hexStrLength; i += 2) { words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); } return new WordArray.init(words, hexStrLength / 2); } }; /** * Latin1 encoding strategy. */ var Latin1 = C_enc.Latin1 = { /** * Converts a word array to a Latin1 string. * * @param {WordArray} wordArray The word array. * * @return {string} The Latin1 string. * * @static * * @example * * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); */ stringify: function (wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var latin1Chars = []; for (var i = 0; i < sigBytes; i++) { var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; latin1Chars.push(String.fromCharCode(bite)); } return latin1Chars.join(''); }, /** * Converts a Latin1 string to a word array. * * @param {string} latin1Str The Latin1 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); */ parse: function (latin1Str) { // Shortcut var latin1StrLength = latin1Str.length; // Convert var words = []; for (var i = 0; i < latin1StrLength; i++) { words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); } return new WordArray.init(words, latin1StrLength); } }; /** * UTF-8 encoding strategy. */ var Utf8 = C_enc.Utf8 = { /** * Converts a word array to a UTF-8 string. * * @param {WordArray} wordArray The word array. * * @return {string} The UTF-8 string. * * @static * * @example * * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); */ stringify: function (wordArray) { try { return decodeURIComponent(escape(Latin1.stringify(wordArray))); } catch (e) { throw new Error('Malformed UTF-8 data'); } }, /** * Converts a UTF-8 string to a word array. * * @param {string} utf8Str The UTF-8 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); */ parse: function (utf8Str) { return Latin1.parse(unescape(encodeURIComponent(utf8Str))); } }; /** * Abstract buffered block algorithm template. * * The property blockSize must be implemented in a concrete subtype. * * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 */ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ /** * Resets this block algorithm's data buffer to its initial state. * * @example * * bufferedBlockAlgorithm.reset(); */ reset: function () { // Initial values this._data = new WordArray.init(); this._nDataBytes = 0; }, /** * Adds new data to this block algorithm's buffer. * * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. * * @example * * bufferedBlockAlgorithm._append('data'); * bufferedBlockAlgorithm._append(wordArray); */ _append: function (data) { // Convert string to WordArray, else assume WordArray already if (typeof data == 'string') { data = Utf8.parse(data); } // Append this._data.concat(data); this._nDataBytes += data.sigBytes; }, /** * Processes available data blocks. * * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. * * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. * * @return {WordArray} The processed data. * * @example * * var processedData = bufferedBlockAlgorithm._process(); * var processedData = bufferedBlockAlgorithm._process(!!'flush'); */ _process: function (doFlush) { // Shortcuts var data = this._data; var dataWords = data.words; var dataSigBytes = data.sigBytes; var blockSize = this.blockSize; var blockSizeBytes = blockSize * 4; // Count blocks ready var nBlocksReady = dataSigBytes / blockSizeBytes; if (doFlush) { // Round up to include partial blocks nBlocksReady = Math.ceil(nBlocksReady); } else { // Round down to include only full blocks, // less the number of blocks that must remain in the buffer nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); } // Count words ready var nWordsReady = nBlocksReady * blockSize; // Count bytes ready var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks if (nWordsReady) { for (var offset = 0; offset < nWordsReady; offset += blockSize) { // Perform concrete-algorithm logic this._doProcessBlock(dataWords, offset); } // Remove processed words var processedWords = dataWords.splice(0, nWordsReady); data.sigBytes -= nBytesReady; } // Return processed words return new WordArray.init(processedWords, nBytesReady); }, /** * Creates a copy of this object. * * @return {Object} The clone. * * @example * * var clone = bufferedBlockAlgorithm.clone(); */ clone: function () { var clone = Base.clone.call(this); clone._data = this._data.clone(); return clone; }, _minBufferSize: 0 }); /** * Abstract hasher template. * * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) */ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ /** * Configuration options. */ cfg: Base.extend(), /** * Initializes a newly created hasher. * * @param {Object} cfg (Optional) The configuration options to use for this hash computation. * * @example * * var hasher = CryptoJS.algo.SHA256.create(); */ init: function (cfg) { // Apply config defaults this.cfg = this.cfg.extend(cfg); // Set initial values this.reset(); }, /** * Resets this hasher to its initial state. * * @example * * hasher.reset(); */ reset: function () { // Reset data buffer BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic this._doReset(); }, /** * Updates this hasher with a message. * * @param {WordArray|string} messageUpdate The message to append. * * @return {Hasher} This hasher. * * @example * * hasher.update('message'); * hasher.update(wordArray); */ update: function (messageUpdate) { // Append this._append(messageUpdate); // Update the hash this._process(); // Chainable return this; }, /** * Finalizes the hash computation. * Note that the finalize operation is effectively a destructive, read-once operation. * * @param {WordArray|string} messageUpdate (Optional) A final message update. * * @return {WordArray} The hash. * * @example * * var hash = hasher.finalize(); * var hash = hasher.finalize('message'); * var hash = hasher.finalize(wordArray); */ finalize: function (messageUpdate) { // Final message update if (messageUpdate) { this._append(messageUpdate); } // Perform concrete-hasher logic var hash = this._doFinalize(); return hash; }, blockSize: 512/32, /** * Creates a shortcut function to a hasher's object interface. * * @param {Hasher} hasher The hasher to create a helper for. * * @return {Function} The shortcut function. * * @static * * @example * * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); */ _createHelper: function (hasher) { return function (message, cfg) { return new hasher.init(cfg).finalize(message); }; }, /** * Creates a shortcut function to the HMAC's object interface. * * @param {Hasher} hasher The hasher to use in this HMAC helper. * * @return {Function} The shortcut function. * * @static * * @example * * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); */ _createHmacHelper: function (hasher) { return function (message, key) { return new C_algo.HMAC.init(hasher, key).finalize(message); }; } }); /** * Algorithm namespace. */ var C_algo = C.algo = {}; return C; }(Math)); return CryptoJS; })); /***/ }), /***/ "./node_modules/crypto-js/enc-base64.js": /*!**********************************************!*\ !*** ./node_modules/crypto-js/enc-base64.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory) { if (true) { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); } else if (typeof define === "function" && define.amd) { // AMD define(["./core"], factory); } else { // Global (browser) factory(root.CryptoJS); } }(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var C_enc = C.enc; /** * Base64 encoding strategy. */ var Base64 = C_enc.Base64 = { /** * Converts a word array to a Base64 string. * * @param {WordArray} wordArray The word array. * * @return {string} The Base64 string. * * @static * * @example * * var base64String = CryptoJS.enc.Base64.stringify(wordArray); */ stringify: function (wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; var map = this._map; // Clamp excess bits wordArray.clamp(); // Convert var base64Chars = []; for (var i = 0; i < sigBytes; i += 3) { var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; var triplet = (byte1 << 16) | (byte2 << 8) | byte3; for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); } } // Add padding var paddingChar = map.charAt(64); if (paddingChar) { while (base64Chars.length % 4) { base64Chars.push(paddingChar); } } return base64Chars.join(''); }, /** * Converts a Base64 string to a word array. * * @param {string} base64Str The Base64 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Base64.parse(base64String); */ parse: function (base64Str) { // Shortcuts var base64StrLength = base64Str.length; var map = this._map; var reverseMap = this._reverseMap; if (!reverseMap) { reverseMap = this._reverseMap = []; for (var j = 0; j < map.length; j++) { reverseMap[map.charCodeAt(j)] = j; } } // Ignore padding var paddingChar = map.charAt(64); if (paddingChar) { var paddingIndex = base64Str.indexOf(paddingChar); if (paddingIndex !== -1) { base64StrLength = paddingIndex; } } // Convert return parseLoop(base64Str, base64StrLength, reverseMap); }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' }; function parseLoop(base64Str, base64StrLength, reverseMap) { var words = []; var nBytes = 0; for (var i = 0; i < base64StrLength; i++) { if (i % 4) { var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); nBytes++; } } return WordArray.create(words, nBytes); } }()); return CryptoJS.enc.Base64; })); /***/ }), /***/ "./node_modules/crypto-js/hmac-sha256.js": /*!***********************************************!*\ !*** ./node_modules/crypto-js/hmac-sha256.js ***! \***********************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory, undef) { if (true) { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js"), __webpack_require__(/*! ./sha256 */ "./node_modules/crypto-js/sha256.js"), __webpack_require__(/*! ./hmac */ "./node_modules/crypto-js/hmac.js")); } else if (typeof define === "function" && define.amd) { // AMD define(["./core", "./sha256", "./hmac"], factory); } else { // Global (browser) factory(root.CryptoJS); } }(this, function (CryptoJS) { return CryptoJS.HmacSHA256; })); /***/ }), /***/ "./node_modules/crypto-js/hmac.js": /*!****************************************!*\ !*** ./node_modules/crypto-js/hmac.js ***! \****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory) { if (true) { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); } else if (typeof define === "function" && define.amd) { // AMD define(["./core"], factory); } else { // Global (browser) factory(root.CryptoJS); } }(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var C_enc = C.enc; var Utf8 = C_enc.Utf8; var C_algo = C.algo; /** * HMAC algorithm. */ var HMAC = C_algo.HMAC = Base.extend({ /** * Initializes a newly created HMAC. * * @param {Hasher} hasher The hash algorithm to use. * @param {WordArray|string} key The secret key. * * @example * * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); */ init: function (hasher, key) { // Init hasher hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already if (typeof key == 'string') { key = Utf8.parse(key); } // Shortcuts var hasherBlockSize = hasher.blockSize; var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys if (key.sigBytes > hasherBlockSizeBytes) { key = hasher.finalize(key); } // Clamp excess bits key.clamp(); // Clone key for inner and outer pads var oKey = this._oKey = key.clone(); var iKey = this._iKey = key.clone(); // Shortcuts var oKeyWords = oKey.words; var iKeyWords = iKey.words; // XOR keys with pad constants for (var i = 0; i < hasherBlockSize; i++) { oKeyWords[i] ^= 0x5c5c5c5c; iKeyWords[i] ^= 0x36363636; } oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values this.reset(); }, /** * Resets this HMAC to its initial state. * * @example * * hmacHasher.reset(); */ reset: function () { // Shortcut var hasher = this._hasher; // Reset hasher.reset(); hasher.update(this._iKey); }, /** * Updates this HMAC with a message. * * @param {WordArray|string} messageUpdate The message to append. * * @return {HMAC} This HMAC instance. * * @example * * hmacHasher.update('message'); * hmacHasher.update(wordArray); */ update: function (messageUpdate) { this._hasher.update(messageUpdate); // Chainable return this; }, /** * Finalizes the HMAC computation. * Note that the finalize operation is effectively a destructive, read-once operation. * * @param {WordArray|string} messageUpdate (Optional) A final message update. * * @return {WordArray} The HMAC. * * @example * * var hmac = hmacHasher.finalize(); * var hmac = hmacHasher.finalize('message'); * var hmac = hmacHasher.finalize(wordArray); */ finalize: function (messageUpdate) { // Shortcut var hasher = this._hasher; // Compute HMAC var innerHash = hasher.finalize(messageUpdate); hasher.reset(); var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); return hmac; } }); }()); })); /***/ }), /***/ "./node_modules/crypto-js/lib-typedarrays.js": /*!***************************************************!*\ !*** ./node_modules/crypto-js/lib-typedarrays.js ***! \***************************************************/ /*! dynamic exports provided */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory) { if (true) { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); } else if (typeof define === "function" && define.amd) { // AMD define(["./core"], factory); } else { // Global (browser) factory(root.CryptoJS); } }(this, function (CryptoJS) { (function () { // Check if typed arrays are supported if (typeof ArrayBuffer != 'function') { return; } // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; // Reference original init var superInit = WordArray.init; // Augment WordArray.init to handle typed arrays var subInit = WordArray.init = function (typedArray) { // Convert buffers to uint8 if (typedArray instanceof ArrayBuffer) { typedArray = new Uint8Array(typedArray); } // Convert other array views to uint8 if ( typedArray instanceof Int8Array || (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array ) { typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); } // Handle Uint8Array if (typedArray instanceof Uint8Array) { // Shortcut var typedArrayByteLength = typedArray.byteLength; // Extract bytes var words = []; for (var i = 0; i < typedArrayByteLength; i++) { words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); } // Initialize this word array superInit.call(this, words, typedArrayByteLength); } else { // Else call normal init superInit.apply(this, arguments); } }; subInit.prototype = WordArray; }()); return CryptoJS.lib.WordArray; })); /***/ }), /***/ "./node_modules/crypto-js/sha256.js": /*!******************************************!*\ !*** ./node_modules/crypto-js/sha256.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { ;(function (root, factory) { if (true) { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); } else if (typeof define === "function" && define.amd) { // AMD define(["./core"], factory); } else { // Global (browser) factory(root.CryptoJS); } }(this, function (CryptoJS) { (function (Math) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_algo = C.algo; // Initialization and round constants tables var H = []; var K = []; // Compute constants (function () { function isPrime(n) { var sqrtN = Math.sqrt(n); for (var factor = 2; factor <= sqrtN; factor++) { if (!(n % factor)) { return false; } } return true; } function getFractionalBits(n) { return ((n - (n | 0)) * 0x100000000) | 0; } var n = 2; var nPrime = 0; while (nPrime < 64) { if (isPrime(n)) { if (nPrime < 8) { H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); } K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); nPrime++; } n++; } }()); // Reusable object var W = []; /** * SHA-256 hash algorithm. */ var SHA256 = C_algo.SHA256 = Hasher.extend({ _doReset: function () { this._hash = new WordArray.init(H.slice(0)); }, _doProcessBlock: function (M, offset) { // Shortcut var H = this._hash.words; // Working variables var a = H[0]; var b = H[1]; var c = H[2]; var d = H[3]; var e = H[4]; var f = H[5]; var g = H[6]; var h = H[7]; // Computation for (var i = 0; i < 64; i++) { if (i < 16) { W[i] = M[offset + i] | 0; } else { var gamma0x = W[i - 15]; var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ ((gamma0x << 14) | (gamma0x >>> 18)) ^ (gamma0x >>> 3); var gamma1x = W[i - 2]; var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ ((gamma1x << 13) | (gamma1x >>> 19)) ^ (gamma1x >>> 10); W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; } var ch = (e & f) ^ (~e & g); var maj = (a & b) ^ (a & c) ^ (b & c); var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); var t1 = h + sigma1 + ch + K[i] + W[i]; var t2 = sigma0 + maj; h = g; g = f; f = e; e = (d + t1) | 0; d = c; c = b; b = a; a = (t1 + t2) | 0; } // Intermediate hash value H[0] = (H[0] + a) | 0; H[1] = (H[1] + b) | 0; H[2] = (H[2] + c) | 0; H[3] = (H[3] + d) | 0; H[4] = (H[4] + e) | 0; H[5] = (H[5] + f) | 0; H[6] = (H[6] + g) | 0; H[7] = (H[7] + h) | 0; }, _doFinalize: function () { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; data.sigBytes = dataWords.length * 4; // Hash final blocks this._process(); // Return final computed hash return this._hash; }, clone: function () { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA256('message'); * var hash = CryptoJS.SHA256(wordArray); */ C.SHA256 = Hasher._createHelper(SHA256); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA256(message, key); */ C.HmacSHA256 = Hasher._createHmacHelper(SHA256); }(Math)); return CryptoJS.SHA256; })); /***/ }), /***/ "./node_modules/css-animation/es/Event.js": /*!************************************************!*\ !*** ./node_modules/css-animation/es/Event.js ***! \************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var START_EVENT_NAME_MAP = { transitionstart: { transition: 'transitionstart', WebkitTransition: 'webkitTransitionStart', MozTransition: 'mozTransitionStart', OTransition: 'oTransitionStart', msTransition: 'MSTransitionStart' }, animationstart: { animation: 'animationstart', WebkitAnimation: 'webkitAnimationStart', MozAnimation: 'mozAnimationStart', OAnimation: 'oAnimationStart', msAnimation: 'MSAnimationStart' } }; var END_EVENT_NAME_MAP = { transitionend: { transition: 'transitionend', WebkitTransition: 'webkitTransitionEnd', MozTransition: 'mozTransitionEnd', OTransition: 'oTransitionEnd', msTransition: 'MSTransitionEnd' }, animationend: { animation: 'animationend', WebkitAnimation: 'webkitAnimationEnd', MozAnimation: 'mozAnimationEnd', OAnimation: 'oAnimationEnd', msAnimation: 'MSAnimationEnd' } }; var startEvents = []; var endEvents = []; function detectEvents() { var testEl = document.createElement('div'); var style = testEl.style; if (!('AnimationEvent' in window)) { delete START_EVENT_NAME_MAP.animationstart.animation; delete END_EVENT_NAME_MAP.animationend.animation; } if (!('TransitionEvent' in window)) { delete START_EVENT_NAME_MAP.transitionstart.transition; delete END_EVENT_NAME_MAP.transitionend.transition; } function process(EVENT_NAME_MAP, events) { for (var baseEventName in EVENT_NAME_MAP) { if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) { var baseEvents = EVENT_NAME_MAP[baseEventName]; for (var styleName in baseEvents) { if (styleName in style) { events.push(baseEvents[styleName]); break; } } } } } process(START_EVENT_NAME_MAP, startEvents); process(END_EVENT_NAME_MAP, endEvents); } if (typeof window !== 'undefined' && typeof document !== 'undefined') { detectEvents(); } function addEventListener(node, eventName, eventListener) { node.addEventListener(eventName, eventListener, false); } function removeEventListener(node, eventName, eventListener) { node.removeEventListener(eventName, eventListener, false); } var TransitionEvents = { // Start events startEvents: startEvents, addStartEventListener: function addStartEventListener(node, eventListener) { if (startEvents.length === 0) { window.setTimeout(eventListener, 0); return; } startEvents.forEach(function (startEvent) { addEventListener(node, startEvent, eventListener); }); }, removeStartEventListener: function removeStartEventListener(node, eventListener) { if (startEvents.length === 0) { return; } startEvents.forEach(function (startEvent) { removeEventListener(node, startEvent, eventListener); }); }, // End events endEvents: endEvents, addEndEventListener: function addEndEventListener(node, eventListener) { if (endEvents.length === 0) { window.setTimeout(eventListener, 0); return; } endEvents.forEach(function (endEvent) { addEventListener(node, endEvent, eventListener); }); }, removeEndEventListener: function removeEndEventListener(node, eventListener) { if (endEvents.length === 0) { return; } endEvents.forEach(function (endEvent) { removeEventListener(node, endEvent, eventListener); }); } }; /* harmony default export */ __webpack_exports__["a"] = (TransitionEvents); /***/ }), /***/ "./node_modules/css-animation/es/index.js": /*!************************************************!*\ !*** ./node_modules/css-animation/es/index.js ***! \************************************************/ /*! exports provided: isCssAnimationSupported, default */ /*! exports used: default, isCssAnimationSupported */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isCssAnimationSupported; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(/*! babel-runtime/helpers/typeof */ "./node_modules/babel-runtime/helpers/typeof.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Event__ = __webpack_require__(/*! ./Event */ "./node_modules/css-animation/es/Event.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_component_classes__ = __webpack_require__(/*! component-classes */ "./node_modules/component-classes/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_component_classes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_component_classes__); var isCssAnimationSupported = __WEBPACK_IMPORTED_MODULE_1__Event__["a" /* default */].endEvents.length !== 0; var capitalPrefixes = ['Webkit', 'Moz', 'O', // ms is special .... ! 'ms']; var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', '']; function getStyleProperty(node, name) { // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle var style = window.getComputedStyle(node, null); var ret = ''; for (var i = 0; i < prefixes.length; i++) { ret = style.getPropertyValue(prefixes[i] + name); if (ret) { break; } } return ret; } function fixBrowserByTimeout(node) { if (isCssAnimationSupported) { var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0; var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0; var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0; var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0; var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay); // sometimes, browser bug node.rcEndAnimTimeout = setTimeout(function () { node.rcEndAnimTimeout = null; if (node.rcEndListener) { node.rcEndListener(); } }, time * 1000 + 200); } } function clearBrowserBugTimeout(node) { if (node.rcEndAnimTimeout) { clearTimeout(node.rcEndAnimTimeout); node.rcEndAnimTimeout = null; } } var cssAnimation = function cssAnimation(node, transitionName, endCallback) { var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(transitionName)) === 'object'; var className = nameIsObj ? transitionName.name : transitionName; var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active'; var end = endCallback; var start = void 0; var active = void 0; var nodeClasses = __WEBPACK_IMPORTED_MODULE_2_component_classes___default()(node); if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') { end = endCallback.end; start = endCallback.start; active = endCallback.active; } if (node.rcEndListener) { node.rcEndListener(); } node.rcEndListener = function (e) { if (e && e.target !== node) { return; } if (node.rcAnimTimeout) { clearTimeout(node.rcAnimTimeout); node.rcAnimTimeout = null; } clearBrowserBugTimeout(node); nodeClasses.remove(className); nodeClasses.remove(activeClassName); __WEBPACK_IMPORTED_MODULE_1__Event__["a" /* default */].removeEndEventListener(node, node.rcEndListener); node.rcEndListener = null; // Usually this optional end is used for informing an owner of // a leave animation and telling it to remove the child. if (end) { end(); } }; __WEBPACK_IMPORTED_MODULE_1__Event__["a" /* default */].addEndEventListener(node, node.rcEndListener); if (start) { start(); } nodeClasses.add(className); node.rcAnimTimeout = setTimeout(function () { node.rcAnimTimeout = null; nodeClasses.add(activeClassName); if (active) { setTimeout(active, 0); } fixBrowserByTimeout(node); // 30ms for firefox }, 30); return { stop: function stop() { if (node.rcEndListener) { node.rcEndListener(); } } }; }; cssAnimation.style = function (node, style, callback) { if (node.rcEndListener) { node.rcEndListener(); } node.rcEndListener = function (e) { if (e && e.target !== node) { return; } if (node.rcAnimTimeout) { clearTimeout(node.rcAnimTimeout); node.rcAnimTimeout = null; } clearBrowserBugTimeout(node); __WEBPACK_IMPORTED_MODULE_1__Event__["a" /* default */].removeEndEventListener(node, node.rcEndListener); node.rcEndListener = null; // Usually this optional callback is used for informing an owner of // a leave animation and telling it to remove the child. if (callback) { callback(); } }; __WEBPACK_IMPORTED_MODULE_1__Event__["a" /* default */].addEndEventListener(node, node.rcEndListener); node.rcAnimTimeout = setTimeout(function () { for (var s in style) { if (style.hasOwnProperty(s)) { node.style[s] = style[s]; } } node.rcAnimTimeout = null; fixBrowserByTimeout(node); }, 0); }; cssAnimation.setTransition = function (node, p, value) { var property = p; var v = value; if (value === undefined) { v = property; property = ''; } property = property || ''; capitalPrefixes.forEach(function (prefix) { node.style[prefix + 'Transition' + property] = v; }); }; cssAnimation.isCssAnimationSupported = isCssAnimationSupported; /* harmony default export */ __webpack_exports__["a"] = (cssAnimation); /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./node_modules/rc-menu/assets/index.css": /*!***************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./node_modules/rc-menu/assets/index.css ***! \***************************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports // module exports.push([module.i, "@font-face {\n font-family: 'FontAwesome';\n src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot');\n src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf') format('truetype'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.rc-menu {\n outline: none;\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n border: 1px solid #d9d9d9;\n -webkit-box-shadow: 0 0 4px #d9d9d9;\n box-shadow: 0 0 4px #d9d9d9;\n -webkit-border-radius: 3px;\n border-radius: 3px;\n color: #666;\n}\n.rc-menu-hidden {\n display: none;\n}\n.rc-menu-collapse {\n overflow: hidden;\n}\n.rc-menu-collapse-active {\n -webkit-transition: height 0.3s ease-out;\n -o-transition: height 0.3s ease-out;\n transition: height 0.3s ease-out;\n}\n.rc-menu-item-group-list {\n margin: 0;\n padding: 0;\n}\n.rc-menu-item-group-title {\n color: #999;\n line-height: 1.5;\n padding: 8px 10px;\n border-bottom: 1px solid #dedede;\n}\n.rc-menu-item-active,\n.rc-menu-submenu-active > .rc-menu-submenu-title {\n background-color: #eaf8fe;\n}\n.rc-menu-item-selected {\n background-color: #eaf8fe;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n}\n.rc-menu-submenu-selected {\n background-color: #eaf8fe;\n}\n.rc-menu > li.rc-menu-submenu {\n padding: 0;\n}\n.rc-menu-horizontal.rc-menu-sub,\n.rc-menu-vertical.rc-menu-sub,\n.rc-menu-vertical-left.rc-menu-sub,\n.rc-menu-vertical-right.rc-menu-sub {\n min-width: 160px;\n margin-top: 0;\n}\n.rc-menu-item,\n.rc-menu-submenu-title {\n margin: 0;\n position: relative;\n display: block;\n padding: 7px 7px 7px 16px;\n white-space: nowrap;\n}\n.rc-menu-item.rc-menu-item-disabled,\n.rc-menu-submenu-title.rc-menu-item-disabled,\n.rc-menu-item.rc-menu-submenu-disabled,\n.rc-menu-submenu-title.rc-menu-submenu-disabled {\n color: #777 !important;\n}\n.rc-menu > .rc-menu-item-divider {\n height: 1px;\n margin: 1px 0;\n overflow: hidden;\n padding: 0;\n line-height: 0;\n background-color: #e5e5e5;\n}\n.rc-menu-submenu-popup {\n position: absolute;\n}\n.rc-menu-submenu-popup .submenu-title-wrapper {\n padding-right: 20px;\n}\n.rc-menu-submenu > .rc-menu {\n background-color: #fff;\n}\n.rc-menu .rc-menu-submenu-title .anticon,\n.rc-menu .rc-menu-item .anticon {\n width: 14px;\n height: 14px;\n margin-right: 8px;\n top: -1px;\n}\n.rc-menu-horizontal {\n background-color: #F3F5F7;\n border: none;\n border-bottom: 1px solid #d9d9d9;\n -webkit-box-shadow: none;\n box-shadow: none;\n white-space: nowrap;\n overflow: hidden;\n}\n.rc-menu-horizontal > .rc-menu-item,\n.rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\n padding: 15px 20px;\n}\n.rc-menu-horizontal > .rc-menu-submenu,\n.rc-menu-horizontal > .rc-menu-item {\n border-bottom: 2px solid transparent;\n display: inline-block;\n vertical-align: bottom;\n}\n.rc-menu-horizontal > .rc-menu-submenu-active,\n.rc-menu-horizontal > .rc-menu-item-active {\n border-bottom: 2px solid #2db7f5;\n background-color: #F3F5F7;\n color: #2baee9;\n}\n.rc-menu-horizontal:after {\n content: \" \";\n display: block;\n height: 0;\n clear: both;\n}\n.rc-menu-vertical,\n.rc-menu-vertical-left,\n.rc-menu-vertical-right,\n.rc-menu-inline {\n padding: 12px 0;\n}\n.rc-menu-vertical > .rc-menu-item,\n.rc-menu-vertical-left > .rc-menu-item,\n.rc-menu-vertical-right > .rc-menu-item,\n.rc-menu-inline > .rc-menu-item,\n.rc-menu-vertical > .rc-menu-submenu > .rc-menu-submenu-title,\n.rc-menu-vertical-left > .rc-menu-submenu > .rc-menu-submenu-title,\n.rc-menu-vertical-right > .rc-menu-submenu > .rc-menu-submenu-title,\n.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {\n padding: 12px 8px 12px 24px;\n}\n.rc-menu-vertical .rc-menu-submenu-arrow,\n.rc-menu-vertical-left .rc-menu-submenu-arrow,\n.rc-menu-vertical-right .rc-menu-submenu-arrow,\n.rc-menu-inline .rc-menu-submenu-arrow {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n vertical-align: baseline;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n position: absolute;\n right: 16px;\n line-height: 1.5em;\n}\n.rc-menu-vertical .rc-menu-submenu-arrow:before,\n.rc-menu-vertical-left .rc-menu-submenu-arrow:before,\n.rc-menu-vertical-right .rc-menu-submenu-arrow:before,\n.rc-menu-inline .rc-menu-submenu-arrow:before {\n content: \"\\F0DA\";\n}\n.rc-menu-inline .rc-menu-submenu-arrow {\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n -webkit-transition: -webkit-transform .3s;\n transition: -webkit-transform .3s;\n -o-transition: transform .3s;\n transition: transform .3s;\n transition: transform .3s, -webkit-transform .3s;\n}\n.rc-menu-inline .rc-menu-submenu-open > .rc-menu-submenu-title .rc-menu-submenu-arrow {\n -webkit-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n transform: rotate(-90deg);\n}\n.rc-menu-vertical.rc-menu-sub,\n.rc-menu-vertical-left.rc-menu-sub,\n.rc-menu-vertical-right.rc-menu-sub {\n padding: 0;\n}\n.rc-menu-sub.rc-menu-inline {\n padding: 0;\n border: none;\n -webkit-border-radius: 0;\n border-radius: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.rc-menu-sub.rc-menu-inline > .rc-menu-item,\n.rc-menu-sub.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {\n padding-top: 8px;\n padding-bottom: 8px;\n padding-right: 0;\n}\n.rc-menu-open-slide-up-enter,\n.rc-menu-open-slide-up-appear {\n -webkit-animation-duration: .3s;\n animation-duration: .3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-transform-origin: 0 0;\n -ms-transform-origin: 0 0;\n transform-origin: 0 0;\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.rc-menu-open-slide-up-leave {\n -webkit-animation-duration: .3s;\n animation-duration: .3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-transform-origin: 0 0;\n -ms-transform-origin: 0 0;\n transform-origin: 0 0;\n opacity: 1;\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.rc-menu-open-slide-up-enter.rc-menu-open-slide-up-enter-active,\n.rc-menu-open-slide-up-appear.rc-menu-open-slide-up-appear-active {\n -webkit-animation-name: rcMenuOpenSlideUpIn;\n animation-name: rcMenuOpenSlideUpIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.rc-menu-open-slide-up-leave.rc-menu-open-slide-up-leave-active {\n -webkit-animation-name: rcMenuOpenSlideUpOut;\n animation-name: rcMenuOpenSlideUpOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n@-webkit-keyframes rcMenuOpenSlideUpIn {\n 0% {\n opacity: 0;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n 100% {\n opacity: 1;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n}\n@keyframes rcMenuOpenSlideUpIn {\n 0% {\n opacity: 0;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n 100% {\n opacity: 1;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n}\n@-webkit-keyframes rcMenuOpenSlideUpOut {\n 0% {\n opacity: 1;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n 100% {\n opacity: 0;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n}\n@keyframes rcMenuOpenSlideUpOut {\n 0% {\n opacity: 1;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n 100% {\n opacity: 0;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n}\n.rc-menu-open-zoom-enter,\n.rc-menu-open-zoom-appear {\n opacity: 0;\n -webkit-animation-duration: .3s;\n animation-duration: .3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-transform-origin: 0 0;\n -ms-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.rc-menu-open-zoom-leave {\n -webkit-animation-duration: .3s;\n animation-duration: .3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-transform-origin: 0 0;\n -ms-transform-origin: 0 0;\n transform-origin: 0 0;\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.rc-menu-open-zoom-enter.rc-menu-open-zoom-enter-active,\n.rc-menu-open-zoom-appear.rc-menu-open-zoom-appear-active {\n -webkit-animation-name: rcMenuOpenZoomIn;\n animation-name: rcMenuOpenZoomIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.rc-menu-open-zoom-leave.rc-menu-open-zoom-leave-active {\n -webkit-animation-name: rcMenuOpenZoomOut;\n animation-name: rcMenuOpenZoomOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n@-webkit-keyframes rcMenuOpenZoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n }\n 100% {\n opacity: 1;\n -webkit-transform: scale(1, 1);\n transform: scale(1, 1);\n }\n}\n@keyframes rcMenuOpenZoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n }\n 100% {\n opacity: 1;\n -webkit-transform: scale(1, 1);\n transform: scale(1, 1);\n }\n}\n@-webkit-keyframes rcMenuOpenZoomOut {\n 0% {\n -webkit-transform: scale(1, 1);\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n }\n}\n@keyframes rcMenuOpenZoomOut {\n 0% {\n -webkit-transform: scale(1, 1);\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n }\n}\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./node_modules/react-clock/dist/Clock.css": /*!*****************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./node_modules/react-clock/dist/Clock.css ***! \*****************************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports // module exports.push([module.i, ".react-clock {\n display: block;\n position: relative;\n}\n.react-clock,\n.react-clock *,\n.react-clock *:before,\n.react-clock *:after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.react-clock__face {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border: 1px solid black;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n}\n.react-clock__hand {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n right: 50%;\n}\n.react-clock__hand__body {\n position: absolute;\n background-color: black;\n -webkit-transform: translateX(-50%);\n -ms-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n.react-clock__mark {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n right: 50%;\n}\n.react-clock__mark__body {\n position: absolute;\n background-color: black;\n -webkit-transform: translateX(-50%);\n -ms-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n.react-clock__mark__number {\n position: absolute;\n left: -40px;\n width: 80px;\n text-align: center;\n}\n.react-clock__second-hand__body {\n background-color: red;\n}\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./node_modules/react-day-picker/lib/style.css": /*!*********************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./node_modules/react-day-picker/lib/style.css ***! \*********************************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports // module exports.push([module.i, "/* DayPicker styles */\n\n.DayPicker {\n display: inline-block;\n font-size: 1rem;\n}\n\n.DayPicker-wrapper {\n position: relative;\n\n -webkit-box-orient: horizontal;\n\n -webkit-box-direction: normal;\n\n -webkit-flex-direction: row;\n\n -ms-flex-direction: row;\n\n flex-direction: row;\n padding-bottom: 1em;\n\n -webkit-user-select: none;\n\n -moz-user-select: none;\n\n -ms-user-select: none;\n\n user-select: none;\n}\n\n.DayPicker-Months {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.DayPicker-Month {\n display: table;\n margin: 0 1em;\n margin-top: 1em;\n border-spacing: 0;\n border-collapse: collapse;\n\n -webkit-user-select: none;\n\n -moz-user-select: none;\n\n -ms-user-select: none;\n\n user-select: none;\n}\n\n.DayPicker-NavBar {\n}\n\n.DayPicker-NavButton {\n position: absolute;\n top: 1em;\n right: 1.5em;\n left: auto;\n\n display: inline-block;\n margin-top: 2px;\n width: 1.25em;\n height: 1.25em;\n background-position: center;\n -webkit-background-size: 50% 50%;\n background-size: 50%;\n background-repeat: no-repeat;\n color: #8B9898;\n cursor: pointer;\n}\n\n.DayPicker-NavButton:hover {\n opacity: 0.8;\n}\n\n.DayPicker-NavButton--prev {\n margin-right: 1.5em;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAVVJREFUWAnN2G0KgjAYwPHpGfRkaZeqvgQaK+hY3SUHrk1YzNLay/OiEFp92I+/Mp2F2Mh2lLISWnflFjzH263RQjzMZ19wgs73ez0o1WmtW+dgA01VxrE3p6l2GLsnBy1VYQOtVSEH/atCCgqpQgKKqYIOiq2CBkqtggLKqQIKgqgCBjpJ2Y5CdJ+zrT9A7HHSTA1dxUdHgzCqJIEwq0SDsKsEg6iqBIEoq/wEcVRZBXFV+QJxV5mBtlDFB5VjYTaGZ2sf4R9PM7U9ZU+lLuaetPP/5Die3ToO1+u+MKtHs06qODB2zBnI/jBd4MPQm1VkY79Tb18gB+C62FdBFsZR6yeIo1YQiLJWMIiqVjQIu1YSCLNWFgijVjYIuhYYCKoWKAiiFgoopxYaKLUWOii2FgkophYp6F3r42W5A9s9OcgNvva8xQaysKXlFytoqdYmQH6tF3toSUo0INq9AAAAAElFTkSuQmCC');\n}\n\n.DayPicker-NavButton--next {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAXRJREFUWAnN119ugjAcwPHWzJ1gnmxzB/BBE0n24m4xfNkTaOL7wOtsl3AXMMb+Vjaa1BG00N8fSEibPpAP3xAKKs2yjzTPH9RAjhEo9WzPr/Vm8zgE0+gXATAxxuxtqeJ9t5tIwv5AtQAApsfT6TPdbp+kUBcgVwvO51KqVhMkXKsVJFXrOkigVhCIs1Y4iKlWZxB1rX4gwlpRIIpa8SDkWmggrFq4IIRaJKCYWnSgnrXIQV1r8YD+1Vrn+bReagysIFfLABRt31v8oBu1xEBttfRbltmfjgEcWh9snUS2kNdBK6WN1vrOWxObWsz+fjxevsxmB1GQDfINWiev83nhaoiB/CoOU438oPrhXS0WpQ9xc1ZQWxWHqUYe0I0qrKCQKjygDlXIQV2r0IF6ViEBxVTBBSFUQQNhVYkHIVeJAtkNsbQ7c1LtzP6FsObhb2rCKv7NBIGoq4SDmKoEgTirXAcJVGkFSVVpgoSrXICGUMUH/QBZNSUy5XWUhwAAAABJRU5ErkJggg==');\n}\n\n.DayPicker-NavButton--interactionDisabled {\n display: none;\n}\n\n.DayPicker-Caption {\n display: table-caption;\n margin-bottom: 0.5em;\n padding: 0 0.5em;\n text-align: left;\n}\n\n.DayPicker-Caption > div {\n font-weight: 500;\n font-size: 1.15em;\n}\n\n.DayPicker-Weekdays {\n display: table-header-group;\n margin-top: 1em;\n}\n\n.DayPicker-WeekdaysRow {\n display: table-row;\n}\n\n.DayPicker-Weekday {\n display: table-cell;\n padding: 0.5em;\n color: #8B9898;\n text-align: center;\n font-size: 0.875em;\n}\n\n.DayPicker-Weekday abbr[title] {\n border-bottom: none;\n text-decoration: none;\n}\n\n.DayPicker-Body {\n display: table-row-group;\n}\n\n.DayPicker-Week {\n display: table-row;\n}\n\n.DayPicker-Day {\n display: table-cell;\n padding: 0.5em;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n}\n\n.DayPicker-WeekNumber {\n display: table-cell;\n padding: 0.5em;\n min-width: 1em;\n border-right: 1px solid #EAECEC;\n color: #8B9898;\n vertical-align: middle;\n text-align: right;\n font-size: 0.75em;\n cursor: pointer;\n}\n\n.DayPicker--interactionDisabled .DayPicker-Day {\n cursor: default;\n}\n\n.DayPicker-Footer {\n padding-top: 0.5em;\n}\n\n.DayPicker-TodayButton {\n border: none;\n background-color: transparent;\n background-image: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n color: #4A90E2;\n font-size: 0.875em;\n cursor: pointer;\n}\n\n/* Default modifiers */\n\n.DayPicker-Day--today {\n color: #D0021B;\n font-weight: 700;\n}\n\n.DayPicker-Day--outside {\n color: #8B9898;\n cursor: default;\n}\n\n.DayPicker-Day--disabled {\n color: #DCE0E0;\n cursor: default;\n /* background-color: #eff1f1; */\n}\n\n/* Example modifiers */\n\n.DayPicker-Day--sunday {\n background-color: #F7F8F8;\n}\n\n.DayPicker-Day--sunday:not(.DayPicker-Day--today) {\n color: #DCE0E0;\n}\n\n.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {\n position: relative;\n\n background-color: #4A90E2;\n color: #F0F8FF;\n}\n\n.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside):hover {\n background-color: #51A0FA;\n}\n\n.DayPicker:not(.DayPicker--interactionDisabled)\n .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover {\n background-color: #F0F8FF;\n}\n\n/* DayPickerInput */\n\n.DayPickerInput {\n display: inline-block;\n}\n\n.DayPickerInput-OverlayWrapper {\n position: relative;\n}\n\n.DayPickerInput-Overlay {\n position: absolute;\n left: 0;\n z-index: 1;\n\n background: white;\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);\n}\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./node_modules/react-time-picker/dist/TimePicker.css": /*!****************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./node_modules/react-time-picker/dist/TimePicker.css ***! \****************************************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports // module exports.push([module.i, ".react-time-picker {\n display: -webkit-inline-box;\n display: -webkit-inline-flex;\n display: -ms-inline-flexbox;\n display: inline-flex;\n position: relative;\n}\n.react-time-picker,\n.react-time-picker *,\n.react-time-picker *:before,\n.react-time-picker *:after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.react-time-picker--disabled {\n background-color: #f0f0f0;\n color: #6d6d6d;\n}\n.react-time-picker__wrapper {\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n border: thin solid gray;\n}\n.react-time-picker__inputGroup {\n min-width: -webkit-calc(12px + 3.674em);\n min-width: calc(12px + 3.674em);\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n padding: 0 2px;\n -webkit-box-align: baseline;\n -webkit-align-items: baseline;\n -ms-flex-align: baseline;\n align-items: baseline;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n}\n.react-time-picker__inputGroup__divider {\n padding: 1px 0;\n white-space: pre;\n}\n.react-time-picker__inputGroup__input {\n min-width: 0.54em;\n height: 100%;\n position: relative;\n padding: 0 1px;\n border: 0;\n background: none;\n font: inherit;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n -moz-appearance: textfield;\n}\n.react-time-picker__inputGroup__input::-webkit-outer-spin-button,\n.react-time-picker__inputGroup__input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.react-time-picker__inputGroup__input:invalid {\n background: rgba(255, 0, 0, 0.1);\n}\n.react-time-picker__inputGroup__input--hasLeadingZero {\n margin-left: -0.54em;\n padding-left: -webkit-calc(1px + 0.54em);\n padding-left: calc(1px + 0.54em);\n}\n.react-time-picker__inputGroup__amPm {\n font: inherit;\n -moz-appearance: menulist;\n}\n.react-time-picker__button {\n border: 0;\n background: transparent;\n padding: 4px 6px;\n}\n.react-time-picker__button:enabled {\n cursor: pointer;\n}\n.react-time-picker__button:enabled:hover svg g,\n.react-time-picker__button:enabled:focus svg g {\n stroke: #0078d7;\n}\n.react-time-picker__button:disabled svg g {\n stroke: #6d6d6d;\n}\n.react-time-picker__button svg {\n display: inherit;\n}\n.react-time-picker__clock {\n width: 200px;\n height: 200px;\n max-width: 100vw;\n padding: 25px;\n background-color: white;\n border: thin solid #a0a096;\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n.react-time-picker__clock--closed {\n display: none;\n}\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./src/common/components/react-time-picker/src/TimePicker.css": /*!************************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./src/common/components/react-time-picker/src/TimePicker.css ***! \************************************************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports // module exports.push([module.i, ".react-time-picker {\r\n display: -webkit-inline-box;\r\n display: -webkit-inline-flex;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n position: relative;\r\n}\r\n.react-time-picker,\r\n.react-time-picker *,\r\n.react-time-picker *:before,\r\n.react-time-picker *:after {\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.react-time-picker--disabled {\r\n background-color: #f0f0f0;\r\n color: #6d6d6d;\r\n}\r\n.react-time-picker__wrapper {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n border: thin solid gray;\r\n}\r\n.react-time-picker__inputGroup {\r\n min-width: -webkit-calc(12px + 3.674em);\r\n min-width: calc(12px + 3.674em);\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n padding: 0 2px;\r\n -webkit-box-align: baseline;\r\n -webkit-align-items: baseline;\r\n -ms-flex-align: baseline;\r\n align-items: baseline;\r\n -webkit-box-sizing: content-box;\r\n box-sizing: content-box;\r\n}\r\n.react-time-picker__inputGroup__divider {\r\n padding: 1px 0;\r\n}\r\n.react-time-picker__inputGroup__input {\r\n min-width: 0.54em;\r\n height: 100%;\r\n position: relative;\r\n padding: 0 1px;\r\n border: 0;\r\n background: none;\r\n font: inherit;\r\n -webkit-box-sizing: content-box;\r\n box-sizing: content-box;\r\n -moz-appearance: textfield;\r\n -webkit-apperance: none;\r\n}\r\n.react-time-picker__inputGroup__input::-webkit-outer-spin-button,\r\n.react-time-picker__inputGroup__input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n}\r\n.react-time-picker__inputGroup__input:invalid {\r\n background: rgba(255, 0, 0, 0.1);\r\n}\r\n.react-time-picker__inputGroup__input--hasLeadingZero {\r\n margin-left: -0.54em;\r\n padding-left: -webkit-calc(1px + 0.54em);\r\n padding-left: calc(1px + 0.54em);\r\n}\r\n.react-time-picker__inputGroup__amPm {\r\n font: inherit;\r\n -moz-appearance: menulist;\r\n}\r\n.react-time-picker__button {\r\n border: 0;\r\n background: transparent;\r\n padding: 4px 6px;\r\n}\r\n.react-time-picker__button:enabled {\r\n cursor: pointer;\r\n}\r\n.react-time-picker__button:enabled:hover svg g,\r\n.react-time-picker__button:enabled:focus svg g {\r\n stroke: #0078d7;\r\n}\r\n.react-time-picker__button:disabled svg g {\r\n stroke: #6d6d6d;\r\n}\r\n.react-time-picker__button svg {\r\n display: inherit;\r\n}\r\n.react-time-picker__clock {\r\n width: 200px;\r\n height: 200px;\r\n max-width: 100vw;\r\n padding: 25px;\r\n background-color: white;\r\n border: thin solid #a0a096;\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n z-index: 1;\r\n}\r\n.react-time-picker__clock--closed {\r\n display: none;\r\n}\r\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\"}!./src/styles/css/app.css": /*!************************************************************************************************************************************!*\ !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss"}!./src/styles/css/app.css ***! \************************************************************************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined); // imports exports.push([module.i, "@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900);", ""]); // module exports.push([module.i, "\r\n\r\n/**\r\n* Title: SharePoint\r\n* Author/s: Mono\r\n* CSS build platform: Gulp\r\n* CSS development build command: gulp styles\r\n* CSS production build command: gulp styles\r\n* CSS processor: PostCSS\r\n* CSS processor usage: autoprefixing, nesting, variables, minification, pxtorem, color functions\r\n* CSS name convention: BEM\r\n* Global indentation: 4 spaces\r\n* Global units: px\r\n* Global prefix: none\r\n* Browser support: IE9+, last 3 versions of modern browsers, Android 4+, iOS6+\r\n* Additional notes: Some properties with pixel units (depending on the whitelist in Gulpfile) are being recalculated to REM units\r\n*/\n/**\r\n* Import: vars\r\n* Description: variables\r\n*/\n/*------------------------------------*\\\r\n # vars.globals\r\n\\*------------------------------------*/\n/**\r\n * The $unit variable is a global variable to be used\r\n * in paddings, margins, for sizing and positioning\r\n */\n/**\r\n * The $spacer variable is a global variable to be used\r\n * in to create a unified spacer for all kinds of elements\r\n */\n/**\r\n * Global class prefix - usage: .$(global-prefix)classname\r\n */\n/**\r\n * Global radius and rounded\r\n */\n/*------------------------------------*\\\r\n # vars.typography\r\n\\*------------------------------------*/\n/**\r\n * Project base line height (unitless in order to work with typomatic)\r\n */\n/**\r\n* Type scale sizes must be entered in their pixel size\r\n* (unitless in order to work with typomatic)\r\n* Default type scale ratio: 1.333; \r\n*/\n/**\r\n* Type weights\r\n*/\n/**\r\n* Font stacks\r\n*/\n/*------------------------------------*\\\r\n # vars.responsive\r\n\\*------------------------------------*/\n/* 375px */\n/* 374px */\n/* 544px */\n/* 543px */\n/* 768px */\n/* 767px */\n/* 992px */\n/* 991px */\n/* 1200px */\n/* 1199px */\n/* 1440px */\n/* 1439px */\n/* 1520px */\n/* 1519px */\n/* 1600px */\n/* 1599px */\n/* height */\n/* 396px */\n/* 395px */\n/* 556px */\n/* 555px */\n/* 624px */\n/* 623px */\n/* 736px */\n/* 735px */\n/* 896px */\n/* 895px */\n/* 1056px */\n/* 1055px */\n/* custom */\n/* 1346px */\n/* 1345px */\n/*------------------------------------*\\\r\n # vars.colors\r\n\\*------------------------------------*/\n/**\r\n* Generic colors\r\n* Color naming taken from: http://www.color-blindness.com/color-name-hue/\r\n*/\n/**\r\n* Brand colors\r\n*/\n/**\r\n* Fades\r\n*/\n/**\r\n* Global text color\r\n*/\n/**\r\n* Grey colors\r\n*/\n/*\r\n Shades of gray (pure gray)\r\n ------------------------------------\r\n If you need mix some color to gray, use 10% of saturated color\r\n*/\n/* 6% - lightness */\n/* 17% - lightness */\n/* 28% - lightness */\n/* 39% - lightness */\n/* 50% - lightness */\n/* 61% - lightness */\n/* 72% - lightness */\n/* 83% - lightness */\n/* 94% - lightness */\n/*\r\n Shades of blue\r\n*/\n/**\r\n* Utility colors\r\n*/\n/**\r\n* Utility colors\r\n*/\n/**\r\n* Faded utility colors\r\n*/\n/**\r\n* Theme colors\r\n*/\n/**\r\n* Theme colors light\r\n*/\n/**\r\n* Faded theme colors\r\n*/\n/**\r\n* Overlay\r\n*/\n/*------------------------------------*\\\r\n # vars.shadows\r\n\\*------------------------------------*/\n/**\r\n* Import: tools\r\n* Description: tools like typomatic and other mixins / libraries\r\n*/\n/*------------------------------------*\\\r\n # tools.typomatic\r\n\\*------------------------------------*/\n/**\r\n * Mixin name: typomatic-init\r\n * Description: creates a vertical rhythm on a page using font-size\r\n * and line-height on the html element\r\n * Parameters: \r\n * does not take parameters\r\n */\n/**\r\n * Mixin name: type-scale\r\n * Description: type-scale sets the type to baseline to achieve\r\n * vertical rhythm.\r\n * Parameters: \r\n * $scale ($base-font-size is default) - font size (unitless) variable\r\n * $baselines (1 is default) - number of baselines\r\n */\n/* @import \"tools.bubba.css\"; */\n/*------------------------------------*\\\r\n # tools.ricky\r\n\\*------------------------------------*/\n/**\r\n * Custom grid based on flexbox.\r\n * $f-grid-gutter - amount of space between columns\r\n * $f-grid-columns - number of columns of the grid\r\n */\n/**\r\n * The flex-col mixin is used for building flexbox grid columns\r\n */\n/**\r\n * The grid-pull mixin is used for pulling columns using margin-left\r\n * for the space of a number of columns\r\n */\n/**\r\n * Row\r\n */\n.row {\r\n margin-left: -12px;\r\n margin-right: -12px;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: left;\r\n -webkit-justify-content: left;\r\n -ms-flex-pack: left;\r\n justify-content: left;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n}\n@media (min-width: 62em) {\n.row--to--lrg {\r\n margin-left: 0;\r\n margin-right: 0;\r\n display: block\r\n }\r\n }\n/**\r\n * Column\r\n */\n.col {\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n -webkit-transition: all 250ms ease-out;\r\n -o-transition: all 250ms ease-out;\r\n transition: all 250ms ease-out;\r\n}\n@media (min-width: 62em) {\n.col--to--lrg {\r\n padding-left: 0;\r\n padding-right: 0\r\n }\r\n }\n/*------------------------------------*\\\r\n # tools.clearing\r\n\\*------------------------------------*/\n.clearfix:after {\r\n content: \"\";\r\n display: table;\r\n clear: both;\r\n }\n.group {\r\n overflow: hidden;\r\n}\n/**\r\n* Import: generic\r\n* Description: normalize or reset CSS, box sizing\r\n*/\n/*@import \"normalize.css\";*/\n/*------------------------------------*\\\r\n # generic.boxsizing\r\n\\*------------------------------------*/\n*,\r\n*:before,\r\n*:after {\r\n -webkit-box-sizing: inherit;\r\n box-sizing: inherit;\r\n}\nhtml {\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\n/**\r\n* Import: base\r\n* Description: base structural stylings for setting the body, typography\r\n* and other base styles (no classes should be added here)\r\n*/\n/*------------------------------------*\\\r\n # base.globals\r\n\\*------------------------------------*/\n/**\r\n * Initialize typomatic in project (sets font-size and line-height\r\n * on html selector. \r\n */\n.rc-menu-submenu {\r\n z-index: 9999;\r\n }\nhtml {\r\n font-size: 87.5%;\r\n line-height: 1.5;\r\n font-size: 100%;\r\n height: 100%;\r\n}\nbody {\r\n min-height: 100%;\r\n overflow-x: hidden;\r\n margin: 0;\r\n \r\n font-size: 14px;\r\n \r\n line-height: 21px;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n color: #202e3c;\r\n}\nimg {\r\n max-width: 100%;\r\n vertical-align: middle;\r\n}\nsvg {\r\n max-width: 100%;\r\n}\n/*------------------------------------*\\\r\n # base.typography\r\n\\*------------------------------------*/\n/**\r\n * Headings\r\n */\nh1, h2, h3, h4, h5, h6 {\r\n margin: 0;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n font-weight: 800;\r\n}\nh1 {\r\n font-size: 33px;\r\n line-height: 36.75px;\r\n}\nh2 {\r\n font-size: 24px;\r\n line-height: 31.5px;\r\n}\nh3 {\r\n font-size: 21px;\r\n line-height: 26.25px;\r\n}\nh4, h5 {\r\n font-size: 19px;\r\n line-height: 21px;\r\n}\nh6 {\r\n font-size: 16px;\r\n line-height: 21px;\r\n}\n/**\r\n * Paragraphs\r\n */\np {\r\n margin: 0;\r\n}\n/**\r\n * Lists (ol, ul, dd)\r\n */\nol, ul, dl {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\nol {}\nol li {}\nul {}\nul li {}\ndd {}\ndl dt {}\ndl dd {}\n/**\r\n * Anchors\r\n */\na {\r\n color: #202e3c;\r\n text-decoration: none;\r\n}\na:link {}\na:hover {\r\n color: #e51646;\r\n}\na:focus {\r\n outline: 0;\r\n color: #e51646;\r\n}\na:visited {}\n/**\r\n * Typographic details\r\n */\nhr {\r\n}\nem {}\nb, strong {\r\n font-weight: bold\r\n}\naddress {}\nsmall {}\npre {}\ncode {}\nsub {}\nsup {\r\n font-size: 10px;\r\n}\nstrike {}\nlabel {\r\n color: #667182;\r\n text-transform: capitalize;\r\n}\n/**\r\n* Import: modules\r\n* Description: cross project reusable modules\r\n*/\n/*------------------------------------*\\\r\n # modules.bg\r\n\\*------------------------------------*/\n.bg--warning--faded {\r\n background-color: #ffe8e6;\r\n }\n.bg--grey0 {\r\n \tbackground-color: #f3f6f9;\r\n }\n/*------------------------------------*\\\r\n # modules.btn\r\n\\*------------------------------------*/\n.btn {\r\n\r\n /**\r\n * Button base\r\n */\r\n display: -webkit-inline-box;\r\n display: -webkit-inline-flex;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n \r\n white-space: nowrap;\r\n text-decoration: none;\r\n text-align: center;\r\n \r\n border: 0;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n \r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n \r\n -webkit-transition: ease .2s all;\r\n \r\n -o-transition: ease .2s all;\r\n \r\n transition: ease .2s all;\r\n\r\n /**\r\n * Button base project styling\r\n */\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n font-weight: 400;\r\n text-transform: none;\r\n letter-spacing: 0.05em;\r\n}\n.btn:focus {\r\n outline: 0;\r\n }\n/**\r\n * Button styles\r\n */\n.btn:disabled,\r\n .btn button[disabled]{\r\n background-color: #f3f6f9;\r\n color: #9c9c9c;\r\n border: 1px solid #f3f6f9;\r\n cursor: not-allowed;\r\n }\n.btn:disabled:hover, .btn button[disabled]:hover {\r\n background-color: #f3f6f9;\r\n color: #a8afb7;\r\n border: 1px solid #f3f6f9;\r\n }\n.btn--disabled{\r\n background-color: #f3f6f9;\r\n color: #9c9c9c;\r\n border: 1px solid #f3f6f9;\r\n cursor: not-allowed;\r\n }\n.btn--disabled:hover {\r\n background-color: #f3f6f9;\r\n color: #a8afb7;\r\n border: 1px solid #f3f6f9;\r\n }\n.btn--not-allowed {\r\n opacity: 0.5;\r\n }\n.btn--not-allowed:hover {\r\n cursor: not-allowed;\r\n }\n/**\r\n * Button sizes\r\n */\n.btn--sml {\r\n height: 32px;\r\n line-height: 32px;\r\n padding: 0 12px;\r\n }\n.btn--sm {\r\n height: 30px;\r\n line-height: 32px;\r\n padding: 0 12px;\r\n }\n.btn--med {\r\n font-size: 14px;\r\n line-height: 21px;\r\n height: 38px;\r\n line-height: 38px;\r\n padding: 0 9px;\r\n }\n@media (min-width: 34em) {\n.btn--med {\r\n padding: 0 12px\r\n } \r\n }\n.btn--lrg {\r\n height: 48px;\r\n line-height: 48px;\r\n padding: 0 24px;\r\n }\n.btn--full--to--sml {\r\n width: 100%;\r\n }\n@media (min-width: 34em) {\n.btn--full--to--sml {\r\n width: auto\r\n }\r\n }\n.btn--primary {\r\n background: #e51646;\r\n color: white;\r\n font-weight: 300;\r\n }\n.btn--primary:hover {\r\n background: rgb(204, 23, 65);\r\n color: white;\r\n }\n.btn--primary--alt {\r\n border: 1px solid #e51646;\r\n background: #fff;\r\n color: #e51646;\r\n }\n.btn--primary--alt:hover {\r\n background: rgb(242, 242, 242)\r\n }\n.btn--secondary {\r\n background: #000000;\r\n color: white;\r\n }\n.btn--secondary:hover {\r\n background: rgb(35, 35, 35);\r\n }\n.btn--ghost {\r\n border: 1px solid #dfe3e8;\r\n background-color: #fff;\r\n color: #25252b;\r\n }\n.btn--ghost:hover {\r\n border-color: rgb(209, 209, 209);\r\n }\n.btn--ghost--primary {\r\n border: 1px solid #e51646;\r\n background-color: #fff;\r\n color: #e51646;\r\n }\n.btn--ghost--primary:hover {\r\n border-color: rgb(204, 23, 65);\r\n }\n.btn--clear {\r\n border: none;\r\n background-color: transparent;\r\n color: #e51646;\r\n }\n.btn--clear:hover {\r\n color: rgb(204, 23, 65);\r\n }\n.btn--outline {\r\n background-color: transparent;\r\n color: #667182;\r\n border: 1px solid #dfe3e8;\r\n }\n.btn--outline:hover {\r\n border-color: rgb(191, 191, 191);\r\n }\n.btn--success {\r\n background: #2dba67;\r\n color: white;\r\n font-weight: 300;\r\n }\n.btn--success:hover {\r\n background-color: rgb(46, 161, 94);\r\n color: white;\r\n }\n.btn--icon {\r\n border: none;\r\n background-color: transparent;\r\n color: #667182;\r\n }\n.btn--default {\r\n background-color: #cdd1d6;\r\n color: #25252b;\r\n \r\n \r\n }\n.btn--default:hover {\r\n color: rgb(35, 35, 35);\r\n }\n.btn--warning {\r\n background-color: #f03e1b;\r\n color: #fff;\r\n }\n.btn--warning:hover {\r\n color: rgb(214, 59, 28);\r\n }\n.btn--anchor {\r\n background-color: transparent;\r\n color: #e51646;\r\n }\n.btn--anchor:hover {\r\n color: rgb(191, 23, 62);\r\n }\n.btn--collapse {\r\n position: absolute;\r\n top: 18px;\r\n right: 12px;\r\n background-color: transparent;\r\n }\n@media (max-width: 74.9375em) {\n.btn--collapse {\r\n display: none\r\n }\r\n }\n.btn--handler {\r\n font-size: 21px;\r\n line-height: 21px;\r\n border: 1px solid #dfe3e8;\r\n background-color: #dfe3e8;\r\n color: #25252b;\r\n height: 38px;\r\n width: 38px;\r\n line-height: 38px;\r\n padding: 0 9px;\r\n text-align: center;\r\n }\n.btn--handler:hover {\r\n border-color: #cdd1d6;\r\n background-color: #cdd1d6;\r\n }\n.btn--grid {\r\n height: 21px;\r\n\r\n font-size: 12px;\r\n line-height: 21px;\r\n color: #e51646;\r\n\r\n -webkit-border-radius: 1000px;\r\n\r\n border-radius: 1000px;\r\n background-color: transparent;\r\n }\n.btn--grid:hover {\r\n text-decoration: underline;\r\n }\n.btn--reset {\r\n padding: 0;\r\n background-color: transparent;\r\n border: none;\r\n }\n.btn--reset:hover, .btn--reset:focus {\r\n outline: none;\r\n }\n.btn--reset--background {\r\n background-color: transparent;\r\n }\n.btn--reset--background:hover, .btn--reset--background:focus {\r\n outline: none;\r\n background-color: transparent;\r\n }\n.btn--nopadd {\r\n padding: 0;\r\n }\n/*------------------------------------*\\\r\n # modules.container\r\n\\*------------------------------------*/\n.container {\r\n padding: 24px;\r\n max-width: 1440px;\r\n}\n.container--sml {\r\n \tmax-width: 768px;\r\n }\n/*------------------------------------*\\\r\n # modules.field\r\n\\*------------------------------------*/\n.field {\r\n margin-bottom: 18px;\r\n}\n@media (min-width: 48em) {\n.field {\r\n margin-bottom: 30px\r\n} \r\n }\n.field__label {\r\n display: block;\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #9ea6b3;\r\n font-weight: 500;\r\n }\n@media (min-width: 48em) {\n.field__label {\r\n font-size: 14px;\r\n line-height: 21px\r\n } \r\n }\n.field__label--checked {\r\n color: #25252b;\r\n }\n.field__label--form {\r\n display: block;\r\n margin-bottom: 6px;\r\n }\n@media (min-width: 48em) {\n.field__label--form {\r\n font-weight: 500\r\n }\r\n }\n/*------------------------------------*\\\r\n # modules.datatooltip\r\n\\*------------------------------------*/\n[data-tooltip] {\r\n position: relative;\r\n cursor: pointer;\r\n}\n[data-tooltip]:before,\r\n[data-tooltip]:after {\r\n visibility: hidden;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\r\n filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);\r\n opacity: 0;\r\n pointer-events: none;\r\n z-index: 9999;\r\n}\n[data-tooltip]:before {\r\n content: attr(data-tooltip);\r\n position: absolute;\r\n bottom: -webkit-calc(100% + 7px);\r\n bottom: calc(100% + 7px);\r\n left: 50%;\r\n padding: 6px 12px;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: #0e0125;\r\n color: #fff;\r\n text-align: center;\r\n font-size: 12px;\r\n line-height: 21px;\r\n font-style: normal;\r\n font-weight: normal;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n}\n[data-tooltip]:after {\r\n content: \" \";\r\n position: absolute;\r\n bottom: -webkit-calc(100% + 2px);\r\n bottom: calc(100% + 2px);\r\n left: 50%;\r\n margin-left: -5px;\r\n width: 0;\r\n border-top: 5px solid #0e0125;\r\n border-right: 5px solid transparent;\r\n border-left: 5px solid transparent;\r\n font-size: 0;\r\n line-height: 0;\r\n}\n[data-tooltip]:hover:before,\r\n[data-tooltip]:hover:after {\r\n visibility: visible;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";\r\n filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);\r\n opacity: 1;\r\n}\n.datatooltip--newtransaction [data-tooltip]:before {\r\n width: 228px;\r\n text-align: left;\r\n }\n.datatooltip--base [data-tooltip]:before {\r\n width: 200px;\r\n left: auto;\r\n right: -6px;\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0);\r\n }\n.datatooltip--200:before {\r\n width: 200px;\r\n }\n.datatooltip--250:before {\r\n width: 250px;\r\n }\n.datatooltip--merchants [data-tooltip]:before\r\n {\r\n width: 300px;\r\n text-align: left;\r\n }\n.datatooltip--recurringschedule [data-tooltip]:before {\r\n width: 180px;\r\n text-align: left;\r\n }\n.datatooltip--gift [data-tooltip]:before {\r\n width: 168px;\r\n }\n.datatooltip--collapse [data-tooltip]:before {\r\n top: 50%;\r\n bottom: auto;\r\n left: -webkit-calc(100% + 9px);\r\n left: calc(100% + 9px);\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.datatooltip--collapse [data-tooltip]:after {\r\n top: 50%;\r\n left: 35px;\r\n bottom: auto;\r\n border-top: 5px solid transparent;\r\n border-right: 5px solid #0e0125;\r\n border-bottom: 5px solid transparent;\r\n border-left: 0;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.datatooltip--top[data-tooltip]:before {\r\n top: -webkit-calc(100% + 7px);\r\n top: calc(100% + 7px);\r\n bottom: auto;\r\n left: 50%;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n }\n.datatooltip--top[data-tooltip]:after {\r\n top: -webkit-calc(100% + 2px);\r\n top: calc(100% + 2px);\r\n left: 50%;\r\n bottom: auto;\r\n border-left: 5px solid transparent;\r\n border-bottom: 5px solid #0e0125;\r\n border-right: 5px solid transparent;\r\n border-top: 0;\r\n }\n.datatooltip--top--right[data-tooltip]:before {\r\n left: 0;\r\n right: auto;\r\n -webkit-transform: translate(0, 0);\r\n -ms-transform: translate(0, 0);\r\n transform: translate(0, 0);\r\n }\n.datatooltip--top--left[data-tooltip]:before {\r\n left: auto;\r\n right: -9px;\r\n -webkit-transform: translate(0, 0);\r\n -ms-transform: translate(0, 0);\r\n transform: translate(0, 0);\r\n }\n.datatooltip--left[data-tooltip]:before {\r\n top: 50%;\r\n bottom: auto;\r\n right: -webkit-calc(100% + 9px);\r\n right: calc(100% + 9px);\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n left: unset;\r\n }\n.datatooltip--left[data-tooltip]:after {\r\n top: 50%;\r\n bottom: auto;\r\n border-top: 5px solid transparent;\r\n border-left: 5px solid #0e0125;\r\n border-bottom: 5px solid transparent;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n left: -4px;\r\n }\n.datatooltip--right[data-tooltip]:before {\r\n top: 50%;\r\n bottom: auto;\r\n left: -webkit-calc(100% + 8px);\r\n left: calc(100% + 8px);\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.datatooltip--right[data-tooltip]:after {\r\n top: 50%;\r\n bottom: auto;\r\n left: -webkit-calc(100% + 3px);\r\n left: calc(100% + 3px);\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n\r\n border-top: 5px solid transparent;\r\n border-right: 5px solid #0e0125;\r\n border-bottom: 5px solid transparent;\r\n }\n.datatooltip--bottom[data-tooltip]:before {\r\n top: -webkit-calc(100% + 6px);\r\n top: calc(100% + 6px);\r\n bottom: auto;\r\n }\n.datatooltip--bottom[data-tooltip]:after {\r\n border-top: 0 solid transparent;\r\n border-right: 5px solid transparent;\r\n border-bottom: 5px solid #0e0125;\r\n border-left: 5px solid transparent;\r\n left: 50%;\r\n top: -webkit-calc(100% + 2px);\r\n top: calc(100% + 2px);\r\n }\n.datatooltip--bottom--right[data-tooltip]:before {\r\n top: -webkit-calc(100% + 6px);\r\n top: calc(100% + 6px);\r\n bottom: auto;\r\n left: 0;\r\n right: auto;\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0);\r\n }\n.datatooltip--bottom--right[data-tooltip]:after {\r\n border-top: 0 solid transparent;\r\n border-right: 5px solid transparent;\r\n border-bottom: 5px solid #0e0125;\r\n border-left: 5px solid transparent;\r\n left: 50%;\r\n top: -webkit-calc(100% + 2px);\r\n top: calc(100% + 2px);\r\n }\n.datatooltip--wizard-warn[data-tooltip]:before {\r\n top: -webkit-calc(100% + 11px);\r\n top: calc(100% + 11px);\r\n bottom: auto;\r\n width: 200px;\r\n -webkit-transform: translate(-45px,0);\r\n -ms-transform: translate(-45px,0);\r\n transform: translate(-45px,0);\r\n }\n.datatooltip--wizard-warn[data-tooltip]:after {\r\n top: -webkit-calc(100% + 6px);\r\n top: calc(100% + 6px);\r\n bottom: auto;\r\n -webkit-transform: translateY(0);\r\n -ms-transform: translateY(0);\r\n transform: translateY(0);\r\n border-top: 0;\r\n border-right: 5px solid transparent;\r\n border-bottom: 5px solid #0e0125;\r\n border-left: 5px solid transparent;\r\n }\n.datatooltip--nowrap[data-tooltip]:before {\r\n white-space: nowrap;\r\n }\n/* Fake tooltip for Lead grid.\r\n Default one won't work because of grid overflow. */\n.datatooltip--fake {\r\n position: relative;\r\n background-color: #0e0125;\r\n padding: 6px 12px;\r\n\r\n font-size: 12px;\r\n\r\n line-height: 21px;\r\n text-align: center;\r\n color: #ffffff;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n }\n/*------------------------------------*\\\r\n # modules.input\r\n\\*------------------------------------*/\n.input {\r\n /**\r\n * Input base\r\n */\r\n display: inline-block;\r\n width: 100%;\r\n\r\n vertical-align: middle;\r\n cursor: text;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n -moz-appearance: none;\r\n appearance: none;\r\n -webkit-transition: border-color 200ms;\r\n -o-transition: border-color 200ms;\r\n transition: border-color 200ms;\r\n -webkit-appearance: none;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: white;\r\n\r\n /* Fixing input cursor on Firefox tab switching */\r\n caret-color: black;\r\n\r\n /**\r\n * Input base project styling\r\n */\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n border: 1px solid #dfe3e8;\r\n}\n.input::-webkit-input-placeholder {\r\n color: #9aa2b0;\r\n }\n.input::-moz-placeholder {\r\n color: #9aa2b0;\r\n }\n.input:-ms-input-placeholder {\r\n color: #9aa2b0;\r\n }\n.input::-ms-input-placeholder {\r\n color: #9aa2b0;\r\n }\n.input::placeholder {\r\n color: #9aa2b0;\r\n }\n.input::-webkit-inner-spin-button,\r\n .input::-webkit-outer-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\n.input:invalid {\r\n border: 1px solid #f03e1b;\r\n }\n.input:disabled {\r\n background-color: #f3f6f9;\r\n cursor: not-allowed;\r\n opacity: 1;\r\n }\n.input:disabled:hover {\r\n border: 1px solid #dfe3e8;\r\n }\n.input:hover {\r\n border-color: #a8afb7;\r\n }\n.input:focus {\r\n outline: 0;\r\n border-color: #e51646;\r\n }\n.input:-moz-focusring {\r\n color: transparent;\r\n text-shadow: 0 0 0 #000;\r\n }\n.input:-webkit-autofill {\r\n border-color: 1px solid #dfe3e8;\r\n -webkit-text-fill-color: black;\r\n -webkit-box-shadow: 0 0 0px 1000px #fff inset;\r\n -webkit-transition: background-color 200s ease-in-out;\r\n -o-transition: background-color 200s ease-in-out;\r\n transition: background-color 200s ease-in-out;\r\n }\n.input:-webkit-autofill:hover,\r\n .input:-webkit-autofill:focus {\r\n border-color: rgb(152, 152, 152);\r\n }\n@supports (-webkit-overflow-scrolling: touch) {\n.input {\r\n font-size: 16px;\r\n line-height: 21px\r\n}\r\n }\n.input.is-invalid {\r\n outline: 0;\r\n border-color: #f03e1b;\r\n -webkit-box-shadow: 0 0 0 2px #ffe8e6;\r\n box-shadow: 0 0 0 2px #ffe8e6;\r\n }\n.input.is-invalid + label:before {\r\n outline: 0;\r\n border-color: #f03e1b;\r\n -webkit-box-shadow: 0 0 0 2px #ffe8e6;\r\n box-shadow: 0 0 0 2px #ffe8e6;\r\n }\n.input--auto {\r\n width: auto;\r\n }\n/**\r\n * Input sizes\r\n */\n.input--sml {\r\n height: 32px;\r\n line-height: 31px;\r\n padding: 0 6px;\r\n\r\n /* Safari */\r\n /* &:not(:root:root) { \r\n line-height: 1;\r\n } */\r\n }\n.input--med {\r\n height: 38px;\r\n line-height: 38px;\r\n padding: 0 12px;\r\n\r\n /* Safari */\r\n /* &:not(:root:root) { \r\n line-height: 1;\r\n } */\r\n }\n.input--lrg {\r\n height: 48px;\r\n line-height: 48px;\r\n padding: 0 18px;\r\n \r\n /* Safari */\r\n /* &:not(:root:root) { \r\n line-height: 1;\r\n } */\r\n }\n/**\r\n * Input types\r\n */\n.input--text {\r\n width: 100%;\r\n padding: 9px;\r\n font-size: 13px;\r\n line-height: 21px;\r\n }\n.input--fake {\r\n cursor: default;\r\n background-color: #f3f6f9;\r\n border: 0;\r\n font-size: 14px;\r\n color: #8a93a0;\r\n }\n.input--fake--status {\r\n background-color: transparent;\r\n padding-left: 0;\r\n }\n.input--fake:focus {\r\n border: 0;\r\n }\n.input--fake:hover {\r\n border: 0;\r\n }\n.input--number {\r\n width: 100%;\r\n padding: 9px 0 9px 9px;\r\n }\n.input--number__reset {\r\n position: absolute;\r\n top: 50%;\r\n right: 30px;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n.input--number__reset {\r\n display: none\r\n }\r\n }\n.input--textarea {\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n width: 100%;\r\n max-width: 100%;\r\n padding: 9px;\r\n }\n.input--select {\r\n padding: 9px 24px 9px 9px;\r\n vertical-align: middle;\r\n height: 38px;\r\n \r\n background-image: url(" + __webpack_require__(/*! ../images/dropdown-double.svg */ "./src/styles/images/dropdown-double.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: -webkit-calc(100% - 6px) center;\r\n background-position: calc(100% - 6px) center;\r\n \r\n cursor: pointer;\r\n }\n.input--select:disabled {\r\n background-color: #f3f6f9;\r\n cursor: not-allowed;\r\n }\n.input--select--sml {\r\n height: 28px;\r\n line-height: 24px;\r\n padding: 0 24px 0 6px;\r\n }\n.input--select--med {\r\n padding: 0 30px 0 12px;\r\n }\n.input--select--icon {\r\n padding: 9px 36px 9px 42px;\r\n background-repeat: no-repeat;\r\n background-position: 12px center;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n }\n.input--date, \r\n .input--search {\r\n padding: 0 12px 0 36px;\r\n background-image: url(" + __webpack_require__(/*! ../images/search.svg */ "./src/styles/images/search.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 21px 21px;\r\n background-size: 21px;\r\n background-position: 9px center;\r\n vertical-align: middle;\r\n }\n.input--date--primary, .input--search--primary {\r\n background-color: #eeeeee;\r\n }\n.input--date--secondary, .input--search--secondary {\r\n padding: 9px 24px 9px 48px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9 14c-2.745 0-5-2.178-5-4.95C4 6.277 6.255 4 9 4s5 2.277 5 5.05C14 11.822 11.745 14 9 14zm5.7-.77a6.777 6.777 0 0 0 1.4-4.174C16.1 5.18 13 2 9.1 2S2 5.18 2 9.056s3.2 7.056 7.1 7.056c1.6 0 3.1-.497 4.2-1.392l3 2.982c.2.199.5.298.7.298.2 0 .5-.1.7-.298.4-.398.4-.994 0-1.391l-3-3.081z' fill='%23667182'/%3E%3Cpath d='M9 6a3 3 0 0 0-3 3' stroke='%23E51646' stroke-width='1.5' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E\");\r\n background-position: 2% center;\r\n }\n.input--date--alt, .input--search--alt {\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n }\n.input--currency {\r\n padding: 0 12px 0 36px;\r\n background-image: url(" + __webpack_require__(/*! ../images/dollar.svg */ "./src/styles/images/dollar.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 21px 21px;\r\n background-size: 21px;\r\n background-position: 9px center;\r\n vertical-align: middle;\r\n }\n.input--currency--sml {\r\n -webkit-background-size: 15px 15px;\r\n background-size: 15px;\r\n background-position: 6px center;\r\n }\n.input--percent {\r\n padding: 0 12px 0 36px;\r\n background-image: url(" + __webpack_require__(/*! ../images/percent.svg */ "./src/styles/images/percent.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 12px 12px;\r\n background-size: 12px;\r\n background-position: 6px center;\r\n vertical-align: middle;\r\n }\n.input--date {\r\n padding: 0 12px 0 42px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / calendar%3C/title%3E%3Cg transform='translate(1 1)' fill-rule='nonzero' fill='none'%3E%3Crect stroke='%23667182' stroke-width='1.1' x='1.113' y='1.675' width='15.775' height='15.775' rx='1.1'/%3E%3Cpath fill='%23667182' d='M1.125 1.25h15.75V9H1.125z'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='3.5' width='3.5' height='5.625' rx='1'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='11' width='3.5' height='5.625' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: 12px center;\r\n }\n.input--date:focus {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / calendar%3C/title%3E%3Cg transform='translate(1 1)' fill-rule='nonzero' fill='none'%3E%3Crect stroke='%23667182' stroke-width='1.1' x='1.113' y='1.675' width='15.775' height='15.775' rx='1.1'/%3E%3Cpath fill='%23667182' d='M1.125 1.25h15.75V9H1.125z'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='3.5' width='3.5' height='5.625' rx='1'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='11' width='3.5' height='5.625' rx='1'/%3E%3C/g%3E%3C/svg%3E\"); \r\n }\n.input--time {\r\n height: 40px; \r\n background-color: #fff;\r\n vertical-align: middle;\r\n }\n.input--password {\r\n position: relative;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: #fff;\r\n -webkit-transition: border-color 200ms;\r\n -o-transition: border-color 200ms;\r\n transition: border-color 200ms;\r\n }\n.input--password.focus {\r\n outline: 0;\r\n border-color: rgb(152, 152, 152);\r\n }\n.input--password:hover {\r\n border-color: rgb(152, 152, 152);\r\n }\n.input--password input {\r\n border: 0;\r\n width: -webkit-calc(100% - 33px);\r\n width: calc(100% - 33px)\r\n }\n.input--password i {\r\n position: absolute;\r\n top: 50%;\r\n right: 9px;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.input--dateselect__holder {\r\n position: relative;\r\n cursor: pointer;\r\n }\n.input--dateselect__holder .input--dateselect:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n right: 12px;\r\n width: 12px;\r\n height: 100%;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12h6l-3 3.6L7 12zm6-3.4H7L10 5l3 3.6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n }\n.input--check,\r\n .input--radio {\r\n opacity: 0;\r\n position: absolute;\r\n width: 0;\r\n }\n.input--check + label, .input--radio + label {\r\n display: inline-block;\r\n cursor: pointer;\r\n vertical-align: top;\r\n position: relative;\r\n padding-left: 30px;\r\n }\n.input--check + label:before, .input--radio + label:before {\r\n content: '';\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n margin-right: 9px;\r\n background-color: #fff;\r\n border: 1px solid rgb(196, 196, 196);\r\n vertical-align: top;\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 1px;\r\n }\n.input--check:checked + label:before, .input--radio:checked + label:before {\r\n background-color: #e51646;\r\n background-image: url(" + __webpack_require__(/*! ../images/ic_check_white_24px.svg */ "./src/styles/images/ic_check_white_24px.svg") + ");\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: 16px 16px;\r\n background-size: 16px;\r\n border-color: #e51646;\r\n }\n.input--check:focus + label:before, .input--radio:focus + label:before {\r\n -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.4);\r\n box-shadow: 0 0 10px rgba(0,0,0,0.4);\r\n }\n.input--check:disabled + label, .input--radio:disabled + label {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n }\n.input--check--preview + label, .input--radio--preview + label {\r\n cursor: not-allowed;\r\n }\n.input--check--preview:focus + label:before, .input--radio--preview:focus + label:before {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\n.input--check--withinput + label:before, .input--radio--withinput + label:before {\r\n margin-top: 10px;\r\n }\n.input--check--no-label + label, .input--radio--no-label + label {\r\n padding-left: 0;\r\n }\n.input--check--no-label + label:before, .input--radio--no-label + label:before {\r\n position: relative;\r\n }\n.input--check--sml, .input--radio--sml {\r\n opacity: 0;\r\n position: absolute;\r\n width: 0;\r\n }\n.input--check--sml + label, .input--radio--sml + label {\r\n position: relative;\r\n padding-left: 22px;\r\n cursor: pointer;\r\n font-size: 12px;\r\n }\n.input--check--sml + label:before, .input--radio--sml + label:before {\r\n content: '';\r\n position: absolute;\r\n top: -4px;\r\n left: 0;\r\n width: 15px;\r\n height: 15px;\r\n margin-top: 3px;\r\n margin-right: 9px;\r\n padding: 0 6px;\r\n border: 1px solid rgb(196, 196, 196);\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n.input--check--sml:checked + label:before, .input--radio--sml:checked + label:before {\r\n background-color: #e51646;\r\n background-image: url(" + __webpack_require__(/*! ../images/ic_check_white_24px.svg */ "./src/styles/images/ic_check_white_24px.svg") + ");\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: 16px 16px;\r\n background-size: 16px;\r\n border-color: #e51646;\r\n }\n.input--check--sml:focus + label:before, .input--radio--sml:focus + label:before {\r\n -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.4);\r\n box-shadow: 0 0 10px rgba(0,0,0,0.4);\r\n }\n.input--check--sml:disabled + label, .input--radio--sml:disabled + label {\r\n opacity: 0.4;\r\n }\n.input--check--rounded + label:before, .input--radio--rounded + label:before {\r\n -webkit-border-radius: 20px !important;\r\n border-radius: 20px !important;\r\n }\n.input--radio + label:before {\r\n -webkit-border-radius: 50%;\r\n border-radius: 50%;\r\n }\n.input--radio:checked + label:before {\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n }\n.input--radio:focus + label:before {\r\n -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\r\n box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);\r\n }\n.input--check + label:before {\r\n -webkit-border-radius: 3px;\r\n border-radius: 3px;\r\n }\n.input--check--base + label:before {\r\n margin-top: 3px;\r\n }\n.input--check--featured + label {\r\n padding: 6px 24px 6px 36px;\r\n -webkit-border-radius: 50px;\r\n border-radius: 50px;\r\n }\n.input--check--featured + label:before {\r\n width: 24px;\r\n height: 24px;\r\n -webkit-border-radius: 50%;\r\n border-radius: 50%;\r\n left: 6px;\r\n top: 5px;\r\n }\n.input--check--featured:checked + label {\r\n background-color: #e51646;\r\n color: white;\r\n }\n.input--check--featured:checked + label:before {\r\n border-color: white;\r\n }\n.input--check--featured:focus + label:before {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\n.input--check.has-image + label {\r\n padding-left: 0;\r\n }\n.input--check.has-image + label:before {\r\n position: relative;\r\n\r\n }\n.input--check.has-image + label img {\r\n margin-top: 12px;\r\n }\n.input--toggle {\r\n position: absolute;\r\n z-index: -1;\r\n opacity: 0;\r\n }\n.input--toggle ~ label {\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n width: 50px;\r\n height: 25px;\r\n line-height: 18px;\r\n \r\n cursor: pointer;\r\n outline: none;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n overflow: hidden;\r\n\r\n padding: 1px;\r\n background-color: #fff;\r\n border: 1px solid #cdd1d6;\r\n -webkit-border-radius: 12px;\r\n border-radius: 12px;\r\n -webkit-transition: background 40ms;\r\n -o-transition: background 40ms;\r\n transition: background 40ms;\r\n }\n.input--toggle ~ label:before {\r\n font-size: 10px;\r\n padding-top: 4px;\r\n padding-left: 30px;\r\n color: white;\r\n -webkit-transition: padding 20ms 20ms;\r\n -o-transition: padding 20ms 20ms;\r\n transition: padding 20ms 20ms;\r\n display: block;\r\n }\n.input--toggle ~ label:after {\r\n display: block;\r\n position: absolute;\r\n content: \"\";\r\n }\n.input--toggle ~ label:after {\r\n top: 3px;\r\n left: 3px;\r\n bottom: 3px;\r\n width: 18px;\r\n background-color: #cdd1d6;\r\n -webkit-border-radius: 10px;\r\n border-radius: 10px;\r\n -webkit-transition: margin 40ms, background 40ms;\r\n -o-transition: margin 40ms, background 40ms;\r\n transition: margin 40ms, background 40ms;\r\n -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);\r\n box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);\r\n }\n.input--toggle:checked ~ label {\r\n background-color: #fff;\r\n border: 1px solid #e51646;\r\n }\n.input--toggle:checked ~ label:after {\r\n margin-left: 24px;\r\n background-color: #e51646;\r\n }\n.input--toggle:checked ~ label:before {\r\n padding-left: 10px;\r\n }\n.input--toggle--primary ~ label:before {\r\n content: \"OFF\";\r\n }\n.input--toggle--primary:checked ~ label:before {\r\n content: \"ON\";\r\n }\n.input--toggle--secondary ~ label:before {\r\n content: \"NO\";\r\n }\n.input--toggle--secondary:checked ~ label:before { \r\n content: \"YES\";\r\n }\n.input--toggle--no-radius {\r\n position: absolute;\r\n z-index: -1;\r\n opacity: 0;\r\n }\n.input--toggle--no-radius ~ label {\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n width: 60px;\r\n height: 25px;\r\n line-height: 18px;\r\n \r\n cursor: pointer;\r\n outline: none;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n overflow: hidden;\r\n\r\n padding: 1px;\r\n background-color: #f03e1b;\r\n -webkit-border-radius: 0;\r\n border-radius: 0;\r\n -webkit-transition: background 40ms;\r\n -o-transition: background 40ms;\r\n transition: background 40ms;\r\n }\n.input--toggle--no-radius ~ label:before {\r\n font-size: 10px;\r\n padding-top: 4px;\r\n padding-left: 30px;\r\n color: white;\r\n -webkit-transition: padding 20ms 20ms;\r\n -o-transition: padding 20ms 20ms;\r\n transition: padding 20ms 20ms;\r\n display: block;\r\n }\n.input--toggle--no-radius ~ label:after {\r\n display: block;\r\n position: absolute;\r\n content: \"\";\r\n }\n.input--toggle--no-radius ~ label:after {\r\n top: 2px;\r\n left: 2px;\r\n bottom: 2px;\r\n width: 21px;\r\n background-color: white;\r\n -webkit-border-radius: 2px;\r\n border-radius: 2px;\r\n -webkit-transition: margin 40ms, background 40ms;\r\n -o-transition: margin 40ms, background 40ms;\r\n transition: margin 40ms, background 40ms;\r\n -webkit-box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);\r\n box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);\r\n }\n.input--toggle--no-radius:checked ~ label {\r\n background-color: #2dba67;\r\n }\n.input--toggle--no-radius:checked ~ label:after {\r\n margin-left: 35px;\r\n }\n.input--toggle--no-radius:checked ~ label:before {\r\n padding-left: 10px;\r\n }\n.input--toggle--no-radius--primary ~ label:before {\r\n content: \"OFF\";\r\n }\n.input--toggle--no-radius--primary:checked ~ label:before {\r\n content: \"ON\";\r\n }\n.input--toggle--no-radius--secondary ~ label:before {\r\n content: \"NO\";\r\n }\n.input--toggle--no-radius--secondary:checked ~ label:before { \r\n content: \"YES\";\r\n }\n.input--warning {\r\n border: 1px solid #f03e1b;\r\n }\n.input--no-border {\r\n border: none;\r\n }\n.input--no-y-border {\r\n border-top: none;\r\n border-bottom: none;\r\n }\n.input--masked {\r\n position: relative;\r\n }\n.input--masked > .hidden {\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\ninput[type=number] {\r\n -moz-appearance:textfield;\r\n}\nselect::-ms-expand {\r\n display: none;\r\n}\n.input--flex-fix + label {\r\n display: inline;\r\n }\n/*------------------------------------*\\\r\n # modules.label\r\n\\*------------------------------------*/\n.label {\r\n display: inline-block;\r\n font-weight: 500;\r\n}\n.label--sml {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 500;\r\n }\n.label--top {\r\n display: block;\r\n margin-bottom: 6px;\r\n }\n.label--inset {\r\n padding-left: 33px;\r\n margin-bottom: 6px;\r\n }\n.label--padd--left {\r\n padding-left: 12px;\r\n }\n.label--alt {\r\n font-size: 11px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n margin-bottom: 3px;\r\n }\n.label--big {\r\n font-size: 16px;\r\n line-height: 21px;\r\n color: #202e3c;\r\n }\n.label--sub {\r\n font-weight: 400;\r\n display: block;\r\n color: #a8afb7;\r\n }\n/*------------------------------------*\\\r\n # modules.toggle\r\n\\*------------------------------------*/\n.toggle {\r\n display: inline-block;\r\n position: relative;\r\n width: 36px;\r\n height: 20px;\r\n border: 1px solid #cdd1d6;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n cursor: pointer;\r\n}\n.toggle.is-active {\r\n border-color: #e51646;\r\n }\n.toggle__dot {\r\n position: absolute;\r\n top: 2px;\r\n left: 2px;\r\n width: 14px;\r\n height: 14px;\r\n background-color: #a8afb7;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.toggle__dot.is-active { \r\n left: 18px;\r\n background-color: #e51646;\r\n }\n/*------------------------------------*\\\r\n # modules.input-sm\r\n\\*------------------------------------*/\n.input-sm {\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n -moz-appearance: none;\r\n appearance: none;\r\n -webkit-transition: border-color 200ms;\r\n -o-transition: border-color 200ms;\r\n transition: border-color 200ms;\r\n -webkit-appearance: none;\r\n -webkit-border-radius: 2px;\r\n border-radius: 2px;\r\n background-color: white;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n border: 1px solid #dfe3e8;\r\n\r\n height: 30px;\r\n line-height: 30px;\r\n margin-top: -1px;\r\n padding: 0 42px 0 6px;\r\n}\n.input-sm::-webkit-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.input-sm::-moz-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.input-sm:-ms-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.input-sm::-ms-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.input-sm::placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.input-sm::-webkit-inner-spin-button,\r\n .input-sm::-webkit-outer-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\n.input-sm:invalid {\r\n border: 1px solid #f03e1b;\r\n }\n.input-sm:focus {\r\n outline: 0;\r\n border-color: #e51646;\r\n -webkit-box-shadow: 0 0 0 2px #ff93ac;\r\n box-shadow: 0 0 0 2px #ff93ac; \r\n }\n.input-sm:-moz-focusring {\r\n color: transparent;\r\n text-shadow: 0 0 0 #000;\r\n }\n.input-sm-multiselect {\r\n position: relative;\r\n background-color: transparent;\r\n background-image: url(" + __webpack_require__(/*! ../images/dropdown-double.svg */ "./src/styles/images/dropdown-double.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: -webkit-calc(100% - 6px) center;\r\n background-position: calc(100% - 6px) center;\r\n vertical-align: middle;\r\n z-index: 1;\r\n }\n/*------------------------------------*\\\r\n # modules.fakeinput\r\n\\*------------------------------------*/\n.fakeinput {\r\n\tdisplay: inline-block;\r\n width: 100%;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: #c7c7c7;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif; \r\n border: 1px solid #dfe3e8;\r\n}\n.fakeinput--form {\r\n background-color: transparent;\r\n cursor: default;\r\n color: #9c9c9c;\r\n }\n.fakeinput--med {\r\n height: 38px;\r\n line-height: 38px;\r\n padding: 0 12px;\r\n }\n/* Safari */\n.fakeinput--med:not(:root:root) { \r\n height: 38px;\r\n line-height: 38px;\r\n }\n/*------------------------------------*\\\r\n # modules.inputgroup\r\n\\*------------------------------------*/\n.inputgroup {\r\n display: table;\r\n position: relative;\r\n border-collapse: separate;\r\n width: 100%;\r\n}\n.inputgroup--form {\r\n height: 100%;\r\n }\n.inputgroup--form .inputgroup--main,\r\n .inputgroup--form .inputgroup--aside {\r\n vertical-align: middle;\r\n }\n.inputgroup--main {\r\n display: table-cell;\r\n width: 100%;\r\n position: relative;\r\n }\n.inputgroup--main--bordered .input {\r\n -webkit-border-radius: 4px 0 0 4px;\r\n border-radius: 4px 0 0 4px;\r\n border-right: 0;\r\n }\n.inputgroup--main--bordered--reverse .input {\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n border-left: 1px solid transparent;\r\n border-right: 1px solid #dfe3e8;\r\n }\n.inputgroup--main--bordered--reverse .input:hover {\r\n border-right: 1px solid #a8afb7;\r\n border-left: 1px solid #a8afb7;\r\n }\n.inputgroup--main--bordered--reverse .input:focus {\r\n border-right: 1px solid #e51646;\r\n border-left: 1px solid #e51646;\r\n }\n.inputgroup--main--bordered--reverse .input:disabled {\r\n border-right: 1px solid #dfe3e8;\r\n border-left: 1px solid #dfe3e8;\r\n }\n.inputgroup--main--double .input {\r\n -webkit-border-radius: 0;\r\n border-radius: 0;\r\n }\n.inputgroup--aside { \r\n display: table-cell;\r\n width: 1%;\r\n vertical-align: middle;\r\n position: relative;\r\n }\n.inputgroup--aside--bordered input,\r\n .inputgroup--aside--bordered button {\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n }\n.inputgroup--aside--bordered--reverse > input,\r\n .inputgroup--aside--bordered--reverse > button,\r\n .inputgroup--aside--bordered--reverse > .fakeinput {\r\n -webkit-border-radius: 4px 0 0 4px;\r\n border-radius: 4px 0 0 4px;\r\n }\n.inputgroup--aside--bordered--right {\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n }\n.inputgroup--aside--iconed {\r\n padding: 0 12px;\r\n background-color: #f3f6f9;\r\n text-align: center;\r\n border-right: 0;\r\n }\n.inputgroup--aside--label {\r\n padding-right: 12px;\r\n }\n.inputgroup--aside .btn--handler {\r\n -webkit-border-radius: 4px 0 0 4px;\r\n border-radius: 4px 0 0 4px;\r\n }\n.inputgroup--aside--double .btn--handler {\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n }\n.inputgroup__input {\r\n border: 1px solid transparent;\r\n }\n/*------------------------------------*\\\r\n # modules.section\r\n\\*------------------------------------*/\n.section--primary {\r\n padding: 120px 48px;\r\n }\n.section--bordered {\r\n \tborder: 1px solid #dfe3e8;\r\n }\n.section--radial {\r\n \t-webkit-border-radius: 4px;\r\n \t border-radius: 4px;\r\n }\n.section--alt {\r\n background-color: #f2f2f2;\r\n }\n.section--padded {\r\n \tpadding: 0 24px;\r\n }\n.section--spaced {\r\n margin-bottom: 48px;\r\n }\n/*------------------------------------*\\\r\n # modules.title\r\n\\*------------------------------------*/\n.title {\r\n color: #202e3c;\r\n}\n.title--secondary {\r\n margin-bottom: 9px;\r\n font-size: 16px;\r\n line-height: 21px; \r\n font-weight: 400;\r\n }\n@media (min-width: 48em) {\n.title--secondary {\r\n margin-bottom: 18px; \r\n font-size: 21px; \r\n line-height: 26.25px\r\n }\r\n }\n.title--tertiary {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n background-color: #dfe3e8;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n padding: 6px 12px;\r\n color: #8a93a0;\r\n }\n.title--allcaps {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n }\n.title--setup {\r\n color: #e51646;\r\n font-weight: 500;\r\n }\n.title--results {\r\n font-size: 19px;\r\n line-height: 21px;\r\n font-weight: 400;\r\n padding-bottom: 12px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n/*------------------------------------*\\\r\n # modules.popup\r\n\\*------------------------------------*/\n.popup__overlay {\r\n z-index: 999;\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: rgba(31, 37, 49, 0.55);\r\n }\n.popup__content {\r\n z-index: 999;\r\n position: fixed;\r\n top: 50%;\r\n left: 50%;\r\n -webkit-transform: translate(-50%, -50%);\r\n -ms-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n max-width: -webkit-calc(100% - 42px);\r\n max-width: calc(100% - 42px);\r\n }\n@media (min-width: 48em) {\n.popup__content {\r\n -webkit-transform: translate(-50%, -50%);\r\n -ms-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%)\r\n }\r\n }\n.popup__content:focus {\r\n outline: none;\r\n }\n.popup__content .card--primary--popup {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n padding: 0;\r\n border: 0;\r\n }\n.popup__content > div {\r\n overflow: hidden;\r\n }\n.popup__content--xlrg {\r\n max-width: 728px;\r\n }\n@media (min-width: 48em) {\n.popup__content--xlrg {\r\n width: 100%\r\n }\r\n }\n.popup__header {\r\n background-color: #fff;\r\n padding: 18px 24px;\r\n border-bottom: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px 4px 0 0;\r\n border-radius: 4px 4px 0 0;\r\n }\n.popup__header--secondary {\r\n border-bottom: 0;\r\n }\n.popup__header--secondary {\r\n border-bottom: 0;\r\n }\n.popup__header--alt {\r\n text-align: left;\r\n }\n.popup__header--account {\r\n padding-bottom: 0px;\r\n min-height: 0;\r\n }\n.popup__header__title {\r\n display: inline-block;\r\n width: 100%;\r\n font-size: 19px;\r\n line-height: 26.25px;\r\n font-weight: 700;\r\n }\n@media (min-width: 48em) {\n.popup__header__title {\r\n width: auto;\r\n margin-right: 12px;\r\n margin-bottom: 0;\r\n font-size: 21px;\r\n line-height: 31.5px\r\n } \r\n }\n.popup__header__title--alt {\r\n width: auto;\r\n }\n.popup__header__btn {\r\n margin-top: 12px;\r\n }\n@media (min-width: 48em) {\n.popup__header__btn {\r\n margin-top: 0\r\n }\r\n }\n.popup__close {\r\n z-index: 9999;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 32px;\r\n height: 32px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='%237f7f7f'%3E%3Cpath fill='%23667182' d='M9.949 1.515L8.535.101 5 3.637 1.464.101.05 1.515l3.536 3.536L.05 8.586 1.464 10 5 6.465 8.535 10l1.414-1.414-3.535-3.535z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 10px 10px;\r\n background-size: 10px;\r\n background-position: center center;\r\n background-color: #fff;\r\n border: none;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transform: translate(50%, -50%);\r\n -ms-transform: translate(50%, -50%);\r\n transform: translate(50%, -50%);\r\n }\n.popup__close:hover {\r\n cursor: pointer;\r\n }\n.popup__close:focus {\r\n outline: none;\r\n }\n.popup__body {\r\n background-color: #fff;\r\n min-width: 300px;\r\n max-height: -webkit-calc(100vh - 230px);\r\n max-height: calc(100vh - 230px);\r\n padding: 12px 18px;\r\n overflow: hidden auto;\r\n outline: none;\r\n }\n@media (min-width: 48em) {\n.popup__body {\r\n padding: 24px\r\n }\r\n }\n.popup__body .grid__holder .react-grid-Grid {\r\n overflow: auto !important;\r\n }\n/* Scrolling */\n.popup__body--horizontal {\r\n overflow: auto;\r\n }\n/* Sizes */\n.popup__body--med {\r\n max-width: 480px;\r\n }\n@media (min-width: 48em) {\n.popup__body--med {\r\n width: 100%\r\n }\r\n }\n.popup__body--lrg {\r\n max-width: 600px;\r\n }\n@media (min-width: 48em) {\n.popup__body--lrg {\r\n width: 100%\r\n }\r\n }\n.popup__body--xlrg {\r\n max-width: 728px;\r\n }\n@media (min-width: 48em) {\n.popup__body--xlrg {\r\n width: 100%\r\n }\r\n }\n.popup__body--xxlrg {\r\n width: 900px;\r\n max-width: -webkit-calc(100% - 42px);\r\n max-width: calc(100% - 42px);\r\n }\n/* Custom */\n.popup__body--results {\r\n padding: 0;\r\n }\n.popup__footer {\r\n padding: 0 18px 18px;\r\n background-color: #ffffff;\r\n -webkit-border-radius: 0 0 4px 4px;\r\n border-radius: 0 0 4px 4px;\r\n text-align: right;\r\n overflow: hidden;\r\n }\n@media (min-width: 48em) {\n.popup__footer {\r\n padding: 0 24px 24px\r\n }\r\n }\n.popup__footer--styled {\r\n padding: 18px;\r\n background-color: #f3f6f9;\r\n border-top: 1px solid #dfe3e8;\r\n -webkit-border-radius: 0 0 4px 4px;\r\n border-radius: 0 0 4px 4px;\r\n }\n@media (min-width: 48em) {\n.popup__footer--styled {\r\n padding: 24px\r\n }\r\n }\n.popup__footer--hardware {\r\n overflow: initial;\r\n padding: 0;\r\n }\n@media (min-width: 48em) {\n.popup--breakdown {\r\n width: 480px\r\n }\r\n }\n@media (min-width: 75em) {\n.popup--breakdown {\r\n width: 786px\r\n }\r\n }\n@media (min-width: 48em) {\n.popup--customer {\r\n width: 600px\r\n }\r\n }\n@media (min-width: 75em) {\n.popup--customer {\r\n width: 1080px\r\n }\r\n }\n.popup--notification--success {\r\n position: relative;\r\n }\n.popup--notification--success:before {\r\n content: '';\r\n \r\n position: absolute;\r\n top: 3px;\r\n left: -30px;\r\n \r\n display: block;\r\n width: 22px;\r\n height: 22px;\r\n \r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%232dba67' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.06 8.56l-8.56 8.561-4.06-4.06 2.12-2.122 1.94 1.94 6.44-6.44 2.12 2.122z' fill='%232DBA67'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 100% 100%;\r\n background-size: 100%;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n }\n.popup--notification--error {\r\n position: relative;\r\n }\n.popup--notification--error:before {\r\n content: '';\r\n \r\n position: absolute;\r\n top: 3px;\r\n left: -30px;\r\n \r\n display: block;\r\n width: 22px;\r\n height: 22px;\r\n \r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / close small%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M12.4 6L10 8.4 7.6 6 6 7.6 8.4 10 6 12.4 7.6 14l2.4-2.4 2.4 2.4 1.6-1.6-2.4-2.4L14 7.6z'/%3E%3C/defs%3E%3Cg transform='translate(-6 -6)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23444' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23e51646'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n -webkit-background-size: 12px 12px;\r\n background-size: 12px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n }\n.not-popup .popup__body {\r\n padding: 0;\r\n max-height: unset;\r\n overflow: unset;\r\n }\n.is-popup .card--expand {\r\n display: none;\r\n }\n/*------------------------------------*\\\r\n # modules.layout\r\n\\*------------------------------------*/\n.l--main {\r\n position: fixed;\r\n top: 42px;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 2;\r\n margin: 0 auto; \r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n@media (min-width: 75em) {\n.l--main {\r\n top: 0;\r\n left: 280px\r\n }\r\n }\n@media (min-width: 90em) {\n.l--main {\r\n left: 280px;\r\n overflow-x: visible\r\n }\r\n }\n.l--main.sidebar-is-visible {\r\n left: 0;\r\n top: 84px;\r\n }\n@media (min-width: 75em) {\n.l--main.sidebar-is-visible {\r\n left: 560px;\r\n top: 0\r\n }\r\n }\n.l--main.no-scroll {\r\n overflow: hidden;\r\n }\n@media (min-width: 75em) {\n.l--main.is-collapsed {\r\n left: 72px\r\n }\r\n\r\n .l--main.is-collapsed.sidebar-is-visible {\r\n left: 352px;\r\n }\r\n }\n.l--main.is-collapsed .hardware__footer {\r\n left: 0;\r\n }\n@media (min-width: 75em) {\n.l--main.is-collapsed .hardware__footer {\r\n left: 72px\r\n }\r\n }\n.l--content {\r\n padding: 12px;\r\n }\n@media (min-width: 48em) {\n.l--content {\r\n padding: 12px 24px\r\n }\r\n }\n@media (min-width: 62em) {\n.l--content {\r\n padding: 12px 24px 78px\r\n }\r\n }\n@media (min-width: 75em) {\n.l--content {\r\n padding: 24px 24px 84px\r\n }\r\n }\n@media (min-width: 90em) {\n.l--content {\r\n padding: 12px 30px 72px\r\n }\r\n }\n.l--content--narrow {\r\n width: 100%;\r\n max-width: 880px;\r\n }\n.l--content--med {\r\n width: 100%;\r\n max-width: 970px;\r\n }\n.l--content--lrg {\r\n width: 100%;\r\n max-width: 1280px;\r\n }\n.l--content--xlrg {\r\n width: 100%;\r\n max-width: 1600px;\r\n }\n.l--content--grid {\r\n padding: 0 12px;\r\n }\n@media (min-width: 48em) {\n.l--content--grid {\r\n padding: 0 30px\r\n }\r\n }\n.l--content--equipment {\r\n padding-bottom: 60px;\r\n }\n@media (min-width: 48em) {\n.l--content--equipment {\r\n padding-bottom: 98px\r\n }\r\n }\n.l--aside {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n z-index: 3;\r\n width: 280px;\r\n background-color: #0e0125;\r\n color: #8a93a0;\r\n -webkit-transform: translateX(-100%);\r\n -ms-transform: translateX(-100%);\r\n transform: translateX(-100%);\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\n@media (max-height: 34.6875em) {\n.l--aside {\r\n overflow-y: auto\r\n }\r\n }\n@media (min-width: 75em) {\n.l--aside {\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0)\r\n }\r\n }\n@media (min-width: 90em) {\n.l--aside {\r\n width: 280px\r\n }\r\n }\n@media (max-width: 74.9375em) {\n.l--aside.is-revealed {\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0)\r\n }\r\n }\n@media (min-width: 75em) {\n.l--aside.is-collapsed {\r\n width: 72px\r\n }\r\n }\n.l--aside.is-collapsed .btn--collapse {\r\n top: 62px;\r\n right: 9px;\r\n }\n@media (min-width: 75em) {\n.l--aside.is-collapsed + .l--aside--sub {\r\n left: 72px\r\n }\r\n }\n@media (max-width: 74.9375em) {\n.l--aside.is-sub-revealed {\r\n -webkit-transform: translateX(-100%);\r\n -ms-transform: translateX(-100%);\r\n transform: translateX(-100%)\r\n }\r\n }\n.l--aside__header {\r\n overflow: hidden;\r\n padding: 12px 0;\r\n }\n@media (min-width: 75em) {\n.l--aside__header {\r\n display: none\r\n }\r\n }\n.l--aside--sub {\r\n z-index: 4;\r\n overflow-y: auto;\r\n\r\n position: fixed;\r\n top: 84px;\r\n left: 0;\r\n bottom: 0;\r\n\r\n width: 280px;\r\n background-color: #f3f6f9;\r\n\r\n color: #8a93a0;\r\n \r\n -webkit-transform: translateX(-100%);\r\n \r\n -ms-transform: translateX(-100%);\r\n \r\n transform: translateX(-100%);\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n@media (max-height: 34.6875em) {\n.l--aside--sub {\r\n overflow-y: auto\r\n }\r\n }\n@media (min-width: 75em) {\n.l--aside--sub {\r\n z-index: 1;\r\n\r\n top: 0;\r\n left: 72px;\r\n\r\n -webkit-transform: translateX(0);\r\n\r\n -ms-transform: translateX(0);\r\n\r\n transform: translateX(0)\r\n }\r\n }\n@media (min-width: 90em) {\n.l--aside--sub {\r\n width: 280px;\r\n left: 280px\r\n }\r\n }\n@media (max-width: 74.9375em) {\n.l--aside--sub.is-sub-revealed {\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0)\r\n }\r\n }\n@media (min-width: 75em) {\n.l--aside--sub.is-sub-revealed {\r\n -webkit-transform: translateX(0);\r\n -ms-transform: translateX(0);\r\n transform: translateX(0);\r\n left: 72px\r\n }\r\n }\n@media (max-width: 74.9375em) {\n.l--aside--sub.is-sub-revealed + .l--main:after {\r\n content: '';\r\n\r\n z-index: 100;\r\n\r\n position: fixed;\r\n top: 84px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n\r\n background-color: rgba(0, 0, 0, 0.7)\r\n }\r\n }\n.l--aside--sub.is-sub-collapsed {\r\n -webkit-transform: translateX(-200%);\r\n -ms-transform: translateX(-200%);\r\n transform: translateX(-200%);\r\n }\n@media (min-width: 75em) {\n.l--aside--sub.is-sub-collapsed {\r\n left: 72px\r\n }\r\n }\n.l--aside--sub.is-sub-collapsed .btn--collapse {\r\n top: 62px;\r\n right: 9px;\r\n }\n@media (min-width: 75em) {\n.l--aside--sub.sidebar-not-collapsed {\r\n left: 280px\r\n }\r\n }\n.l--twocols {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n }\n.l--twocols--aside {\r\n z-index: 2;\r\n display: none;\r\n }\n@media (min-width: 75em) {\n.l--twocols--aside {\r\n width: 250px;\r\n display: block\r\n }\r\n }\n.l--twocols--main {\r\n z-index: 1;\r\n width: 100%;\r\n }\n@media (min-width: 75em) {\n.l--twocols--main {\r\n padding-left: 24px\r\n }\r\n }\n/*------------------------------------*\\\r\n # modules.datalist\r\n\\*------------------------------------*/\n.datalist__item {\r\n\t\toverflow: hidden;\r\n }\n.datalist__item--spaced {\r\n\t\t\tmargin-bottom: 10px;\r\n\t\t}\n.datalist__item:last-child {\r\n\t\t\tmargin-bottom: 0;\r\n\t\t}\n.datalist__item--alt {\r\n\t\t\tpadding: 6px 0 0;\r\n\t\t}\n.datalist__item--padded {\r\n\t\t\tpadding: 18px;\r\n\t\t}\n.datalist__item--bordered {\r\n\t\t\tborder-top: 1px solid #dfe3e8;\r\n\t\t\tborder-right: 1px solid #dfe3e8;\r\n\t\t\tborder-left: 1px solid #dfe3e8;\r\n\t\t}\n.datalist__item--bordered:last-child {\r\n\t\t\t\tborder-bottom: 1px solid #dfe3e8;\r\n\t\t\t}\n.datalist__item--radial:first-child {\r\n\t\t\t\t-webkit-border-top-left-radius: 4px;\r\n\t\t\t\t border-top-left-radius: 4px;\r\n\t\t\t\t-webkit-border-top-right-radius: 4px;\r\n\t\t\t\t border-top-right-radius: 4px;\r\n\t\t\t}\n.datalist__item--radial:last-child {\r\n\t\t\t\t-webkit-border-bottom-left-radius: 4px;\r\n\t\t\t\t border-bottom-left-radius: 4px;\r\n\t\t\t\t-webkit-border-bottom-right-radius: 4px;\r\n\t\t\t\t border-bottom-right-radius: 4px;\r\n\t\t\t}\n.datalist__label {\r\n \tdisplay: block;\r\n\t\tfloat: left;\r\n }\n.datalist__label--sml {\r\n\t\t\twidth: 90px;\r\n\t\t}\n.datalist__label--med {\r\n\t\t\twidth: 162px;\r\n\t\t}\n.datalist__input {\r\n \tfloat: left;\r\n \twidth: 288px;\r\n }\n.datalist__value {\r\n\t\toverflow: hidden;\r\n }\n.datalist__value--right {\r\n\t\t\ttext-align: right;\r\n\t\t}\n/*------------------------------------*\\\r\n # modules.table\r\n\\*------------------------------------*/\n.table {\r\n display: table;\r\n width: 100%;\r\n border-collapse: collapse;\r\n}\n.table--primary {\r\n text-align: left;\r\n \r\n }\n.table--primary th {\r\n color: #8a93a0;\r\n padding: 9px;\r\n border-bottom: 1px solid #cdd1d6;\r\n }\n.table--primary tbody tr.even td {\r\n background-color: #f3f6f9;\r\n }\n.table--primary tbody td {\r\n padding: 9px;\r\n border-bottom: 1px solid #cdd1d6;\r\n }\n.table__row {\r\n display: table-row;;\r\n }\n.table__header {\r\n display: table-header-group;\r\n color: #9c9c9c;\r\n }\n.table__header__cell {\r\n display: table-cell;\r\n padding: 9px 18px;\r\n font-weight: 400;\r\n text-align: left;\r\n }\n.table__body {\r\n display: table-row-group;\r\n }\n.table__cell {\r\n display: table-cell;\r\n padding: 15px 18px;\r\n border-top: 1px solid #cdd1d6;\r\n border-bottom: 1px solid #cdd1d6;\r\n }\n.table__cell:first-child {\r\n color: #9c9c9c;\r\n border-left: 1px solid #cdd1d6;\r\n }\n.table__cell:last-child {\r\n border-right: 1px solid #cdd1d6;\r\n }\n.table--payment {\r\n width: 100%;\r\n border-collapse: collapse;\r\n }\n.table--payment thead th {\r\n font-size: 11px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n color: #8a93a0;\r\n padding: 6px;\r\n text-align: left;\r\n }\n.table--payment thead tr {\r\n background: #dfe3e8;\r\n background: -webkit-gradient(linear, left bottom, left top, from(white), to(#dfe3e8));\r\n background: -webkit-linear-gradient(bottom, white 0%, #dfe3e8 100%);\r\n background: -o-linear-gradient(bottom, white 0%, #dfe3e8 100%);\r\n background: linear-gradient(0deg, white 0%, #dfe3e8 100%);\r\n }\n.table--payment tbody td, .table--payment tbody th {\r\n border-bottom: 1px solid #dfe3e8;\r\n padding: 6px;\r\n }\n.table--payment tbody th {\r\n font-weight: 600;\r\n text-align: left;\r\n }\n.table--files {\r\n overflow-x: auto;\r\n width: 100%;\r\n padding: 12px 0;\r\n }\n.table--files__wrap {\r\n width: 100%;\r\n }\n.table--files td {\r\n height: 45px;\r\n padding: 3px 18px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.table--files td:first-child {\r\n padding-left: 0;\r\n }\n.table--files td:last-child {\r\n position: -webkit-sticky;\r\n position: sticky;\r\n right: 0;\r\n z-index: 1;\r\n\r\n width: 1%;\r\n padding-right: 0;\r\n\r\n text-align: right;\r\n white-space: nowrap;\r\n }\n.table--files td:last-child:before {\r\n content: '';\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: 1px;\r\n left: 0;\r\n z-index: -1;\r\n\r\n display: block;\r\n width: 12px;\r\n\r\n background: rgb(255,255,255);\r\n background: -webkit-gradient(linear, right top, left top, from(rgba(255,255,255,1)), to(rgba(255,255,255,0)));\r\n background: -webkit-linear-gradient(right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);\r\n background: -o-linear-gradient(right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);\r\n background: linear-gradient(-90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);\r\n \r\n }\n.table--files td:last-child:after {\r\n content: '';\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: 1px;\r\n right: 0;\r\n z-index: -1;\r\n\r\n display: block;\r\n width: -webkit-calc(100% - 12px);\r\n width: calc(100% - 12px);\r\n \r\n background: white;\r\n }\n@media (max-width: 61.9375em) {\n.table--files td.is-note {\r\n white-space: nowrap\r\n \r\n }\r\n }\n@media (min-width: 62em) {\n.table--files td.is-note {\r\n width: 50%\r\n \r\n }\r\n }\n.table--files td.is-message {\r\n text-align: left;\r\n border-bottom: 0;\r\n }\n.table--files td.is-message:first-child {\r\n padding-left: 0;\r\n }\n.table--files tr:first-child td {\r\n border-top: 1px solid #dfe3e8;\r\n }\n.table--files__feature {\r\n -webkit-box-shadow: 0 3px 12px #dfe3e8;\r\n box-shadow: 0 3px 12px #dfe3e8;\r\n padding: 0 12px;\r\n }\n.table--files__feature td:first-child {\r\n padding-left: 18px;\r\n }\n.table--files__feature tr:first-child td {\r\n border-top: 0;\r\n }\n.table--files__feature tr:nth-child(even) {\r\n background-color: #f3f6f9;\r\n }\n.table--files__feature tr:nth-child(even) td:last-child:before {\r\n background: #f3f6f9;\r\n background: -webkit-gradient(linear, right top, left top, from(rgba(243,246,249,1)), to(rgba(243,246,249,0)));\r\n background: -webkit-linear-gradient(right, rgba(243,246,249,1) 0%, rgba(243,246,249,0) 100%);\r\n background: -o-linear-gradient(right, rgba(243,246,249,1) 0%, rgba(243,246,249,0) 100%);\r\n background: linear-gradient(-90deg, rgba(243,246,249,1) 0%, rgba(243,246,249,0) 100%);\r\n }\n.table--files__feature tr:nth-child(even) td:last-child:after {\r\n background: #f3f6f9;\r\n }\n.table--gateway {\r\n font-size: 16px;\r\n line-height: 21px;\r\n width: 100%;\r\n border-collapse: collapse;\r\n background-color: white;\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n }\n.table--gateway thead tr {\r\n background-color: #202e3c;\r\n }\n.table--gateway thead tr th {\r\n padding: 24px 24px;\r\n background-color: #202e3c;\r\n \r\n text-align: left;\r\n font-weight: 500;\r\n color: white;\r\n }\n.table--gateway thead tr th .input--check + label,\r\n .table--gateway thead tr th .input--radio + label {\r\n color: white;\r\n font-weight: 500;\r\n }\n.table--gateway thead tr th.sticky {\r\n z-index: 50;\r\n position: -webkit-sticky;\r\n position: sticky;\r\n top: 64px;\r\n }\n.table--gateway thead tr th.centered {\r\n text-align: center;\r\n }\n.table--gateway tbody td, .table--gateway tbody th {\r\n border: 1px solid #cdd1d6;\r\n padding: 18px 24px;\r\n vertical-align: middle;\r\n }\n.table--gateway tbody td .gateway__select .input-wrapper, .table--gateway tbody th .gateway__select .input-wrapper {\r\n width: 100%;\r\n }\n.table--gateway tbody td .gateway__select .input-wrapper .w--300p, .table--gateway tbody th .gateway__select .input-wrapper .w--300p {\r\n width: 100%;\r\n }\n.table--gateway tbody th {\r\n font-weight: 500;\r\n text-align: left;\r\n }\n.table--gateway tbody th.table--gateway__group {\r\n padding: 0 24px;\r\n background-color: #cdd1d6;\r\n }\n.table--gateway tbody th.table--gateway__group .title--tertiary {\r\n background-color: transparent;\r\n color: #202e3c;\r\n padding-left: 0;\r\n }\n.table--gateway tbody td .single-option {\r\n width: 300px;\r\n }\n.table--gateway__fields {\r\n width: 20%;\r\n }\n.table--gateway__fields__aditional {\r\n color: #ffffff;\r\n margin-top: 6px;\r\n\r\n font-size: 11px;\r\n\r\n line-height: 15.75px;\r\n text-align: center;\r\n \r\n cursor: default;\r\n }\n@media (min-width: 1160px) {\n.table--gateway__fields__aditional {\r\n color: #8a93a0\r\n }\r\n }\n.table--gateway__actions {\r\n width: 85px;\r\n }\n@media screen and (max-width: 1160px) {\n.table--gateway--primary {\r\n font-size: 13px;\r\n line-height: 21px\r\n }\r\n\r\n .table--gateway--primary tr {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-flow: row wrap;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n -webkit-justify-content: space-around;\r\n -ms-flex-pack: distribute;\r\n justify-content: space-around;\r\n }\r\n\r\n .table--gateway--primary td, .table--gateway--primary th {\r\n display: block;\r\n width: 25%;\r\n border: 0px;\r\n }\r\n\r\n .table--gateway--primary td:last-child, .table--gateway--primary th:last-child {\r\n width: 25%;\r\n }\r\n .table--gateway--primary tbody td, .table--gateway--primary tbody th {\r\n border: 0px;\r\n }\r\n\r\n .table--gateway--primary tbody td {\r\n border-left: 1px solid #dfe3e8;\r\n }\r\n\r\n .table--gateway--primary tbody td:first-of-type {\r\n border-left: 0px;\r\n }\r\n\r\n .table--gateway--primary th:first-child,\r\n .table--gateway--primary td:first-child {\r\n background: #f3f6f9;\r\n width: 100%;\r\n }\r\n .table--gateway--primary thead th {\r\n padding: 12px 6px;\r\n text-align: center;\r\n }\r\n \r\n .table--gateway--primary thead th .input--check + label:before {\r\n top: -2px;\r\n \r\n }\r\n\r\n .table--gateway--primary thead th .input--check + label,\r\n .table--gateway--primary thead th .input--radio + label {\r\n padding-left: 0;\r\n padding-top: 22px;\r\n margin-top: 12px;\r\n }\r\n\r\n .table--gateway--primary thead th .input--check + label:before, .table--gateway--primary thead th .input--radio + label:before {\r\n left: -webkit-calc(50% - 9px);\r\n left: calc(50% - 9px);\r\n top: 0;\r\n margin-right: 0;\r\n }\r\n\r\n .table--gateway--primary thead th:first-child {\r\n text-align: center;\r\n background-color: #202e3c;\r\n width: 100%;\r\n padding-bottom: 0px;\r\n }\r\n .table--gateway--primary tbody td, .table--gateway--primary tbody th {\r\n padding: 6px;\r\n }\r\n .table--gateway--primary tbody th.table--gateway__group {\r\n padding: 0;\r\n }\r\n\r\n .table--gateway--primary tbody th.table--gateway__group .title--tertiary {\r\n padding-left: 6px;\r\n padding-right: 6px;\r\n }\r\n }\n@media screen and (max-width: 1160px) {\n.table--gateway--secondary {\r\n font-size: 13px;\r\n line-height: 21px\r\n }\r\n\r\n .table--gateway--secondary tr {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-flow: row wrap;\r\n -ms-flex-flow: row wrap;\r\n flex-flow: row wrap;\r\n -webkit-justify-content: space-around;\r\n -ms-flex-pack: distribute;\r\n justify-content: space-around;\r\n background-color: #202e3c;\r\n }\r\n\r\n .table--gateway--secondary th {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n width: 23%;\r\n }\r\n\r\n .table--gateway--secondary th:last-child {\r\n width: 8%;\r\n }\r\n\r\n .table--gateway--secondary td {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n width: 25%;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\r\n .table--gateway--secondary thead th {\r\n text-align: center;\r\n padding: 6px;\r\n }\r\n \r\n .table--gateway--secondary thead th .input--check + label:before {\r\n top: -2px;\r\n }\r\n\r\n .table--gateway--secondary thead th:first-child {\r\n text-align: center;\r\n background-color: #202e3c;\r\n width: 100%;\r\n }\r\n\r\n .table--gateway--secondary thead th:nth-child(2) {\r\n display: none;\r\n }\r\n\r\n .table--gateway--secondary thead .table--gateway__actions {\r\n display: none;\r\n }\r\n .table--gateway--secondary tbody td, .table--gateway--secondary tbody th {\r\n padding: 6px;\r\n border: 0px;\r\n border-right: 1px solid rgb(50, 71, 93);\r\n border-left: 1px solid rgb(50, 71, 93);\r\n }\r\n\r\n .table--gateway--secondary td.is-first {\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n background-color: #cdd1d6;\r\n width: 100%;\r\n min-height: 50px;\r\n }\r\n\r\n .table--gateway--secondary td.is-first .gateway__addon br {\r\n display: none;\r\n }\r\n\r\n .table--gateway--secondary td.is-first .gateway__addon.spc--bottom--med {\r\n margin-bottom: 0;\r\n }\r\n\r\n .table--gateway--secondary td.is-first .gateway__addon .gateway__recurring {\r\n margin: 6px 0;\r\n }\r\n\r\n .table--gateway--secondary td.is-second {\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n background-color: white;\r\n width: 100%;\r\n border-bottom: 1px solid #dfe3e8;\r\n border-top: 1px solid #dfe3e8;\r\n }\r\n\r\n .table--gateway--secondary td.is-action {\r\n display: none;\r\n }\r\n }\n.table--gateway--add-ons {\r\n position: relative;\r\n }\n.table--gateway--add-ons:after {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n right: -18px;\r\n width: 18px;\r\n height: 1px;\r\n }\n@media (max-width: 61.9375em) {\n.table--gateway--add-ons .table--gateway__actions {\r\n display: none\r\n }\r\n }\n.table--gateway--add-ons__fee {\r\n min-width: 60px;\r\n text-align: center;\r\n }\n.table--eq {\r\n width: 100%;\r\n }\n.table--eq__wrap {\r\n -webkit-box-flex: 2;\r\n -webkit-flex-grow: 2;\r\n -ms-flex-positive: 2;\r\n flex-grow: 2;\r\n overflow-y: auto;\r\n }\n.table--eq th {\r\n text-align: left;\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n padding: 6px;\r\n color: #8a93a0;\r\n\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.table--eq td {\r\n padding: 12px 6px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n/*------------------------------------*\\\r\n # modules.dtable\r\n\\*------------------------------------*/\n.dtable {\r\n width: 100%;\r\n border-collapse: collapse;\r\n}\n@media (max-width: 47.9375em) {\n.dtable {\r\n min-width: 900px\r\n}\r\n }\n.dtable__header__cell {\r\n padding: 9px 18px;\r\n font-weight: 400;\r\n text-align: left;\r\n }\n.dtable__header__cell--right {\r\n text-align: right;\r\n }\n.dtable__row.is-expanded .dtable__cell {\r\n border-bottom: 1px dashed #dfe3e8;\r\n }\n.dtable__row--expanded .dtable__cell {\r\n border-top: none;\r\n }\n.dtable__row.is-expanded .dtable__cell:first-child, .dtable__row--expanded .dtable__cell:first-child {\r\n border-left: 1px solid #dfe3e8;\r\n }\n.dtable__row.is-expanded .dtable__cell:first-child:last-child, .dtable__row--expanded .dtable__cell:first-child:last-child {\r\n border-right: 1px solid #dfe3e8;\r\n }\n.dtable__row.is-expanded .dtable__cell:last-child, .dtable__row--expanded .dtable__cell:last-child {\r\n border-right: 1px solid #dfe3e8;\r\n }\n.dtable__cell {\r\n padding: 12px;\r\n border-top: 1px solid #dfe3e8;\r\n border-right: 1px solid transparent;\r\n border-bottom: 1px solid #dfe3e8;\r\n border-left: 1px solid transparent;\r\n }\n@media (max-width: 47.9375em) {\n.dtable__cell {\r\n font-size: 12px;\r\n line-height: 15.75px\r\n }\r\n }\n@media (min-width: 48em) {\n.dtable__cell {\r\n padding: 21px 18px\r\n }\r\n }\n.dtable__cell--right {\r\n text-align: right; \r\n }\n.dtable__cell--emptystate {\r\n padding: 0;\r\n border-bottom: none;\r\n }\n.dtable__cell--spacer {\r\n padding: 12px 18px; \r\n }\n.dtable__scrollholder {\r\n width: 100%;\r\n }\n@media (max-width: 47.9375em) {\n.dtable__scrollholder {\r\n overflow-x: scroll\r\n }\r\n }\n/*------------------------------------*\\\r\n # modules.anchor\r\n\\*------------------------------------*/\n.anchor {\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n}\n.anchor:hover {\r\n cursor: pointer;\r\n }\n.anchor--underline {\r\n text-decoration: underline;\r\n }\n.anchor--primary {\r\n color: #e51646;\r\n }\n.anchor--primary:hover, .anchor--primary:focus {\r\n color: rgb(191, 23, 62);\r\n }\n.anchor--negative {\r\n color: white;\r\n opacity: 0.75;\r\n }\n.anchor--negative:hover, .anchor--negative:focus {\r\n color: white;\r\n opacity: 1;\r\n }\n.anchor--text {\r\n color: #8a93a0;\r\n }\n.anchor--text:hover, .anchor--text:focus {\r\n color: rgb(130, 130, 130);\r\n }\n.anchor--warning {\r\n color: #f03e1b;\r\n }\n.anchor--warning:hover, .anchor--warning:focus {\r\n color: rgb(201, 57, 28);\r\n }\n.anchor--btn--primary {\r\n color: white;\r\n }\n.anchor--btn--primary:hover {\r\n color: #fff;\r\n }\n/*------------------------------------*\\\r\n # modules.required\r\n\\*------------------------------------*/\n.required > label::after {\r\n content: \"*\";\r\n display: inline-block;\r\n color: #e51646;\r\n margin-left: 3px;\r\n }\n.required--field .input {\r\n border: 1px solid #e51646; \r\n }\n/*------------------------------------*\\\r\n # modules.pagination\r\n\\*------------------------------------*/\n.pagination {\r\n font-size: 13px;\r\n line-height: 21px;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n}\n.pagination > li a, .pagination > li span {\r\n display: block;\r\n border: 1px solid #dfe3e8;\r\n padding: 0 12px;\r\n margin-left: -1px;\r\n color: #202e3c;\r\n height: 36px;\r\n min-width: 36px;\r\n line-height: 36px;\r\n overflow: hidden;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: 30% 30%;\r\n background-size: 30%;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.pagination > li:first-child a, .pagination > li:first-child span {\r\n margin-left: 0;\r\n -webkit-border-radius: 1000px 0 0 1000px;\r\n border-radius: 1000px 0 0 1000px;\r\n text-indent: -1000px;\r\n\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202e3c'%3E%3Cpath d='M.1 11.5L10.4 2l2.7 2.5-7.6 7 7.6 7-2.7 2.5L.1 11.5z'/%3E%3Cpath d='M10.9 11.5L21.3 2 24 4.5l-7.6 7 7.6 7-2.7 2.5-10.4-9.5z'/%3E%3C/svg%3E\");\r\n }\n.pagination > li:nth-child(2) a, .pagination > li:nth-child(2) span {\r\n text-indent: -1000px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23202e3c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 11.5L15.323 2 18 4.463 10.353 11.5 18 18.537 15.323 21 5 11.5z'/%3E%3C/svg%3E\");\r\n }\n.pagination > li:last-child a, .pagination > li:last-child span {\r\n font-size: 19px;\r\n line-height: 21px;\r\n -webkit-border-radius: 0 1000px 1000px 0;\r\n border-radius: 0 1000px 1000px 0;\r\n text-indent: -1000px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23202e3c'%3E%3Cpath d='M23.9 11.5L13.6 21l-2.7-2.5 7.6-7-7.6-7L13.6 2l10.3 9.5z'/%3E%3Cpath d='M13.1 11.5L2.8 21 .1 18.5l7.6-7-7.6-7L2.8 2l10.3 9.5z'/%3E%3C/svg%3E\");\r\n }\n.pagination > li:nth-last-child(2) a, .pagination > li:nth-last-child(2) span {\r\n text-indent: -1000px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23202e3c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 11.5L7.676 21 5 18.537l7.647-7.037L5 4.463 7.676 2 18 11.5z'/%3E%3C/svg%3E\");\r\n }\n.pagination > li > a:hover,\r\n .pagination > li > span:hover,\r\n .pagination > li > a:focus,\r\n .pagination > li > span:focus {\r\n background-color: rgba(223, 227, 232, 0.5);\r\n font-weight: 500, 1;\r\n color: #202e3c;\r\n }\n.pagination > .active > a,\r\n .pagination > .active > span,\r\n .pagination > .active > a:hover,\r\n .pagination > .active > span:hover,\r\n .pagination > .active > a:focus,\r\n .pagination > .active > span:focus {\r\n background-color: rgba(223, 227, 232, 0.5);\r\n font-weight: 500;\r\n color: #202e3c;\r\n }\n.pagination > .disabled > span,\r\n .pagination > .disabled > span:hover,\r\n .pagination > .disabled > span:focus,\r\n .pagination > .disabled > a,\r\n .pagination > .disabled > a:hover,\r\n .pagination > .disabled > a:focus {\r\n \r\n }\n.pagination-lg > li > a,\r\n.pagination-lg > li > span {\r\n \r\n}\n.pagination-lg > li:first-child > a,\r\n.pagination-lg > li:first-child > span {\r\n \r\n}\n.pagination-lg > li:last-child > a,\r\n.pagination-lg > li:last-child > span {\r\n \r\n}\n.pagination-sm > li > a,\r\n.pagination-sm > li > span {\r\n \r\n}\n.pagination-sm > li:first-child > a,\r\n.pagination-sm > li:first-child > span {\r\n \r\n}\n.pagination-sm > li:last-child > a,\r\n.pagination-sm > li:last-child > span {\r\n \r\n}\n.pager {\r\n \r\n}\n.pager li {\r\n \r\n }\n.pager li > a,\r\n .pager li > span {\r\n \r\n }\n.pager li > a:hover,\r\n .pager li > a:focus {\r\n \r\n }\n.pager .next > a,\r\n .pager .next > span {\r\n \r\n }\n.pager .previous > a,\r\n .pager .previous > span {\r\n \r\n }\n.pager .disabled > a,\r\n .pager .disabled > a:hover,\r\n .pager .disabled > a:focus,\r\n .pager .disabled > span {\r\n \r\n }\n/*------------------------------------*\\\r\n # modules.form\r\n\\*------------------------------------*/\n.form__content {\r\n padding: 18px 12px;\r\n padding-bottom: 6px;\r\n }\n.form--popup__title {\r\n position: relative;\r\n color: #e51646;\r\n padding-left: 36px;\r\n font-weight: 500;\r\n }\n.form--popup__title:before {\r\n position: absolute;\r\n top: -webkit-calc(50% - 1px);\r\n top: calc(50% - 1px);\r\n left: 0;\r\n content: '';\r\n display: block;\r\n width: 18px;\r\n height: 2px;\r\n background-color: #e51646;\r\n }\n.form--popup__label {\r\n font-weight: 500;\r\n }\n.form__subtitle {\r\n color: #667182;\r\n font-weight: 500;\r\n }\n.form--inline {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.form__group {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n margin: 0 -12px;\r\n }\n.form__group--half {\r\n max-width: 50%;\r\n }\n.form__group__item {\r\n -webkit-flex-basis: 50%;\r\n -ms-flex-preferred-size: 50%;\r\n flex-basis: 50%;\r\n\r\n padding: 0 12px;\r\n }\n.form__field .label {\r\n margin-bottom: 6px;\r\n display: block;\r\n }\n.form__field .label--ib {\r\n display: inline-block;\r\n }\n.form__field .input--check + label,\r\n .form__field .input--radio + label {\r\n display: inline-block;\r\n }\n.form--no-label {\r\n padding-top: 24px;\r\n }\n.form__total {\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: middle;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n height: 42px;\r\n line-height: 42px;\r\n padding: 0 ;\r\n font-size: 24px;\r\n font-weight: 700;\r\n }\n.form__total--success {\r\n color: #2dba67;\r\n /* background-color: color($color-success a(15%)); */\r\n }\n.form__total--warning {\r\n color: #f03e1b;\r\n /* background-color: color($color-warning a(15%)); */\r\n }\n/*------------------------------------*\\\r\n # modules.tabs\r\n\\*------------------------------------*/\n.tabs--primary {\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.tabs--primary__item {\r\n position: relative;\r\n font-size: 13px;\r\n line-height: 21px;\r\n display: inline-block;\r\n padding: 6px 12px;\r\n cursor: pointer;\r\n color: #8a93a0;\r\n }\n@media (min-width: 62em) {\n.tabs--primary__item {\r\n font-size: 19px;\r\n line-height: 21px;\r\n padding: 12px 24px\r\n }\r\n }\n.tabs--primary__item:hover {\r\n color: #202e3c;\r\n }\n.tabs--primary__item.is-active {\r\n color: #202e3c;\r\n font-weight: 500;\r\n }\n.tabs--primary__item.is-active:before {\r\n content: '';\r\n position: absolute;\r\n display: block;\r\n bottom: -2px;\r\n left: 0;\r\n\r\n height: 3px;\r\n width: 100%;\r\n background-color: #e51646;\r\n }\n.tabs--secondary {\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.tabs--secondary__item {\r\n position: relative;\r\n font-size: 14px;\r\n line-height: 21px;\r\n display: inline-block;\r\n padding: 6px 0;\r\n margin-right: 21px;\r\n cursor: pointer;\r\n color: #8a93a0;\r\n }\n.tabs--secondary__item:hover {\r\n color: #202e3c;\r\n }\n.tabs--secondary__item.is-active {\r\n color: #e51646;\r\n font-weight: 500;\r\n }\n.tabs--secondary__item.is-active:before {\r\n content: '';\r\n position: absolute;\r\n display: block;\r\n bottom: -2px;\r\n left: 0;\r\n\r\n height: 1px;\r\n width: 100%;\r\n background-color: #e51646;\r\n }\n/*------------------------------------*\\\r\n # modules.print\r\n\\*------------------------------------*/\n@media print {\r\n\r\n .hide--on-print {\r\n display: none;;\r\n }\r\n}\n/*------------------------------------*\\\r\n # modules.account\r\n\\*------------------------------------*/\n.account__wrap {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: flex.-start;\r\n -webkit-justify-content: flex.-start;\r\n -ms-flex-pack: flex.-start;\r\n justify-content: flex.-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n background-color: #261a3b;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n padding: 12px 18px;\r\n margin-bottom: 24px;\r\n }\n.account__name {\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n /* color: color(white a(85%)); */\r\n white-space: nowrap;\r\n width: 100%;\r\n min-width: 0;\r\n }\n.account__logout {\r\n margin-left: auto;\r\n opacity: 0.85;\r\n cursor: pointer;\r\n }\n.account__logout:hover {\r\n opacity: 1;\r\n }\n.is-collapsed:not(.is-revealed) .account__name {\r\n width: 0px;\r\n overflow: hidden;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n.is-collapsed:not(.is-revealed) .account__icon {\r\n display: none;\r\n }\n/*------------------------------------*\\\r\n # modules.list\r\n\\*------------------------------------*/\n.list {\r\n list-style: none;\r\n}\n.list--primary .item {\r\n position: relative;\r\n padding-left: 12px;\r\n }\n.list--primary .item:before {\r\n content: '';\r\n position: absolute;\r\n top: 7px;\r\n left: 0;\r\n \r\n display: block;\r\n width: 6px;\r\n height: 6px;\r\n background-color: #cdd1d6;\r\n \r\n -webkit-border-radius: 1000px;\r\n \r\n border-radius: 1000px;\r\n }\n.list--grid {\r\n margin-right: 12px;\r\n margin-left: 12px;\r\n }\n.list--grid .item {\r\n position: relative;\r\n padding-top: 18px;\r\n padding-bottom: 18px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.list--grid .item:after {\r\n content: '';\r\n position: absolute;\r\n right: 0;\r\n top: 21px;\r\n bottom: 21px;\r\n border-right: 1px solid #dfe3e8;\r\n }\n@media (max-width: 33.9375em) {\r\n .list--grid--ticket-details .item-1:after, .list--grid--ticket-details .item-2:after, .list--grid--ticket-details .item-3:after, .list--grid--ticket-details .item-4:after {\r\n display: none;\r\n }\r\n }\n@media (max-width: 61.9375em) {\r\n .list--grid--ticket-details .item-2:after, .list--grid--ticket-details .item-4:after {\r\n display: none;\r\n }\r\n }\n@media (min-width: 62em) {\r\n .list--grid--ticket-details .item-4:after {\r\n display: none;\r\n }\r\n }\n/**\r\n* Import: components\r\n* Description: specific website/app components\r\n*/\n.header {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n}\n@media (min-width: 48em) {\n.header {\r\n -webkit-flex-wrap: nowrap;\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n padding: 12px 0\r\n}\r\n }\n.header--mobile {\r\n position: fixed;\r\n right: 0;\r\n left: 0;\r\n height: 42px;\r\n padding: 12px 0;\r\n background-color: #261a3b;\r\n z-index: 9;\r\n }\n.header--mobile:after {\r\n content: '';\r\n display: table;\r\n clear: both;\r\n }\n@media (min-width: 48em) {\n.header--mobile {\r\n padding: 12px\r\n }\r\n }\n@media (min-width: 75em) {\n.header--mobile {\r\n display: none\r\n }\r\n }\n.header--mobile__btn {\r\n float: left;\r\n padding: 0 12px;\r\n }\n.header--mobile__logo {\r\n display: block;\r\n float: left;\r\n width: -webkit-calc(100% - 96px);\r\n width: calc(100% - 96px);\r\n height: 100%;\r\n background-image: url(/static/media/logo-negative.svg);\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: 84px 84px;\r\n background-size: 84px;\r\n }\n.header--sub--mobile {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n position: fixed;\r\n right: 0;\r\n left: 0;\r\n top: 42px;\r\n height: 42px;\r\n padding: 12px 0;\r\n background-color: #dfe3e8;\r\n z-index: 1;\r\n padding-left: 12px;\r\n }\n@media (min-width: 75em) {\n.header--sub--mobile {\r\n display: none\r\n }\r\n }\n.header__title {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n\r\n width: 100%;\r\n margin-bottom: 12px;\r\n\r\n font-size: 19px;\r\n\r\n line-height: 21px;\r\n font-weight: 600;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n }\n@media (min-width: 62em) {\n.header__title {\r\n overflow: visible;\r\n\r\n width: 100%;\r\n margin-right: auto\r\n }\r\n }\n.header__title__wrap {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n min-width: 0;\r\n max-width: -webkit-calc(100% - 44px);\r\n max-width: calc(100% - 44px);\r\n -webkit-box-flex: 2;\r\n -webkit-flex-grow: 2;\r\n -ms-flex-positive: 2;\r\n flex-grow: 2;\r\n }\n@media (min-width: 48em) {\r\n }\n.header__buttons {\r\n margin-top: 12px;\r\n margin-bottom: 12px;\r\n width: 100%;\r\n\r\n white-space: nowrap;\r\n }\n@media (min-width: 48em) {\n.header__buttons {\r\n width: auto;\r\n margin-left: auto;\r\n margin-top: 0;\r\n margin-bottom: 0\r\n }\r\n }\n.header__labels {\r\n white-space: nowrap;\r\n }\n@media (min-width: 48em) {\n.header__labels {\r\n margin-right: 6px\r\n }\r\n }\n.header__actions {\r\n margin-left: auto;\r\n position: relative;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-align: start;\r\n -webkit-align-items: flex-start;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n }\n@media (min-width: 62em) {\n.header__actions {\r\n margin-left: 6px\r\n }\r\n }\n.header__actions__icon {\r\n padding: 12px;\r\n margin-bottom: 12px;\r\n }\n@media (min-width: 62em) {\n.header__actions__icon {\r\n display: none\r\n }\r\n }\n@media (max-width: 61.9375em) {\n.header__actions__dd {\r\n position: absolute;\r\n top: 100%;\r\n right: 12px;\r\n\r\n padding: 12px;\r\n background-color: white;\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n z-index: 9;\r\n display: none;\r\n white-space: nowrap;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px\r\n }\r\n\r\n .header__actions__dd.is-open {\r\n display: block;\r\n }\r\n }\n@media (min-width: 62em) {\n.header__actions__dd {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row\r\n }\r\n }\n.header__actions__item {\r\n margin-left: 6px;\r\n display: inline-block;\r\n }\n.header__actions__item:first-child {\r\n margin-left: 0;\r\n }\n@media (min-width: 62em) {\r\n .header__actions__item:first-child {\r\n margin-bottom: 0;\r\n }\r\n }\n.header--order--1 {\r\n -webkit-box-ordinal-group: 2;\r\n -webkit-order: 1;\r\n -ms-flex-order: 1;\r\n order: 1\r\n }\n.header--order--2 {\r\n -webkit-box-ordinal-group: 4;\r\n -webkit-order: 3;\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\n.header--order--3 {\r\n -webkit-box-ordinal-group: 3;\r\n -webkit-order: 2;\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\n@media (min-width: 48em) {\r\n\r\n .header--order--1 {\r\n -webkit-box-ordinal-group: 2;\r\n -webkit-order: 1;\r\n -ms-flex-order: 1;\r\n order: 1\r\n }\r\n\r\n .header--order--2 {\r\n -webkit-box-ordinal-group: 3;\r\n -webkit-order: 2;\r\n -ms-flex-order: 2;\r\n order: 2;\r\n }\r\n\r\n .header--order--3 {\r\n -webkit-box-ordinal-group: 4;\r\n -webkit-order: 3;\r\n -ms-flex-order: 3;\r\n order: 3;\r\n }\r\n \r\n }\n.header__grid__buttons {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-flex: wrap;\r\n -webkit-flex: wrap;\r\n -ms-flex: wrap;\r\n flex: wrap;\r\n }\n.header__grid__buttons__item {\r\n margin-bottom: 12px;\r\n margin-right: 6px;\r\n }\n.header__grid__buttons__item:last-child {\r\n margin-right: 0;\r\n }\n.header--grid {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n margin-top: 12px;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n@media (min-width: 90em) {\n.header--grid {\r\n padding-bottom: 12px\r\n }\r\n\r\n .header--grid .header__grid__buttons {\r\n display: none;\r\n }\r\n }\n.header--mpa {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding: 12px 0;\r\n }\n.header--underline {\r\n margin-bottom: 12px;\r\n padding-bottom: 12px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n/*------------------------------------*\\\r\n # components.customsearch\r\n\\*------------------------------------*/\n.customsearch {\r\n height: 40px;\r\n padding-right: 60px;\r\n padding-left: 39px;\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n}\n.customsearch:focus {\r\n border-color: #e51646;\r\n }\n.customsearch__holder {\r\n float: left;\r\n width: 100%;\r\n }\n@media (min-width: 48em) {\n.customsearch__holder {\r\n width: -webkit-calc(100% - 360px);\r\n width: calc(100% - 360px)\r\n }\r\n }\n@media (min-width: 75em) {\n.customsearch__holder {\r\n width: -webkit-calc(100% - 312px);\r\n width: calc(100% - 312px)\r\n }\r\n }\n@media (min-width: 95em) {\n.customsearch__holder {\r\n width: 100%;\r\n max-width: 420px\r\n }\r\n }\n.customsearch__overlay {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: transparent;\r\n z-index: 1;\r\n }\n.customsearch__container {\r\n position: absolute;\r\n top: 42px;\r\n right: 0;\r\n width: 100%;\r\n margin-bottom: 12px;\r\n background-color: #fff;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 2px 4px #d9d9d9;\r\n box-shadow: 0 2px 4px #d9d9d9;\r\n z-index: 99;\r\n }\n@media (min-width: 48em) {\n.customsearch__container {\r\n right: -24px;\r\n width: -webkit-calc(100% + 144px);\r\n width: calc(100% + 144px)\r\n }\r\n }\n.customsearch__body {\r\n padding: 6px 18px 12px;\r\n max-height: 486px;\r\n overflow-y: auto;\r\n }\n@media (min-width: 48em) {\n.customsearch__body {\r\n padding: 24px 24px 0\r\n }\r\n }\n.customsearch__actions {\r\n position: absolute;\r\n top: 2px;\r\n }\n.customsearch__actions--primary {\r\n right: 0;\r\n height: 36px;\r\n }\n.customsearch__actions--primary__btn {\r\n position: relative;\r\n width: 36px;\r\n height: 36px;\r\n padding: 0;\r\n line-height: 6px;\r\n }\n.customsearch__actions--primary__btn:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 3px;\r\n left: 3px;\r\n width: 30px;\r\n height: 30px;\r\n background-color: #e51646;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transform: scale(0.5);\r\n -ms-transform: scale(0.5);\r\n transform: scale(0.5);\r\n opacity: 0;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.customsearch__actions--primary__btn:hover:before, .customsearch__actions--primary__btn:focus:before {\r\n -webkit-transform: scale(1);\r\n -ms-transform: scale(1);\r\n transform: scale(1);\r\n opacity: 0.1;\r\n }\n.customsearch__actions--secondary {\r\n left: 3px;\r\n }\n.customsearch__actions--secondary__btn {\r\n width: 36px;\r\n height: 36px;\r\n padding: 0;\r\n }\n.customsearch__actions--tertiary {\r\n right: 36px;\r\n }\n.customsearch__actions--tertiary__btn {\r\n height: 36px;\r\n }\n.customsearch__item {\r\n display: inline-block;\r\n width: 100%;\r\n clear: both;\r\n margin-bottom: 6px;\r\n }\n@media (max-width: 47.9375em) {\n.customsearch__item {\r\n font-size: 12px;\r\n line-height: 21px\r\n }\r\n }\n@media (min-width: 62em) {\n.customsearch__item {\r\n margin-bottom: 24px\r\n }\r\n }\n.customsearch__item__label {\r\n display: block;\r\n margin-bottom: 2px;\r\n padding: 9px 24px 0 0;\r\n font-weight: 500;\r\n }\n@media (min-width: 48em) {\n.customsearch__item__label {\r\n float: left;\r\n width: 132px;\r\n text-align: right\r\n }\r\n }\n.customsearch__item__value {\r\n display: block;\r\n }\n@media (min-width: 48em) {\n.customsearch__item__value {\r\n float: left;\r\n width: -webkit-calc(100% - 132px);\r\n width: calc(100% - 132px)\r\n }\r\n }\n.customsearch__footer {\r\n padding: 12px 18px;\r\n background-color: #f3f6f9;\r\n text-align: right;\r\n border-top: 1px solid #dfe3e8;\r\n }\n@media (min-width: 48em) {\n.customsearch__footer {\r\n padding: 12px 24px\r\n }\r\n }\n/*@import \"components.customer.css\";*/\n/*------------------------------------*\\\r\n # components.customdropdown\r\n\\*------------------------------------*/\n.customdropdown {\r\n position: relative;\r\n}\n@media (min-width: 48em) {\n.customdropdown {\r\n display: inline-block\r\n}\r\n }\n.customdropdown:hover {\r\n cursor: pointer;\r\n }\n.customdropdown__trigger {\r\n position: relative;\r\n height: 30px;\r\n padding: 4px 48px 6px 12px;\r\n font-weight: 500;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n@media (min-width: 48em) {\n.customdropdown__trigger {\r\n height: 38px; \r\n padding: 8px 48px 6px 12px\r\n } \r\n }\n.customdropdown__trigger:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 38px;\r\n height: 100%;\r\n background-color: #f3f6f9;\r\n background-image: url(" + __webpack_require__(/*! ../images/dropdown-double.svg */ "./src/styles/images/dropdown-double.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: center center;\r\n border-left: 1px solid #dfe3e8;\r\n }\n.customdropdown__list {\r\n display: none;\r\n position: absolute;\r\n bottom: 100%;\r\n right: 0;\r\n left: 0;\r\n background-color: #fff;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n z-index: 9;\r\n }\n.customdropdown__list.is-active {\r\n display: block;\r\n }\n.customdropdown__item {\r\n display: block;\r\n }\n.customdropdown__link {\r\n display: block;\r\n padding: 6px 12px;\r\n }\n.customdropdown__link:hover {\r\n background-color: #f3f6f9;\r\n color: inherit;\r\n }\n/*------------------------------------*\\\r\n # components.buttondropdown\r\n\\*------------------------------------*/\n.buttondropdown {\r\n position: absolute;\r\n width: 198px;\r\n background-color: #fff;\r\n border-bottom: none;\r\n -webkit-box-shadow: 0 2px 4px #d9d9d9;\r\n box-shadow: 0 2px 4px #d9d9d9;\r\n z-index: 99999;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n}\n.buttondropdown__title {\r\n position: relative;\r\n display: block;\r\n width: 100%;\r\n padding: 15px 36px 6px 12px;\r\n text-align: left;\r\n font-weight: 500;\r\n }\n.buttondropdown__title__icon {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 18px;\r\n }\n.buttondropdown__list {\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.buttondropdown__item {\r\n display: block;\r\n padding: 9px 12px;\r\n }\n.buttondropdown__item:hover, .buttondropdown__item:focus {\r\n background-color: #f3f6f9;\r\n cursor: pointer;\r\n outline: none;\r\n }\n.buttondropdown__item--withlink {\r\n padding: 0;\r\n }\n.buttondropdown__link {\r\n display: block;\r\n padding: 9px 12px; \r\n }\n.buttondropdown__overlay {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: transparent;\r\n z-index: 99;\r\n }\n/* Positions */\n.buttondropdown--left {\r\n -webkit-transform: translate(-webkit-calc(-100% - 21px), -50%);\r\n -ms-transform: translate(calc(-100% - 21px), -50%);\r\n transform: translate(calc(-100% - 21px), -50%);\r\n }\n/*------------------------------------*\\\r\n # components.sidebar\r\n\\*------------------------------------*/\n.sidebar {\r\n padding: 9px 9px 9px 6px;\r\n}\n.sidebar--secondary__header {\r\n padding: 24px 24px;\r\n border-bottom: 1px solid #dfe3e8;\r\n line-height: 1;\r\n }\n@media (max-width: 74.9375em) {\n.sidebar--secondary__header {\r\n display: none\r\n }\r\n }\n.sidebar--secondary__link {\r\n font-weight: 600;\r\n color: #e51646;\r\n }\n.sidebar--secondary__link .icon {\r\n vertical-align: middle;\r\n }\n.sidebar__header {\r\n position: relative;\r\n display: none;\r\n margin-bottom: 1px;\r\n padding: 12px;\r\n background-color: #261a3b;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n@media (min-width: 75em) {\n.sidebar__header {\r\n display: block\r\n }\r\n }\n.sidebar__header__image {\r\n position: relative;\r\n display: inline-block;\r\n width: 120px;\r\n height: 42px;\r\n margin-right: 12px;\r\n background-image: url(" + __webpack_require__(/*! ../../img/logo-negative.svg */ "./src/img/logo-negative.svg") + "); \r\n -webkit-background-size: 100% 100%; \r\n background-size: 100%;\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n vertical-align: middle;\r\n }\n.sidebar__header__image:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 2px;\r\n right: -12px;\r\n bottom: 0;\r\n width: 1px;\r\n background-color: #dfe3e8;\r\n opacity: 0.25;\r\n }\n@media (min-width: 90em) {\n.sidebar__header__image {\r\n width: 126px\r\n }\r\n }\n.sidebar__header__title {\r\n font-size: 13px;\r\n line-height: 15.75px;\r\n display: inline-block;\r\n width: 54px;\r\n margin-left: 12px;\r\n color: #fff;\r\n vertical-align: -9px;\r\n }\n.sidebar__header__badge {\r\n position: absolute;\r\n right: -2px;\r\n bottom: -6px;\r\n }\n@media (min-width: 75em) {\n.sidebar__header.is-collapsed {\r\n height: 118px\r\n }\r\n\r\n .sidebar__header.is-collapsed .sidebar__header__image {\r\n width: 100%;\r\n margin-right: 0;\r\n background-image: url(" + __webpack_require__(/*! ../../img/logo-head.svg */ "./src/img/logo-head.svg") + "); \r\n -webkit-background-size: 30px 30px; \r\n background-size: 30px;\r\n background-position: center 4px;\r\n }\r\n\r\n .sidebar__header.is-collapsed .sidebar__header__image:after {\r\n display: none;\r\n }\r\n\r\n .sidebar__header.is-collapsed .sidebar__header__title {\r\n opacity: 0;\r\n visibility: hidden;\r\n }\r\n\r\n .sidebar__header.is-collapsed .sidebar__header__badge {\r\n position: relative;\r\n right: unset;\r\n bottom: unset;\r\n margin-top: 6px;\r\n }\r\n }\n.sidebar__subheader {\r\n position: relative;\r\n margin-bottom: 18px;\r\n padding: 12px;\r\n background-color: #261a3b;\r\n color: #9c9c9c;\r\n }\n@media (min-width: 62em) {\n.sidebar__subheader__list {\r\n position: absolute;\r\n top: -webkit-calc(100% - 18px);\r\n top: calc(100% - 18px);\r\n left: 72px;\r\n width: 198px;\r\n background-color: #fff;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 2px 4px #474747;\r\n box-shadow: 0 2px 4px #474747\r\n }\r\n }\n.sidebar__subheader__link {\r\n display: block;\r\n margin-top: 6px;\r\n padding: 6px;\r\n color: #fff;\r\n border-top: 1px solid rgb(64, 70, 79);\r\n -webkit-border-radius: 2px;\r\n border-radius: 2px;\r\n opacity: 0.8;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.sidebar__subheader__link:hover {\r\n opacity: 1;\r\n }\n@media (min-width: 62em) {\n.sidebar__subheader__link {\r\n margin-top: 0;\r\n padding: 12px;\r\n border: none;\r\n color: #8a93a0\r\n }\r\n\r\n .sidebar__subheader__link:hover {\r\n color: #667182;\r\n }\r\n }\n.sidebar__title {\r\n margin-left: 12px;\r\n font-size: 12px;\r\n line-height: 15.75px;\r\n color: #7f7f7f;\r\n text-transform: uppercase;\r\n letter-spacing: 0.25em;\r\n }\n.sidebar__user__image {\r\n display: block;\r\n padding: 6px;\r\n background-color: #667182;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n }\n.sidebar__copy {\r\n padding: 6px 18px;\r\n margin-top: auto;\r\n text-align: center;\r\n }\n.sidebar__copy .icon {\r\n display: none; \r\n }\n@media (min-width: 75em) {\r\n\r\n .is-collapsed .sidebar__copy {\r\n text-align: left;\r\n }\r\n\r\n .is-collapsed .sidebar__copy .icon {\r\n display: inline-block;\r\n }\r\n \r\n .is-collapsed .sidebar__copysign {\r\n font-size: 18px; \r\n }\r\n\r\n .is-collapsed .sidebar__copytext {\r\n display: none; \r\n }\r\n\r\n .is-collapsed .sidebar__copydash {\r\n display: none; \r\n }\r\n\r\n .is-collapsed .sidebar__privacytext {\r\n display: none; \r\n }\r\n\r\n .is-collapsed .sidebar__version {\r\n display: none; \r\n }\r\n\r\n .is-collapsed .sidebar__privacy, .is-collapsed .sidebar__copyright {\r\n position: relative;\r\n opacity: 0.5;\r\n display: block;\r\n height: 33px;\r\n margin-bottom: 6px;\r\n padding: 6px 9px 6px 9px;\r\n -webkit-transition: opacity 250ms ease-in-out;\r\n -o-transition: opacity 250ms ease-in-out;\r\n transition: opacity 250ms ease-in-out;\r\n }\r\n\r\n .is-collapsed .sidebar__privacy:hover, .is-collapsed .sidebar__copyright:hover {\r\n opacity: 1;\r\n }\r\n\r\n .is-collapsed .sidebar__privacy:hover .sidebar__privacytext, .is-collapsed .sidebar__privacy:hover .sidebar__copytext, .is-collapsed .sidebar__copyright:hover .sidebar__privacytext, .is-collapsed .sidebar__copyright:hover .sidebar__copytext {\r\n display: block;\r\n position: absolute;\r\n left: 36px;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n background-color: #0e0125;\r\n color: white;\r\n padding: 6px;\r\n width: 192px;\r\n height: 33px;\r\n white-space: nowrap;\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n \r\n }\r\n\r\n .is-collapsed .sidebar__privacy:hover .sidebar__copytext, .is-collapsed .sidebar__copyright:hover .sidebar__copytext {\r\n background-color: #0e0125;\r\n }\r\n }\n/*@import \"components.note.css\";\r\n@import \"components.recurring.css\";\r\n@import \"components.card.css\";*/\n/*------------------------------------*\\\r\n # components.nav\r\n\\*------------------------------------*/\n.nav {\r\n margin: 0 0 24px;\r\n padding: 0;\r\n}\n.nav__submenu {\r\n display: none;\r\n padding: 2px 24px;\r\n background-color: #261a3b;\r\n }\n.nav__submenu.is-active {\r\n display: block;\r\n }\n.nav__item {\r\n margin: 6px 0;\r\n cursor: pointer;\r\n }\n.nav__link_sub{\r\n color: #dfe3e8;\r\n }\n.nav__link, .nav__link_sub {\r\n opacity: 0.85;\r\n display: block;\r\n position: relative;\r\n\r\n padding: 6px;\r\n\r\n white-space: nowrap;\r\n -webkit-transition: ease .2s opacity;\r\n -o-transition: ease .2s opacity;\r\n transition: ease .2s opacity;\r\n -webkit-border-radius: 2px;\r\n border-radius: 2px;\r\n }\n.nav__link:hover, .nav__link:focus, .nav__link_sub:hover, .nav__link_sub:focus {\r\n color: #fff;\r\n opacity: 1;\r\n }\n@media (min-width: 75em) {\n.nav__link, .nav__link_sub {\r\n padding: 6px 18px\r\n }\r\n }\n@media (min-width: 75em) {\n.nav__link.is-collapsed, .nav__link_sub.is-collapsed {\r\n height: 33px;\r\n margin-bottom: 6px;\r\n padding: 6px 18px 6px 18px;\r\n -webkit-transition: none;\r\n -o-transition: none;\r\n transition: none\r\n }\r\n }\n@media (min-width: 75em) {\r\n .nav__link.is-collapsed:hover .nav__link__text, .nav__link_sub.is-collapsed:hover .nav__link__text {\r\n opacity: 1;\r\n visibility: visible;\r\n display: inline-block;\r\n width: 144px;\r\n height: 33px;\r\n margin: -6px 0;\r\n padding: 6px;\r\n background-color: #0e0125;\r\n -webkit-border-radius: 0 4px 4px 0;\r\n border-radius: 0 4px 4px 0;\r\n }\r\n\r\n .nav__link.is-collapsed:hover .nav__link__button, .nav__link_sub.is-collapsed:hover .nav__link__button {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n }\n.nav__link.is-collapsed.is-active .nav__link__text, .nav__link_sub.is-collapsed.is-active .nav__link__text {\r\n background-color: #e51646;\r\n }\n@media (min-width: 75em) {\n.nav__link.is-collapsed .nav__link__text, .nav__link_sub.is-collapsed .nav__link__text {\r\n opacity: 1;\r\n display: none;\r\n\r\n position: absolute;\r\n left: -webkit-calc(100% - 12px);\r\n left: calc(100% - 12px)\r\n }\r\n }\n.nav__link.is-collapsed .nav__link__button, .nav__link_sub.is-collapsed .nav__link__button {\r\n opacity: 0;\r\n visibility: hidden;\r\n top: 4px;\r\n left: 170px;\r\n }\n@media (min-width: 75em) {\n.nav__link.is-collapsed .nav__image, .nav__link_sub.is-collapsed .nav__image {\r\n opacity: 0;\r\n visibility: hidden\r\n }\r\n }\n@media (min-width: 75em) {\n.nav__link.is-collapsed .nav__icon, .nav__link_sub.is-collapsed .nav__icon {\r\n margin-right: 0\r\n }\r\n }\n.nav__link--disabled, .nav__link_sub--disabled {\r\n color: #636363;\r\n }\n.nav__link--disabled:hover, .nav__link_sub--disabled:hover {\r\n color: #636363;\r\n opacity: 0.85;\r\n }\n.nav__link--disabled i, .nav__link_sub--disabled i {\r\n opacity: 0.6;\r\n }\n.nav__link--disabled i:hover, .nav__link_sub--disabled i:hover {\r\n opacity: 0.6;\r\n }\n.nav__link.is-active, .nav__link_sub.is-active {\r\n background-color: #e51646;\r\n color: #fff;\r\n opacity: 1;\r\n }\n.nav__link:hover .nav__icon--settings, .nav__link.is-active .nav__icon--settings, .nav__link_sub:hover .nav__icon--settings, .nav__link_sub.is-active .nav__icon--settings {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / settings-new%3C/title%3E%3Cdefs%3E%3Cpath d='M16.4 5.1L15 3.7l-2.1 1.1c-.3-.2-.7-.3-1.1-.4L11 2H9l-.8 2.3c-.3.1-.7.2-1 .4L5.1 3.6 3.6 5.1l1.1 2.1c-.2.3-.3.7-.4 1L2 9v2l2.3.8c.1.4.3.7.4 1.1L3.6 15 5 16.4l2.1-1.1c.3.2.7.3 1.1.4L9 18h2l.8-2.3c.4-.1.7-.3 1.1-.4l2.1 1.1 1.4-1.4-1.1-2.1c.2-.3.3-.7.4-1.1L18 11V9l-2.3-.8c-.1-.3-.2-.7-.4-1l1.1-2.1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse stroke='%23667182' stroke-width='1.4' xlink:href='%23a'/%3E%3Ccircle stroke='%23E51646' stroke-width='1.4' mask='url(%23b)' cx='10' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--settings-alt, .nav__link.is-active .nav__icon--settings-alt, .nav__link_sub:hover .nav__icon--settings-alt, .nav__link_sub.is-active .nav__icon--settings-alt {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / menu / Settings%3C/title%3E%3Cg transform='translate(2 2)'%3E%3Cpath fill='%23D8D8D8' d='M11.658 6.898l-8.123 8.124a2 2 0 0 1-2.829-2.829l5.036-5.036L3.536 4.95a1 1 0 0 1-1.415 0L.707 3.536a1 1 0 0 1 0-1.415L2.121.707a1 1 0 0 1 1.415 0L4.95 2.121a1 1 0 0 1 0 1.415l2.207 2.207L9.021 3.88A3.5 3.5 0 0 1 12.5 0c.248 0 .553.053.915.16a.501.501 0 0 1 .216.833l-1.299 1.318a1 1 0 0 0-.014 1.39l.016.017.02.02a.963.963 0 0 0 1.361-.003l1.298-1.305a.508.508 0 0 1 .849.222c.091.334.138.617.138.848a3.5 3.5 0 0 1-4.342 3.398zm-1.701 4.473l1.414-1.414a.999.999 0 0 1 1.414 0l2.828 2.828a.999.999 0 0 1 0 1.414l-1.414 1.414a.999.999 0 0 1-1.414 0l-2.828-2.828a.999.999 0 0 1 0-1.414z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M11.658 6.898l-8.123 8.124a2 2 0 0 1-2.829-2.829l5.036-5.036L3.536 4.95a1 1 0 0 1-1.415 0L.707 3.536a1 1 0 0 1 0-1.415L2.121.707a1 1 0 0 1 1.415 0L4.95 2.121a1 1 0 0 1 0 1.415l2.207 2.207L9.021 3.88A3.5 3.5 0 0 1 12.5 0c.248 0 .553.053.915.16a.501.501 0 0 1 .216.833l-1.299 1.318a1 1 0 0 0-.014 1.39l.016.017.02.02a.963.963 0 0 0 1.361-.003l1.298-1.305a.508.508 0 0 1 .849.222c.091.334.138.617.138.848a3.5 3.5 0 0 1-4.342 3.398zm-1.701 4.473l1.414-1.414a.999.999 0 0 1 1.414 0l2.828 2.828a.999.999 0 0 1 0 1.414l-1.414 1.414a.999.999 0 0 1-1.414 0l-2.828-2.828a.999.999 0 0 1 0-1.414z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-2h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--apikeys, .nav__link.is-active .nav__icon--apikeys, .nav__link_sub:hover .nav__icon--apikeys, .nav__link_sub.is-active .nav__icon--apikeys {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M15 10.7l-2.3-2.3-2.7 2.7c1.4 1.6 1.3 3.9-.1 5.5-1.6 1.6-4.1 1.6-5.7 0-1.6-1.6-1.6-4.1 0-5.7 1.1-1.2 2.7-1.5 4.1-.9l8-8 1.4 1.4-2 2L18 7.7l-3 3zM7 15a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--documentation, .nav__link.is-active .nav__icon--documentation, .nav__link_sub:hover .nav__icon--documentation, .nav__link_sub.is-active .nav__icon--documentation {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M13 6L3 6.019a1 1 0 0 1 0-2L13 4v2zm4 5H7V9h10a1 1 0 0 1 0 2zm0-4.981L15 6V4l2 .019a1 1 0 0 1 0 2zM13 16H3a1 1 0 0 1 0-2h10v2zm4 0h-2v-2h2a1 1 0 0 1 0 2zM5 11H3a1 1 0 0 1 0-2h2v2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--profile, .nav__link.is-active .nav__icon--profile, .nav__link_sub:hover .nav__icon--profile, .nav__link_sub.is-active .nav__icon--profile {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M10 2c2.206 0 4 1.794 4 4v1c0 2.206-1.794 4-4 4S6 9.206 6 7V6c0-2.206 1.794-4 4-4zm4.036 9.426C15.797 12 17 13.311 17 15v3H3v-3c0-1.689 1.203-3 2.964-3.574A5.969 5.969 0 0 0 10 13c1.555 0 2.969-.6 4.036-1.574z'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23667182' xlink:href='%23a'/%3E%3Cg fill='%23667182' mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--devices, .nav__link.is-active .nav__icon--devices, .nav__link_sub:hover .nav__icon--devices, .nav__link_sub.is-active .nav__icon--devices {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M4 18a2 2 0 0 1-2-2v-1h16v1a2 2 0 0 1-2 2H4zm13-7v3H3v-3c0-.3.1-.5.3-.7L5 8.6V7c0-.6.4-1 1-1h6V5h-2V4a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v1h-2v1h1c.6 0 1 .4 1 1v1.6l1.7 1.7c.2.2.3.4.3.7z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--payment-forms, .nav__link.is-active .nav__icon--payment-forms, .nav__link_sub:hover .nav__icon--payment-forms, .nav__link_sub.is-active .nav__icon--payment-forms {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M3 13a1 1 0 0 1 0-2h1a1 1 0 0 1 0 2H3zm0 4a1 1 0 0 1 0-2h1a1 1 0 0 1 0 2H3zm0-8a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2H3zm0-4a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2H3zm5 8a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2H8zm0 4a1 1 0 0 1 0-2h4a1 1 0 0 1 0 2H8zm0-8a1 1 0 1 1 0-2h5a1 1 0 0 1 0 2H8zm0-4a1 1 0 1 1 0-2h9a1 1 0 0 1 0 2H8z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--fraud, .nav__link.is-active .nav__icon--fraud, .nav__link_sub:hover .nav__icon--fraud, .nav__link_sub.is-active .nav__icon--fraud {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M17 12v1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1v-1c0-1.654 1.346-3 3-3s3 1.346 3 3zm-4 0v1h2v-1a1.001 1.001 0 0 0-2 0zm5-2.984C11.904 5.129 8.95 9.494 9.06 14H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5.016zM8 8a1 1 0 1 0-2 0 1 1 0 0 0 2 0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--gift-cards, .nav__link.is-active .nav__icon--gift-cards, .nav__link_sub:hover .nav__icon--gift-cards, .nav__link_sub.is-active .nav__icon--gift-cards {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M15 13.997V6H5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1c-1.1 0-2 .899-2 2 0 1.1.9 2 2 2v.997a2 2 0 0 1-2 2zM12 7a2 2 0 0 1 2 2v1c-1.1 0-2 .899-2 2 0 1.1.9 2 2 2v.997a2 2 0 0 1-2 2l-8 .002a2 2 0 0 1-2-2V14c1.1 0 2-.9 2-2s-.9-2-2-2V9a2 2 0 0 1 2-2h8z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--gift-report, .nav__link.is-active .nav__icon--gift-report, .nav__link_sub:hover .nav__icon--gift-report, .nav__link_sub.is-active .nav__icon--gift-report {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / menu / Gift report%3C/title%3E%3Cg transform='translate(2 2)'%3E%3Cpath fill='%23111' d='M13 9c.6 0 1 .4 1 1v5c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h10zm.8-5H15a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h1.2c-.1-.3-.2-.6-.2-1 0-1.7 1.3-3 3-3 1.4 0 2.4.8 3 1.7C8.6.8 9.6 0 11 0c1.7 0 3 1.3 3 3 0 .4-.1.7-.2 1zM11 2C9.9 2 9.4 3.1 9.2 4H11c.6 0 1-.4 1-1s-.4-1-1-1zM4 3c0 .6.4 1 1 1h1.8c-.2-.9-.7-2-1.8-2-.6 0-1 .4-1 1z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M13 9c.6 0 1 .4 1 1v5c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h10zm.8-5H15a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h1.2c-.1-.3-.2-.6-.2-1 0-1.7 1.3-3 3-3 1.4 0 2.4.8 3 1.7C8.6.8 9.6 0 11 0c1.7 0 3 1.3 3 3 0 .4-.1.7-.2 1zM11 2C9.9 2 9.4 3.1 9.2 4H11c.6 0 1-.4 1-1s-.4-1-1-1zM4 3c0 .6.4 1 1 1h1.8c-.2-.9-.7-2-1.8-2-.6 0-1 .4-1 1z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-2h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--fraudwatch, .nav__link.is-active .nav__icon--fraudwatch, .nav__link_sub:hover .nav__icon--fraudwatch, .nav__link_sub.is-active .nav__icon--fraudwatch {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / menu / Fraud report%3C/title%3E%3Cg transform='translate(2 5)'%3E%3Cpath d='M12.5 2.992V3a3 3 0 1 1-5.952-.535c-1.693.794-3.057 2.519-4.634 5.392l-.006.011c-.257.47-.856.658-1.353.425a.94.94 0 0 1-.454-1.278l.013-.025.024-.043C2.751 2.199 5.178 0 9.082 0c.09 0 .178.001.266.004a2.996 2.996 0 0 1 .716.049c2.633.29 4.688 1.745 5.682 3.92.067.148.14.364.217.646.049.183.046.376-.01.557a8.59 8.59 0 0 1-.409 1.121C14.437 8.608 12.112 10 9.082 10c-1.724 0-3.227-.702-4.537-1.889a8.182 8.182 0 0 1-.253-.243.9.9 0 0 1 .08-1.354l.042-.034c.403-.32.995-.291 1.36.068.118.118.22.212.306.286.926.787 1.927 1.228 3.002 1.228 2.078 0 3.621-.816 4.456-2.241.071-.121.153-.291.245-.508a.998.998 0 0 0-.035-.857 3.783 3.783 0 0 0-.17-.298A4.536 4.536 0 0 0 12.5 2.992z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-5' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-5' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M12.5 2.992V3a3 3 0 1 1-5.952-.535c-1.693.794-3.057 2.519-4.634 5.392l-.006.011c-.257.47-.856.658-1.353.425a.94.94 0 0 1-.454-1.278l.013-.025.024-.043C2.751 2.199 5.178 0 9.082 0c.09 0 .178.001.266.004a2.996 2.996 0 0 1 .716.049c2.633.29 4.688 1.745 5.682 3.92.067.148.14.364.217.646.049.183.046.376-.01.557a8.59 8.59 0 0 1-.409 1.121C14.437 8.608 12.112 10 9.082 10c-1.724 0-3.227-.702-4.537-1.889a8.182 8.182 0 0 1-.253-.243.9.9 0 0 1 .08-1.354l.042-.034c.403-.32.995-.291 1.36.068.118.118.22.212.306.286.926.787 1.927 1.228 3.002 1.228 2.078 0 3.621-.816 4.456-2.241.071-.121.153-.291.245-.508a.998.998 0 0 0-.035-.857 3.783 3.783 0 0 0-.17-.298A4.536 4.536 0 0 0 12.5 2.992z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-5h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--customers, .nav__link.is-active .nav__icon--customers, .nav__link_sub:hover .nav__icon--customers, .nav__link_sub.is-active .nav__icon--customers {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M12.2 13.404c.5.4.8 1 .8 1.6v2c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-1.9c0-.6.3-1.2.8-1.6l2.7-2.1c-.9-.7-1.5-1.7-1.5-2.9v-1c0-2 1.7-3.6 3.7-3.5 1.9.1 3.3 1.8 3.3 3.7v.8c0 1.2-.6 2.2-1.5 2.9l2.7 2zm4.7-4.97c.6.4.9 1 .9 1.7v.8c0 .6-.4 1-1 1h-3.4c0-.1-1.2-1-1.2-1 .4-.7.6-1.6.6-2.5v-1c0-1.6-.7-3-1.8-4 .5-.9 1.5-1.6 2.7-1.4 1.2.2 2.1 1.4 2.1 2.6v.9c0 .7-.3 1.3-.7 1.7l1.8 1.2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--recurring-payments, .nav__link.is-active .nav__icon--recurring-payments, .nav__link_sub:hover .nav__icon--recurring-payments, .nav__link_sub.is-active .nav__icon--recurring-payments {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M6.5 12a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm4.3-8.9c3.859 0 7 3.14 7 7s-3.141 7-7 7v-2c2.757 0 5-2.243 5-5s-2.243-5-5-5a5.023 5.023 0 0 0-3.535 1.465L9.4 8.7 3 9.4 3.7 3l2.152 2.152A7.022 7.022 0 0 1 10.8 3.1z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--invoices, .nav__link.is-active .nav__icon--invoices, .nav__link_sub:hover .nav__icon--invoices, .nav__link_sub.is-active .nav__icon--invoices {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M6 8h8V6H6v2zm0 4h8v-2H6v2zM3 4v14l3-2 2 2 2-2 2 2 2-2 3 2V4a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--users, .nav__link.is-active .nav__icon--users, .nav__link_sub:hover .nav__icon--users, .nav__link_sub.is-active .nav__icon--users {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23fff'%3E%3Ctitle%3Eicons / menu / Users%3C/title%3E%3Cdefs%3E%3Cpath d='M12.273 9.058c.454.343.727.857.727 1.371v1.714c0 .514-.364.857-.91.857H3.91c-.546 0-.91-.343-.91-.857v-1.628c0-.514.273-1.028.727-1.37l2.455-1.8c-.818-.6-1.364-1.457-1.364-2.485v-.857c0-1.714 1.546-3.085 3.364-3 1.727.086 3 1.543 3 3.171v.686c0 1.028-.546 1.885-1.364 2.485l2.455 1.713zM14.062 8a3.946 3.946 0 0 0-.582-.538l-.06-.043-.701-.49a4.78 4.78 0 0 0 .466-2.07v-.685A5.184 5.184 0 0 0 11.7.546c.368-.36.87-.572 1.412-.543 1.036.057 1.8 1.028 1.8 2.113v.457c0 .686-.327 1.257-.818 1.657l1.473 1.142c.272.229.436.572.436.914V7.43c0 .343-.218.571-.545.571h-1.396zM1.941 8H.545C.218 8 0 7.772 0 7.429V6.286c0-.342.164-.685.436-.914L1.91 4.23c-.49-.4-.818-.971-.818-1.657v-.457c0-1.085.764-2.056 1.8-2.113a1.872 1.872 0 0 1 1.412.543 5.184 5.184 0 0 0-1.485 3.628v.686c0 .738.164 1.435.466 2.068l-.702.49-.059.044c-.213.16-.408.341-.582.538z' id='a'/%3E%3C/defs%3E%3Cg transform='translate(2 4)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23667182' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23667182'%3E%3Cpath d='M-2-4h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--batches, .nav__link.is-active .nav__icon--batches, .nav__link_sub:hover .nav__icon--batches, .nav__link_sub.is-active .nav__icon--batches {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.6 5.6h11.2a1.6 1.6 0 0 1 1.6 1.6v5.6a1.6 1.6 0 0 1-1.6 1.6H3.2a1.6 1.6 0 0 1-1.6-1.6V5.6zm8.8 4.4c0 .64.56 1.2 1.2 1.2.64 0 1.2-.56 1.2-1.2 0-.64-.56-1.2-1.2-1.2-.64 0-1.2.56-1.2 1.2zM8 1.6a1.6 1.6 0 0 1 1.6 1.6V4h-8v-.8a1.6 1.6 0 0 1 1.6-1.6H8z'/%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--transactions, .nav__link.is-active .nav__icon--transactions, .nav__link_sub:hover .nav__icon--transactions, .nav__link_sub.is-active .nav__icon--transactions {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M6.978 7h1V5.5a.5.5 0 0 0-1 0V7zm0 8h1v-2h-1v2zM2 4v.01c0 .547.443.99.99.99a.99.99 0 0 1 .988.99V15a2 2 0 0 0 2 2h3a2 2 0 0 0 2-2V6a1 1 0 1 1 2 0v9.5a1.5 1.5 0 0 0 3 0V6.044c0-.577.468-1.044 1.044-1.044h.044a.958.958 0 0 0 .956-1c-.024-.56-.485-1-1.045-1H3a1 1 0 0 0-1 1z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--newtransaction, .nav__link.is-active .nav__icon--newtransaction, .nav__link_sub:hover .nav__icon--newtransaction, .nav__link_sub.is-active .nav__icon--newtransaction {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm1-9V6a1 1 0 1 0-2 0v3H6a1 1 0 0 0 0 2h3v3a1 1 0 1 0 2 0v-3h3a1 1 0 1 0 0-2h-3z' fill='%23D8D8D8'/%3E%3Cmask id='a' maskUnits='userSpaceOnUse' x='2' y='2' width='16' height='16'%3E%3Cpath d='M10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm1-9V6a1 1 0 1 0-2 0v3H6a1 1 0 0 0 0 2h3v3a1 1 0 1 0 2 0v-3h3a1 1 0 1 0 0-2h-3z'/%3E%3C/mask%3E%3Cg mask='url(%23a)'%3E%3Cpath d='M20 0H0v20h20V0z' fill='%23A61032'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--reports, .nav__link.is-active .nav__icon--reports, .nav__link_sub:hover .nav__icon--reports, .nav__link_sub.is-active .nav__icon--reports {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M8 17H3v-.268A2 2 0 0 1 2 15V7a2 2 0 0 1 2-2v9h2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H8zm1-9v1h6V8H9zm0 2v1h6v-1H9zm0 2v1h6v-1H9zm0-6v1h6V6H9z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--dashboard, .nav__link.is-active .nav__icon--dashboard, .nav__link_sub:hover .nav__icon--dashboard, .nav__link_sub.is-active .nav__icon--dashboard {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M5 3h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 0h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-8 8h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2zm8 0h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--filter, .nav__link.is-active .nav__icon--filter, .nav__link_sub:hover .nav__icon--filter, .nav__link_sub.is-active .nav__icon--filter {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / filter-old%3C/title%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Crect fill='%23667182' x='2' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='5' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 12.5 6)' x='9' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='2' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 7.5 14)' x='4' y='13' width='7' height='2' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--merchants, .nav__link.is-active .nav__icon--merchants, .nav__link_sub:hover .nav__icon--merchants, .nav__link_sub.is-active .nav__icon--merchants {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.646 9.412v9.338h10.707V9.412h2.223v9.9c0 .932-.746 1.688-1.667 1.688H6.091c-.92 0-1.667-.756-1.667-1.688v-9.9h2.222z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.919 3H19.08L22 7.74l.001.32c.004 1.646-1.151 3.033-2.722 3.397a3.572 3.572 0 0 1-2.967-.635 3.55 3.55 0 0 1-4.311.001 3.551 3.551 0 0 1-4.311-.001 3.572 3.572 0 0 1-2.967.635C3.152 11.093 1.996 9.707 2 8.06v-.32L4.92 3zm1.233 2.25L4.253 8.334c.103.434.455.811.965.93.618.143 1.227-.155 1.487-.66l.99-1.926.983 1.93c.208.409.653.692 1.167.692s.96-.283 1.167-.692L12 6.669l.988 1.939c.208.409.653.692 1.167.692s.959-.283 1.167-.692l.983-1.93.99 1.926c.26.505.869.803 1.487.66.51-.119.861-.496.965-.93L17.848 5.25H6.152z'/%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--logout, .nav__link.is-active .nav__icon--logout, .nav__link_sub:hover .nav__icon--logout, .nav__link_sub.is-active .nav__icon--logout {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cpath d='M10.1 9.6c-.6 0-1-.4-1-1V3.2c0-.6.4-1 1-1s1 .4 1 1v5.3c0 .6-.4 1.1-1 1.1z'/%3E%3Cpath d='M10.1 18.1C6.2 18.1 3 14.9 3 11c0-1.9.7-3.7 2.1-5 .4-.4 1-.4 1.4 0s.4 1 0 1.4C5.6 8.4 5 9.6 5 11c0 2.8 2.3 5.1 5.1 5.1s5.1-2.3 5.1-5.1c0-1.3-.5-2.5-1.3-3.4-.4-.4-.3-1 .1-1.4.4-.4 1-.3 1.4.1 1.2 1.3 1.9 3 1.9 4.8-.1 3.8-3.3 7-7.2 7z'/%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--add, .nav__link.is-active .nav__icon--add, .nav__link_sub:hover .nav__icon--add, .nav__link_sub.is-active .nav__icon--add {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--support, .nav__link.is-active .nav__icon--support, .nav__link_sub:hover .nav__icon--support, .nav__link_sub.is-active .nav__icon--support {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M11.9 2C17.5 2 22 6.5 22 12.1s-4.5 10.1-10.1 10.1S1.8 17.6 1.8 12.1 6.3 2 11.9 2zm-.2 13.6c-.7 0-1.2.5-1.2 1.2S11 18 11.7 18s1.2-.5 1.2-1.2-.6-1.2-1.2-1.2zm0-9.5c-.9 0-1.9.3-2.6.9C8.4 7.5 8 8.3 8 9c0 .6.5.9.9.9.7 0 .8-.4 1.1-.9.3-.6.6-1.3 1.8-1.3 1.1 0 1.7.6 1.7 1.6 0 .8-.6 1.3-1.2 1.8l-.5.4c-.6.5-1.2 1-1.2 1.9 0 .5.3 1 .9 1 .7 0 .8-.3 1-.8.1-.2.1-.4.3-.6.2-.3.5-.5.9-.8.9-.6 2-1.5 2-2.9.1-2.4-2.1-3.2-4-3.2z'/%3E%3C/svg%3E\");\r\n }\n.nav__link:hover .nav__icon--user-guide, .nav__link.is-active .nav__icon--user-guide, .nav__link_sub:hover .nav__icon--user-guide, .nav__link_sub.is-active .nav__icon--user-guide {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cpath d='M4.79 2.713h10.421a2 2 0 0 1 2 2v10.574a2 2 0 0 1-2 2H4.79a2 2 0 0 1-2-2V4.713a2 2 0 0 1 2-2zm1.605 5.205v1.041h7.211V7.918H6.395zm0 2.082v1.041h7.211V10H6.395zm0 2.082v1.041h7.211v-1.041H6.395zm0-6.246v1.041h7.211V5.836H6.395z'/%3E%3C/svg%3E\");\r\n }\n.nav__link {\r\n color: #fff;\r\n cursor: pointer;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.nav__text {\r\n color: #fff;\r\n font-size: 14px;\r\n line-height: 21px;\r\n }\n.nav--secondary__item {\r\n margin: 6px 0;\r\n }\n.nav--secondary__link {\r\n display: block; \r\n\r\n padding: 18px 24px;\r\n \r\n font-weight: 500;\r\n line-height: 1;\r\n color: rgba(102, 113, 130, 0.75);\r\n \r\n border-bottom: 1px solid #dfe3e8;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n overflow: auto;\r\n }\n.nav--secondary__link:hover .nav__icon--add {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23e51646'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n@media (min-width: 48em) {\n.nav--secondary__link {\r\n padding: 24px 24px\r\n }\r\n }\n.nav--secondary__link.is-active {\r\n font-weight: 600;\r\n color: #202e3c;\r\n border-bottom: 1px solid #e51646;\r\n }\n.nav--secondary__link.is-active .nav__icon--add {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23202e3c'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n.nav__eapp_link {\r\n display: block;\r\n padding: 6px;\r\n -webkit-border-radius: 2px;\r\n border-radius: 2px;\r\n opacity: 0.85;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n\r\n }\n.nav__eapp_link:hover {\r\n opacity: 1;\r\n }\n@media (min-width: 75em) {\n.nav__eapp_link {\r\n padding: 6px 18px\r\n\r\n }\r\n }\n.nav__eapp_link--disabled {\r\n color: #636363;\r\n }\n.nav__eapp_link--disabled:hover {\r\n color: #636363;\r\n opacity: 0.85;\r\n }\n.nav__eapp_link--disabled i {\r\n opacity: 0.6;\r\n }\n.nav__eapp_link--disabled i:hover {\r\n opacity: 0.6;\r\n }\n.nav__eapp_link--disabled.is-active {\r\n background-color: #e51646;\r\n color: #fff;\r\n opacity: 1;\r\n }\n.nav__icon {\r\n margin-right: 12px;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.nav__icon--settings {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%239e99a7'%3E%3Ctitle%3Eicons / 20px / settings-new%3C/title%3E%3Cdefs%3E%3Cpath d='M16.4 5.1L15 3.7l-2.1 1.1c-.3-.2-.7-.3-1.1-.4L11 2H9l-.8 2.3c-.3.1-.7.2-1 .4L5.1 3.6 3.6 5.1l1.1 2.1c-.2.3-.3.7-.4 1L2 9v2l2.3.8c.1.4.3.7.4 1.1L3.6 15 5 16.4l2.1-1.1c.3.2.7.3 1.1.4L9 18h2l.8-2.3c.4-.1.7-.3 1.1-.4l2.1 1.1 1.4-1.4-1.1-2.1c.2-.3.3-.7.4-1.1L18 11V9l-2.3-.8c-.1-.3-.2-.7-.4-1l1.1-2.1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse stroke='%23667182' stroke-width='1.4' xlink:href='%23a'/%3E%3Ccircle stroke='%23E51646' stroke-width='1.4' mask='url(%23b)' cx='10' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--settings-alt {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Ctitle%3Eicons / menu / Settings%3C/title%3E%3Cg transform='translate(2 2)'%3E%3Cpath fill='%23D8D8D8' d='M11.658 6.898l-8.123 8.124a2 2 0 0 1-2.829-2.829l5.036-5.036L3.536 4.95a1 1 0 0 1-1.415 0L.707 3.536a1 1 0 0 1 0-1.415L2.121.707a1 1 0 0 1 1.415 0L4.95 2.121a1 1 0 0 1 0 1.415l2.207 2.207L9.021 3.88A3.5 3.5 0 0 1 12.5 0c.248 0 .553.053.915.16a.501.501 0 0 1 .216.833l-1.299 1.318a1 1 0 0 0-.014 1.39l.016.017.02.02a.963.963 0 0 0 1.361-.003l1.298-1.305a.508.508 0 0 1 .849.222c.091.334.138.617.138.848a3.5 3.5 0 0 1-4.342 3.398zm-1.701 4.473l1.414-1.414a.999.999 0 0 1 1.414 0l2.828 2.828a.999.999 0 0 1 0 1.414l-1.414 1.414a.999.999 0 0 1-1.414 0l-2.828-2.828a.999.999 0 0 1 0-1.414z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M11.658 6.898l-8.123 8.124a2 2 0 0 1-2.829-2.829l5.036-5.036L3.536 4.95a1 1 0 0 1-1.415 0L.707 3.536a1 1 0 0 1 0-1.415L2.121.707a1 1 0 0 1 1.415 0L4.95 2.121a1 1 0 0 1 0 1.415l2.207 2.207L9.021 3.88A3.5 3.5 0 0 1 12.5 0c.248 0 .553.053.915.16a.501.501 0 0 1 .216.833l-1.299 1.318a1 1 0 0 0-.014 1.39l.016.017.02.02a.963.963 0 0 0 1.361-.003l1.298-1.305a.508.508 0 0 1 .849.222c.091.334.138.617.138.848a3.5 3.5 0 0 1-4.342 3.398zm-1.701 4.473l1.414-1.414a.999.999 0 0 1 1.414 0l2.828 2.828a.999.999 0 0 1 0 1.414l-1.414 1.414a.999.999 0 0 1-1.414 0l-2.828-2.828a.999.999 0 0 1 0-1.414z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-2h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--apikeys {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M15 10.7l-2.3-2.3-2.7 2.7c1.4 1.6 1.3 3.9-.1 5.5-1.6 1.6-4.1 1.6-5.7 0-1.6-1.6-1.6-4.1 0-5.7 1.1-1.2 2.7-1.5 4.1-.9l8-8 1.4 1.4-2 2L18 7.7l-3 3zM7 15a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--documentation {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M13 6L3 6.019a1 1 0 0 1 0-2L13 4v2zm4 5H7V9h10a1 1 0 0 1 0 2zm0-4.981L15 6V4l2 .019a1 1 0 0 1 0 2zM13 16H3a1 1 0 0 1 0-2h10v2zm4 0h-2v-2h2a1 1 0 0 1 0 2zM5 11H3a1 1 0 0 1 0-2h2v2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--profile {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M10 2c2.206 0 4 1.794 4 4v1c0 2.206-1.794 4-4 4S6 9.206 6 7V6c0-2.206 1.794-4 4-4zm4.036 9.426C15.797 12 17 13.311 17 15v3H3v-3c0-1.689 1.203-3 2.964-3.574A5.969 5.969 0 0 0 10 13c1.555 0 2.969-.6 4.036-1.574z'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23667182' xlink:href='%23a'/%3E%3Cg fill='%23667182' mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--devices {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M4 18a2 2 0 0 1-2-2v-1h16v1a2 2 0 0 1-2 2H4zm13-7v3H3v-3c0-.3.1-.5.3-.7L5 8.6V7c0-.6.4-1 1-1h6V5h-2V4a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v1h-2v1h1c.6 0 1 .4 1 1v1.6l1.7 1.7c.2.2.3.4.3.7z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--payment-forms {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M3 13a1 1 0 0 1 0-2h1a1 1 0 0 1 0 2H3zm0 4a1 1 0 0 1 0-2h1a1 1 0 0 1 0 2H3zm0-8a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2H3zm0-4a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2H3zm5 8a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2H8zm0 4a1 1 0 0 1 0-2h4a1 1 0 0 1 0 2H8zm0-8a1 1 0 1 1 0-2h5a1 1 0 0 1 0 2H8zm0-4a1 1 0 1 1 0-2h9a1 1 0 0 1 0 2H8z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--fraud {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M17 12v1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1v-1c0-1.654 1.346-3 3-3s3 1.346 3 3zm-4 0v1h2v-1a1.001 1.001 0 0 0-2 0zm5-2.984C11.904 5.129 8.95 9.494 9.06 14H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5.016zM8 8a1 1 0 1 0-2 0 1 1 0 0 0 2 0z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--gift-cards {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M15 13.997V6H5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1c-1.1 0-2 .899-2 2 0 1.1.9 2 2 2v.997a2 2 0 0 1-2 2zM12 7a2 2 0 0 1 2 2v1c-1.1 0-2 .899-2 2 0 1.1.9 2 2 2v.997a2 2 0 0 1-2 2l-8 .002a2 2 0 0 1-2-2V14c1.1 0 2-.9 2-2s-.9-2-2-2V9a2 2 0 0 1 2-2h8z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--gift-report {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Ctitle%3Eicons / menu / Gift report%3C/title%3E%3Cg transform='translate(2 2)'%3E%3Cpath fill='%23111' d='M13 9c.6 0 1 .4 1 1v5c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h10zm.8-5H15a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h1.2c-.1-.3-.2-.6-.2-1 0-1.7 1.3-3 3-3 1.4 0 2.4.8 3 1.7C8.6.8 9.6 0 11 0c1.7 0 3 1.3 3 3 0 .4-.1.7-.2 1zM11 2C9.9 2 9.4 3.1 9.2 4H11c.6 0 1-.4 1-1s-.4-1-1-1zM4 3c0 .6.4 1 1 1h1.8c-.2-.9-.7-2-1.8-2-.6 0-1 .4-1 1z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-2' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M13 9c.6 0 1 .4 1 1v5c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-5c0-.6.4-1 1-1h10zm.8-5H15a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h1.2c-.1-.3-.2-.6-.2-1 0-1.7 1.3-3 3-3 1.4 0 2.4.8 3 1.7C8.6.8 9.6 0 11 0c1.7 0 3 1.3 3 3 0 .4-.1.7-.2 1zM11 2C9.9 2 9.4 3.1 9.2 4H11c.6 0 1-.4 1-1s-.4-1-1-1zM4 3c0 .6.4 1 1 1h1.8c-.2-.9-.7-2-1.8-2-.6 0-1 .4-1 1z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-2h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--fraudwatch {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Ctitle%3Eicons / menu / Fraud report%3C/title%3E%3Cg transform='translate(2 5)'%3E%3Cpath d='M12.5 2.992V3a3 3 0 1 1-5.952-.535c-1.693.794-3.057 2.519-4.634 5.392l-.006.011c-.257.47-.856.658-1.353.425a.94.94 0 0 1-.454-1.278l.013-.025.024-.043C2.751 2.199 5.178 0 9.082 0c.09 0 .178.001.266.004a2.996 2.996 0 0 1 .716.049c2.633.29 4.688 1.745 5.682 3.92.067.148.14.364.217.646.049.183.046.376-.01.557a8.59 8.59 0 0 1-.409 1.121C14.437 8.608 12.112 10 9.082 10c-1.724 0-3.227-.702-4.537-1.889a8.182 8.182 0 0 1-.253-.243.9.9 0 0 1 .08-1.354l.042-.034c.403-.32.995-.291 1.36.068.118.118.22.212.306.286.926.787 1.927 1.228 3.002 1.228 2.078 0 3.621-.816 4.456-2.241.071-.121.153-.291.245-.508a.998.998 0 0 0-.035-.857 3.783 3.783 0 0 0-.17-.298A4.536 4.536 0 0 0 12.5 2.992z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='-2' y='-5' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='-2' y='-5' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M12.5 2.992V3a3 3 0 1 1-5.952-.535c-1.693.794-3.057 2.519-4.634 5.392l-.006.011c-.257.47-.856.658-1.353.425a.94.94 0 0 1-.454-1.278l.013-.025.024-.043C2.751 2.199 5.178 0 9.082 0c.09 0 .178.001.266.004a2.996 2.996 0 0 1 .716.049c2.633.29 4.688 1.745 5.682 3.92.067.148.14.364.217.646.049.183.046.376-.01.557a8.59 8.59 0 0 1-.409 1.121C14.437 8.608 12.112 10 9.082 10c-1.724 0-3.227-.702-4.537-1.889a8.182 8.182 0 0 1-.253-.243.9.9 0 0 1 .08-1.354l.042-.034c.403-.32.995-.291 1.36.068.118.118.22.212.306.286.926.787 1.927 1.228 3.002 1.228 2.078 0 3.621-.816 4.456-2.241.071-.121.153-.291.245-.508a.998.998 0 0 0-.035-.857 3.783 3.783 0 0 0-.17-.298A4.536 4.536 0 0 0 12.5 2.992z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M-2-5h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--customers {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M12.2 13.404c.5.4.8 1 .8 1.6v2c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1v-1.9c0-.6.3-1.2.8-1.6l2.7-2.1c-.9-.7-1.5-1.7-1.5-2.9v-1c0-2 1.7-3.6 3.7-3.5 1.9.1 3.3 1.8 3.3 3.7v.8c0 1.2-.6 2.2-1.5 2.9l2.7 2zm4.7-4.97c.6.4.9 1 .9 1.7v.8c0 .6-.4 1-1 1h-3.4c0-.1-1.2-1-1.2-1 .4-.7.6-1.6.6-2.5v-1c0-1.6-.7-3-1.8-4 .5-.9 1.5-1.6 2.7-1.4 1.2.2 2.1 1.4 2.1 2.6v.9c0 .7-.3 1.3-.7 1.7l1.8 1.2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--recurring-payments {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M6.5 12a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm4.3-8.9c3.859 0 7 3.14 7 7s-3.141 7-7 7v-2c2.757 0 5-2.243 5-5s-2.243-5-5-5a5.023 5.023 0 0 0-3.535 1.465L9.4 8.7 3 9.4 3.7 3l2.152 2.152A7.022 7.022 0 0 1 10.8 3.1z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--invoices {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M6 8h8V6H6v2zm0 4h8v-2H6v2zM3 4v14l3-2 2 2 2-2 2 2 2-2 3 2V4a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--batches {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%239e99a7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.6 5.6h11.2a1.6 1.6 0 0 1 1.6 1.6v5.6a1.6 1.6 0 0 1-1.6 1.6H3.2a1.6 1.6 0 0 1-1.6-1.6V5.6zm8.8 4.4c0 .64.56 1.2 1.2 1.2.64 0 1.2-.56 1.2-1.2 0-.64-.56-1.2-1.2-1.2-.64 0-1.2.56-1.2 1.2zM8 1.6a1.6 1.6 0 0 1 1.6 1.6V4h-8v-.8a1.6 1.6 0 0 1 1.6-1.6H8z'/%3E%3C/svg%3E\");\r\n }\n.nav__icon--transactions {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M6.978 7h1V5.5a.5.5 0 0 0-1 0V7zm0 8h1v-2h-1v2zM2 4v.01c0 .547.443.99.99.99a.99.99 0 0 1 .988.99V15a2 2 0 0 0 2 2h3a2 2 0 0 0 2-2V6a1 1 0 1 1 2 0v9.5a1.5 1.5 0 0 0 3 0V6.044c0-.577.468-1.044 1.044-1.044h.044a.958.958 0 0 0 .956-1c-.024-.56-.485-1-1.045-1H3a1 1 0 0 0-1 1z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--newtransaction {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='7' fill='%23fff'/%3E%3Cpath d='M10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm1-9V6a1 1 0 1 0-2 0v3H6a1 1 0 0 0 0 2h3v3a1 1 0 1 0 2 0v-3h3a1 1 0 1 0 0-2h-3z' fill='%23D8D8D8'/%3E%3Cmask id='a' maskUnits='userSpaceOnUse' x='2' y='2' width='16' height='16'%3E%3Cpath d='M10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm1-9V6a1 1 0 1 0-2 0v3H6a1 1 0 0 0 0 2h3v3a1 1 0 1 0 2 0v-3h3a1 1 0 1 0 0-2h-3z' fill='%23fff'/%3E%3C/mask%3E%3Cg mask='url(%23a)'%3E%3Cpath d='M20 0H0v20h20V0z' fill='%23A61032'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--reports {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M8 17H3v-.268A2 2 0 0 1 2 15V7a2 2 0 0 1 2-2v9h2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H8zm1-9v1h6V8H9zm0 2v1h6v-1H9zm0 2v1h6v-1H9zm0-6v1h6V6H9z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--users {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%239e99a7'%3E%3Ctitle%3Eicons / menu / Users%3C/title%3E%3Cdefs%3E%3Cpath d='M12.273 9.058c.454.343.727.857.727 1.371v1.714c0 .514-.364.857-.91.857H3.91c-.546 0-.91-.343-.91-.857v-1.628c0-.514.273-1.028.727-1.37l2.455-1.8c-.818-.6-1.364-1.457-1.364-2.485v-.857c0-1.714 1.546-3.085 3.364-3 1.727.086 3 1.543 3 3.171v.686c0 1.028-.546 1.885-1.364 2.485l2.455 1.713zM14.062 8a3.946 3.946 0 0 0-.582-.538l-.06-.043-.701-.49a4.78 4.78 0 0 0 .466-2.07v-.685A5.184 5.184 0 0 0 11.7.546c.368-.36.87-.572 1.412-.543 1.036.057 1.8 1.028 1.8 2.113v.457c0 .686-.327 1.257-.818 1.657l1.473 1.142c.272.229.436.572.436.914V7.43c0 .343-.218.571-.545.571h-1.396zM1.941 8H.545C.218 8 0 7.772 0 7.429V6.286c0-.342.164-.685.436-.914L1.91 4.23c-.49-.4-.818-.971-.818-1.657v-.457c0-1.085.764-2.056 1.8-2.113a1.872 1.872 0 0 1 1.412.543 5.184 5.184 0 0 0-1.485 3.628v.686c0 .738.164 1.435.466 2.068l-.702.49-.059.044c-.213.16-.408.341-.582.538z' id='a'/%3E%3C/defs%3E%3Cg transform='translate(2 4)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23667182' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23667182'%3E%3Cpath d='M-2-4h20v20H-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--dashboard {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cdefs%3E%3Cpath id='a' d='M5 3h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm8 0h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-8 8h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2zm8 0h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--filter {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239e99a7'%3E%3Ctitle%3Eicons / 20px / filter-old%3C/title%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Crect fill='%23667182' x='2' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='5' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 12.5 6)' x='9' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='2' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 7.5 14)' x='4' y='13' width='7' height='2' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.nav__icon--merchants {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%239e99a7'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.646 9.412v9.338h10.707V9.412h2.223v9.9c0 .932-.746 1.688-1.667 1.688H6.091c-.92 0-1.667-.756-1.667-1.688v-9.9h2.222z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.919 3H19.08L22 7.74l.001.32c.004 1.646-1.151 3.033-2.722 3.397a3.572 3.572 0 0 1-2.967-.635 3.55 3.55 0 0 1-4.311.001 3.551 3.551 0 0 1-4.311-.001 3.572 3.572 0 0 1-2.967.635C3.152 11.093 1.996 9.707 2 8.06v-.32L4.92 3zm1.233 2.25L4.253 8.334c.103.434.455.811.965.93.618.143 1.227-.155 1.487-.66l.99-1.926.983 1.93c.208.409.653.692 1.167.692s.96-.283 1.167-.692L12 6.669l.988 1.939c.208.409.653.692 1.167.692s.959-.283 1.167-.692l.983-1.93.99 1.926c.26.505.869.803 1.487.66.51-.119.861-.496.965-.93L17.848 5.25H6.152z'/%3E%3C/svg%3E\");\r\n }\n.nav__icon--logout {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cpath d='M10.1 9.6c-.6 0-1-.4-1-1V3.2c0-.6.4-1 1-1s1 .4 1 1v5.3c0 .6-.4 1.1-1 1.1z'/%3E%3Cpath d='M10.1 18.1C6.2 18.1 3 14.9 3 11c0-1.9.7-3.7 2.1-5 .4-.4 1-.4 1.4 0s.4 1 0 1.4C5.6 8.4 5 9.6 5 11c0 2.8 2.3 5.1 5.1 5.1s5.1-2.3 5.1-5.1c0-1.3-.5-2.5-1.3-3.4-.4-.4-.3-1 .1-1.4.4-.4 1-.3 1.4.1 1.2 1.3 1.9 3 1.9 4.8-.1 3.8-3.3 7-7.2 7z'/%3E%3C/svg%3E\");\r\n }\n.nav__icon--add {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%239e99a7'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n.nav__icon--support {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%239e99a7'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M11.9 2C17.5 2 22 6.5 22 12.1s-4.5 10.1-10.1 10.1S1.8 17.6 1.8 12.1 6.3 2 11.9 2zm-.2 13.6c-.7 0-1.2.5-1.2 1.2S11 18 11.7 18s1.2-.5 1.2-1.2-.6-1.2-1.2-1.2zm0-9.5c-.9 0-1.9.3-2.6.9C8.4 7.5 8 8.3 8 9c0 .6.5.9.9.9.7 0 .8-.4 1.1-.9.3-.6.6-1.3 1.8-1.3 1.1 0 1.7.6 1.7 1.6 0 .8-.6 1.3-1.2 1.8l-.5.4c-.6.5-1.2 1-1.2 1.9 0 .5.3 1 .9 1 .7 0 .8-.3 1-.8.1-.2.1-.4.3-.6.2-.3.5-.5.9-.8.9-.6 2-1.5 2-2.9.1-2.4-2.1-3.2-4-3.2z'/%3E%3C/svg%3E\");\r\n }\n.nav__icon--user-guide {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%239e99a7'%3E%3Cpath d='M4.79 2.713h10.421a2 2 0 0 1 2 2v10.574a2 2 0 0 1-2 2H4.79a2 2 0 0 1-2-2V4.713a2 2 0 0 1 2-2zm1.605 5.205v1.041h7.211V7.918H6.395zm0 2.082v1.041h7.211V10H6.395zm0 2.082v1.041h7.211v-1.041H6.395zm0-6.246v1.041h7.211V5.836H6.395z'/%3E%3C/svg%3E\");\r\n }\n.nav__image {\r\n width: 30px;\r\n margin-left: 6px;\r\n }\n.nav--tertiary {\r\n background-color: rgba(223, 227, 232, 0.25);\r\n }\n.nav--tertiary__item {\r\n position: relative;\r\n cursor: pointer;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.nav--tertiary__item:last-child {\r\n border-bottom: none;\r\n }\n.nav--tertiary__link {\r\n display: block;\r\n\r\n position: relative;\r\n padding: 24px;\r\n padding-right: 48px;\r\n\r\n font-size: 16px;\r\n\r\n line-height: 21px;\r\n font-weight: 500;\r\n }\n.nav--tertiary__link--hover {\r\n background-color: #ebeef0;\r\n color: #202e3c;\r\n }\n.nav--tertiary__link.is-active {\r\n color: #e51646;\r\n }\n.nav--tertiary__arrow {\r\n position: absolute;\r\n right: 24px;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.nav--tertiary__level-0.is-active:before {\r\n content: '';\r\n \r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n \r\n background-color: #e51646;\r\n width: 3px;\r\n \r\n }\n.nav--tertiary__level-1 {\r\n position: absolute;\r\n top: 0;\r\n left: 100%;\r\n width: 240px;\r\n\r\n background-color: rgba(223, 227, 232, 0.25);\r\n\r\n -webkit-box-shadow: 9px 0px 12px 0px rgba(0, 0, 0, 0.2);\r\n\r\n box-shadow: 9px 0px 12px 0px rgba(0, 0, 0, 0.2);\r\n }\n.nav--tertiary__level-1__item {\r\n position: relative;\r\n background-color: #ebeef0;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.nav--tertiary__level-1__item:last-child {\r\n border-bottom: none;\r\n }\n.nav--tertiary__level-2 {\r\n position: absolute;\r\n top: 0;\r\n left: 100%;\r\n width: 240px;\r\n \r\n -webkit-box-shadow: 9px 0px 12px 0px rgba(0, 0, 0, 0.15);\r\n \r\n box-shadow: 9px 0px 12px 0px rgba(0, 0, 0, 0.15);\r\n }\n.nav--tertiary__level-2__item {\r\n position: relative;\r\n background-color: #ffffff;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.nav--tertiary__level-2__item:last-child {\r\n border-bottom: none;\r\n }\n/*------------------------------------*\\\r\n # components.terms\r\n\\*------------------------------------*/\n.terms {\r\n overflow: hidden;\r\n margin: 6px 0;\r\n padding: 18px;\r\n background-color: #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n}\n@media (min-width: 75em) {\n.terms {\r\n margin: 0 0 18px\r\n}\r\n }\n/*@import \"components.reports.css\";\r\n@import \"components.batches.css\";*/\n/*------------------------------------*\\\r\n # components.dashboard\r\n\\*------------------------------------*/\n.dashboard__quicknav {\r\n position: relative;\r\n display: table-cell;\r\n height: 68px;\r\n padding: 12px 24px 12px 54px;\r\n font-size: 14px;\r\n line-height: 18.375px;\r\n font-weight: 500;\r\n border-top: 1px solid #dfe3e8;\r\n border-bottom: 1px solid #dfe3e8;\r\n vertical-align: middle;\r\n }\n.dashboard__quicknav:before, .dashboard__quicknav:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n }\n.dashboard__quicknav:before {\r\n left: 0;\r\n width: 54px; \r\n background-repeat: no-repeat;\r\n -webkit-background-size: 20px 20px;\r\n background-size: 20px;\r\n background-position: center; \r\n }\n.dashboard__quicknav:after {\r\n right: 9px;\r\n width: 12px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-6 -7 20 20' enable-background='new -6 -7 20 20' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / arrow%3C/title%3E%3Cg transform='translate(-6 -7)'%3E%3Cpath fill='%23667182' d='M12.037 10l-4 4L7 12.963 9.963 10 7 7.037 8.037 6z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='0' y='0' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='0' y='0' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M12.037 10l-4 4L7 12.963 9.963 10 7 7.037 8.037 6z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath fill='%23E51646' d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: center center;\r\n }\n.dashboard__quicknav--primary:before {\r\n background-image: url(" + __webpack_require__(/*! ../images/quickicon-report.svg */ "./src/styles/images/quickicon-report.svg") + ");\r\n }\n.dashboard__quicknav--secondary:before {\r\n background-image: url(" + __webpack_require__(/*! ../images/quickicon-batches.svg */ "./src/styles/images/quickicon-batches.svg") + ");\r\n }\n.dashboard__quicknav--tertiary:before {\r\n background-image: url(" + __webpack_require__(/*! ../images/quickicon-transaction.svg */ "./src/styles/images/quickicon-transaction.svg") + ");\r\n }\n.dashboard__quicknav--quaternary {\r\n background-color: #f3f6f9;\r\n }\n.dashboard__quicknav--quaternary:before {\r\n background-image: url(" + __webpack_require__(/*! ../images/quickicon-card.svg */ "./src/styles/images/quickicon-card.svg") + ");\r\n }\n.dashboard__quicknav__holder {\r\n display: table;\r\n width: 100%;\r\n margin-top: -1px;\r\n }\n.dashboard__message {\r\n position: relative;\r\n display: block;\r\n height: 68px;\r\n margin-top: -1px;\r\n padding: 12px 24px 12px 54px;\r\n border-top: 1px solid #dfe3e8;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.dashboard__message:before, .dashboard__message:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n }\n.dashboard__message:before {\r\n left: 0;\r\n width: 54px;\r\n background-image: url(" + __webpack_require__(/*! ../images/latest-blog.svg */ "./src/styles/images/latest-blog.svg") + ");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 20px 20px;\r\n background-size: 20px;\r\n background-position: center 15px; \r\n }\n.dashboard__message:after {\r\n right: 0;\r\n width: 12px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-6 -7 20 20' enable-background='new -6 -7 20 20' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / arrow%3C/title%3E%3Cg transform='translate(-6 -7)'%3E%3Cpath fill='%23667182' d='M12.037 10l-4 4L7 12.963 9.963 10 7 7.037 8.037 6z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='0' y='0' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='0' y='0' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M12.037 10l-4 4L7 12.963 9.963 10 7 7.037 8.037 6z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath fill='%23E51646' d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: center;\r\n }\n.dashboard__message__details {\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n color: #667182;\r\n }\n.dashboard__message__title {\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n font-weight: 500;\r\n }\n@media (min-width: 48em) {\n.dashboard__message__title {\r\n font-size: 14px;\r\n line-height: 21px\r\n }\r\n }\n.dashboard__message__date {\r\n display: inline-block;\r\n max-width: 102px;\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n }\n.dashboard__chart__emptystate {\r\n z-index: 1;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n width: 252px;\r\n margin: 0 auto;\r\n padding: 36px 0;\r\n }\n@media (min-width: 48em) {\n.dashboard__chart__emptystate {\r\n top: 60px;\r\n width: 324px;\r\n padding: 60px 0\r\n }\r\n }\n.dashboard__chart__tooltip {\r\n width: 216px;\r\n padding: 18px 24px;\r\n background-color: #fff;\r\n color: #667182; \r\n -webkit-border-radius: 4px; \r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 2px 4px #d9d9d9;\r\n box-shadow: 0 2px 4px #d9d9d9;\r\n }\n.dashboard__statuses {\r\n margin-top: 12px;\r\n }\n@media (min-width: 34em) {\n.dashboard__statuses {\r\n float: right;\r\n margin-top: 0\r\n }\r\n }\n.dashboard__status {\r\n margin-bottom: 18px;\r\n padding: 12px;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n@media (min-width: 48em) {\n.dashboard__status {\r\n margin-bottom: 36px\r\n }\r\n }\n@media (min-width: 75em) {\n.dashboard__status {\r\n margin-bottom: 12px; \r\n padding: 12px 18px 6px\r\n }\r\n }\n@media (min-width: 90em) {\n.dashboard__status {\r\n margin-bottom: 36px; \r\n padding: 24px 18px 12px\r\n }\r\n }\n@media (min-width: 100em) {\n.dashboard__status {\r\n padding: 30px 18px 24px\r\n }\r\n }\n.dashboard__status__label {\r\n position: relative;\r\n padding-left: 18px;\r\n }\n.dashboard__status__label:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 6px;\r\n left: 0;\r\n width: 8px;\r\n height: 8px;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n }\n@media (max-width: 47.9375em) {\n.dashboard__status__label {\r\n font-size: 11px;\r\n line-height: 21px\r\n }\r\n }\n.dashboard__status__label--status {\r\n margin-bottom: 6px;\r\n }\n@media (min-width: 48em) {\n.dashboard__status__label--status {\r\n margin-bottom: 12px\r\n }\r\n }\n@media (min-width: 62em) {\n.dashboard__status__label--status {\r\n margin-bottom: 18px\r\n }\r\n }\n.dashboard__status__label--chart {\r\n margin-left: 24px;\r\n font-size: 12px;\r\n line-height: 21px;\r\n }\n.dashboard__status__label--chart:first-child {\r\n margin-left: 0;\r\n }\n.dashboard__status__label--chart:before {\r\n top: 3px;\r\n }\n.dashboard__status__label--primary:before {\r\n background-color: #6a4aa0;\r\n }\n.dashboard__status__label--secondary:before {\r\n background-color: #e51646;\r\n }\n.dashboard__status__label--tertiary:before {\r\n background-color: #efbc23;\r\n }\n.dashboard__status__label--quaternary:before {\r\n background-color: #cdd1d6;\r\n }\n.dashboard__status__value {\r\n font-size: 16px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n }\n@media (min-width: 48em) {\n.dashboard__status__value {\r\n font-size: 33px;\r\n line-height: 42px\r\n }\r\n }\n@media (min-width: 75em) {\n.dashboard__status__value {\r\n font-size: 21px;\r\n line-height: 42px\r\n }\r\n }\n@media (min-width: 90em) {\n.dashboard__status__value {\r\n font-size: 33px;\r\n line-height: 42px\r\n }\r\n }\n/*@import \"components.transactions.css\";\r\n@import \"components.newtransaction.css\";*/\n/*------------------------------------*\\\r\n # components.timepicker\r\n\\*------------------------------------*/\n.timepicker {\r\n margin-right: -6px;\r\n margin-left: -6px;\r\n}\n.timepicker:after {\r\n content:\"\";\r\n display:table;\r\n clear:both;\r\n }\n.timepicker__label {\r\n float: left;\r\n width: 42px;\r\n padding: 9px 6px 0;\r\n font-size: 14px;\r\n line-height: 21px;\r\n color: #404a58;\r\n font-weight: 500;\r\n }\n.timepicker__value {\r\n float: left;\r\n width: -webkit-calc(100% - 42px);\r\n width: calc(100% - 42px);\r\n padding: 0 6px;\r\n }\n/*@import \"components.creditcard.css\";\r\n@import \"components.check.css\";\r\n@import \"components.echeck.css\";*/\n/*------------------------------------*\\\r\n # components.grid\r\n\\*------------------------------------*/\n.grid__holder {\r\n position: relative;\r\n width: 100%;\r\n /* overflow: auto; */\r\n -webkit-box-shadow: 0 3px 12px #dfe3e8;\r\n box-shadow: 0 3px 12px #dfe3e8;\r\n }\n@media (max-width: 47.9375em) {\n.grid__holder {\r\n font-size: 12px;\r\n line-height: 15.75px\r\n }\r\n }\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n.grid__holder.is-expanded {\r\n margin-bottom: 60px\r\n }\r\n }\n.grid__holder .react-grid-Empty {\r\n overflow: scroll;\r\n position: absolute;\r\n top: 90px;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n }\n.grid__holder .react-grid-Main {\r\n position: relative;\r\n outline: none;\r\n }\n.grid__holder .react-grid-Main:before,\r\n .grid__holder .react-grid-Main:after {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n width: 1px;\r\n height: 35px;\r\n background-color: #fff;\r\n z-index: 9;\r\n }\n.grid__holder .react-grid-Main:before {\r\n left: 0;\r\n }\n.grid__holder .react-grid-Main:after {\r\n right: 0;\r\n }\n.grid__holder .react-grid-Grid {\r\n border-top: none;\r\n border: none;\r\n }\n.grid__holder .react-grid-Container {\r\n width: 100% !important;\r\n min-height: 276px;\r\n }\n.grid__holder .react-grid-Header {\r\n background-color: #fff;\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\n.grid__holder .react-grid-HeaderRow {\r\n background-color: #fff;\r\n height: 36px !important;\r\n }\n.grid__holder .react-grid-Canvas {\r\n width: 100%;\r\n }\n.grid__holder .react-grid-Canvas > div {\r\n width: -webkit-calc(100% - 8px);\r\n width: calc(100% - 8px);\r\n }\n@media (min-width: 62em) {\n.grid__holder .grid-style-even {\r\n background-color: #f3f6f9\r\n }\r\n }\n.grid__holder .grid-style-odd {\r\n background-color: #fff;\r\n }\n.grid__holder .grid-style-odd .react-grid-Cell {\r\n background-color: #fff;\r\n }\n.grid__holder .react-grid-HeaderCell {\r\n background-color: transparent;\r\n color: #202e3c;\r\n font-weight: 500;\r\n text-transform: capitalize;\r\n border-right: none;\r\n border-bottom: 0;\r\n }\n.grid__holder .react-grid-HeaderCell:first-child {\r\n padding-left: 18px;\r\n }\n.grid__holder .react-grid-HeaderCell .Select {\r\n margin-top: -1px;\r\n border: 1px solid #dfe3e8;\r\n }\n.grid__holder .react-grid-HeaderCell .Select-control {\r\n height: 28px;\r\n border: none;\r\n }\n.grid__holder .react-grid-HeaderCell__draggable {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H3v2h2V0zm3 0H6v2h2V0zM3 3h2v2H3V3zm5 0H6v2h2V3zM3 6h2v2H3V6zm5 0H6v2h2V6zM3 9h2v2H3V9zm5 0H6v2h2V9z' fill='%23C4C4C4'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 11px 11px;\r\n background-size: 11px;\r\n width: 11px !important;\r\n height: 11px !important;\r\n top: 13px !important;\r\n right: 6px !important;\r\n }\n.grid__holder .react-grid-HeaderCell__draggable:hover {\r\n cursor: col-resize;\r\n }\n.grid__holder .react-grid-HeaderCell-sortable {\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n }\n.grid__holder .react-grid-Row {\r\n position: relative;\r\n overflow: visible !important;\r\n height: 48px !important;\r\n }\n.grid__holder .react-grid-Row:hover {\r\n -webkit-box-shadow: inset 1px 0 0 #dadce0, inset -1px 0 0 #dadce0,\r\n 0 1px 2px 0 rgba(60, 64, 67, 0.3),\r\n 0 1px 3px 1px rgba(60, 64, 67, 0.15);\r\n box-shadow: inset 1px 0 0 #dadce0, inset -1px 0 0 #dadce0,\r\n 0 1px 2px 0 rgba(60, 64, 67, 0.3),\r\n 0 1px 3px 1px rgba(60, 64, 67, 0.15);\r\n }\n.grid__holder .react-grid-Cell {\r\n height: 100% !important;\r\n border-right: none;\r\n background-color: #f3f6f9;\r\n border-color: #dee4e9;\r\n -webkit-user-select: text;\r\n -moz-user-select: text;\r\n -ms-user-select: text;\r\n user-select: text;\r\n }\n.grid__holder .react-grid-Cell:first-child {\r\n font-weight: 500;\r\n }\n.grid__holder .react-grid-Cell:first-child .rdg-cell-expand {\r\n float: left;\r\n padding-right: 12px;\r\n }\n.grid__holder .react-grid-Cell:first-child .react-grid-Cell__value {\r\n overflow: unset;\r\n }\n.grid__holder .react-grid-Cell:focus {\r\n outline: none;\r\n }\n.grid__holder .react-grid-Cell:hover {\r\n background-color: transparent;\r\n }\n.grid__holder .react-grid-Cell__value div span div {\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\n.grid__holder--nohover .react-grid-Row:hover {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\n.grid__holder .react-grid-HeaderCell-sortable .pull-right {\r\n display: none;\r\n }\n.grid__holder .react-grid-HeaderCell-sortable:after {\r\n content: \"\";\r\n display: inline-block;\r\n width: 12px;\r\n height: 12px;\r\n margin-left: 6px;\r\n background-image: url(\r\n \"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12h6l-3 3.6L7 12zm6-3.4H7L10 5l3 3.6z' fill='%23B8B8B8'/%3E%3C/svg%3E\"\r\n );\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: center center;\r\n }\n.grid__holder .react-grid-HeaderCell-sortable.react-grid-HeaderCell-sortable--ascending:after {\r\n content: \"\";\r\n display: inline-block;\r\n width: 12px;\r\n height: 12px;\r\n margin-left: 6px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='4' viewBox='0 0 6 4' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 3.646l-3-3.6-3 3.6h6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 6px 6px;\r\n background-size: 6px;\r\n background-position: center center;\r\n }\n.grid__holder .react-grid-HeaderCell-sortable.react-grid-HeaderCell-sortable--descending:after {\r\n content: \"\";\r\n display: inline-block;\r\n width: 12px;\r\n height: 12px;\r\n margin-left: 6px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='4' viewBox='0 0 6 4' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / dropdown%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M7 8l3 3.6L13 8z'/%3E%3C/defs%3E%3Cg transform='translate(-7 -8)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23b8b8b8' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23b8b8b8'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 6px 6px;\r\n background-size: 6px;\r\n background-position: center center;\r\n }\n.grid__holder .react-grid-Row.row-context-menu .react-grid-Cell,\r\n .grid__holder .react-grid-Row:hover .react-grid-Cell {\r\n background-color: transparent;\r\n }\n.grid__holder .rdg-selected {\r\n border: none !important;\r\n }\n.grid--pointer .react-grid-Row {\r\n cursor: pointer;\r\n }\n.grid__creditcard {\r\n width: 27px;\r\n height: auto;\r\n margin-right: 8px;\r\n }\n.grid__footer {\r\n z-index: 9;\r\n\r\n position: relative;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n\r\n width: 100%;\r\n padding-top: 12px;\r\n }\n@media (min-width: 34em) {\n.grid__footer {\r\n padding-bottom: 12px\r\n }\r\n }\n@media (min-width: 48em) {\n.grid__footer {\r\n padding: 12px\r\n }\r\n }\n.grid__footer__action {\r\n \r\n }\n@media (min-width: 34em) {\n.grid__footer__results {\r\n display: block;\r\n float: left;\r\n margin-left: 12px\r\n }\r\n }\n.grid__footer__details {\r\n float: none;\r\n display: inline-block;\r\n width: 100%;\r\n margin-top: 6px;\r\n }\n@media (min-width: 48em) {\n.grid__footer__details {\r\n float: right;\r\n width: auto;\r\n margin-top: 0;\r\n margin-right: 12px\r\n }\r\n }\n.grid__footer.is-fixed {\r\n position: -webkit-sticky;\r\n position: sticky;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: #fff;\r\n }\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n.grid__footer.is-fixed {\r\n position: fixed;\r\n left: 280px;\r\n max-width: 100%\r\n }\r\n }\n.grid__expansion {\r\n background-color: #f6f8ff;\r\n padding: 12px 15px 0;\r\n }\n.grid__expansion--recurring {\r\n background-color: #fff;\r\n }\n.grid__expansion__header {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n }\n@media (max-width: 33.9375em) {\n.grid__expansion__header {\r\n display: block\r\n }\r\n }\n.grid__expansion__header__btn {\r\n margin-top: 0;\r\n margin-left: 24px;\r\n padding-left: 12px;\r\n border-left: 1px solid #dfe3e8;\r\n }\n@media (max-width: 33.9375em) {\n.grid__expansion__header__btn {\r\n overflow: hidden;\r\n padding-left: 0;\r\n margin-left: -12px\r\n }\r\n }\n.grid__expansion__main {\r\n height: -webkit-calc(100vh - 150px);\r\n height: calc(100vh - 150px);\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n }\n.grid__expansion__wrap {\r\n max-width: 1440px;\r\n }\n.grid__expansion__btn {\r\n float: left;\r\n margin-right: 9px;\r\n }\n.grid__expansion__popup {\r\n position: absolute;\r\n top: -webkit-calc(100% + 12px);\r\n top: calc(100% + 12px);\r\n right: -46px;\r\n width: 300px;\r\n padding: 12px;\r\n background-color: #fff;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n z-index: 1;\r\n }\n.grid__expansion__popup:before,\r\n .grid__expansion__popup:after {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n right: 69px;\r\n width: 0;\r\n height: 0;\r\n }\n.grid__expansion__popup:before {\r\n top: -9px;\r\n border-left: 9px solid transparent;\r\n border-right: 9px solid transparent;\r\n border-bottom: 9px solid #dfe3e8;\r\n }\n.grid__expansion__popup:after {\r\n top: -8px;\r\n border-left: 9px solid transparent;\r\n border-right: 9px solid transparent;\r\n border-bottom: 9px solid #fff;\r\n }\n.grid__expansion__signature {\r\n max-width: 240px;\r\n max-height: 72px;\r\n }\n.grid__expansion__title {\r\n margin: 6px 0;\r\n\r\n font-size: 16px;\r\n\r\n line-height: 21px;\r\n }\n.grid__expansion__status {\r\n font-size: 15px;\r\n line-height: 21px;\r\n }\n.grid__expansion__value {\r\n word-break: break-word;\r\n color: #404a58;\r\n margin-bottom: 12px;\r\n font-size: 14px;\r\n line-height: 21px;\r\n\r\n font-weight: 500;\r\n }\n.grid__recurring {\r\n background-color: #fff;\r\n }\n.grid__recurring__tabs {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n position: relative;\r\n \r\n -webkit-box-align: end;\r\n \r\n -webkit-align-items: flex-end;\r\n \r\n -ms-flex-align: end;\r\n \r\n align-items: flex-end;\r\n overflow-x: auto;\r\n }\n@media (min-width: 48em) {\n.grid__recurring__tabs {\r\n padding: 0\r\n }\r\n }\n.grid__recurring__tabs:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n height: 1px;\r\n width: 100%;\r\n background-color: #dfe3e8;\r\n }\n.grid__recurring__tabs__fade {\r\n position: relative;\r\n padding: 0 15px;\r\n }\n.grid__recurring__tabs__fade:before {\r\n content:'';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 10px;\r\n width: 30px;\r\n background: -webkit-gradient(linear, right top, left top, color-stop(-32.93%, rgba(255, 255, 255, 0)), color-stop(55%, #FFFFFF));\r\n background: -webkit-linear-gradient(right, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: -o-linear-gradient(right, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: linear-gradient(270deg, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n z-index: 9999;\r\n }\n.grid__recurring__tabs__fade:after {\r\n content:'';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 10px;\r\n width: 30px;\r\n background: -webkit-gradient(linear, left top, right top, color-stop(-32.93%, rgba(255, 255, 255, 0)), color-stop(55%, #FFFFFF));\r\n background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: -o-linear-gradient(left, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: linear-gradient(90deg, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n z-index: 9999;\r\n }\n.grid__recurring__tabs__fade--close {\r\n padding-right: 66px;\r\n }\n.grid__recurring__tabs__fade--close:after {\r\n content:'';\r\n position: absolute;\r\n top: 0;\r\n right: 66px;\r\n bottom: 10px;\r\n width: 30px;\r\n background: -webkit-gradient(linear, left top, right top, color-stop(-32.93%, rgba(255, 255, 255, 0)), color-stop(55%, #FFFFFF));\r\n background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: -o-linear-gradient(left, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n background: linear-gradient(90deg, rgba(255, 255, 255, 0) -32.93%, #FFFFFF 55%);\r\n z-index: 9999;\r\n }\n.grid__recurring__header {\r\n margin-bottom: 30px;\r\n }\n.grid__recurring__main {\r\n height: -webkit-calc(100vh - 131px);\r\n height: calc(100vh - 131px);\r\n max-width: 100%;\r\n padding: 24px 12px;\r\n background-color: #ffffff;\r\n \r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n }\n@media (min-width: 75em) {\n.grid__recurring__main {\r\n height: -webkit-calc(100vh - 265px);\r\n height: calc(100vh - 265px)\r\n }\r\n \r\n @media (max-height: 38.9375em) {\n.grid__recurring__main {\r\n height: -webkit-calc(100vh - 205px);\r\n height: calc(100vh - 205px)\r\n }\r\n }\r\n }\n.grid__recurring__main__header {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n margin-bottom: 18px;\r\n }\n.grid__recurring__main__title {\r\n font-size: 12px;\r\n line-height: 21px;\r\n text-transform: uppercase;\r\n font-weight: 700;\r\n letter-spacing: 1px;\r\n }\n.grid__recurring__main__label {\r\n display: block;\r\n margin-bottom: 3px;\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 500;\r\n letter-spacing: 0.1;\r\n }\n.grid__recurring__footer {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n\r\n padding: 18px 12px;\r\n\r\n background-color: #f3f6f9;\r\n border-top: 1px solid #a8afb7;\r\n\r\n -webkit-box-shadow: 0px -8px 19px rgba(0, 0, 0, 0.1);\r\n\r\n box-shadow: 0px -8px 19px rgba(0, 0, 0, 0.1);\r\n }\n.grid__recurring__popover {\r\n position: absolute;\r\n top: 30px;\r\n right: 100%;\r\n\r\n width: 200px;\r\n padding: 6px 12px;\r\n background-color: #fff;\r\n\r\n font-size: 14px;\r\n\r\n line-height: 21px;\r\n font-style: normal;\r\n text-align: left;\r\n\r\n z-index: 9999;\r\n -webkit-box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1), 0px 4px 10px rgba(0, 0, 0, 0.1);\r\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 2px 6px rgba(0, 0, 0, 0.1), 0px 4px 10px rgba(0, 0, 0, 0.1);\r\n }\n.grid__recurring__popover li {\r\n padding: 6px;\r\n cursor: pointer;\r\n }\n.grid__recurring__popover li i {\r\n -webkit-transition: ease 0s all;\r\n -o-transition: ease 0s all;\r\n transition: ease 0s all;\r\n }\n/* Popover icons color change */\n.grid__recurring__popover li:hover {\r\n\r\n /* .icon--check-circle--grey {\r\n background-image: svg-load('../images/check-circle.svg', fill: $color-primary);\r\n }\r\n\r\n .icon--send-email--grey {\r\n background-image: svg-load('../images/send-email.svg', stroke: $color-primary);\r\n }\r\n\r\n .icon--save--grey {\r\n background-image: svg-load('../images/floppy-disk.svg', stroke: $color-primary);\r\n }\r\n\r\n .icon--preview--grey {\r\n background-image: svg-load('../images/preview.svg', stroke: $color-primary);\r\n }\r\n\r\n .icon--delete-alt--warning {\r\n background-image: svg-load('../images/delete-alt.svg', stroke: $color-primary);\r\n } */\r\n }\n.grid__recurring__popover li:hover a {\r\n color: #e51646;\r\n }\n.grid__recurring__transaction {\r\n background-color: #ffffff;\r\n padding-bottom: 18px;\r\n margin-bottom: 18px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.grid__recurring__wrapper {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 10;\r\n }\n@media (min-width: 75em) {\n.grid__recurring__wrapper {\r\n top: 74px;\r\n right: 0;\r\n bottom: 60px;\r\n left: auto;\r\n border-left: 1px solid #cdd1d6;\r\n width: 500px;\r\n z-index: 0\r\n }\r\n }\n@media (min-width: 95em) {\n.grid__recurring__wrapper {\r\n width: 800px\r\n }\r\n }\n@media (max-height: 38.9375em) {\n.grid__recurring__wrapper {\r\n bottom: 0\r\n }\r\n }\n.grid__recurring__loader {\r\n height: 526px;\r\n }\n.grid__recurring__close {\r\n position: absolute;\r\n top: 12px;\r\n right: 21px;\r\n\r\n width: 32px;\r\n height: 32px;\r\n\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='%237f7f7f'%3E%3Cpath fill='%23667182' d='M9.949 1.515L8.535.101 5 3.637 1.464.101.05 1.515l3.536 3.536L.05 8.586 1.464 10 5 6.465 8.535 10l1.414-1.414-3.535-3.535z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 10px 10px;\r\n background-size: 10px;\r\n background-position: center center;\r\n background-color: #fff;\r\n\r\n border: 1px solid #cdd1d6;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n.grid__recurring__close:hover {\r\n cursor: pointer;\r\n border: 1px solid rgb(152, 152, 152);\r\n }\n.grid__recurring__close:focus {\r\n outline: none;\r\n }\n.grid__multiselect {\r\n position: relative;\r\n max-height: 180px;\r\n background-color: #fff;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n -webkit-box-shadow: 0 2px 4px #d9d9d9;\r\n box-shadow: 0 2px 4px #d9d9d9;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n z-index: 9;\r\n width: -webkit-min-content;\r\n width: -moz-min-content;\r\n width: min-content;\r\n min-width: 100%;\r\n }\n.grid__multiselect__item {\r\n margin-bottom: 2px;\r\n padding: 6px;\r\n white-space: nowrap;\r\n }\n.grid__multiselect__item.is-active {\r\n background-color: #fef4f6;\r\n }\n.grid__multiselect__item.is-active label {\r\n color: #e51646;\r\n }\n.grid__multiselect__reset {\r\n position: absolute;\r\n top: 50%;\r\n right: 12px;\r\n width: 18px;\r\n height: 24px;\r\n background-color: #fff;\r\n background-image: url(\r\n \"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%238a93a0'%3E%3Ctitle%3Eicons / 20px / close small%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M12.4 6L10 8.4 7.6 6 6 7.6 8.4 10 6 12.4 7.6 14l2.4-2.4 2.4 2.4 1.6-1.6-2.4-2.4L14 7.6z'/%3E%3C/defs%3E%3Cg transform='translate(-6 -6)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23444' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23000'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\"\r\n );\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 8px 8px;\r\n background-size: 8px;\r\n background-position: center center;\r\n text-align: center;\r\n line-height: 24px;\r\n cursor: pointer;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n z-index: 9;\r\n }\n.grid__multiselect__result {\r\n position: absolute;\r\n top: 50%;\r\n left: 16px;\r\n max-width: -webkit-calc(100% - 48px);\r\n max-width: calc(100% - 48px);\r\n color: #667182;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n z-index: 0;\r\n }\n.grid__header__tooltip {\r\n width: 120px;\r\n padding: 6px 12px;\r\n background-color: #0e0125;\r\n font-size: 12px;\r\n line-height: 21px;\r\n color: #fff;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n.grid__header__tooltip:before {\r\n position: absolute;\r\n top: -5px;\r\n left: 30px;\r\n width: 0;\r\n border-bottom: 5px solid #0e0125;\r\n border-right: 5px solid transparent;\r\n border-left: 5px solid transparent;\r\n content: \" \";\r\n font-size: 0;\r\n line-height: 0;\r\n }\n.grid__header__wrap {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n padding: 12px;\r\n -webkit-box-shadow: 0 3px 12px #dfe3e8;\r\n box-shadow: 0 3px 12px #dfe3e8;\r\n\r\n }\n.grid__header__wrap__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.grid__pager {\r\n\t\tdisplay: -webkit-box;\r\n\t\tdisplay: -webkit-flex;\r\n\t\tdisplay: -ms-flexbox;\r\n\t\tdisplay: flex;\r\n\t\t-webkit-box-orient: vertical;\r\n\t\t-webkit-box-direction: normal;\r\n\t\t-webkit-flex-direction: column;\r\n\t\t -ms-flex-direction: column;\r\n\t\t flex-direction: column;\r\n\t\t-webkit-box-pack: start;\r\n\t\t-webkit-justify-content: flex-start;\r\n\t\t -ms-flex-pack: start;\r\n\t\t justify-content: flex-start;\r\n\t\t-webkit-box-align: end;\r\n\t\t-webkit-align-items: flex-end;\r\n\t\t -ms-flex-align: end;\r\n\t\t align-items: flex-end;\r\n }\n@media (min-width: 48em) {\n.grid__pager {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\t\t\t-webkit-box-orient: horizontal;\r\n\t\t\t-webkit-box-direction: normal;\r\n\t\t\t-webkit-flex-direction: row;\r\n\t\t\t -ms-flex-direction: row;\r\n\t\t\t flex-direction: row\r\n }\r\n }\n@media (max-width: 47.9375em) {\n.grid__pager__results {\r\n margin-top: 6px\r\n }\r\n }\n@media (min-width: 48em) {\n.grid__pager__results {\r\n margin-left: 12px\r\n }\r\n }\n@-webkit-keyframes gridprogress {\r\n 0% {\r\n left: 0;\r\n }\r\n\r\n 100% {\r\n left: 100%;\r\n }\r\n}\n@keyframes gridprogress {\r\n 0% {\r\n left: 0;\r\n }\r\n\r\n 100% {\r\n left: 100%;\r\n }\r\n}\n.merchant-to-details-link,\r\n.lead-to-details-link {\r\n color: #e51646;\r\n}\n/*------------------------------------*\\\r\n # components.grid\r\n\\*------------------------------------*/\n.grid__holder--override {\r\n\t\t\tposition: relative;\r\n\t\t\tpadding: 0 12px;\r\n\t\t}\n.grid__holder--override--no-padding {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\n@media (max-width: 47.9375em) {\n.grid__holder--override {\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 15.75px\r\n\t\t}\r\n\t\t\t}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n.grid__holder--override.is-expanded {\r\n\t\t\t\t\tmargin-bottom: 60px\r\n\t\t\t}\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Main {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\toutline: none;\r\n\t\t\t}\n.grid__holder--override .react-grid-Main:before,\r\n\t\t\t\t.grid__holder--override .react-grid-Main:after {\r\n\t\t\t\t\tcontent: '';\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\ttop: 0;\r\n\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\theight: 35px;\r\n\t\t\t\t\tbackground-color: #fff;\r\n\t\t\t\t\tz-index: 9;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Main:before {\r\n\t\t\t\t\tleft: 0;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Main:after {\r\n\t\t\t\t\tright: 0;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Grid {\r\n\t\t\t\toverflow: inherit !important;\r\n\t\t\t\tborder-top: none;\r\n\t\t\t\tborder: none;\r\n\t\t\t\t-webkit-user-select: auto;\r\n\t\t\t\t -moz-user-select: auto;\r\n\t\t\t\t -ms-user-select: auto;\r\n\t\t\t\t user-select: auto;\r\n\t\t\t}\n.grid__holder--override .react-grid-Container {\r\n\t\t\t\tmin-height: 162px;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t}\n.grid__holder--override .react-grid-Viewport {\r\n\t\t\t\toverflow: hidden !important;\r\n\t\t\t}\n.grid__holder--override .react-grid-Header {\r\n\t\t\t\tbackground: #fff;\r\n\t\t\t}\n.grid__holder--override .react-grid-HeaderRow {\r\n\t\t\t\tbackground-color: #ffffff;\r\n\t\t\t\theight: 45px !important;\r\n\t\t\t}\n.grid__holder--override .react-grid-HeaderRow > div {\r\n\t\t\t\t\theight: 45px !important;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderRow:first-child .react-grid-HeaderCell {\r\n\t\t\t\t\t\theight: 36px !important;\r\n\t\t\t\t\t}\n.grid__holder--override .react-grid-HeaderRow:last-child {\r\n\t\t\t\t\ttop: 36px !important;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderRow:last-child .react-grid-HeaderCell__draggable {\r\n\t\t\t\t\t\tdisplay: none;\r\n\t\t\t\t\t}\n.grid__holder--override .react-grid-HeaderRow:last-child .react-grid-HeaderCell {\r\n\t\t\t\t\t\theight: 45px !important;\r\n\t\t\t\t\t\t-webkit-user-select: text;\r\n\t\t\t\t\t\t -moz-user-select: text;\r\n\t\t\t\t\t\t -ms-user-select: text;\r\n\t\t\t\t\t\t user-select: text;\r\n\t\t\t\t\t}\n@media (min-width: 62em) {\n.grid__holder--override .grid-style-even,\r\n\t\t\t.grid__holder--override .react-grid-Row--even {\r\n\t\t\t\t\tbackground-color: #f3f6f9\r\n\t\t\t}\r\n\t\t\t\t}\n.grid__holder--override .grid-style-odd,\r\n\t\t\t.grid__holder--override .react-grid-Row--odd {\r\n\t\t\t\tbackground-color: #fff;\r\n\t\t\t}\n.grid__holder--override .react-grid-HeaderCell {\r\n\t\t\t\tbackground-color: transparent;\r\n\t\t\t\tcolor: #202e3c;\r\n\t\t\t\tfont-weight: 500;\r\n\t\t\t\ttext-transform: capitalize;\r\n\t\t\t\tborder-right: none;\r\n\t\t\t}\n.grid__holder--override .react-grid-HeaderCell:first-child {\r\n\t\t\t\t\tpadding-left: 2px;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell:last-child {\r\n\t\t\t\t\tpadding-right: 0px;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell .Select {\r\n\t\t\t\t\tmargin-top: -1px;\r\n\t\t\t\t\tborder: 1px solid #dfe3e8;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell .Select-control {\r\n\t\t\t\t\theight: 28px;\r\n\t\t\t\t\tborder: none;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell-sortable,\r\n\t\t\t.grid__holder--override .widget-HeaderCell__value {\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\t-o-text-overflow: ellipsis;\r\n\t\t\t\t text-overflow: ellipsis;\r\n\t\t\t\tmargin-right: 9px;\r\n\t\t\t}\n.grid__holder--override .react-grid-Row {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\toverflow: visible !important;\r\n\t\t\t\theight: 48px !important;\r\n\t\t\t}\n.grid__holder--override .react-grid-Cell {\r\n\t\t\t\t-webkit-user-select: text;\r\n\t\t\t\t -moz-user-select: text;\r\n\t\t\t\t -ms-user-select: text;\r\n\t\t\t\t user-select: text;\r\n\t\t\t\theight: 100% !important;\r\n\t\t\t\tborder-right: none;\r\n\t\t\t\tbackground-color: transparent;\r\n\t\t\t\tborder-color: #dee4e9;\r\n\t\t\t}\n.grid__holder--override .react-grid-Cell:first-child {\r\n\t\t\t\t\tfont-weight: 500;\r\n\t\t\t\t\tz-index: 1;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Cell:first-child .rdg-cell-expand {\r\n\t\t\t\t\t\ttop: 50%;\r\n\t\t\t\t\t\tright: auto;\r\n\t\t\t\t\t\tleft: 6px;\r\n\t\t\t\t\t\t-webkit-transform: translateY(-50%);\r\n\t\t\t\t\t\t -ms-transform: translateY(-50%);\r\n\t\t\t\t\t\t transform: translateY(-50%);\r\n\t\t\t\t\t}\n.grid__holder--override .react-grid-Cell:first-child .react-grid-Cell__value {\r\n\t\t\t\t\t\tpadding-left: 9px;\r\n\t\t\t\t\t\toverflow: unset;\r\n\t\t\t\t\t}\n.grid__holder--override .react-grid-Cell:focus {\r\n\t\t\t\t\toutline: none;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Cell:hover {\r\n\t\t\t\t\tbackground-color: transparent;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Cell__value > div > span {\r\n\t\t\t\t\t\t\tdisplay: block;\r\n\t\t\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t\t\t-o-text-overflow: ellipsis;\r\n\t\t\t\t\t\t\t text-overflow: ellipsis;\r\n\t\t\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\t\t}\n.grid__holder--override .react-grid-Cell__value > div > span > span {\r\n\t\t\t\t\t\t\t\toverflow: hidden;\r\n\t\t\t\t\t\t\t\t-o-text-overflow: ellipsis;\r\n\t\t\t\t\t\t\t\t text-overflow: ellipsis;\r\n\t\t\t\t\t\t\t\twhite-space: nowrap;\r\n\t\t\t\t\t\t\t}\n.grid__holder--override--nohover .react-grid-Row:hover {\r\n\t\t\t\t\t\t-webkit-box-shadow: none;\r\n\t\t\t\t\t\t box-shadow: none;\r\n\t\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell-sortable .pull-right {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell-sortable:after {\r\n\t\t\t\t\tcontent: '';\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\twidth: 12px;\r\n\t\t\t\t\theight: 12px;\r\n\t\t\t\t\tmargin-left: 6px;\r\n\t\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12h6l-3 3.6L7 12zm6-3.4H7L10 5l3 3.6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t\t-webkit-background-size: 18px 18px;\r\n\t\t\t\t\t background-size: 18px;\r\n\t\t\t\t\tbackground-position: center center;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell-sortable.react-grid-HeaderCell-sortable--ascending:after {\r\n\t\t\t\t\tcontent: '';\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\twidth: 12px;\r\n\t\t\t\t\theight: 12px;\r\n\t\t\t\t\tmargin-left: 6px;\r\n\t\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='4' viewBox='0 0 6 4' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 3.646l-3-3.6-3 3.6h6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t\t-webkit-background-size: 6px 6px;\r\n\t\t\t\t\t background-size: 6px;\r\n\t\t\t\t\tbackground-position: center center;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-HeaderCell-sortable.react-grid-HeaderCell-sortable--descending:after {\r\n\t\t\t\t\tcontent: '';\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t\twidth: 12px;\r\n\t\t\t\t\theight: 12px;\r\n\t\t\t\t\tmargin-left: 6px;\r\n\t\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='4' viewBox='0 0 6 4' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / dropdown%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M7 8l3 3.6L13 8z'/%3E%3C/defs%3E%3Cg transform='translate(-7 -8)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23b8b8b8' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23b8b8b8'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t\t-webkit-background-size: 6px 6px;\r\n\t\t\t\t\t background-size: 6px;\r\n\t\t\t\t\tbackground-position: center center;\r\n\t\t\t\t}\n.grid__holder--override .react-grid-Row.row-context-menu .react-grid-Cell,\r\n\t\t\t.grid__holder--override .react-grid-Row:hover .react-grid-Cell {\r\n\t\t\t\tbackground-color: transparent;\r\n\t\t\t}\n.grid__holder--override .rdg-selected {\r\n\t\t\t\tborder: none !important;\r\n\t\t\t}\n.grid__holder--override__nofilter .react-grid-HeaderRow:last-child {\r\n\t\t\t\t\ttop: 6px !important;\r\n\t\t\t\t\tborder-bottom: 1px solid #dfe3e8;\r\n\t\t\t\t\theight: 42px !important;\r\n\t\t\t\t\toverflow-y: hidden;\r\n\t\t\t\t\t\r\n\t\t\t\t}\n.grid__holder--override__nofilter .react-grid-HeaderRow:last-child .react-grid-HeaderCell:first-child {\r\n\t\t\t\t\t\t\tpadding-left: 18px;\r\n\t\t\t\t\t\t}\n.grid__holder--override__nofilter .react-grid-HeaderRow:last-child .react-grid-HeaderCell:last-child {\r\n\t\t\t\t\t\t\ttext-align: right;\r\n\t\t\t\t\t\t\tpadding-right: 9px;\r\n\t\t\t\t\t\t}\n.grid__holder--tooltip {\r\n\t\t\toverflow: visible !important;\r\n\t\t}\n.grid__holder--pointer .react-grid-Row {\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t}\n.grid__holder__sorting {\r\n\t\t\tposition: fixed;\r\n\t\t\tmin-width: 150px;\r\n\t\t\tpadding: 12px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tborder: 1px solid #cdd1d6;\r\n\t\t\t-webkit-border-radius: 6px;\r\n\t\t\t border-radius: 6px;\r\n\t\t\tz-index: 99;\r\n\t\t}\n.grid__holder__sorting__title {\r\n\t\t\t\tmargin-bottom: 12px;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 21px;\r\n\t\t\t\tcolor: #cdd1d6;\r\n\t\t\t\ttext-transform: uppercase;\r\n\t\t\t}\n.grid__holder__sorting__item {\r\n\t\t\t\tmargin-bottom: 12px;\r\n\t\t\t}\n.grid__holder__sorting__action {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tpadding-right: 18px;\r\n\t\t\t\ttext-align: left;\r\n\t\t\t}\n.grid__holder__sorting__icon {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 2px;\r\n\t\t\t\tright: 0;\r\n\t\t\t}\n.grid__holder__creditcard {\r\n\t\t\twidth: 27px;\r\n\t\t\theight: auto;\r\n\t\t\tmargin-right: 8px;\r\n\t\t}\n.grid__holder__row__hover {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\tright: 2px;\r\n\t\t\t\tmin-width: 108px;\r\n\t\t\t\tpadding: 6px 24px 6px 6px;\r\n\t\t\t\ttext-align: right;\r\n\t\t\t\t-webkit-transform: translateY(-50%);\r\n\t\t\t\t -ms-transform: translateY(-50%);\r\n\t\t\t\t transform: translateY(-50%);\r\n\t\t\t}\n.grid__holder--fixed--main .react-grid-Header {\r\n\t\t\t\t\t\r\n\t\t\t\t}\n.grid__holder--fixed--main .react-grid-HeaderRow > div {\r\n\t\t\t\t\t\twidth: 100% !important;\r\n\t\t\t\t\t}\n.grid__holder--fixed--main .react-grid-Canvas {\r\n\t\t\t\t\toverflow-y: scroll !important;\r\n\t\t\t\t\toverflow-x: auto !important;\r\n\t\t\t\t}\n.grid__holder--fixed--aside {\r\n\t\t\t\tpadding-right: 0; \r\n\t\t\t}\n.grid__holder--fixed--aside:before {\r\n\t\t\t\t\tcontent: '';\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\twidth: 12px;\r\n\t\t\t\t\tleft: 0;\r\n\t\t\t\t\ttop: 0;\r\n\t\t\t\t\tbottom: 0;\r\n\t\t\t\t\tbackground: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.050)), color-stop(50%, rgba(0, 0, 0, 0.025)), to(rgba(0, 0, 0, 0)));\r\n\t\t\t\t\tbackground: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.050) 0%, rgba(0, 0, 0, 0.025) 50%, rgba(0, 0, 0, 0) 100%);\r\n\t\t\t\t\tbackground: -o-linear-gradient(right, rgba(0, 0, 0, 0.050) 0%, rgba(0, 0, 0, 0.025) 50%, rgba(0, 0, 0, 0) 100%);\r\n\t\t\t\t\tbackground: linear-gradient(270deg, rgba(0, 0, 0, 0.050) 0%, rgba(0, 0, 0, 0.025) 50%, rgba(0, 0, 0, 0) 100%);\r\n\t\t\t\t\tz-index: 4;\r\n\t\t\t\t}\n.grid__holder--fixed--aside .emptystate {\r\n\t\t\t\t\t-webkit-border-radius: 0;\r\n\t\t\t\t\t border-radius: 0;\r\n\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\tborder-right: 0;\r\n\r\n\t\t\t\t}\n.grid__holder--fixed--aside .emptystate__message {\r\n\t\t\t\t\topacity: 0;\r\n\t\t\t\t}\n.grid__holder--fixed--aside .react-grid-Main,\r\n\t\t\t\t.grid__holder--fixed--aside .react-grid-Grid {\r\n\t\t\t\t\tbackground-color: transparent;\r\n\t\t\t\t}\n.grid__holder--fixed--aside .react-grid-Main::before {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\n.grid__holder--fixed--aside .react-grid-Canvas {\r\n\t\t\t\t\toverflow-x: hidden !important;\r\n\t\t\t\t}\n.grid__holder__breakdown {\r\n\t\t\tpadding: 0;\r\n\t\t}\n.grid__holder__breakdown .react-grid-Canvas {\r\n\t\t\t\toverflow: hidden !important;\r\n\t\t\t}\n.grid__holder__breakdown .react-grid-Row:hover {\r\n\t\t\t\t\t-webkit-box-shadow: none;\r\n\t\t\t\t\t box-shadow: none;\r\n\t\t\t\t}\n.grid__holder__breakdown .react-grid-HeaderRow:last-child {\r\n\t\t\t\ttop: 6px !important;\r\n\t\t\t\tborder-bottom: 1px solid #dfe3e8;\r\n\t\t\t\theight: 42px !important;\r\n\t\t\t\toverflow-y: hidden;\r\n\t\t\t}\n.grid__holder__breakdown .react-grid-HeaderRow:last-child .react-grid-HeaderCell {\r\n\t\t\t\t\tborder-left: 1px solid #dfe3e8;\r\n\t\t\t\t}\n.grid__holder__breakdown .react-grid-HeaderRow:last-child .react-grid-HeaderCell:first-child {\r\n\t\t\t\t\t\tpadding-left: 18px;\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t}\n.grid__holder__breakdown .react-grid-HeaderRow:last-child .react-grid-HeaderCell:last-child {\r\n\t\t\t\t\t\ttext-align: left;\r\n\t\t\t\t\t\tpadding-right: 9px;\r\n\t\t\t\t\t}\n.grid__holder__breakdown .react-grid-Cell {\r\n\t\t\t\tborder-left: 1px solid #dfe3e8;\r\n\t\t\t}\n.grid__holder__breakdown .react-grid-Cell:first-child {\r\n\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t}\n.grid__holder__breakdown .grid-style-odd:last-child .react-grid-Cell {\r\n\t\t\t\t\t\tborder-bottom: 0;\r\n\t\t\t\t\t}\n.grid__holder__users .react-grid-Cell:last-child .react-grid-Cell__value {\r\n\t\t\t\t\toverflow: visible;\r\n\t\t\t\t}\n.grid__holder__users .react-grid-Cell:last-child .react-grid-Cell__value > div > span {\r\n\t\t\t\t\t\t\toverflow: visible;\r\n\t\t\t\t\t\t}\n@keyframes gridprogress {\r\n 0% {\r\n left: 0;\r\n }\r\n 100% {\r\n left: 100%;\r\n }\r\n}\n.grid__holder--fixed--aside {\r\n\tz-index: 99;\r\n}\n.grid__holder--fixed--aside .react-grid-Row:hover {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;;\r\n }\n.grid__holder--fixed--aside .react-grid-Row .react-grid-Cell {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\n.grid__holder--fixed--aside .react-grid-Cell:first-child .react-grid-Cell__value {\r\n padding-left: 0 \r\n }\n.grid__actions__items {\r\n\t\t\twidth: 100%;\r\n\t\t}\n.grid__actions__items .icon {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tmargin: 0 auto;\r\n\t\t\t\t-webkit-transform: translateX(-6px);\r\n\t\t\t\t -ms-transform: translateX(-6px);\r\n\t\t\t\t transform: translateX(-6px);\r\n\t\t\t}\n/* .grid--lead {\r\n\r\n\t.grid__holder--fixed--aside {\r\n\r\n\t\t&:before {\r\n\t\t\ttop: 93px;\r\n\t\t}\r\n\t}\r\n} */\n/*------------------------------------*\\\r\n # components.emptystate\r\n\\*------------------------------------*/\n.emptystate {\r\n\tmargin-top: 12px;\r\n\tmargin-bottom: 36px;\r\n padding: 48px 18px;\r\n background-color: #f3f6f9;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n}\n@media (min-width: 62em) {\n.emptystate {\r\n padding-left: 48px\r\n}\r\n }\n.emptystate__title {\r\n margin-bottom: 6px;\r\n font-size: 21px;\r\n line-height: 26.25px;\r\n font-weight: 700;\r\n }\n@media (min-width: 62em) {\n.emptystate__title {\r\n font-size: 33px;\r\n line-height: 42px\r\n }\r\n }\n.emptystate__message {\r\n margin-bottom: 3px;\r\n color: #9ea6b3;\r\n }\n@media (max-width: 47.9375em) {\n.emptystate__message {\r\n font-weight: 400\r\n }\r\n }\n/*------------------------------------*\\\r\n # components.loader\r\n\\*------------------------------------*/\n.loader__holder {\r\n position: relative;\r\n min-height: 120px;\r\n }\n.loader__overlay {\r\n opacity: 0;\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n background-color: #fff;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n z-index: 99;\r\n }\n.loader__overlay--fixed {\r\n position: fixed;\r\n z-index: 99;\r\n }\n.loader__overlay.is-active {\r\n opacity: 1;\r\n visibility: visible;\r\n }\n.loader__spinner {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 36px;\r\n height: 36px;\r\n margin: -18px;\r\n border: 6px solid #cdd1d6;\r\n border-bottom: 6px solid #e51646;\r\n -webkit-border-radius: 50%;\r\n border-radius: 50%;\r\n -webkit-animation: spinneranimation .4s infinite linear;\r\n animation: spinneranimation .4s infinite linear;\r\n }\n.loader--progress {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 4px;\r\n overflow: hidden;\r\n z-index: 999;\r\n }\n.loader--progress:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: -100%;\r\n width: 300px;\r\n height: 100%;\r\n background-color: #e51646;\r\n -webkit-animation: loaderprogress 2.5s infinite linear;\r\n animation: loaderprogress 2.5s infinite linear;\r\n }\n.loader--popup__holder {\r\n position: relative;\r\n min-height: 60px;\r\n }\n@-webkit-keyframes spinneranimation{\r\n 0% {\r\n -webkit-transform: rotate(0);\r\n transform: rotate(0);\r\n }\r\n\r\n 100% {\r\n -webkit-transform: rotate(360deg);\r\n transform: rotate(360deg);\r\n }\r\n}\n@keyframes spinneranimation{\r\n 0% {\r\n -webkit-transform: rotate(0);\r\n transform: rotate(0);\r\n }\r\n\r\n 100% {\r\n -webkit-transform: rotate(360deg);\r\n transform: rotate(360deg);\r\n }\r\n}\n@-webkit-keyframes loaderprogress {\r\n 0% {\r\n left: -100%;\r\n }\r\n \r\n 100% {\r\n left: 100%;\r\n }\r\n}\n@keyframes loaderprogress {\r\n 0% {\r\n left: -100%;\r\n }\r\n \r\n 100% {\r\n left: 100%;\r\n }\r\n}\n/*@import \"components.tabs.css\";\r\n@import \"components.user.css\";\r\n@import \"components.review.css\";*/\n/*------------------------------------*\\\r\n # components.filter\r\n\\*------------------------------------*/\n.filter {\r\n position: relative;\r\n}\n@media (min-width: 34em) {\n.filter {\r\n margin-bottom: 12px\r\n}\r\n }\n.filter__container {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n@media (min-width: 34em) {\n.filter__container {\r\n padding: 12px 12px 0;\r\n\r\n -webkit-box-shadow: 0 3px 12px #dfe3e8;\r\n\r\n box-shadow: 0 3px 12px #dfe3e8\r\n }\r\n }\n.filter__container__actions {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.filter__container__actions__item {\r\n margin-right: 6px;\r\n margin-bottom: 12px;\r\n }\n.filter__container__actions__item:last-child {\r\n margin-right: 0;\r\n }\n.filter .rc-menu-submenu-title {\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n line-height: 38px;\r\n }\n.filter__separator {\r\n margin: 0 0 15px;\r\n border: 0;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n/* Filters button */\n.filter__select {\r\n float: left;\r\n cursor: pointer;\r\n \r\n min-width: 40px;\r\n height: 38px;\r\n\r\n background-color: #fff;\r\n }\n.filter__select .rc-menu-horizontal > .rc-menu-item,\r\n .filter__select .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n padding: 0;\r\n padding-left: 36px;\r\n padding-right: 12px;\r\n height: 36px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / filter-old%3C/title%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Crect fill='%23667182' x='2' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='5' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 12.5 6)' x='9' y='5' width='7' height='2' rx='1'/%3E%3Crect fill='%23667182' x='2' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23667182' x='12' y='13' width='6' height='2' rx='1'/%3E%3Crect fill='%23E51646' transform='rotate(-90 7.5 14)' x='4' y='13' width='7' height='2' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n background-position: 12px center;\r\n }\n.filter__select .rc-menu-horizontal > .rc-menu-item:after, .filter__select .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title:after {\r\n display: none;\r\n }\n@media (min-width: 90em) {\n.filter__select .rc-menu-horizontal > .rc-menu-item,\r\n .filter__select .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n background-position: 12px center;\r\n padding: 0 12px;\r\n padding-left: 36px\r\n }\r\n }\n@media (min-width: 75em) {\n.filter__select {\r\n width: auto\r\n }\r\n }\n.filter__select--gift .rc-menu-submenu-title {\r\n background-image: none !important;\r\n padding: 0 6px !important;\r\n }\n.filter__select--gift .rc-menu-submenu, .filter__select--gift .rc-menu-submenu-horizontal {\r\n border: 0 !important;\r\n }\n.filter__settings {\r\n position: relative;\r\n height: 38px;\r\n width: 46px;\r\n background-color: #fff;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.filter__settings .rc-menu-submenu.rc-menu-submenu-horizontal {\r\n border: 1px solid #dfe3e8;\r\n }\n.filter__settings .rc-menu-submenu.rc-menu-submenu-horizontal .rc-menu-submenu-active {\r\n border-color: rgb(209, 209, 209);\r\n }\n.filter__settings .rc-menu-horizontal > .rc-menu-item, .filter__settings .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n padding: 0 6px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / settings-new%3C/title%3E%3Cdefs%3E%3Cpath d='M16.4 5.1L15 3.7l-2.1 1.1c-.3-.2-.7-.3-1.1-.4L11 2H9l-.8 2.3c-.3.1-.7.2-1 .4L5.1 3.6 3.6 5.1l1.1 2.1c-.2.3-.3.7-.4 1L2 9v2l2.3.8c.1.4.3.7.4 1.1L3.6 15 5 16.4l2.1-1.1c.3.2.7.3 1.1.4L9 18h2l.8-2.3c.4-.1.7-.3 1.1-.4l2.1 1.1 1.4-1.4-1.1-2.1c.2-.3.3-.7.4-1.1L18 11V9l-2.3-.8c-.1-.3-.2-.7-.4-1l1.1-2.1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse stroke='%23667182' stroke-width='1.4' xlink:href='%23a'/%3E%3Ccircle stroke='%23E51646' stroke-width='1.4' mask='url(%23b)' cx='10' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E\");\r\n background-position: center;\r\n }\n.filter__settings .rc-menu-horizontal > .rc-menu-item:after, .filter__settings .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title:after {\r\n display: none;\r\n }\n.filter__settings__subtitle {\r\n display: block;\r\n font-weight: 700;\r\n background-color: #f2f2f2;\r\n margin: 0 -12px;\r\n padding: 6px 12px;\r\n margin-bottom: 6px;\r\n }\n.filter__clear {\r\n float: left;\r\n margin-bottom: 12px;\r\n \r\n width: 38px;\r\n height: 38px;\r\n\r\n background-color: #fff;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n\r\n line-height: 36px;\r\n text-align: center;\r\n\r\n -webkit-transition: all 250ms ease-in-out;\r\n\r\n -o-transition: all 250ms ease-in-out;\r\n\r\n transition: all 250ms ease-in-out;\r\n }\n.filter__clear:hover {\r\n border-color: rgb(209, 209, 209);\r\n }\n.filter__frequency {\r\n overflow: hidden;\r\n padding: 2px 2px 0 0;\r\n }\n.filter__frequency__label {\r\n float: left;\r\n width: 36px;\r\n padding-top: 3px;\r\n }\n.filter__frequency__content {\r\n float: left;\r\n width: -webkit-calc(100% - 36px);\r\n width: calc(100% - 36px);\r\n padding-left: 6px;\r\n }\n.filter__frequency__interval {\r\n float: left;\r\n width: 30px;\r\n }\n.filter__frequency__options {\r\n float: left;\r\n width: -webkit-calc(100% - 30px);\r\n width: calc(100% - 30px);\r\n padding-left: 6px;\r\n }\n.filter__counter {\r\n display: inline-block;\r\n min-width: 9px;\r\n height: 9px;\r\n margin-left: 9px;\r\n background-color: #e51646;\r\n font-size: 11px;\r\n line-height: 19.95px;\r\n color: #fff;\r\n text-align: center;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n vertical-align: 1px;\r\n }\n.filter__counter span {\r\n display: none;\r\n }\n@media (min-width: 34em) {\n.filter__counter {\r\n min-width: 18px;\r\n height: 18px\r\n }\r\n\r\n .filter__counter span {\r\n display: block;\r\n }\r\n }\n.filter--selected {\r\n display: inline-block;\r\n width: 6px;\r\n height: 6px;\r\n margin-left: 6px;\r\n background-color: #e51646;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n vertical-align: 1px;\r\n }\n.filter__input {\r\n \tfloat: left;\r\n \twidth: 100%;\r\n\t\tmax-width: 354px;\r\n\t\tmargin-right: 18px;\r\n }\n/* Date filter button */\n.filter__date {\r\n \tfloat: left;\r\n position: relative;\r\n width: 38px;\r\n height: 38px;\r\n\r\n margin-right: 6px;\r\n\r\n background-color: #fff;\r\n }\n.filter__date .rc-menu-horizontal > .rc-menu-item,\r\n .filter__date .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n color: transparent;\r\n height: 36px;\r\n \r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / calendar%3C/title%3E%3Cg transform='translate(1 1)' fill-rule='nonzero' fill='none'%3E%3Crect stroke='%23667182' stroke-width='1.1' x='1.113' y='1.675' width='15.775' height='15.775' rx='1.1'/%3E%3Cpath fill='%23667182' d='M1.125 1.25h15.75V9H1.125z'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='3.5' width='3.5' height='5.625' rx='1'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='11' width='3.5' height='5.625' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-position: 12px center;\r\n }\n.filter__date .rc-menu-horizontal > .rc-menu-item:after, .filter__date .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title:after {\r\n display: none;\r\n }\n@media (min-width: 34em) {\n.filter__date .rc-menu-horizontal > .rc-menu-item,\r\n .filter__date .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n color: #667182\r\n }\r\n }\n/* On mobile version - no label */\n@media (min-width: 34em) {\n.filter__date {\r\n width: auto\r\n }\r\n }\n.filter__date--fullwidth {\r\n width: 100%;\r\n max-width: none;\r\n float: none;\r\n }\n.filter__date--fullwidth .rc-menu, .filter__date--fullwidth .rc-menu-submenu {\r\n width: 100%;\r\n }\n.filter__date--square .rc-menu-horizontal > .rc-menu-item,\r\n .filter__date--square .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n padding: 0 6px;\r\n background-position: center;\r\n }\n@media (min-width: 34em) {\n.filter__date--square .rc-menu-horizontal > .rc-menu-item,\r\n .filter__date--square .rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n padding: 0 12px 0 42px;\r\n background-position: 12px center\r\n }\r\n }\n.filter__search {\r\n float: left;\r\n }\n.filter__toggle {\r\n margin-bottom: 12px;\r\n }\n.filter__toggle button {\r\n padding: 0 6px;\r\n }\n@media (min-width: 90em) {\n.filter__toggle {\r\n display: none\r\n }\r\n }\n.filter__tag {\r\n float: left;\r\n \r\n display: -webkit-box;\r\n \r\n display: -webkit-flex;\r\n \r\n display: -ms-flexbox;\r\n \r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n background-color: #f6f8ff;\r\n \tmargin-right: 9px;\r\n margin-bottom: 12px;\r\n padding: 3px 6px 2px 12px;\r\n \r\n font-size: 12px;\r\n \r\n line-height: 15.75px;\r\n \r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n }\n.filter__tag__group {\r\n overflow: hidden;\r\n }\n.filter__tag__label {\r\n color: #202e3c;\r\n vertical-align: middle;\r\n }\n.filter__tag__clear {\r\n width: 18px;\r\n height: 18px;\r\n margin-left: 6px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n -webkit-background-size: 12px 12px;\r\n background-size: 12px;\r\n background-position: center center;\r\n \t}\n.filter--cardtype {\r\n position: relative;\r\n width: 192px;\r\n margin-bottom: 12px;\r\n padding-right: 36px;\r\n }\n.filter--cardtype__image {\r\n position: absolute;\r\n top: 2px;\r\n right: 0;\r\n width: 30px;\r\n }\n/* \"Filter details\" caret rotation */\n.filter--expanded i {\r\n -webkit-transform: rotate(90deg);\r\n -ms-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n }\n/* Filter details */\n.filter__details {\r\n position: absolute;\r\n top: 100%;\r\n right: 0;\r\n left: 0;\r\n\r\n padding: 12px;\r\n padding-bottom: 0;\r\n\r\n background-color: #fff;\r\n border: 1px solid #cdd1d6;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n \r\n -webkit-box-shadow: 0 0 4px #cdd1d6;\r\n \r\n box-shadow: 0 0 4px #cdd1d6;\r\n z-index: 2;\r\n }\n@media (min-width: 34em) {\n.filter__details {\r\n position: relative;\r\n top: 0;\r\n padding-top: 0;\r\n \r\n border: 0;\r\n -webkit-border-radius: 0;\r\n border-radius: 0;\r\n \r\n -webkit-box-shadow: 0 7px 6px rgba(0, 0, 0, 0.09);\r\n \r\n box-shadow: 0 7px 6px rgba(0, 0, 0, 0.09);\r\n z-index: 0\r\n }\r\n }\n.filter__details__toggle {\r\n padding: 0;\r\n }\n.filter__btn--hide {\r\n display: block;\r\n text-align: center;\r\n }\n/*------------------------------------*\\\r\n # components.footer\r\n\\*------------------------------------*/\n.footer {\r\n display: none;\r\n height: 30px;\r\n background-color: #fff;\r\n color: #9ea6b3;\r\n overflow: hidden;\r\n}\n@media (min-height: 39em) {\n.footer {\r\n display: block\r\n}\r\n }\n@media (min-width: 34em) {\n.footer {\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 3\r\n}\r\n }\n@media (min-width: 62em) {\n.footer {\r\n height: 60px;\r\n padding-left: 48px\r\n}\r\n }\n@media (min-width: 75em) {\n.footer {\r\n left: 280px;\r\n padding-left: 30px\r\n}\r\n }\n@media (min-width: 90em) {\n.footer {\r\n left: 280px\r\n}\r\n }\n.footer.sidebar-is-visible {\r\n -webkit-transition: left 250ms ease-in-out;\r\n -o-transition: left 250ms ease-in-out;\r\n transition: left 250ms ease-in-out;\r\n }\n@media (min-width: 90em) {\n.footer.sidebar-is-visible {\r\n left: 560px\r\n }\r\n }\n.footer.is-collapsed {\r\n -webkit-transition: left 250ms ease-in-out;\r\n -o-transition: left 250ms ease-in-out;\r\n transition: left 250ms ease-in-out;\r\n }\n@media (min-width: 90em) {\n.footer.is-collapsed {\r\n left: 72px\r\n }\r\n }\n@media (min-width: 90em) {\n.footer.is-collapsed.sidebar-is-visible {\r\n left: 352px\r\n }\r\n }\n.footer__copy {\r\n padding: 9px 12px;\r\n font-size: 12px;\r\n line-height: 15.75px;\r\n text-align: center;\r\n }\n@media (min-width: 62em) {\n.footer__copy {\r\n display: inline-block;\r\n padding: 22px 12px;\r\n float: left;\r\n padding-left: 0;\r\n font-size: 14px;\r\n line-height: 15.75px;\r\n text-align: left\r\n }\r\n }\n.footer__secure {\r\n display: none;\r\n float: right;\r\n padding: 15px 0;\r\n font-size: 14px;\r\n line-height: 15.75px;\r\n width: 200px;\r\n }\n@media (min-width: 62em) {\n.footer__secure {\r\n display: block;\r\n width: 329px;\r\n text-align: right\r\n }\r\n }\n.footer__secure__logo {\r\n height: 30px;\r\n margin-left: 6px;\r\n }\n.footer__payment {\r\n display: none;\r\n position: relative;\r\n float: right;\r\n margin-left: 9px;\r\n padding: 15px 90px 15px 36px;\r\n font-size: 14px;\r\n line-height: 15.75px;\r\n background-color: #f3f6f9;\r\n }\n.footer__payment:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\r\n background-color: #fff;\r\n border-top: 60px solid transparent;\r\n border-right: 30px solid #f3f6f9;\r\n border-bottom: 0;\r\n }\n.footer__payment:after {\r\n content: \"A\";\r\n position: absolute;\r\n top: 24px;\r\n left: 9px;\r\n }\n@media (min-width: 62em) {\n.footer__payment {\r\n display: block\r\n }\r\n }\n.footer__payment__logo {\r\n height: 28px;\r\n margin: 1px 12px 1px 0;\r\n }\n.footer__label {\r\n display: none;\r\n }\n@media (min-width: 62em) {\n.footer__label {\r\n display: inline\r\n }\r\n }\n.footer--equipment {\r\n overflow: hidden;\r\n }\n/*------------------------------------*\\\r\n # components.file-upload\r\n\\*------------------------------------*/\n.file-upload__container {\r\n width: 100%; \r\n }\n.file-upload__btn {\r\n border: 1px solid #dfe3e8;\r\n background-color: #f6f8ff;\r\n padding: 36px 12px;\r\n text-align: center;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n.file-upload__drop {\r\n border: 1px dashed #3757D0;\r\n color: #3757D0;\r\n }\n.file-upload__list {\r\n margin-top: 12px;\r\n }\n.file-upload__list__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: end;\r\n -webkit-justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding: 6px 0;\r\n }\n.file-upload__list__name {\r\n overflow: hidden;\r\n max-width: 80%;\r\n padding-right: 12px;\r\n \r\n font-weight: 700;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n text-transform: initial;\r\n white-space: nowrap;\r\n color: black;\r\n }\n.file-upload__list__button {\r\n padding: 0 9px;\r\n }\n.file-upload--sml .file-upload__btn {\r\n padding: 8px;\r\n }\n/*------------------------------------*\\\r\n # components.card\r\n\\*------------------------------------*/\n.card--primary {\r\n padding: 12px;\r\n\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n border-top: 4px solid #e51646;\r\n background-color: white;\r\n }\n@media (min-width: 48em) {\n.card--primary {\r\n padding: 24px\r\n }\r\n }\n.card--primary__header {\r\n position: relative;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: flex-start;\r\n -ms-flex-direction: flex-start;\r\n flex-direction: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n\r\n padding-right: 30px;\r\n }\n.card--primary__header.is-expanded {\r\n margin-bottom: 12px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n@media (min-width: 48em) {\n.card--primary__header.is-expanded {\r\n padding-bottom: 12px\r\n }\r\n }\n.card--primary__header.is-collapsed {\r\n margin-bottom: -9px;\r\n }\n.card--primary__header__expand {\r\n position: absolute;\r\n top: -3px;\r\n right: 0;\r\n\r\n padding: 6px;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n\r\n cursor: pointer;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n.card--primary__header__expand:hover {\r\n background-color: #f2f2f2;\r\n }\n.card--primary__header__expand .icon {\r\n display: block;\r\n }\n.card--primary__title {\r\n font-size: 19px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n }\n.card--primary__subtitle {\r\n margin-bottom: 12px;\r\n padding-top: 6px;\r\n padding-bottom: 6px;\r\n\r\n font-size: 15px;\r\n\r\n line-height: 21px;\r\n font-weight: 700;\r\n color: #202e3c;\r\n\r\n border-bottom: 1px solid #a8afb7;\r\n }\n.card--primary__subheader {\r\n padding: 12px 0;\r\n margin-bottom: 24px;\r\n\r\n border-top: 1px solid #dfe3e8;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.card--primary__subheader:first-child {\r\n padding-top: 0;\r\n border-top: 0;\r\n }\n.card--primary__expand {\r\n height: 36px;\r\n padding: 0 12px;\r\n \r\n text-align: center;\r\n \r\n -webkit-box-shadow: 0 8px 12px 0 rgb(0 0 0 / 12%);\r\n \r\n box-shadow: 0 8px 12px 0 rgb(0 0 0 / 12%);\r\n background-color: #ffffff;\r\n\r\n cursor: pointer;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n.card--primary__expand:hover {\r\n background-color: #ffffff;\r\n }\n@media (min-width: 48em) {\n.card--primary__expand {\r\n padding: 0 24px\r\n }\r\n }\n.card--primary__expand .anchor {\r\n display: block;\r\n \r\n line-height: 36px;\r\n color: #e51646;\r\n\r\n border-top: 1px solid #dfe3e8;\r\n }\n.card--secondary__title {\r\n font-weight: 600;\r\n color: #e51646;\r\n }\n.card--results {\r\n background-color: rgba(246, 248, 255, 0.75);\r\n padding: 24px;\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n border: 0;\r\n }\n.card--tertiary {\r\n position: relative;\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n padding: 24px;\r\n background-color: white;\r\n }\n.card--tertiary__expand {\r\n display: -webkit-inline-box;\r\n display: -webkit-inline-flex;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n\r\n padding: 6px;\r\n height: 36px;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n cursor: pointer;\r\n }\n.card--tertiary__expand:hover {\r\n background-color: #dfe3e8;\r\n }\n@media (min-width: 48em) {\n.card--tertiary__expand {\r\n right: 18px\r\n }\r\n }\n.card--tertiary__logo {\r\n width: 100%;\r\n max-width: 160px;\r\n margin: 0 auto;\r\n }\n.card--tertiary__header {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n background-color: #dfe3e8;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n margin: 0 -24px 24px -24px;\r\n padding: 6px 24px;\r\n color: #8a93a0;\r\n }\n.card--shaded {\r\n position: relative;\r\n padding: 12px;\r\n background-color: #f3f6f9;\r\n }\n@media (min-width: 48em) {\n.card--shaded {\r\n padding: 24px\r\n }\r\n }\n.card--no-expand .card--expand {\r\n display: none;\r\n }\n/*------------------------------------*\\\r\n # components.expander\r\n\\*------------------------------------*/\n.expander--primary__close {\r\n position: relative;\r\n padding: 12px;\r\n text-align: right;\r\n z-index: 100;\r\n }\n.expander--primary__close a {\r\n white-space: nowrap;\r\n position: absolute;\r\n bottom: -48px;\r\n right: 12px\r\n }\n.expander--primary__body {\r\n position: relative;\r\n }\n/*------------------------------------*\\\r\n # components.wizard\r\n\\*------------------------------------*/\n.wizard--primary {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n -webkit-box-align: start;\r\n -webkit-align-items: flex-start;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n padding: 12px 12px;\r\n }\n@media (min-width: 48em) {\n.wizard--primary {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n padding: 12px 36px\r\n }\r\n }\n.wizard--primary__wrap {\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n }\n.wizard--primary__link {\r\n color: #cdd1d6;\r\n text-align: center;\r\n\r\n height: 30px;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\n@media (min-width: 48em) {\n.wizard--primary__link {\r\n text-align: left\r\n } \r\n }\n.wizard--primary__dots {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23cdd1d6'%3E%3Ctitle%3Eicons / 20px / print-doc%3C/title%3E%3Ccircle cx='2.9' cy='10' r='1.3'/%3E%3Ccircle cx='7.6' cy='10' r='1.3'/%3E%3Ccircle cx='12.4' cy='10' r='1.3'/%3E%3Ccircle cx='17.1' cy='10' r='1.3'/%3E%3C/svg%3E\");\r\n -webkit-transform: rotate(90deg);\r\n -ms-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n }\n@media (max-width: 47.9375em) {\r\n \r\n .wizard--primary__dots.icon {\r\n height: 5px;\r\n margin-top: 14px;\r\n }\r\n }\n@media (min-width: 48em) {\n.wizard--primary__dots {\r\n -webkit-transform: rotate(0deg);\r\n -ms-transform: rotate(0deg);\r\n transform: rotate(0deg)\r\n }\r\n }\n.wizard--primary__item {\r\n font-size: 13px;\r\n line-height: 15.75px;\r\n font-weight: 500;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n width: 0%;\r\n }\n@media (max-width: 47.9375em) {\r\n .wizard--primary__item:nth-child(odd) {\r\n width: 20%;\r\n }\r\n\r\n .wizard--primary__item:nth-child(1) {\r\n width: 15%;\r\n }\r\n\r\n .wizard--primary__item:nth-child(3) {\r\n width: 15%;\r\n }\r\n }\n@media (min-width: 48em) {\n.wizard--primary__item {\r\n font-size: 16px;\r\n line-height: 21px;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n width: auto\r\n } \r\n }\n.wizard--primary__item.is-active {\r\n color: #e51646;\r\n }\n.wizard--primary__item.is-active .wizard--primary__icon {\r\n border-color: #e51646;\r\n background-color: #e51646;\r\n }\n.wizard--primary__item.is-active .wizard--primary__dots {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / print-doc%3C/title%3E%3Ccircle cx='2.9' cy='10' r='1.3'/%3E%3Ccircle cx='7.6' cy='10' r='1.3'/%3E%3Ccircle cx='12.4' cy='10' r='1.3'/%3E%3Ccircle cx='17.1' cy='10' r='1.3'/%3E%3C/svg%3E\");\r\n }\n.wizard--primary__item.is-active .wizard--primary__link {\r\n color: #e51646;\r\n }\n.wizard--primary__item.is-active .wizard--primary__icon--warning {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 18c-.9 0-1.5-.6-1.5-1.5S11.1 15 12 15s1.5.6 1.5 1.5S12.9 18 12 18zm1.5-4.5h-3V6h3v7.5z'/%3E%3C/svg%3E\");\r\n }\n.wizard--primary__icon {\r\n width: 30px;\r\n height: 30px;\r\n border: 2px solid #dfe3e8;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n text-align: center;\r\n margin-bottom: 6px;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n@media (min-width: 48em) {\n.wizard--primary__icon {\r\n margin-right: 6px;\r\n margin-bottom: 0\r\n }\r\n }\n.wizard--primary__icon--warning {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm0 18c-.9 0-1.5-.6-1.5-1.5S11.1 15 12 15s1.5.6 1.5 1.5S12.9 18 12 18zm1.5-4.5h-3V6h3v7.5z'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 26px 26px;\r\n background-size: 26px;\r\n height: 26px;\r\n width: 26px;\r\n }\n/*------------------------------------*\\\r\n # components.note\r\n\\*------------------------------------*/\n.note {\r\n display: block;\r\n padding: 12px;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n}\n.note--no-margin {\r\n margin-bottom: 0;\r\n }\n.note--flex {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n margin-bottom: 0;\r\n }\n.note--default {\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #8a93a0;\r\n background-color: rgba(138, 147, 160, 0.15);\r\n border: 1px solid #8a93a0;\r\n }\n.note--neutral {\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #0095db;\r\n background-color: rgba(0, 149, 219, 0.15);\r\n border: 1px solid #0095db;\r\n }\n.note--warning {\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #f03e1b;\r\n background-color: rgba(240, 62, 27, 0.15);\r\n border: 1px solid #f03e1b;\r\n }\n.note--warning a {\r\n color: #f03e1b;\r\n }\n.note--primary {\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #e51646;\r\n background-color: rgba(229, 22, 70, 0.15);\r\n border: 1px solid #e51646;\r\n }\n.note--success {\r\n font-size: 13px;\r\n line-height: 21px;\r\n color: #2dba67;\r\n background-color: rgba(45, 186, 103, 0.15);\r\n border: 1px solid #2dba67;\r\n }\n/*------------------------------------*\\\r\n # components.product\r\n\\*------------------------------------*/\n.product__card {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n width: 100%;\r\n padding: 12px;\r\n margin-bottom: 24px;\r\n\r\n text-align: center;\r\n\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: rgba(223, 227, 232, 0.25);\r\n }\n@media (min-width: 75em) {\n.product__card {\r\n padding: 24px\r\n }\r\n }\n.product__card__wrap {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n }\n.product__card__title {\r\n font-size: 21px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n display: block;\r\n margin-bottom: 12px;\r\n word-break: break-word;\r\n }\n.product__card__thumb {\r\n position: relative;\r\n\r\n margin-bottom: 24px;\r\n padding-top: 100%;\r\n width: 100%;\r\n\r\n -webkit-background-size: cover;\r\n\r\n background-size: cover;\r\n background-position: center;\r\n\r\n cursor: pointer;\r\n }\n.product__card__description {\r\n margin-bottom: 12px;\r\n color: #8a93a0;\r\n\r\n display: -webkit-box;\r\n -webkit-line-clamp: 5;\r\n -webkit-box-orient: vertical; \r\n overflow: hidden;\r\n }\n.product__card__price {\r\n font-size: 19px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n margin-bottom: 12px;\r\n margin-top: auto;\r\n }\n.product__card__icon {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 500;\r\n color: #8a93a0;\r\n display: inline-block;\r\n margin-right: 3px;\r\n vertical-align: middle;\r\n }\n/*------------------------------------*\\\r\n # components.checkout\r\n\\*------------------------------------*/\n.checkout__img {\r\n padding-top: 100%;\r\n width: 100%;\r\n\r\n border: 1px solid #dfe3e8;\r\n background-position: center;\r\n -webkit-background-size: cover;\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n }\n.checkout__img__thumb {\r\n width: 100px;\r\n height: 100px;\r\n padding-top: 0;\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\n.checkout__img__thumb--70 {\r\n width: 70px;\r\n height: 70px;\r\n }\n.checkout__img__thumb--36 {\r\n width: 36px;\r\n height: 36px;\r\n }\n.checkout__list__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n padding: 18px 12px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.checkout__list__item:last-child {\r\n border-bottom: 0;\r\n }\n.checkout__list__item--counter {\r\n -webkit-flex-basis: 120px;\r\n -ms-flex-preferred-size: 120px;\r\n flex-basis: 120px;\r\n margin-right: 9px;\r\n }\n.checkout__list__add {\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n }\n.checkout__list__label {\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n color: #8a93a0;\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n }\n.checkout__list__value {\r\n font-size: 19px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n text-align: right;\r\n margin-left: auto;\r\n max-width: 50%;\r\n }\n.checkout__list__value .input {\r\n font-size: 19px;\r\n line-height: 21px;\r\n background-color: white;\r\n cursor: default;\r\n min-width: 42px;\r\n }\n.checkout__list__value .input:hover,\r\n .checkout__list__value .input:focus {\r\n border-color: #dfe3e8;\r\n }\n.checkout__list__value.is-total {\r\n font-size: 24px;\r\n line-height: 21px;\r\n }\n.checkout__list__footer {\r\n padding: 18px 12px;\r\n padding-top: 0;\r\n }\n.checkout__list__footer__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: end;\r\n -webkit-justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n margin-bottom: 18px;\r\n }\n.checkout__list__footer__item:last-child {\r\n margin-bottom: 0;\r\n }\n.checkout__list__addon {\r\n width: 100%;\r\n \r\n display: -webkit-box;\r\n \r\n display: -webkit-flex;\r\n \r\n display: -ms-flexbox;\r\n \r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: nowrap;\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n\r\n margin-bottom: 18px;\r\n padding: 18px 12px;\r\n padding-bottom: 0;\r\n }\n.checkout__list__addon + .checkout__list__item {\r\n padding-top: 0;\r\n }\n.checkout__list__addon__value {\r\n font-size: 19px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n text-align: right;\r\n margin-left: 9px;\r\n max-width: 50%;\r\n }\n.checkout__list__addon__value .input {\r\n font-size: 19px;\r\n line-height: 21px;\r\n background-color: white;\r\n cursor: default;\r\n min-width: 42px;\r\n }\n.checkout__list__addon__value .input:hover,\r\n .checkout__list__addon__value .input:focus {\r\n border-color: #dfe3e8;\r\n }\n.checkout__list__addon__value.is-total {\r\n font-size: 24px;\r\n line-height: 21px;\r\n }\n.checkout__list__addon__button {\r\n width: 100%;\r\n background-color: #0e0125;\r\n color: white;\r\n }\n.checkout__description {\r\n color: #8a93a0;\r\n }\n@media (max-width: 47.9375em) {\n.checkout__description {\r\n margin-top: 12px;\r\n padding-top: 12px;\r\n border-top: 1px solid #f3f6f9\r\n }\r\n }\n/*------------------------------------*\\\r\n # components.layout\r\n\\*------------------------------------*/\n.addon {\r\n display: table;\r\n border-collapse: collapse;\r\n width: 100%;\r\n background-color: white;\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n table-layout: fixed;\r\n}\n.addon__head {\r\n display: table-header-group;\r\n }\n.addon__head__row {\r\n display: table-row;\r\n }\n.addon__th {\r\n font-size: 13px;\r\n line-height: 21px;\r\n display: table-cell;\r\n padding: 12px 24px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.15em;\r\n background-color: #dfe3e8;\r\n font-weight: 600;\r\n color: #8a93a0;\r\n\r\n white-space: nowrap;\r\n }\n.addon__body {\r\n display: table-row-group;\r\n }\n.addon__body__row {\r\n display: table-row;\r\n }\n.addon__td {\r\n display: table-cell;\r\n padding: 24px;\r\n }\n.addon__title {\r\n font-size: 21px;\r\n line-height: 21px;\r\n font-weight: 600;\r\n }\n.addon--popup {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n padding: 18px;\r\n border: 1px solid #dfe3e8;\r\n -webkit-border-radius: 12px;\r\n border-radius: 12px;\r\n padding: 24px;\r\n }\n.addon--popup__body {\r\n padding-bottom: 0;\r\n overflow-x: hidden;\r\n }\n.addon--popup__wrap {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n margin-left: -12px;\r\n margin-right: -12px;\r\n max-width: 600px;\r\n }\n.addon--popup__wrap__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n margin-bottom: 24px;\r\n text-align: center;\r\n }\n.addon--popup__wrap__item:nth-child(3n+1) {\r\n -webkit-flex-basis: 50%;\r\n -ms-flex-preferred-size: 50%;\r\n flex-basis: 50%;\r\n }\n.addon--popup__wrap__item:nth-child(3n+2) {\r\n width: 50%;\r\n }\n.addon--popup__wrap__item:nth-child(3n+3) {\r\n width: 100%;\r\n }\n.addon--popup__wrap__title {\r\n min-height: 42px;\r\n }\n/*------------------------------------*\\\r\n # components.public\r\n\\*------------------------------------*/\n.public__container {\r\n width: 100%;\r\n max-width: 1024px;\r\n margin: 0 auto;\r\n padding: 24px;\r\n }\n/*------------------------------------*\\\r\n # components.gateway\r\n\\*------------------------------------*/\n.gateway__top {\r\n position: relative;\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n background-color: white;\r\n }\n.gateway__top__item {\r\n padding: 24px;\r\n padding-bottom: 12px;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n@media (min-width: 48em) {\n.gateway__top__item {\r\n -webkit-flex-wrap: nowrap;\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n border-bottom: 1px solid #dfe3e8\r\n }\r\n }\n.gateway__top__item:last-child {\r\n border-bottom: 0px;\r\n }\n.gateway__top__options {\r\n padding: 24px;\r\n padding-bottom: 12px;\r\n }\n.gateway__top--half {\r\n width: 100%;\r\n }\n.gateway__top--half:first-child {\r\n padding-bottom: 24px;\r\n }\n@media (min-width: 48em) {\n.gateway__top--half {\r\n width: 50%\r\n }\r\n\r\n .gateway__top--half:first-child {\r\n padding-bottom: 0px;\r\n }\r\n }\n.gateway__top__separator {\r\n width: 100px;\r\n position: relative;\r\n height: 40px;\r\n }\n.gateway__top__separator:before {\r\n content: '';\r\n display: block;\r\n width: 1px;\r\n background-color: #dfe3e8;\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 50%;\r\n }\n.gateway__radio-list {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.gateway__radio-list__item {\r\n padding: 24px;\r\n border-bottom: 1px solid #dfe3e8;\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n min-width: 100%;\r\n }\n@media (min-width: 62em) {\n.gateway__radio-list__item {\r\n min-width: 50%\r\n }\r\n }\n.gateway__icon {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n background-image: url(" + __webpack_require__(/*! ../images/ic_check_white_24px.svg */ "./src/styles/images/ic_check_white_24px.svg") + ");\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-background-size: cover;\r\n background-size: cover;\r\n\r\n background-color: #2dba67;\r\n -webkit-border-radius: 50%;\r\n border-radius: 50%;\r\n\r\n vertical-align: middle;\r\n }\n.gateway__icon--sml {\r\n background-color: #e51646;\r\n width: 18px;\r\n height: 18px;\r\n }\n@media (min-width: 62em) {\n.gateway__icon {\r\n width: 24px;\r\n height: 24px\r\n }\r\n }\n@media (max-width: 61.9375em) {\n.gateway__select {\r\n /* margin-right: calc($unit * 2); */\r\n }\r\n }\n.gateway__text {\r\n font-weight: 500;\r\n white-space: nowrap;\r\n }\n.gateway__addon {\r\n /*white-space: nowrap;*/\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n@media (max-width: 61.9375em) {\n.gateway__addon {\r\n width: 100%\r\n }\r\n }\n.gateway__addon .input--radio + label,\r\n .gateway__addon .input--check + label {\r\n font-weight: 500;\r\n vertical-align: unset;\r\n color: #202e3c;\r\n display: inline-block;\r\n white-space: nowrap;\r\n }\n.gateway__addon .input--radio + label:before, .gateway__addon .input--check + label:before {\r\n top: -webkit-calc(50% - 9px);\r\n top: calc(50% - 9px);\r\n }\n.gateway__addon > .col {\r\n padding: 0;\r\n }\n@media (max-width: 61.9375em) {\n.gateway__addon__spc--right {\r\n margin-right: 12px\r\n }\r\n }\n.gateway__note__wrap {\r\n position: relative;\r\n display: inline-block;\r\n padding: 6px;\r\n\r\n height: 38px;\r\n line-height: 38px;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n\r\n cursor: pointer;\r\n }\n.gateway__note__wrap[disabled] {\r\n pointer-events: all;\r\n cursor: not-allowed;\r\n }\n.gateway__note__wrap[disabled] .icon {\r\n opacity: 0.5;\r\n }\n.gateway--has-note {\r\n width: 12px;\r\n height: 12px;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n background-color: #e51646;\r\n\r\n position: absolute;\r\n top: -6px;\r\n right: -6px;\r\n }\n.gateway__list__item {\r\n z-index: 99;\r\n\r\n display: -webkit-box;\r\n\r\n display: -webkit-flex;\r\n\r\n display: -ms-flexbox;\r\n\r\n display: flex;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n\r\n position: -webkit-sticky;\r\n\r\n position: sticky;\r\n top: 0;\r\n\r\n background-color: #f3f6f9;\r\n padding: 6px 12px;\r\n margin-right: -12px;\r\n margin-left: -12px;\r\n \r\n cursor: pointer;\r\n }\n@media (min-width: 48em) {\n.gateway__list__item {\r\n padding: 6px 24px;\r\n margin-right: -24px;\r\n margin-left: -24px\r\n }\r\n }\n@media (min-width: 34em) {\n.gateway__list__item {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center\r\n }\r\n }\n@media (min-width: 34em) {\n.gateway__list__item__title {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center\r\n }\r\n }\n.gateway__list__radio-button {\r\n opacity: 0;\r\n position: absolute;\r\n width: 0;\r\n }\n.gateway__list__radio-button + label {\r\n position: relative;\r\n display: inline-block;\r\n width: 129px;\r\n\r\n padding: 9px 24px;\r\n padding-left: 51px;\r\n\r\n font-weight: 500;\r\n color: #cdd1d6;\r\n \r\n -webkit-border-radius: 1000px;\r\n \r\n border-radius: 1000px;\r\n cursor: pointer;\r\n }\n.gateway__list__radio-button + label:before {\r\n content: '';\r\n display: inline-block;\r\n\r\n width: 27px;\r\n height: 27px;\r\n border: 2px solid #cdd1d6;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n \r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n.gateway__list__radio-button:checked + label {\r\n background-color: #e51646;\r\n color: #ffffff;\r\n font-weight: 400;\r\n }\n.gateway__list__radio-button:checked + label:before {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.154 12c0 5.608-4.546 10.154-10.154 10.154S1.846 17.608 1.846 12 6.392 1.846 12 1.846 22.154 6.392 22.154 12zM24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-12.923 4.075l5.268-5.268L15.04 9.5l-3.963 3.963-2.117-2.117-1.305 1.306 3.422 3.422z'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 27px 27px;\r\n background-size: 27px;\r\n background-repeat: no-repeat;\r\n\r\n border: 0;\r\n }\n.gateway__list__radio-button:focus + label {\r\n /* &:before {\r\n box-shadow: 0 0 10px rgba(0,0,0,0.4);\r\n } */\r\n }\n.gateway__list__radio-button:disabled + label {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n }\n.gateway__list__radio-button__wrapper {\r\n margin-right: 24px;\r\n }\n@media (max-width: 33.9375em) {\n.gateway__list__radio-button__wrapper {\r\n margin-bottom: 12px\r\n }\r\n }\n.gateway__details .single-option {\r\n width: 100%;\r\n }\n@media (min-width: 34em) {\n.gateway__details .single-option {\r\n width: 50%\r\n }\r\n }\n@media (min-width: 75em) {\n.gateway__details .single-option {\r\n width: 33.33%\r\n }\r\n }\n@media (min-width: 90em) {\n.gateway__details .single-option {\r\n width: 25%\r\n }\r\n }\n.gateway__details .single-option > .single-option {\r\n width: 100%;\r\n }\n.gateway__details .checkbox {\r\n width: 100%;\r\n }\n@media (min-width: 34em) {\n.gateway__details .checkbox {\r\n width: auto\r\n }\r\n }\n/*------------------------------------*\\\r\n # components.hardware\r\n\\*------------------------------------*/\n.hardware__saved {\r\n position: absolute;\r\n right: 0;\r\n bottom: 94px;\r\n left: 0;\r\n z-index: 9999;\r\n\r\n overflow-y: auto;\r\n padding: 24px;\r\n max-height: 500px;\r\n\r\n text-align: left;\r\n \r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n \r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n background-color: white;\r\n }\n@media (min-width: 23.4375em) {\n.hardware__saved {\r\n bottom: 62px\r\n }\r\n }\n@media (min-width: 34em) {\n.hardware__saved {\r\n bottom: 50px;\r\n\r\n max-height: 500px;\r\n width: 320px;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n left: 0;\r\n right: auto\r\n }\r\n }\n@media (min-width: 48em) {\n.hardware__saved {\r\n right: -142px;\r\n left: auto\r\n }\r\n }\n.hardware__saved.is-collapsed {\r\n -webkit-transform: translateX(100%);\r\n -ms-transform: translateX(100%);\r\n transform: translateX(100%);\r\n }\n@media (min-width: 34em) {\n.hardware__saved.is-collapsed {\r\n -webkit-transform: translateX(-webkit-calc(100% - 16px));\r\n -ms-transform: translateX(calc(100% - 16px));\r\n transform: translateX(calc(100% - 16px))\r\n }\r\n }\n.hardware__saved.hidden {\r\n display: none;\r\n }\n.hardware__saved__title {\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.hardware__saved__toggle {\r\n background-color: white;\r\n padding: 6px;\r\n width: 36px;\r\n height: 36px;\r\n -webkit-box-shadow: -8px 0px 10px -5px rgba(0,0,0,0.25);\r\n box-shadow: -8px 0px 10px -5px rgba(0,0,0,0.25);\r\n }\n.hardware__saved__option {\r\n margin-top: 3px;\r\n list-style: none;\r\n }\n.hardware__saved__option__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: nowrap;\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n padding: 0 6px;\r\n margin-bottom: 6px;\r\n\r\n -webkit-border-radius: 4px;\r\n\r\n border-radius: 4px;\r\n background-color: #f3f6f9;\r\n }\n.hardware__footer {\r\n position: relative;\r\n\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n\r\n background-color: #dfe3e8;\r\n padding-top: 12px;\r\n z-index: 100;\r\n -webkit-transition: all 250ms linear;\r\n -o-transition: all 250ms linear;\r\n transition: all 250ms linear;\r\n }\n@media (min-width: 90em) {\n.hardware__footer {\r\n padding: 24px 0\r\n }\r\n }\n@media (min-width: 75em) {\n.hardware__footer {\r\n left: 280px\r\n }\r\n }\n@media (max-width: 89.9375em) {\n.hardware__footer.is-collapsed {\r\n max-height: 62px\r\n }\r\n }\n.hardware__footer.is-collapsed .hardware__footer__expand__wrapper .icon--arrow--down--primary {\r\n -webkit-transform: rotate(-180deg);\r\n -ms-transform: rotate(-180deg);\r\n transform: rotate(-180deg);\r\n }\n.hardware__footer__expand {\r\n display: -webkit-inline-box;\r\n display: -webkit-inline-flex;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n\r\n height: 20px;\r\n padding: 0 9px;\r\n background-color: #dfe3e8;\r\n }\n.hardware__footer__expand__wrapper {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n \r\n position: absolute;\r\n left: 50%;\r\n bottom: 100%;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n\r\n cursor: pointer;\r\n }\n@media (min-width: 90em) {\n.hardware__footer__expand__wrapper {\r\n display: none\r\n }\r\n }\n.hardware__footer__expand__wrapper:after {\r\n content:'';\r\n display: inline-block;\r\n border-top: 10px solid transparent;\r\n border-right: 6px solid transparent;\r\n border-bottom: 10px solid #dfe3e8;\r\n border-left: 6px solid #dfe3e8;\r\n }\n.hardware__footer__expand__wrapper:before {\r\n content:'';\r\n display: inline-block;\r\n border-top: 10px solid transparent;\r\n border-right: 6px solid #dfe3e8;\r\n border-bottom: 10px solid #dfe3e8;\r\n border-left: 6px solid transparent;\r\n }\n.hardware__footer__expand__wrapper:hover .hardware__footer__expand {\r\n background-color: #cdd1d6;\r\n }\n.hardware__footer__expand__wrapper:hover:after {\r\n border-bottom: 10px solid #cdd1d6;\r\n border-left: 6px solid #cdd1d6;\r\n }\n.hardware__footer__expand__wrapper:hover:before {\r\n border-right: 6px solid #cdd1d6;\r\n border-bottom: 10px solid #cdd1d6;\r\n }\n.hardware__footer__body {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.hardware__footer__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n margin-bottom: 12px;\r\n \r\n font-size: 16px;\r\n \r\n line-height: 21px;\r\n }\n@media (max-width: 89.9375em) {\n.hardware__footer__item {\r\n padding: 0 9px\r\n }\r\n }\n@media (min-width: 90em) {\n.hardware__footer__item {\r\n margin-bottom: 0\r\n }\r\n }\n.hardware__footer__item--title {\r\n position: relative;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n@media (max-width: 89.9375em) {\n.hardware__footer__item--title {\r\n width: 100%\r\n }\r\n }\n.hardware__footer__item--button {\r\n border-right: 0;\r\n }\n.hardware__footer__item--button:last-child {\r\n padding-right: 0;\r\n }\n@media (min-width: 62em) {\n.hardware__footer__item--button {\r\n padding-right: 12px\r\n }\r\n }\n.hardware__footer__item__border {\r\n width: 1px;\r\n height: 24px;\r\n background-color: #cdd1d6;\r\n margin: 0 12px 12px 12px;\r\n\r\n }\n@media (max-width: 89.9375em) {\n.hardware__footer__item__border {\r\n display: none\r\n\r\n }\r\n }\n@media (min-width: 90em) {\n.hardware__footer__item__border {\r\n margin-bottom: 0\r\n\r\n }\r\n }\n@media (min-width: 34em) {\n.hardware__footer__item--saved {\r\n position: relative\r\n }\r\n }\n.hardware__footer--modal {\r\n position: relative;\r\n left: 0;\r\n }\n@media (max-width: 89.9375em) {\r\n .hardware__footer--modal.is-collapsed .hardware__footer__body {\r\n max-height: 50px;\r\n }\r\n }\n.hardware__items__label {\r\n letter-spacing: 0.1250em;\r\n text-transform: uppercase;\r\n color: #9ea6b3;\r\n font-size: 13px;\r\n line-height: 21px;\r\n font-weight: 700;\r\n }\n@media (min-width: 48em) {\n.hardware__items__label {\r\n display: none\r\n }\r\n }\n@media (max-width: 47.9375em) {\n.hardware__items__label__header {\r\n display: none\r\n }\r\n }\n.hardware__items__thumbnail {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 70px;\r\n -ms-flex: 0 0 70px;\r\n flex: 0 0 70px;\r\n margin-right: 24px;\r\n }\n@media (min-width: 34em) {\n.hardware__preview {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex\r\n }\r\n }\n.hardware__preview__main {\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n max-width: 850px;\r\n }\n@media (min-width: 34em) {\r\n .hardware__preview__main .checkout__img {\r\n display: none;\r\n }\r\n }\n@media (max-width: 33.9375em) {\r\n .hardware__preview__aside .checkout__img {\r\n display: none;\r\n }\r\n }\n@media (min-width: 34em) {\n.hardware__preview__aside {\r\n -webkit-flex-shrink: 0;\r\n -ms-flex-negative: 0;\r\n flex-shrink: 0;\r\n -webkit-flex-basis: 250px;\r\n -ms-flex-preferred-size: 250px;\r\n flex-basis: 250px;\r\n margin-left: 24px\r\n }\r\n }\n@media (min-width: 48em) {\n.hardware__preview__aside {\r\n -webkit-flex-basis: 300px;\r\n -ms-flex-preferred-size: 300px;\r\n flex-basis: 300px\r\n }\r\n }\n@media (min-width: 90em) {\n.hardware__preview__aside {\r\n -webkit-flex-basis: 350px;\r\n -ms-flex-preferred-size: 350px;\r\n flex-basis: 350px\r\n }\r\n }\n/*------------------------------------*\\\r\n # components.accessories\r\n\\*------------------------------------*/\n.accessories__filter {\r\n background-color: #f3f6f9;\r\n padding: 9px 18px;\r\n padding-bottom: 0;\r\n margin-bottom: 18px;\r\n overflow: hidden;\r\n }\n@media (min-width: 48em) {\n.accessories__filter {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap\r\n }\r\n }\n.accessories__list__header {\r\n background-color: #fafafa;\r\n padding: 6px 18px;\r\n margin-bottom: 12px;\r\n\r\n font-size: 12px;\r\n\r\n line-height: 21px;\r\n font-weight: 700;\r\n }\n.accessories__list__item {\r\n padding: 0;\r\n margin-bottom: 12px;\r\n }\n.accessories__list__item__thumbnail {\r\n margin-right: 12px;\r\n height: 60px;\r\n min-width: 60px;\r\n\r\n border: 1px solid #dfe3e8;\r\n -webkit-background-size: 60px 60px;\r\n background-size: 60px;\r\n }\n/* Add and Added custom checkbox buttons */\n.accessories__list__item__add-check {\r\n padding: 12px 18px;\r\n width: 107px;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n.accessories__list__item__add-check:hover {\r\n background-color: #f3f6f9;\r\n }\n.accessories__list__item__add-check label {\r\n white-space: nowrap;\r\n }\n.accessories__list__item__added-check {\r\n padding: 12px 18px;\r\n background-color: #e51646;\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n }\n.accessories__list__item__added-check label {\r\n color: #ffffff;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n }\n.accessories__list__item__added-check .input--check:checked + label:before {\r\n border: 2px solid #ffffff;\r\n }\n.accessories__list__item__quantity {\r\n width: 120px;\r\n }\n.accessories__list__item--expanded {\r\n background-color: #f3f6f9;\r\n }\n/*------------------------------------*\\\r\n # components.equipment\r\n\\*------------------------------------*/\n.equipment__details__table {\r\n border: 1px solid #dfe3e8;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.equipment__details__table__item {\r\n width: 100%;\r\n position: relative;\r\n padding: 21px;\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n@media (min-width: 48em) {\n.equipment__details__table__item {\r\n width: 50%\r\n }\r\n }\n.equipment__details__table__item.border:after {\r\n content: '';\r\n position: absolute;\r\n right: 0;\r\n top: 21px;\r\n bottom: 21px;\r\n border-right: 1px solid #dfe3e8;\r\n }\n@media (max-width: 47.9375em) {\n.equipment__details__table__item.border:after {\r\n display: none\r\n }\r\n }\n.equipment__details__table--no-border {\r\n border: 0;\r\n }\n.equipment__details__table--no-border .equipment__details__table__item {\r\n padding: 21px 12px;\r\n }\n.equipment__list {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n position: relative;\r\n -webkit-box-pack: left;\r\n -webkit-justify-content: left;\r\n -ms-flex-pack: left;\r\n justify-content: left;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n@media (min-width: 75em) {\n.equipment__list {\r\n padding-right: 140px\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list {\r\n padding-right: 0\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list--pos {\r\n padding-right: 0\r\n }\r\n .equipment__list--pos .equipment__list__item.select {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n }\r\n }\n@media (min-width: 75em) {\r\n\r\n }\n.equipment__list__item {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n \r\n -webkit-box-ordinal-group: 3;\r\n \r\n -webkit-order: 2;\r\n \r\n -ms-flex-order: 2;\r\n \r\n order: 2;\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 100%;\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n }\n@media (min-width: 34em) {\n.equipment__list__item {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 50%;\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%\r\n }\r\n }\n@media (min-width: 48em) {\n.equipment__list__item {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 33.33%;\r\n -ms-flex: 0 0 33.33%;\r\n flex: 0 0 33.33%\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list__item {\r\n -webkit-box-flex: 1;\r\n -webkit-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1\r\n }\r\n }\n.equipment__list__item.checkbox {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 140px;\r\n -ms-flex: 0 0 140px;\r\n flex: 0 0 140px;\r\n }\n.equipment__list__item.name {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 100%;\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n }\n@media (min-width: 34em) {\n.equipment__list__item.name {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 50%;\r\n -ms-flex: 0 0 50%;\r\n flex: 0 0 50%\r\n }\r\n }\n@media (min-width: 48em) {\n.equipment__list__item.name {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 33.33%;\r\n -ms-flex: 0 0 33.33%;\r\n flex: 0 0 33.33%\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.name {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 20%;\r\n -ms-flex: 0 0 20%;\r\n flex: 0 0 20%\r\n }\r\n }\n/* Select checkbox at the top of the section (mobile version) */\n.equipment__list__item.select {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 100%;\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n }\n@media (min-width: 75em) {\n.equipment__list__item.select {\r\n position: absolute;\r\n top: 50%;\r\n right: 0;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%)\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.select {\r\n position: relative;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0;\r\n -ms-flex: 0;\r\n flex: 0;\r\n -webkit-transform: translateY(0);\r\n -ms-transform: translateY(0);\r\n transform: translateY(0)\r\n }\r\n }\n.equipment__list__item.select .equipment__list__th {\r\n display: none;\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.select .equipment__list__th {\r\n display: block\r\n }\r\n }\n.equipment__list__item.select .equipment__list__td {\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\n/* Last cell in list */\n.equipment__list__item.expand {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0 0 100%;\r\n -ms-flex: 0 0 100%;\r\n flex: 0 0 100%;\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.expand {\r\n -webkit-box-flex: 0;\r\n -webkit-flex: 0;\r\n -ms-flex: 0;\r\n flex: 0\r\n }\r\n }\n.equipment__list__item.expand .equipment__list__th {\r\n display: none;\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.expand .equipment__list__th {\r\n display: block\r\n }\r\n }\n.equipment__list__item.expand .equipment__list__td {\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\n@media (min-width: 75em) {\n.equipment__list__item.expand .equipment__list__td {\r\n position: absolute;\r\n right: 0;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%)\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.expand .equipment__list__td {\r\n position: relative;\r\n top: 0;\r\n -webkit-transform: translateY(0);\r\n -ms-transform: translateY(0);\r\n transform: translateY(0)\r\n }\r\n }\n.equipment__list__item.expand .equipment__list__td .accessories__list__item__added-check,\r\n .equipment__list__item.expand .equipment__list__td .accessories__list__item__add-check {\r\n display: none;\r\n }\n@media (min-width: 75em) {\n.equipment__list__item.expand .equipment__list__td .accessories__list__item__added-check,\r\n .equipment__list__item.expand .equipment__list__td .accessories__list__item__add-check {\r\n display: inline-block\r\n }\r\n }\n@media (min-width: 90em) {\n.equipment__list__item.expand .equipment__list__td .accessories__list__item__added-check,\r\n .equipment__list__item.expand .equipment__list__td .accessories__list__item__add-check {\r\n display: none\r\n }\r\n }\n.equipment__list__th {\r\n display: block;\r\n\r\n padding: 6px 18px;\r\n\r\n font-size: 11px;\r\n\r\n line-height: 21px;\r\n text-align: left;\r\n font-weight: 600;\r\n color: #9ea6b3;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n white-space: nowrap;\r\n background-color: #f9fbfd;\r\n height: 33px;\r\n }\n.equipment__list__th [data-tooltip]:before {\r\n text-transform: initial;\r\n white-space: normal;\r\n }\n.equipment__list__th.right {\r\n -webkit-box-pack: end;\r\n -webkit-justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n }\n.equipment__list__td {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n padding: 18px 15px;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n word-break: break-word;\r\n }\n.equipment__list__td.right {\r\n -webkit-box-pack: end;\r\n -webkit-justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n }\n.equipment__list__td.top {\r\n -webkit-box-align: start;\r\n -webkit-align-items: start;\r\n -ms-flex-align: start;\r\n align-items: start;\r\n }\n.equipment__status {\r\n position: relative;\r\n }\n.equipment__status:before {\r\n content: '';\r\n\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n\r\n background-color: rgba(255, 255, 255, 0.65);\r\n }\n.equipment__status:after {\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n\r\n display: inline-block;\r\n padding: 3px 12px;\r\n \r\n font-size: 18px;\r\n \r\n line-height: 21px;\r\n text-align: center;\r\n text-transform: uppercase;\r\n font-weight: bold;\r\n white-space: nowrap;\r\n color: white;\r\n\r\n background-color: #e51646;\r\n }\n.equipment__status.out-of-stock:after {\r\n content: 'Out of Stock';\r\n }\n.equipment__status.not-available:after {\r\n content: 'Not Available for Purchase';\r\n }\n.equipment__status.beta:after {\r\n content: 'Beta';\r\n }\n.equipment__status--accessories:after {\r\n display: none;\r\n }\n.equipment__status--accessories + a:after {\r\n display: inline-block;\r\n padding: 3px 12px;\r\n \r\n font-size: 14px;\r\n \r\n line-height: 21px;\r\n text-align: center;\r\n text-transform: uppercase;\r\n font-weight: bold;\r\n white-space: nowrap;\r\n color: white;\r\n \r\n background-color: #e51646;\r\n }\n.equipment__status--accessories.out-of-stock + a:after {\r\n content: 'Out of Stock';\r\n }\n.equipment__status--accessories.not-available + a:after {\r\n content: 'Not Available for Purchase';\r\n }\n/*------------------------------------*\\\r\n # components.messages\r\n\\*------------------------------------*/\n.message {\r\n display: inline-block;\r\n padding: 12px;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n font-size: 14px;\r\n line-height: 21px;\r\n position: relative;\r\n}\n.message--default {\r\n color: #8a93a0;\r\n background-color: #f3f6f9;\r\n }\n.message--primary {\r\n color: #e51646;\r\n background-color: #fef4f6;\r\n }\n.message--error {\r\n color: #e51646;\r\n background-color: #fef4f6;\r\n padding-left: 42px;\r\n }\n.message--error:before {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 12px;\r\n \r\n height: 18px;\r\n width: 18px;\r\n\r\n -webkit-transform: translateY(-50%);\r\n\r\n -ms-transform: translateY(-50%);\r\n\r\n transform: translateY(-50%);\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='.1' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20z' fill='%23E51646'/%3E%3Cpath d='M20 11c-4.95 0-9 4.05-9 9s4.05 9 9 9 9-4.05 9-9-4.05-9-9-9zm0 13.5c-.675 0-1.125-.45-1.125-1.125s.45-1.125 1.125-1.125 1.125.45 1.125 1.125S20.675 24.5 20 24.5zm1.125-3.375h-2.25V15.5h2.25v5.625z' fill='%23EB6787'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px;\r\n background-repeat: no-repeat;\r\n }\n.message__close {\r\n position: absolute;\r\n top: 6px;\r\n right: 9px;\r\n cursor: pointer;\r\n }\n/*------------------------------------*\\\r\n # components.loadmore\r\n\\*------------------------------------*/\n.loadmore {\r\n font-size: 13px;\r\n line-height: 21px;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n}\n.loadmore__item {\r\n height: 35px;\r\n background-color: #ffffff;\r\n padding: 0 12px;\r\n margin-left: -1px;\r\n\r\n line-height: 35px;\r\n color: #202e3c;\r\n\r\n outline: none;\r\n cursor: pointer;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n border: 1px solid #dfe3e8;\r\n }\n.loadmore__item.is-active {\r\n background-color: rgba(223, 227, 232, 0.5);\r\n font-weight: 500;\r\n color: #202e3c;\r\n }\n.loadmore__item:first-child {\r\n -webkit-border-radius: 1000px 0 0 1000px;\r\n border-radius: 1000px 0 0 1000px;\r\n }\n.loadmore__item:last-child {\r\n -webkit-border-radius: 0 1000px 1000px 0;\r\n border-radius: 0 1000px 1000px 0;\r\n }\n.loadmore .input--select {\r\n height: 36px;\r\n }\n/*------------------------------------*\\\r\n # components.mpa\r\n\\*------------------------------------*/\n.mpa__signature:hover img {\r\n -webkit-box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n box-shadow: 0 4px 12px 0 rgba(0,0,0,0.15);\r\n }\n.mpa__signature img {\r\n border: 2px solid #dfe3e8;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n -webkit-transition: all 250ms ease-in-out;\r\n -o-transition: all 250ms ease-in-out;\r\n transition: all 250ms ease-in-out;\r\n }\n/**\r\n* Import: views\r\n* Description: specific website/app views (example: 404 view, login view)\r\n*/\n/* @import view.404.css; */\n/*------------------------------------*\\\r\n #view.home\r\n\\*------------------------------------*/\n.home__hero {\r\n\t\tdisplay: block;\r\n\t\tpadding: 240px 48px 186px 48px;\r\n\t\tbackground-color: #008000;\r\n\t\tcolor: white;\r\n\t}\n.home__hero__title {\r\n font-size: 56px;\r\n line-height: 42px;\r\n }\n.home__hero__subtitle {\r\n font-size: 21px;\r\n line-height: 31.5px;\r\n font-weight: 300;\r\n width: 480px;\r\n }\n.home__top {\r\n position: -webkit-sticky;\r\n position: sticky;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 2;\r\n\r\n padding: 12px 24px;\r\n\r\n background-color: white;\r\n border-bottom: 1px solid #dedede;\r\n }\n.home__baseline {\r\n z-index: 0;\r\n }\n.home__baseline:after {\r\n background: -webkit-linear-gradient(top, hsla(280, 50%, 30%, 0.1), hsla(280, 50%, 30%, 0.1) 1px, transparent 1px, transparent);\r\n background: -o-linear-gradient(top, hsla(280, 50%, 30%, 0.1), hsla(280, 50%, 30%, 0.1) 1px, transparent 1px, transparent);\r\n background: linear-gradient(to bottom, hsla(280, 50%, 30%, 0.1), hsla(280, 50%, 30%, 0.1) 1px, transparent 1px, transparent);\r\n -webkit-background-size: 100% 5.25px;\r\n background-size: 100% 5.25px;\r\n bottom: 0;\r\n content: \"\";\r\n display: block;\r\n left: 0;\r\n position: fixed;\r\n right: 0;\r\n top: 0;\r\n z-index: 10;\r\n pointer-events: none;\r\n }\n.home__title--primary {\r\n font-size: 33px;\r\n line-height: 42px;\r\n color: #e51646;\r\n }\n.home__title--secondary {\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n color: #25252b;\r\n }\n.home__divider--primary {\r\n width: 36px;\r\n height: 3px;\r\n background-color: #e51646;\r\n }\n.home__divider--styled {\r\n height: 54px;\r\n background-repeat: repeat-x;\r\n -webkit-background-size: 100px 100px;\r\n background-size: 100px;\r\n \r\n }\n.home__data--primary {\r\n position: relative;\r\n }\n.home__data--primary:before {\r\n font-size: 16px;\r\n font-weight: 400;\r\n \r\n content: attr(data-name);\r\n display: block;\r\n\r\n position: absolute;\r\n left: -84px;\r\n \r\n width: 84px;\r\n color: #e51646;\r\n }\n.home__grid .col span {\r\n display: block;\r\n padding: 18px;\r\n background-color: rgba(255, 0, 0, 0.25);\r\n }\n.home__grid.row, .home__grid .row {\r\n background-color: rgba(0, 0, 255, 0.25);\r\n }\n/*@import \"view.settings.css\";*/\n/*------------------------------------*\\\r\n # view.membership\r\n\\*------------------------------------*/\n.membership {\r\n\r\n\tmin-height: 100vh;\r\n\tbackground-color: #fff;\r\n\t-webkit-background-size: cover;\r\n\t background-size: cover;\r\n}\n@media (min-width: 34em) {\n.membership {\r\n\t\tbackground-image: url(" + __webpack_require__(/*! ../../img/login-register-page-background.png */ "./src/img/login-register-page-background.png") + ")\r\n}\r\n\t}\n.membership__header {\r\n\t\toverflow: hidden;\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tright: 0;\r\n\t\tleft: 0;\r\n\r\n\t\twidth: 100%;\r\n\t\tpadding: 24px 24px 9px 18px;\r\n\r\n\t\ttext-align: center;\r\n\t\t\r\n\t\tz-index: 2;\r\n\t}\n/* @media (--screen-height-from-sml) {\r\n\t\t\tposition: fixed;\r\n\t\t\ttop: 0;\r\n\t\t\tleft: 0;\r\n\t\t} */\n@media (min-width: 34em) {\n.membership__header {\r\n\t\t\tpadding: 33px 24px\r\n\t}\r\n\t\t}\n/* @media (--screen-height-from-tny) {\r\n\t\t\tpadding: calc($unit * 6);\r\n\t\t} */\n@media (min-width: 75em) {\n.membership__header {\r\n\t\t\twidth: auto;\r\n\t\t\tpadding: 30px 36px;\r\n\t\t\tbackground-color: transparent;\r\n\t\t\ttext-align: left\r\n\t}\r\n\t\t}\n.membership__privacy {\r\n\t\tposition: absolute;\r\n\t\tbottom: 12px;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 0 24px;\r\n\t\tcolor: #c8cfd5;\r\n\r\n\t\tfont-size: 14px;\r\n\r\n\t\tline-height: 21px;\r\n\t\ttext-align: center;\r\n\t}\n@media (min-width: 75em) {\n.membership__privacy {\r\n\t\t\tbottom: 34px\r\n\t}\r\n\t\t}\n.membership__privacy__link {\r\n\t\t\ttext-decoration: underline;\r\n\t }\n@media (min-height: 34.75em) {\n.membership__privacy__link {\r\n\t\t color: #c8cfd5\r\n\t }\r\n\r\n\t\t .membership__privacy__link:hover, .membership__privacy__link:focus {\r\n\t\t color: rgb(182, 182, 182);\r\n\t\t }\r\n\t\t }\n.membership__logo {\r\n\t\twidth: 120px;\r\n\r\n\t\t/* &--primary {\r\n\t\t\t@media (--screen-from-lrg) {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t} */\r\n\r\n\t\t/* &--secondary {\r\n\t\t\t@media (--screen-to-lrg) {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t} */\r\n\t}\n@media (min-width: 75em) {\n.membership__logo {\r\n\t\t\twidth: 156px\r\n\t}\r\n\t\t}\n.membership__logo--co-brand {\r\n\t\t\twidth: 312px;\r\n\t\t}\n.membership__spacer {\r\n\t\tmargin-bottom: 12px;\r\n\r\n\t\t/* @media (--screen-height-from-sml) {\r\n\t\t\tmargin-bottom: calc($unit * 5);\r\n\t\t} */\r\n\t}\n@media (min-width: 34em) {\n.membership__spacer {\r\n\t\t\tmargin-bottom: 21px\r\n\t}\r\n\t\t}\n@media (min-width: 75em) {\n.membership__spacer {\r\n\t\t\tmargin-bottom: 30px\r\n\t}\r\n\t\t}\n@media (max-height: 38.9375em) {\n.membership__spacer {\r\n\t\t\tmargin-bottom: 21px\r\n\t}\r\n\t\t}\n.membership--aside {\r\n\t\tposition: fixed;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\twidth: 100%;\r\n\t\tbackground-color: #261a3b;\r\n\t\tbackground-image: url('/static/media/login.jpg');\r\n\t\tbackground-repeat: no-repeat;\r\n\t\t-webkit-background-size: cover;\r\n\t\t background-size: cover;\r\n\t\tbackground-position: center center;\r\n\t}\n@media (max-height: 34.6875em) {\n.membership--aside {\r\n\t\t\tdisplay: none\r\n\t}\r\n\t\t}\n@media (max-height: 38.9375em) and (min-width: 48em) {\n.membership--aside {\r\n\t\t\tdisplay: none\r\n\t}\r\n\t\t}\n@media (min-width: 62em) {\n.membership--aside {\r\n\t\t\ttop: 0;\r\n\t\t\twidth: 494px\r\n\t}\r\n\t\t}\n.membership--aside__content {\r\n\t\t\tdisplay: none;\r\n\t\t\twidth: 100%;\r\n\t\t\tcolor: #fff;\r\n\t\t\ttext-align: center;\r\n\t\t}\n@media (min-height: 39em) {\n.membership--aside__content {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\t-webkit-transform: translateY(-50%);\r\n\t\t\t\t -ms-transform: translateY(-50%);\r\n\t\t\t\t transform: translateY(-50%)\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 62em) {\n.membership--aside__content {\r\n\t\t\t\tdisplay: block\r\n\t\t}\r\n\t\t\t}\n.membership--aside__title {\r\n\t\t\tmax-width: 348px;\r\n\t\t\tmargin: 0 auto 18px;\r\n\t\t\tfont-size: 28px;\r\n\t\t\tline-height: 36.75px;\r\n\t\t\tfont-weight: 400;\r\n\t\t\ttext-transform: uppercase;\r\n\t\t}\n.membership--aside__description {\r\n\t\t\tmax-width: 282px;\r\n\t\t\tmargin: 0 auto 24px;\r\n\t\t\tfont-size: 16px;\r\n\t\t\tline-height: 26.25px;\r\n\t\t\tcolor: #a8afb7;\r\n\t\t}\n.membership__companies {\r\n\t\twidth: 100%;\r\n\t\tmax-width: 504px;\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 18px 18px 0;\r\n\t\t\r\n\t\tcolor: #9AA2B0;\r\n\t\t\r\n\t\tfont-size: 14px;\r\n\t\t\r\n\t\tline-height: 21px;\r\n\t\tfont-weight: 500;\r\n\t\tletter-spacing: 1.5px;\r\n\t\ttext-align: center;\r\n\t\ttext-transform: uppercase;\r\n\r\n\t}\n@media (min-width: 34em) {\n.membership__companies {\r\n\t\t\tpadding: 18px 18px 24px;\r\n\t\t\tmargin-top: 12px\r\n\r\n\t}\r\n\t\t}\n.membership__companies__title {\r\n\t\t\tposition: relative;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tmargin-bottom: 24px;\r\n\t\t}\n.membership__companies__title:before,\r\n\t\t\t.membership__companies__title:after {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\t-webkit-transform: translateY(-50%);\r\n\t\t\t\t -ms-transform: translateY(-50%);\r\n\t\t\t\t transform: translateY(-50%);\r\n\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\theight: 1px;\r\n\t\t\t\twidth: 18px;\r\n\r\n\t\t\t\tbackground-color: #9AA2B0;\r\n\t\t\t}\n.membership__companies__title:before {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tleft: -27px;\r\n\t\t\t}\n.membership__companies__title:after {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tright: -27px;\r\n\t\t\t}\n.membership__companies__wrapper {\r\n\t\t\tdisplay: -webkit-box;\r\n\t\t\tdisplay: -webkit-flex;\r\n\t\t\tdisplay: -ms-flexbox;\r\n\t\t\tdisplay: flex;\r\n\t\t\t-webkit-box-align: center;\r\n\t\t\t-webkit-align-items: center;\r\n\t\t\t -ms-flex-align: center;\r\n\t\t\t align-items: center;\r\n\t\t}\n.membership__companies__item {\r\n\t\t\tfloat: left;\r\n\t\t\twidth: 25%;\r\n\t\t\tpadding: 9px;\r\n\t\t}\n.membership--main {\r\n\t\tposition: relative;\r\n\t\tz-index: 0;\r\n\t\tpadding-top: 60px;\r\n\t\tpadding-bottom: 42px;\r\n\t\tmin-height: 100vh;\r\n\t\toverflow-y: auto;\r\n\t}\n@media (min-width: 34em) {\n.membership--main {\r\n\t\t\tpadding-top: 94px;\r\n\t\t\tpadding-bottom: 60px\r\n\t}\r\n\t\t}\n/* @media (--screen-height-from-sml) {\r\n\t\t\tpadding-top: calc($unit * 12);\r\n\t\t} */\n.membership--main__action {\r\n\t\t\tcolor: #9ea6b3;\r\n\t\t}\n@media (max-width: 33.9375em) {\n.membership--main__label {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n.membership--main__btn {\r\n\t\t\tbackground-color: transparent;\r\n\t\t}\n@media (max-width: 33.9375em) {\n.membership--main__btn {\r\n\t\t\t\theight: 36px;\r\n\t\t\t\tpadding: 0 18px;\r\n\t\t\t\tline-height: 36px;\r\n\t\t\t\tborder: 1px solid #cdd1d6;\r\n\t\t\t\t-webkit-border-radius: 4px;\r\n\t\t\t\t border-radius: 4px;\r\n\t\t\t\twidth: 100%\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 34em) {\n.membership--main__btn {\r\n\t\t\t\tmargin-top: 0;\r\n\t\t\t\tcolor: #e51646;\r\n\t\t\t\tborder: none\r\n\t\t}\r\n\t\t\t}\n.membership__section {\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t\tmax-width: 511px;\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 18px;\r\n\t\t-webkit-border-radius: 8px;\r\n\t\t border-radius: 8px;\r\n\t}\n@media (min-width: 34em) {\n.membership__section {\r\n\t\t\tpadding: 36px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\t-webkit-box-shadow: 0 20px 40px 0 rgba(107,107,107,0.1);\r\n\t\t\t box-shadow: 0 20px 40px 0 rgba(107,107,107,0.1)\r\n\t}\r\n\t\t}\n@media (min-width: 75em) {\n.membership__section {\r\n\t\t\tpadding: 78px\r\n\t}\r\n\t\t}\n@media (max-height: 38.9375em) {\n.membership__section {\r\n\t\t\tpadding: 18px\r\n\t}\r\n\t\t}\n/* Dots behind form */\n.membership__section:before {\r\n\t\t\tcontent: '';\r\n\t\t\tdisplay: none;\r\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='280' height='274' viewBox='0 0 280 274' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EDots 2@3x%3C/title%3E%3Cg fill='%23000' fill-rule='evenodd' opacity='.1'%3E%3Cpath d='M7.596 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 2.29A1.145 1.145 0 1 0 20.498 0a1.145 1.145 0 0 0 0 2.29M33.4 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 2.29A1.145 1.145 0 1 0 59.205 0a1.145 1.145 0 0 0 0 2.29M72.108 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M97.912 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 2.29a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M136.62 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 2.29a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M162.424 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 2.29a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M201.132 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 2.29a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M226.936 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 2.29A1.145 1.145 0 1 0 252.74 0a1.145 1.145 0 0 0 0 2.29M265.644 2.29a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 2.29a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M1.144 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M39.852 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M65.656 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M104.364 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M130.168 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M168.876 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M194.68 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 15.192a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M233.388 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M259.192 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 15.192a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M33.4 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M72.108 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M97.912 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M136.62 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M162.424 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M201.132 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M226.936 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M265.644 28.094a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 28.094a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M1.144 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M39.852 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M65.656 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M104.364 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M130.168 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M168.876 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M194.68 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 40.996a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M233.388 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M259.192 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 40.996a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 53.899a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M33.4 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M46.303 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M59.206 53.899a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M72.108 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 53.899a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M97.912 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M110.815 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M123.718 53.899a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M136.62 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 53.899a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M162.424 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M175.327 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M188.23 53.899a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M201.132 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 53.899a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M226.936 53.899a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M239.84 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 53.899a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M265.644 53.899a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 53.899a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M1.144 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M39.852 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M65.656 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M104.364 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M130.168 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M168.876 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M194.68 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 66.801a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M233.388 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 66.801a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M259.192 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 66.801a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M33.4 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M72.108 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M97.912 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M136.62 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M162.424 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M201.132 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M226.936 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M265.644 79.704a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 79.704a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M1.144 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M39.852 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M65.656 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M104.364 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M130.168 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M168.876 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M194.68 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 92.606a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M233.388 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M259.192 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 92.606a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M33.4 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M72.108 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M97.912 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M136.62 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M162.424 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M201.132 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M226.936 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M265.644 105.508a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 105.508a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M1.144 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M14.047 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M26.95 118.41a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.289M39.852 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M52.755 118.41a1.144 1.144 0 1 0-.001-2.288 1.144 1.144 0 0 0 0 2.289M65.656 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M78.56 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M91.462 118.41a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.289M104.364 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M117.267 118.41a1.144 1.144 0 1 0-.001-2.288 1.144 1.144 0 0 0 0 2.289M130.168 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M143.071 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M155.974 118.41a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.289M168.876 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M181.779 118.41a1.144 1.144 0 1 0-.001-2.288 1.144 1.144 0 0 0 0 2.289M194.68 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M207.583 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M220.486 118.41a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.289M233.388 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M246.29 118.41a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.289M259.192 118.41a1.145 1.145 0 1 0 .001-2.289 1.145 1.145 0 0 0 0 2.29M272.095 118.41a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M7.596 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M33.4 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M72.108 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 131.313a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M97.912 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M136.62 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M162.424 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M201.132 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M226.936 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M265.644 131.313a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 131.313a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M1.144 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M39.852 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M65.656 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M104.364 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M130.168 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M168.876 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M194.68 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 144.216a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M233.388 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M259.192 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 144.216a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M33.4 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M72.108 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 157.118a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M97.912 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M136.62 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M162.424 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M201.132 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M226.936 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M265.644 157.118a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 157.118a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M1.144 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M14.047 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M26.95 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M39.852 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M52.755 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M65.656 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M78.56 170.02a1.144 1.144 0 1 0 .001-2.288 1.144 1.144 0 0 0-.002 2.288M91.462 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M104.364 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M117.267 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M130.168 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M143.071 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M155.974 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M168.876 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M181.779 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M194.68 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M207.583 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M220.486 170.02a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M233.388 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M246.29 170.02a1.144 1.144 0 1 0 .001-2.288 1.144 1.144 0 0 0 0 2.288M259.192 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M272.095 170.02a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M7.596 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 182.923a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M33.4 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M46.303 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M59.206 182.923a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M72.108 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 182.923a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M97.912 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M110.815 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M123.718 182.923a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M136.62 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 182.923a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M162.424 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M175.327 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M188.23 182.923a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M201.132 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 182.923a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M226.936 182.923a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M239.84 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 182.923a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M265.644 182.923a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 182.923a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M1.144 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M39.852 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M65.656 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M104.364 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M130.168 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M168.876 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M194.68 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 195.826a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M233.388 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M259.192 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 195.826a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 208.728a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M33.4 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M46.303 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M59.206 208.728a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M72.108 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 208.728a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M97.912 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M110.815 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M123.718 208.728a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M136.62 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 208.728a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M162.424 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M175.327 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M188.23 208.728a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M201.132 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 208.728a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M226.936 208.728a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M239.84 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 208.728a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M265.644 208.728a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 208.728a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M1.144 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M14.047 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M26.95 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M39.852 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M65.656 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M78.56 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M104.364 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M130.168 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M143.071 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M155.974 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M168.876 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M194.68 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M207.583 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M220.486 221.63a1.145 1.145 0 1 0-.001-2.289 1.145 1.145 0 0 0 0 2.29M233.388 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 221.63a1.145 1.145 0 1 0 0-2.289 1.145 1.145 0 0 0 0 2.29M259.192 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M272.095 221.63a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M20.499 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M33.4 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M46.303 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M59.206 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M72.108 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M85.01 234.532a1.144 1.144 0 1 0 .001-2.288 1.144 1.144 0 0 0 0 2.288M97.912 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M110.815 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M123.718 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M136.62 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M149.523 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M162.424 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M175.327 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M188.23 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M201.132 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M214.035 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M226.936 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M239.84 234.532a1.144 1.144 0 1 0 .001-2.288 1.144 1.144 0 0 0-.002 2.288M252.742 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M265.644 234.532a1.144 1.144 0 1 0 .002-2.288 1.144 1.144 0 0 0-.002 2.288M278.547 234.532a1.144 1.144 0 1 0 0-2.288 1.144 1.144 0 0 0 0 2.288M1.144 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M14.047 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M26.95 247.435a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M39.852 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 247.435a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M65.656 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M78.56 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 247.435a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M104.364 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 247.435a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M130.168 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M143.071 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M155.974 247.435a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M168.876 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 247.435a1.144 1.144 0 1 0-.001-2.289 1.144 1.144 0 0 0 0 2.29M194.68 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M207.583 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M220.486 247.435a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M233.388 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 247.435a1.144 1.144 0 1 0 0-2.289 1.144 1.144 0 0 0 0 2.29M259.192 247.435a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M272.095 247.435a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M7.596 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M20.499 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M33.4 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M46.303 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M59.206 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M72.108 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M85.01 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M97.912 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M110.815 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M123.718 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M136.62 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M149.523 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M162.424 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M175.327 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M188.23 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M201.132 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M214.035 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M226.936 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M239.84 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M252.742 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M265.644 260.338a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M278.547 260.338a1.145 1.145 0 1 0-.001-2.29 1.145 1.145 0 0 0 0 2.29M1.144 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M14.047 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M26.95 273.24a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M39.852 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M52.755 273.24a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M65.656 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M78.56 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M91.462 273.24a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M104.364 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M117.267 273.24a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M130.168 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M143.071 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M155.974 273.24a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M168.876 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M181.779 273.24a1.144 1.144 0 1 0-.001-2.29 1.144 1.144 0 0 0 0 2.29M194.68 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M207.583 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M220.486 273.24a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M233.388 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29M246.29 273.24a1.144 1.144 0 1 0 0-2.29 1.144 1.144 0 0 0 0 2.29M259.192 273.24a1.145 1.145 0 1 0 .001-2.29 1.145 1.145 0 0 0 0 2.29M272.095 273.24a1.145 1.145 0 1 0 0-2.29 1.145 1.145 0 0 0 0 2.29'/%3E%3C/g%3E%3C/svg%3E\");\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\tposition: absolute;\r\n\t\t\tleft: -70px;\r\n\t\t\tbottom: -60px;\r\n\t\t\theight: 250px;\r\n\t\t\twidth: 250px;\r\n\t\t\tz-index: -1;\r\n\t\t}\n@media (min-width: 34em) {\n.membership__section:before {\r\n\t\t\t\tdisplay: block\r\n\t\t}\r\n\t\t\t}\n.membership__section:after {\r\n\t\t\tcontent: '';\r\n\t\t\tdisplay: none;\r\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='250' height='244' viewBox='0 0 250 244' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='.2' fill-rule='evenodd' clip-rule='evenodd' fill='%23000' clip-path='url(%23a)'%3E%3Cpath d='M6.782 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM18.302 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM29.822 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM41.342 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM52.862 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM64.382 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM75.902 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM87.422 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM98.942 2.044a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM110.462 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM121.982 2.044a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM133.502 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM145.022 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM156.542 2.044a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM168.062 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM179.582 2.044a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM191.102 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM202.622 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM214.142 2.044a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM225.662 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM237.182 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM248.702 2.044a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM1.022 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM12.542 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM24.062 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM35.582 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM47.102 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM58.622 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM70.142 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM81.662 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM93.182 13.564a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM104.702 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM116.222 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM127.742 13.564a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM139.262 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM150.782 13.564a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM162.302 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM173.822 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM185.342 13.564a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM196.862 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM208.382 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM219.902 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM231.422 13.564a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM242.942 13.564a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM6.782 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM18.302 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM29.822 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM41.342 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM52.862 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM64.382 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM75.902 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM87.422 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM98.942 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM110.462 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM121.982 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM133.502 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM145.022 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM156.542 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM168.062 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM179.582 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM191.102 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM202.622 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM214.142 25.084a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM225.662 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM237.182 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM248.702 25.084a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM1.022 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM12.542 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM24.062 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM35.582 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM47.102 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM58.622 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM70.142 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM81.662 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM93.182 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM104.702 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM116.222 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM127.742 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM139.262 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM150.782 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM162.302 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM173.822 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM185.342 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM196.862 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM208.382 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM219.902 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM231.422 36.604a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM242.942 36.604a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM6.782 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM18.302 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM29.822 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM41.342 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM52.862 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM64.382 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM75.902 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM87.422 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM98.942 48.124a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM110.462 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM121.982 48.124a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM133.502 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM145.022 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM156.542 48.124a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM168.062 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM179.582 48.124a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM191.102 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM202.622 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM214.142 48.124a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM225.662 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM237.182 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM248.702 48.124a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM1.022 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM12.542 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM24.062 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM35.582 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM47.102 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM58.622 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM70.142 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM81.662 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM93.182 59.644a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM104.702 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM116.222 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM127.742 59.644a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM139.262 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM150.782 59.644a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM162.302 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM173.822 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM185.342 59.644a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM196.862 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM208.382 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM219.902 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM231.422 59.644a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM242.942 59.644a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM6.782 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM18.302 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM29.822 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM41.342 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM52.862 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM64.382 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM75.902 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM87.422 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM98.942 71.164a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM110.462 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM121.982 71.164a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM133.502 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM145.022 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM156.542 71.164a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM168.062 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM179.582 71.164a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM191.102 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM202.622 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM214.142 71.164a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM225.662 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM237.182 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM248.702 71.164a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM1.022 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM12.542 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM24.062 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM35.582 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM47.102 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM58.622 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM70.142 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM81.662 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM93.182 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM104.702 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM116.222 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM127.742 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM139.262 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM150.782 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM162.302 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM173.822 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM185.342 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM196.862 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM208.382 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM219.902 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM231.422 82.684a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM242.942 82.684a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM6.782 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM18.302 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM29.822 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM41.342 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM52.862 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM64.382 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM75.902 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM87.422 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM98.942 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM110.462 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM121.982 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM133.502 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM145.022 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM156.542 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM168.062 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM179.582 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM191.102 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM202.622 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM214.142 94.204a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM225.662 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM237.182 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM248.702 94.204a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM1.022 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM12.542 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM24.062 105.724a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM35.582 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM47.102 105.724a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM58.622 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM70.142 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM81.662 105.724a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM93.182 105.724a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM104.702 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM116.222 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM127.742 105.724a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM139.262 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM150.782 105.724a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM162.302 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM173.822 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM185.342 105.724a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM196.862 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM208.382 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM219.902 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM231.422 105.724a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM242.942 105.724a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM6.782 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM18.302 117.244a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM29.822 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM41.342 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM52.862 117.244a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM64.382 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM75.902 117.244a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM87.422 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM98.942 117.244a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM110.462 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM121.982 117.244a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM133.502 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM145.022 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM156.542 117.244a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM168.062 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM179.582 117.244a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM191.102 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM202.622 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM214.142 117.244a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM225.662 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM237.182 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM248.702 117.244a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM1.022 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM12.542 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM24.062 128.764a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM35.582 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM47.102 128.764a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM58.622 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM70.142 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM81.662 128.764a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM93.182 128.764a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM104.702 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM116.222 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM127.742 128.764a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM139.262 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM150.782 128.764a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM162.302 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM173.822 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM185.342 128.764a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM196.862 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM208.382 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM219.902 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM231.422 128.764a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM242.942 128.764a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM6.782 140.284a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM18.302 140.284a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM29.822 140.284a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM41.342 140.284a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM52.862 140.284a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM64.382 140.284a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM75.902 140.284a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM87.422 140.284a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM98.942 140.284a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM110.462 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM121.982 140.284a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM133.502 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM145.022 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM156.542 140.284a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM168.062 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM179.582 140.284a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM191.102 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM202.622 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM214.142 140.284a1.021 1.021 0 1 0 0-2.044 1.023 1.023 0 1 0 0 2.044zM225.662 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM237.182 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM248.702 140.284a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM1.022 151.804a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM12.542 151.804a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM24.062 151.804a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM35.582 151.804a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM47.102 151.804a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM58.622 151.804a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM70.142 151.804a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM81.662 151.804a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM93.182 151.804a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM104.702 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM116.222 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM127.742 151.804a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM139.262 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM150.782 151.804a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM162.302 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM173.822 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM185.342 151.804a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM196.862 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM208.382 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM219.902 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM231.422 151.804a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM242.942 151.804a1.021 1.021 0 1 0 0-2.044 1.022 1.022 0 1 0 0 2.044zM6.782 163.324a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM18.302 163.324a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM29.822 163.324a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM41.342 163.324a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM52.862 163.324a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM64.382 163.324a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM75.902 163.324a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM87.422 163.324a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM98.942 163.324a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM110.462 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM121.982 163.324a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM133.502 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM145.022 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM156.542 163.324a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM168.062 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM179.582 163.324a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM191.102 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM202.622 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM214.142 163.324a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM225.662 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM237.182 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM248.702 163.324a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM1.022 174.844a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM12.542 174.844a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM24.062 174.844a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM35.582 174.844a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM47.102 174.844a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM58.622 174.844a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM70.142 174.844a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM81.662 174.844a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM93.182 174.844a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM104.702 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM116.222 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM127.742 174.844a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM139.262 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM150.782 174.844a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM162.302 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM173.822 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM185.342 174.844a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM196.862 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM208.382 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM219.902 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM231.422 174.844a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM242.942 174.844a1.021 1.021 0 1 0 0-2.044 1.022 1.022 0 1 0 0 2.044zM6.782 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM18.302 186.364a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM29.822 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM41.342 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM52.862 186.364a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM64.382 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM75.902 186.364a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM87.422 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM98.942 186.364a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM110.462 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM121.982 186.364a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM133.502 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM145.022 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM156.542 186.364a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM168.062 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM179.582 186.364a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM191.102 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM202.622 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM214.142 186.364a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM225.662 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM237.182 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM248.702 186.364a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM1.022 197.884a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM12.542 197.884a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM24.062 197.884a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM35.582 197.884a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM47.102 197.884a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM58.622 197.884a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM70.142 197.884a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM81.662 197.884a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM93.182 197.884a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM104.702 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM116.222 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM127.742 197.884a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM139.262 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM150.782 197.884a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM162.302 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM173.822 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM185.342 197.884a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM196.862 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM208.382 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM219.902 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM231.422 197.884a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM242.942 197.884a1.021 1.021 0 1 0 0-2.044 1.023 1.023 0 1 0 0 2.044zM6.782 209.404a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM18.302 209.404a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM29.822 209.404a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM41.342 209.404a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM52.862 209.404a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM64.382 209.404a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM75.902 209.404a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM87.422 209.404a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM98.942 209.404a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM110.462 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM121.982 209.404a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM133.502 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM145.022 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM156.542 209.404a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM168.062 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM179.582 209.404a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM191.102 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM202.622 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM214.142 209.404a1.021 1.021 0 1 0 0-2.044 1.022 1.022 0 1 0 0 2.044zM225.662 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM237.182 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM248.702 209.404a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM1.022 220.924a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM12.542 220.924a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM24.062 220.924a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM35.582 220.924a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM47.102 220.924a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM58.622 220.924a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM70.142 220.924a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM81.662 220.924a1.021 1.021 0 1 0 0-2.043 1.021 1.021 0 0 0 0 2.043zM93.182 220.924a1.022 1.022 0 1 0 .002-2.043 1.022 1.022 0 0 0-.002 2.043zM104.702 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM116.222 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM127.742 220.924a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM139.262 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM150.782 220.924a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM162.302 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM173.822 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM185.342 220.924a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM196.862 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM208.382 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM219.902 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM231.422 220.924a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM242.942 220.924a1.023 1.023 0 1 0-.002-2.044 1.023 1.023 0 0 0 .002 2.044zM6.782 232.444a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM18.302 232.444a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM29.822 232.444a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM41.342 232.444a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM52.862 232.444a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM64.382 232.444a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM75.902 232.444a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM87.422 232.444a1.022 1.022 0 1 0 0-2.043 1.022 1.022 0 0 0 0 2.043zM98.942 232.444a1.022 1.022 0 1 0 .001-2.043 1.022 1.022 0 0 0-.001 2.043zM110.462 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM121.982 232.444a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM133.502 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM145.022 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM156.542 232.444a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM168.062 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM179.582 232.444a1.021 1.021 0 1 0 .001-2.043 1.021 1.021 0 0 0-.001 2.043zM191.102 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM202.622 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM214.142 232.444a1.021 1.021 0 1 0 0-2.044 1.022 1.022 0 1 0 0 2.044zM225.662 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM237.182 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM248.702 232.444a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM1.022 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM12.542 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM24.062 243.964a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM35.582 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM47.102 243.964a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM58.622 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM70.142 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM81.662 243.964a1.022 1.022 0 1 0-.001-2.044 1.022 1.022 0 0 0 .001 2.044zM93.182 243.964a1.022 1.022 0 1 0 0-2.045 1.022 1.022 0 0 0 0 2.045zM104.702 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM116.222 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM127.742 243.964a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM139.262 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM150.782 243.964a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM162.302 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM173.822 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM185.342 243.964a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044zM196.862 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM208.382 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM219.902 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM231.422 243.964a1.023 1.023 0 1 0-.001-2.045 1.023 1.023 0 0 0 .001 2.045zM242.942 243.964a1.022 1.022 0 1 0 0-2.044 1.022 1.022 0 0 0 0 2.044z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h250v244H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\tposition: absolute;\r\n\t\t\tright: -76px;\r\n\t\t\ttop: -65px;\r\n\t\t\theight: 250px;\r\n\t\t\twidth: 250px;\r\n\t\t\tz-index: -1;\r\n\t\t}\n@media (min-width: 34em) {\n.membership__section:after {\r\n\t\t\t\tdisplay: block\r\n\t\t}\r\n\t\t\t}\n.membership__section--set-pass {\r\n\t\t\tmax-width: 509px;\r\n\t\t}\n.membership__title {\r\n\t\tmargin-bottom: 12px;\r\n\t\tfont-size: 21px;\r\n\t\tline-height: 31.5px;\r\n\t\tfont-weight: 500;\r\n\t}\n@media (min-width: 75em) {\n.membership__title {\r\n\t\t\tmargin-bottom: 42px;\r\n\t\t\tfont-size: 33px;\r\n\t\t\tline-height: 42px\r\n\t}\r\n\t\t}\n@media (max-height: 38.9375em) {\n.membership__title {\r\n\t\t\tmargin-bottom: 30px\r\n\t}\r\n\t\t}\n.membership__title--alt {\r\n\t\t\tmargin-bottom: 9px;\r\n\t\t}\n.membership__description {\r\n\t\tmargin-bottom: 30px;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 21px;\r\n\t\tcolor: #9ea6b3;\r\n\t\tfont-weight: 300;\r\n\t}\n@media (min-width: 75em) {\n.membership__description {\r\n\t\t\tfont-size: 18px;\r\n\t\t\tline-height: 26.25px\r\n\t}\r\n\t\t}\n.membership__label {\r\n\t\tdisplay: block;\r\n\t\tmargin-bottom: 3px;\r\n\t\tfont-size: 13px;\r\n\t\tline-height: 21px;\r\n\t}\n@media (min-width: 34em) {\n.membership__label {\r\n\t\t\tmargin-bottom: 9px\r\n\t}\r\n\t\t}\n.membership__btn {\r\n\t\twidth: 100%;\r\n\t\tmargin-bottom: 12px;\r\n\t}\n@media (min-width: 34em) {\n.membership__btn {\r\n\t\t\tmargin-bottom: 36px;\r\n\t\t\twidth: 50%\r\n\t}\r\n\t\t}\n@media (min-width: 75em) {\n.membership__btn {\r\n\t\t\tmargin-bottom: 48px;\r\n\t\t\twidth: auto\r\n\t}\r\n\t\t}\n@media (max-height: 38.9375em) {\n.membership__btn {\r\n\t\t\tmargin-bottom: 21px\r\n\t}\r\n\t\t}\n.membership__message {\r\n\t\tmargin-bottom: 12px;\r\n\t\tpadding: 6px 12px 9px 12px;\r\n\t\toverflow: hidden;\r\n\t\tbackground-color: #e6e6e6;\r\n\t\t-webkit-border-radius: 4px;\r\n\t\t border-radius: 4px;\r\n\t}\n@media (min-width: 48em) {\n.membership__message {\r\n\t\t\tmargin-bottom: 24px;\t\t\t\r\n\t\t\tpadding: 24px;\r\n\t\t\t-webkit-border-radius: 8px;\r\n\t\t\t border-radius: 8px\r\n\t}\t\t\t\r\n\t\t}\n.membership__message__image {\r\n\t\t\tfloat: left;\r\n\t\t\twidth: 18px;\r\n\t\t\tpadding-top: 6px;\r\n\t\t}\n@media (min-width: 48em) {\n.membership__message__image {\r\n\t\t\t\twidth: 36px\r\n\t\t}\r\n\t\t\t}\n.membership__message__content {\r\n\t\t\tfloat: left;\r\n\t\t\twidth: -webkit-calc(100% - 18px);\r\n\t\t\twidth: calc(100% - 18px);\r\n\t\t\tpadding-left: 12px;\r\n\t\t}\n@media (min-width: 48em) {\n.membership__message__content {\r\n\t\t\t\twidth: -webkit-calc(100% - 42px);\r\n\t\t\t\twidth: calc(100% - 42px);\r\n\t\t\t\tpadding-left: 18px\r\n\t\t}\r\n\t\t\t}\n.membership__message__title {\r\n\t\t\tmargin-bottom: 6px;\r\n\t\t\tfont-size: 13px;\r\n\t\t\tline-height: 21px;\r\n\t\t\tfont-weight: 500;\r\n\t\t}\n@media (min-width: 48em) {\n.membership__message__title {\r\n\t\t\t\tfont-size: 19px;\r\n\t\t\t\tline-height: 26.25px\r\n\t\t}\r\n\t\t\t}\n@media (max-width: 47.9375em) {\n.membership__message__description {\r\n\t\t\t\tfont-size: 11px;\r\n\t\t\t\tline-height: 15.75px\r\n\t\t}\r\n\t\t\t}\n.membership__form {\r\n\t\tposition: relative;\r\n\t\tz-index: 10;\r\n\t}\n/**\r\n* Import: print\r\n* Description: print mode\r\n*/\n/*------------------------------------*\\\r\n # print.fraudprint\r\n\\*------------------------------------*/\n@page {\r\n margin: 17mm 9mm 17mm 9mm;\r\n}\n@media print {\r\n .print-hide {display:none;}\r\n}\n.fraudprint__header {\r\n margin: 0 0 24px;\r\n }\n.fraudprint__footer {\r\n display: none;\r\n position: static;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n overflow: hidden;\r\n padding-top: 12px;\r\n }\n.fraudprint__footer svg {\r\n width: 100px;\r\n float: right;\r\n }\n.fraudprint__table {\r\n width: 100%;\r\n margin: 0 0 12px;\r\n border-collapse: collapse;\r\n }\n.fraudprint__table th {\r\n padding: 12px 6px;\r\n font-size: 10px;\r\n line-height: 10.5px;\r\n text-align: left;\r\n border: 1px solid #dfe3e8;\r\n vertical-align: top;\r\n }\n.fraudprint__table th:first-child {\r\n width: 60px;\r\n }\n.fraudprint__table th:nth-child(2) {\r\n width: 120px;\r\n }\n.fraudprint__table th:nth-child(3) {\r\n width: 90px;\r\n }\n.fraudprint__table th:nth-child(4) {\r\n width: 90px;\r\n }\n.fraudprint__table tr:first-child td {\r\n padding-top: 12px;\r\n }\n.fraudprint__table td {\r\n padding: 6px 6px;\r\n font-size: 10px;\r\n line-height: 10.5px;\r\n text-align: left;\r\n border: 1px solid #dfe3e8;\r\n }\n.fraudprint__table td:first-child, .fraudprint__table td:nth-child(3) {\r\n font-weight: 500;\r\n }\n/*@import \"print.giftprint.css\";*/\n/**\r\n* Import: utils\r\n* Description: reusable utilities such as floats, spacers etc.\r\n*/\n/*------------------------------------*\\\r\n # utils.grid\r\n\\*------------------------------------*/\n/**\r\n * Small grid\r\n */\n.col-sml-1 {\r\n width: 8.33333%;\r\n}\n.col-sml-2 {\r\n width: 16.66667%;\r\n}\n.col-sml-3 {\r\n width: 25%;\r\n}\n.col-sml-4 {\r\n width: 33.33333%;\r\n}\n.col-sml-5 {\r\n width: 41.66667%;\r\n}\n.col-sml-6 {\r\n width: 50%;\r\n}\n.col-sml-7 {\r\n width: 58.33333%;\r\n}\n.col-sml-8 {\r\n width: 66.66667%;\r\n}\n.col-sml-9 {\r\n width: 75%;\r\n}\n.col-sml-10 {\r\n width: 83.33333%;\r\n}\n.col-sml-11 {\r\n width: 91.66667%;\r\n}\n.col-sml-12 {\r\n width: 100%;\r\n}\n/**\r\n * Medium grid\r\n */\n@media (min-width: 34em) {\r\n .col-med-1 {\r\n width: 8.33333%;\r\n }\r\n .col-med-2 {\r\n width: 16.66667%;\r\n }\r\n .col-med-3 {\r\n width: 25%;\r\n }\r\n .col-med-4 {\r\n width: 33.33333%;\r\n }\r\n .col-med-5 {\r\n width: 41.66667%;\r\n }\r\n .col-med-6 {\r\n width: 50%;\r\n }\r\n .col-med-7 {\r\n width: 58.33333%;\r\n }\r\n .col-med-8 {\r\n width: 66.66667%;\r\n }\r\n .col-med-9 {\r\n width: 75%;\r\n }\r\n .col-med-10 {\r\n width: 83.33333%;\r\n }\r\n .col-med-11 {\r\n width: 91.66667%;\r\n }\r\n .col-med-12 {\r\n width: 100%;\r\n }\r\n}\n/**\r\n * Large grid\r\n */\n@media (min-width: 48em) {\r\n .col-lrg-1 {\r\n width: 8.33333%;\r\n }\r\n .col-lrg-2 {\r\n width: 16.66667%;\r\n }\r\n .col-lrg-3 {\r\n width: 25%;\r\n }\r\n .col-lrg-4 {\r\n width: 33.33333%;\r\n }\r\n .col-lrg-5 {\r\n width: 41.66667%;\r\n }\r\n .col-lrg-6 {\r\n width: 50%;\r\n }\r\n .col-lrg-7 {\r\n width: 58.33333%;\r\n }\r\n .col-lrg-8 {\r\n width: 66.66667%;\r\n }\r\n .col-lrg-9 {\r\n width: 75%;\r\n }\r\n .col-lrg-10 {\r\n width: 83.33333%;\r\n }\r\n .col-lrg-11 {\r\n width: 91.66667%;\r\n }\r\n .col-lrg-12 {\r\n width: 100%;\r\n }\r\n\r\n .col-lrg-auto {\r\n width: auto;\r\n }\r\n}\n/**\r\n * XLarge grid\r\n */\n@media (min-width: 62em) {\r\n .col-xlrg-1 {\r\n width: 8.33333%;\r\n }\r\n .col-xlrg-2 {\r\n width: 16.66667%;\r\n }\r\n .col-xlrg-3 {\r\n width: 25%;\r\n }\r\n .col-xlrg-4 {\r\n width: 33.33333%;\r\n }\r\n .col-xlrg-5 {\r\n width: 41.66667%;\r\n }\r\n .col-xlrg-6 {\r\n width: 50%;\r\n }\r\n .col-xlrg-7 {\r\n width: 58.33333%;\r\n }\r\n .col-xlrg-8 {\r\n width: 66.66667%;\r\n }\r\n .col-xlrg-9 {\r\n width: 75%;\r\n }\r\n .col-xlrg-10 {\r\n width: 83.33333%;\r\n }\r\n .col-xlrg-11 {\r\n width: 91.66667%;\r\n }\r\n .col-xlrg-12 {\r\n width: 100%;\r\n }\r\n\r\n .col-xlrg-auto {\r\n width: auto;\r\n }\r\n}\n/**\r\n * XXLarge grid\r\n */\n@media (min-width: 75em) {\r\n .col-xxlrg-1 {\r\n width: 8.33333%;\r\n }\r\n .col-xxlrg-2 {\r\n width: 16.66667%;\r\n }\r\n .col-xxlrg-3 {\r\n width: 25%;\r\n }\r\n .col-xxlrg-4 {\r\n width: 33.33333%;\r\n }\r\n .col-xxlrg-5 {\r\n width: 41.66667%;\r\n }\r\n .col-xxlrg-6 {\r\n width: 50%;\r\n }\r\n .col-xxlrg-7 {\r\n width: 58.33333%;\r\n }\r\n .col-xxlrg-8 {\r\n width: 66.66667%;\r\n }\r\n .col-xxlrg-9 {\r\n width: 75%;\r\n }\r\n .col-xxlrg-10 {\r\n width: 83.33333%;\r\n }\r\n .col-xxlrg-11 {\r\n width: 91.66667%;\r\n }\r\n .col-xxlrg-12 {\r\n width: 100%;\r\n }\r\n}\n/**\r\n * XXXLarge grid\r\n */\n@media (min-width: 90em) {\r\n .col-xxxlrg-1 {\r\n width: 8.33333%;\r\n }\r\n .col-xxxlrg-2 {\r\n width: 16.66667%;\r\n }\r\n .col-xxxlrg-3 {\r\n width: 25%;\r\n }\r\n .col-xxxlrg-4 {\r\n width: 33.33333%;\r\n }\r\n .col-xxxlrg-5 {\r\n width: 41.66667%;\r\n }\r\n .col-xxxlrg-6 {\r\n width: 50%;\r\n }\r\n .col-xxxlrg-7 {\r\n width: 58.33333%;\r\n }\r\n .col-xxxlrg-8 {\r\n width: 66.66667%;\r\n }\r\n .col-xxxlrg-9 {\r\n width: 75%;\r\n }\r\n .col-xxxlrg-10 {\r\n width: 83.33333%;\r\n }\r\n .col-xxxlrg-11 {\r\n width: 91.66667%;\r\n }\r\n .col-xxxlrg-12 {\r\n width: 100%;\r\n }\r\n}\n/**\r\n * Huge grid\r\n */\n@media (min-width: 95em) {\r\n .col-huge-1 {\r\n width: 8.33333%;\r\n }\r\n .col-huge-2 {\r\n width: 16.66667%;\r\n }\r\n .col-huge-3 {\r\n width: 25%;\r\n }\r\n .col-huge-4 {\r\n width: 33.33333%;\r\n }\r\n .col-huge-5 {\r\n width: 41.66667%;\r\n }\r\n .col-huge-6 {\r\n width: 50%;\r\n }\r\n .col-huge-7 {\r\n width: 58.33333%;\r\n }\r\n .col-huge-8 {\r\n width: 66.66667%;\r\n }\r\n .col-huge-9 {\r\n width: 75%;\r\n }\r\n .col-huge-10 {\r\n width: 83.33333%;\r\n }\r\n .col-huge-11 {\r\n width: 91.66667%;\r\n }\r\n .col-huge-12 {\r\n width: 100%;\r\n }\r\n}\n.col-align-center {\r\n -webkit-align-self: center;\r\n -ms-flex-item-align: center;\r\n align-self: center;\r\n}\n.row-align-middle {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n}\n.grid-align-middle * {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n/*------------------------------------*\\\r\n # utils.grid\r\n\\*------------------------------------*/\n/**\r\n * Small Grid Push Offset\r\n */\n.col-push-sml-1 {\r\n margin-left: 8.33333%;\r\n}\n.col-push-sml-2 {\r\n margin-left: 16.66667%;\r\n}\n.col-push-sml-3 {\r\n margin-left: 25%;\r\n}\n.col-push-sml-4 {\r\n margin-left: 33.33333%;\r\n}\n.col-push-sml-5 {\r\n margin-left: 41.66667%;\r\n}\n.col-push-sml-6 {\r\n margin-left: 50%;\r\n}\n.col-push-sml-7 {\r\n margin-left: 58.33333%;\r\n}\n.col-push-sml-8 {\r\n margin-left: 66.66667%;\r\n}\n.col-push-sml-9 {\r\n margin-left: 75%;\r\n}\n.col-push-sml-10 {\r\n margin-left: 83.33333%;\r\n}\n.col-push-sml-11 {\r\n margin-left: 91.66667%;\r\n}\n.col-push-sml-12 {\r\n margin-left: 100%;\r\n}\n/**\r\n * Medium Grid Push Offset\r\n */\n@media (min-width: 34em) {\r\n .col-push-med-1 {\r\n margin-left: 8.33333%;\r\n }\r\n .col-push-med-2 {\r\n margin-left: 16.66667%;\r\n }\r\n .col-push-med-3 {\r\n margin-left: 25%;\r\n }\r\n .col-push-med-4 {\r\n margin-left: 33.33333%;\r\n }\r\n .col-push-med-5 {\r\n margin-left: 41.66667%;\r\n }\r\n .col-push-med-6 {\r\n margin-left: 50%;\r\n }\r\n .col-push-med-7 {\r\n margin-left: 58.33333%;\r\n }\r\n .col-push-med-8 {\r\n margin-left: 66.66667%;\r\n }\r\n .col-push-med-9 {\r\n margin-left: 75%;\r\n }\r\n .col-push-med-10 {\r\n margin-left: 83.33333%;\r\n }\r\n .col-push-med-11 {\r\n margin-left: 91.66667%;\r\n }\r\n .col-push-med-12 {\r\n margin-left: 100%;\r\n }\r\n}\n/**\r\n * Large Grid Push Offset\r\n */\n@media (min-width: 48em) {\r\n .col-push-lrg-1 {\r\n margin-left: 8.33333%;\r\n }\r\n .col-push-lrg-2 {\r\n margin-left: 16.66667%;\r\n }\r\n .col-push-lrg-3 {\r\n margin-left: 25%;\r\n }\r\n .col-push-lrg-4 {\r\n margin-left: 33.33333%;\r\n }\r\n .col-push-lrg-5 {\r\n margin-left: 41.66667%;\r\n }\r\n .col-push-lrg-6 {\r\n margin-left: 50%;\r\n }\r\n .col-push-lrg-7 {\r\n margin-left: 58.33333%;\r\n }\r\n .col-push-lrg-8 {\r\n margin-left: 66.66667%;\r\n }\r\n .col-push-lrg-9 {\r\n margin-left: 75%;\r\n }\r\n .col-push-lrg-10 {\r\n margin-left: 83.33333%;\r\n }\r\n .col-push-lrg-11 {\r\n margin-left: 91.66667%;\r\n }\r\n .col-push-lrg-12 {\r\n margin-left: 100%;\r\n }\r\n}\n/**\r\n * XLarge Grid Push Offset\r\n */\n@media (min-width: 62em) {\r\n .col-push-xlrg-1 {\r\n margin-left: 8.33333%;\r\n }\r\n .col-push-xlrg-2 {\r\n margin-left: 16.66667%;\r\n }\r\n .col-push-xlrg-3 {\r\n margin-left: 25%;\r\n }\r\n .col-push-xlrg-4 {\r\n margin-left: 33.33333%;\r\n }\r\n .col-push-xlrg-5 {\r\n margin-left: 41.66667%;\r\n }\r\n .col-push-xlrg-6 {\r\n margin-left: 50%;\r\n }\r\n .col-push-xlrg-7 {\r\n margin-left: 58.33333%;\r\n }\r\n .col-push-xlrg-8 {\r\n margin-left: 66.66667%;\r\n }\r\n .col-push-xlrg-9 {\r\n margin-left: 75%;\r\n }\r\n .col-push-xlrg-10 {\r\n margin-left: 83.33333%;\r\n }\r\n .col-push-xlrg-11 {\r\n margin-left: 91.66667%;\r\n }\r\n .col-push-xlrg-12 {\r\n margin-left: 100%;\r\n }\r\n}\n/**\r\n * XXLarge Grid Push Offset\r\n */\n@media (min-width: 75em) {\r\n .col-push-xxlrg-1 {\r\n margin-left: 8.33333%;\r\n }\r\n .col-push-xxlrg-2 {\r\n margin-left: 16.66667%;\r\n }\r\n .col-push-xxlrg-3 {\r\n margin-left: 25%;\r\n }\r\n .col-push-xxlrg-4 {\r\n margin-left: 33.33333%;\r\n }\r\n .col-push-xxlrg-5 {\r\n margin-left: 41.66667%;\r\n }\r\n .col-push-xxlrg-6 {\r\n margin-left: 50%;\r\n }\r\n .col-push-xxlrg-7 {\r\n margin-left: 58.33333%;\r\n }\r\n .col-push-xxlrg-8 {\r\n margin-left: 66.66667%;\r\n }\r\n .col-push-xxlrg-9 {\r\n margin-left: 75%;\r\n }\r\n .col-push-xxlrg-10 {\r\n margin-left: 83.33333%;\r\n }\r\n .col-push-xxlrg-11 {\r\n margin-left: 91.66667%;\r\n }\r\n .col-push-xxlrg-12 {\r\n margin-left: 100%;\r\n }\r\n}\n/**\r\n * Small Grid Push Offset\r\n */\n.col-pull-sml-1 {\r\n margin-right: 8.33333%;\r\n}\n.col-pull-sml-2 {\r\n margin-right: 16.66667%;\r\n}\n.col-pull-sml-3 {\r\n margin-right: 25%;\r\n}\n.col-pull-sml-4 {\r\n margin-right: 33.33333%;\r\n}\n.col-pull-sml-5 {\r\n margin-right: 41.66667%;\r\n}\n.col-pull-sml-6 {\r\n margin-right: 50%;\r\n}\n.col-pull-sml-7 {\r\n margin-right: 58.33333%;\r\n}\n.col-pull-sml-8 {\r\n margin-right: 66.66667%;\r\n}\n.col-pull-sml-9 {\r\n margin-right: 75%;\r\n}\n.col-pull-sml-10 {\r\n margin-right: 83.33333%;\r\n}\n.col-pull-sml-11 {\r\n margin-right: 91.66667%;\r\n}\n.col-pull-sml-12 {\r\n margin-right: 100%;\r\n}\n/**\r\n * Medium Grid Pull Offset\r\n */\n@media (min-width: 34em) {\r\n .col-pull-med-1 {\r\n margin-right: 8.33333%;\r\n }\r\n .col-pull-med-2 {\r\n margin-right: 16.66667%;\r\n }\r\n .col-pull-med-3 {\r\n margin-right: 25%;\r\n }\r\n .col-pull-med-4 {\r\n margin-right: 33.33333%;\r\n }\r\n .col-pull-med-5 {\r\n margin-right: 41.66667%;\r\n }\r\n .col-pull-med-6 {\r\n margin-right: 50%;\r\n }\r\n .col-pull-med-7 {\r\n margin-right: 58.33333%;\r\n }\r\n .col-pull-med-8 {\r\n margin-right: 66.66667%;\r\n }\r\n .col-pull-med-9 {\r\n margin-right: 75%;\r\n }\r\n .col-pull-med-10 {\r\n margin-right: 83.33333%;\r\n }\r\n .col-pull-med-11 {\r\n margin-right: 91.66667%;\r\n }\r\n .col-pull-med-12 {\r\n margin-right: 100%;\r\n }\r\n}\n/**\r\n * Large Grid Pull Offset\r\n */\n@media (min-width: 48em) {\r\n .col-pull-lrg-1 {\r\n margin-right: 8.33333%;\r\n }\r\n .col-pull-lrg-2 {\r\n margin-right: 16.66667%;\r\n }\r\n .col-pull-lrg-3 {\r\n margin-right: 25%;\r\n }\r\n .col-pull-lrg-4 {\r\n margin-right: 33.33333%;\r\n }\r\n .col-pull-lrg-5 {\r\n margin-right: 41.66667%;\r\n }\r\n .col-pull-lrg-6 {\r\n margin-right: 50%;\r\n }\r\n .col-pull-lrg-7 {\r\n margin-right: 58.33333%;\r\n }\r\n .col-pull-lrg-8 {\r\n margin-right: 66.66667%;\r\n }\r\n .col-pull-lrg-9 {\r\n margin-right: 75%;\r\n }\r\n .col-pull-lrg-10 {\r\n margin-right: 83.33333%;\r\n }\r\n .col-pull-lrg-11 {\r\n margin-right: 91.66667%;\r\n }\r\n .col-pull-lrg-12 {\r\n margin-right: 100%;\r\n }\r\n}\n/**\r\n * XLarge Grid Pull Offset\r\n */\n@media (min-width: 62em) {\r\n .col-pull-xlrg-1 {\r\n margin-right: 8.33333%;\r\n }\r\n .col-pull-xlrg-2 {\r\n margin-right: 16.66667%;\r\n }\r\n .col-pull-xlrg-3 {\r\n margin-right: 25%;\r\n }\r\n .col-pull-xlrg-4 {\r\n margin-right: 33.33333%;\r\n }\r\n .col-pull-xlrg-5 {\r\n margin-right: 41.66667%;\r\n }\r\n .col-pull-xlrg-6 {\r\n margin-right: 50%;\r\n }\r\n .col-pull-xlrg-7 {\r\n margin-right: 58.33333%;\r\n }\r\n .col-pull-xlrg-8 {\r\n margin-right: 66.66667%;\r\n }\r\n .col-pull-xlrg-9 {\r\n margin-right: 75%;\r\n }\r\n .col-pull-xlrg-10 {\r\n margin-right: 83.33333%;\r\n }\r\n .col-pull-xlrg-11 {\r\n margin-right: 91.66667%;\r\n }\r\n .col-pull-xlrg-12 {\r\n margin-right: 100%;\r\n }\r\n}\n/**\r\n * XXLarge Grid Pull Offset\r\n */\n@media (min-width: 75em) {\r\n .col-pull-xxlrg-1 {\r\n margin-right: 8.33333%;\r\n }\r\n .col-pull-xxlrg-2 {\r\n margin-right: 16.66667%;\r\n }\r\n .col-pull-xxlrg-3 {\r\n margin-right: 25%;\r\n }\r\n .col-pull-xxlrg-4 {\r\n margin-right: 33.33333%;\r\n }\r\n .col-pull-xxlrg-5 {\r\n margin-right: 41.66667%;\r\n }\r\n .col-pull-xxlrg-6 {\r\n margin-right: 50%;\r\n }\r\n .col-pull-xxlrg-7 {\r\n margin-right: 58.33333%;\r\n }\r\n .col-pull-xxlrg-8 {\r\n margin-right: 66.66667%;\r\n }\r\n .col-pull-xxlrg-9 {\r\n margin-right: 75%;\r\n }\r\n .col-pull-xxlrg-10 {\r\n margin-right: 83.33333%;\r\n }\r\n .col-pull-xxlrg-11 {\r\n margin-right: 91.66667%;\r\n }\r\n .col-pull-xxlrg-12 {\r\n margin-right: 100%;\r\n }\r\n}\n/*------------------------------------*\\\r\n # util.spacers\r\n\\*------------------------------------*/\n/*custom multiplyer*/\n/* MARGIN TOP */\n.spc--top--nano {\r\n margin-top: 3px;\r\n }\n.spc--top--tny {\r\n margin-top: 6px; \r\n }\n.spc--top--xsml {\r\n margin-top: 9px;\r\n }\n.spc--top--sml {\r\n margin-top: 12px;\r\n }\n.spc--top--med {\r\n margin-top: 24px;\r\n }\n.spc--top--lrg {\r\n margin-top: 36px;\r\n }\n.spc--top--xlrg {\r\n margin-top: 48px;\r\n }\n.spc--top--xxlrg {\r\n margin-top: 60px;\r\n }\n.spc--top--xxxlrg {\r\n margin-top: 72px;\r\n }\n.spc--top--huge{\r\n margin-top: 90px;\r\n }\n/* MARGIN RIGHT */\n.spc--right--auto {\r\n margin-right: auto;\r\n }\n.spc--right--nano {\r\n margin-right: 3px;\r\n }\n.spc--right--tny {\r\n margin-right: 6px;\r\n }\n.spc--right--xsml {\r\n margin-right: 9px;\r\n }\n.spc--right--sml {\r\n margin-right: 12px;\r\n }\n.spc--right--med {\r\n margin-right: 24px;\r\n }\n.spc--right--lrg {\r\n margin-right: 36px;\r\n }\n.spc--right--xlrg {\r\n margin-right: 48px;\r\n }\n.spc--right--xxlrg {\r\n margin-right: 60px;\r\n }\n.spc--right--xxxlrg {\r\n margin-right: 72px;\r\n }\n.spc--right--huge{\r\n margin-right: 90px;\r\n }\n.spc--right--1 {\r\n margin-right: -1px;\r\n }\n/* MARGIN BOTTOM */\n.spc--bottom--no {\r\n margin-bottom: 0;\r\n }\n.spc--bottom--nano {\r\n margin-bottom: 3px;\r\n }\n.spc--bottom--tny {\r\n margin-bottom: 6px;\r\n }\n.spc--bottom--xsml {\r\n margin-bottom: 9px;\r\n }\n.spc--bottom--sml {\r\n margin-bottom: 12px;\r\n }\n.spc--bottom--med {\r\n margin-bottom: 12px;\r\n }\n@media (min-width: 48em) {\n.spc--bottom--med {\r\n margin-bottom: 24px\r\n }\r\n }\n@media (max-width: 33.9375em) {\n.spc--bottom--med--on-sml {\r\n margin-bottom: 12px\r\n }\r\n }\n@media (max-width: 61.9375em) {\n.spc--bottom--med--to-lrg {\r\n margin-bottom: 12px\r\n }\r\n }\n@media (max-width: 74.9375em) {\n.spc--bottom--med--to-xlrg {\r\n margin-bottom: 12px\r\n }\r\n }\n.spc--bottom--lrg {\r\n margin-bottom: 36px;\r\n }\n.spc--bottom--xlrg {\r\n margin-bottom: 48px;\r\n }\n.spc--bottom--xlrg--last:last-child {\r\n margin-bottom: 0;\r\n }\n.spc--bottom--xxlrg {\r\n margin-bottom: 60px;\r\n }\n.spc--bottom--xxxlrg {\r\n margin-bottom: 72px;\r\n }\n.spc--bottom--huge{\r\n margin-bottom: 90px;\r\n }\n/* MARGIN LEFT */\n.spc--left--auto {\r\n margin-left: auto;\r\n }\n.spc--left--nano {\r\n margin-left: 3px;\r\n }\n.spc--left--tny {\r\n margin-left: 6px;\r\n }\n.spc--left--xsml {\r\n margin-left: 9px;\r\n }\n.spc--left--sml {\r\n margin-left: 12px;\r\n }\n.spc--left--med {\r\n margin-left: 24px;\r\n }\n.spc--left--lrg {\r\n margin-left: 36px;\r\n }\n.spc--left--xlrg {\r\n margin-left: 48px;\r\n }\n.spc--left--xxlrg {\r\n margin-left: 60px;\r\n }\n.spc--left--xxxlrg {\r\n margin-left: 72px;\r\n }\n.spc--left--huge{\r\n margin-left: 90px;\r\n }\n.spc--left--1 {\r\n margin-left: -1px;\r\n }\n/* \r\n ---------------------------------\r\n -- x-axis -> left & right --\r\n -- y-axis -> top & bottom -- \r\n ---------------------------------\r\n */\n.spc--x--sml{\r\n margin: inherit 12px; \r\n }\n/*You can use spacers by axis*/\n.spc--y--sml{\r\n margin: 12px inherit; \r\n }\n/*------------------------------------*\\\r\n # utils.width\r\n\\*------------------------------------*/\n.w--1 {\r\n width: 8.33333%;\r\n }\n.w--2 {\r\n width: 16.66667%;\r\n }\n.w--3 {\r\n width: 25%;\r\n }\n.w--4 {\r\n width: 33.33333%;\r\n }\n.w--5 {\r\n width: 41.66667%;\r\n }\n.w--6 {\r\n width: 50%;\r\n }\n.w--7 {\r\n width: 58.33333%;\r\n }\n.w--8 {\r\n width: 66.66667%;\r\n }\n.w--9 {\r\n width: 75%;\r\n }\n.w--10 {\r\n width: 83.33333%;\r\n }\n.w--11 {\r\n width: 91.66667%;\r\n }\n.w--12 {\r\n width: 100%;\r\n }\n.w--24p {\r\n width: 24px;\r\n }\n.w--30p {\r\n width: 30px;\r\n }\n.w--48p {\r\n width: 48px;\r\n }\n.w--70p {\r\n width: 70px;\r\n }\n.w--90p {\r\n width: 90px;\r\n }\n.w--120p {\r\n width: 120px;\r\n }\n.w--170p {\r\n width: 170px;\r\n }\n.w--200p {\r\n width: 200px;\r\n }\n.w--300p {\r\n width: 300px;\r\n }\n.w--334p {\r\n width: 334px;\r\n }\n.w--350p {\r\n width: 350px;\r\n }\n.w--508p {\r\n width: 508px;\r\n }\n.w--520p {\r\n width: 520px;\r\n }\n.w--606p {\r\n width: 606px;\r\n }\n.w--max--90 {\r\n max-width: 90%;\r\n }\n.w--max--100 {\r\n max-width: 100%;\r\n }\n.w--max--300 {\r\n max-width: 300px;\r\n }\n.w--max--394 {\r\n max-width: 394px;\r\n }\n.w--max--920 {\r\n max-width: 920px;\r\n }\n.w--max--1080 {\r\n max-width: 1080px;\r\n }\n.fullwidth {\r\n width: 100%;\r\n}\n/*------------------------------------*\\\r\n # utils.type\r\n\\*------------------------------------*/\n/* Font letterform */\n.type--sans {\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n }\n.type--serif {\r\n font-family: 'Raleway', Georgia, Times, serif;\r\n }\n/* Font sizes */\n.type--nano {\r\n font-size: 10px;\r\n line-height: 10.5px;\r\n }\n.type--tny {\r\n font-size: 11px;\r\n line-height: 10.5px;\r\n }\n.type--xsml {\r\n font-size: 12px;\r\n line-height: 15.75px;\r\n }\n.type--sml {\r\n font-size: 13px;\r\n line-height: 21px;\r\n }\n.type--sml--alt {\r\n font-size: 15px;\r\n line-height: 21px;\r\n }\n.type--sml--plus {\r\n font-size: 14px;\r\n line-height: 21px;\r\n }\n.type--base {\r\n font-size: 16px;\r\n line-height: 26.25px;\r\n }\n.type--med {\r\n font-size: 16px;\r\n line-height: 21px;\r\n }\n@media (min-width: 48em) {\n.type--med {\r\n font-size: 19px;\r\n line-height: 26.25px\r\n }\r\n }\n.type--lrg {\r\n font-size: 19px;\r\n line-height: 26.25px;\r\n }\n@media (min-width: 48em) {\n.type--lrg {\r\n font-size: 21px;\r\n line-height: 31.5px\r\n }\r\n }\n.type--xlrg {\r\n font-size: 21px;\r\n line-height: 31.5px;\r\n }\n@media (min-width: 48em) {\n.type--xlrg {\r\n font-size: 24px;\r\n line-height: 42px\r\n }\r\n }\n.type--xxlrg {\r\n font-size: 21px;\r\n line-height: 31.5px;\r\n }\n@media (min-width: 48em) {\n.type--xxlrg {\r\n font-size: 33px;\r\n line-height: 42px\r\n }\r\n }\n.type--xxxlrg {\r\n font-size: 24px;\r\n line-height: 31.5px;\r\n }\n@media (min-width: 48em) {\n.type--xxxlrg {\r\n font-size: 40px;\r\n line-height: 42px\r\n }\r\n }\n.type--huge {\r\n font-size: 40px;\r\n line-height: 36.75px;\r\n }\n@media (min-width: 48em) {\n.type--huge {\r\n font-size: 56px;\r\n line-height: 47.25px\r\n }\r\n }\n.type--breakword {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n -o-text-overflow: ellipsis;\r\n text-overflow: ellipsis;\r\n }\n.type--nowrap {\r\n white-space: nowrap;\r\n }\n/* Font weights */\n.type--wgt--thin {\r\n font-weight: 100;\r\n }\n.type--wgt--light {\r\n font-weight: 300;\r\n }\n.type--wgt--regular {\r\n font-weight: 400;\r\n }\n.type--wgt--medium {\r\n font-weight: 500;\r\n }\n.type--wgt--semibold {\r\n font-weight: 600;\r\n }\n.type--wgt--bold {\r\n font-weight: 700;\r\n }\n.type--wgt--extra-bold {\r\n font-weight: 800;\r\n }\n/* Type colors */\n.type--color--black {\r\n color: #000;\r\n }\n.type--color--text {\r\n color: #8a93a0;\r\n }\n.type--color--text--light {\r\n color: #9ea6b3;\r\n }\n.type--color--text--regular {\r\n color: #667182;\r\n }\n.type--color--text--medium {\r\n color: #404a58;\r\n }\n.type--color--text--dark {\r\n color: #202e3c;\r\n }\n.type--color--light {\r\n color: rgb(199, 203, 209);\r\n }\n.type--color--primary {\r\n color: #e51646;\r\n }\n.type--color--secondary {\r\n color: #25252b;\r\n }\n.type--color--negative {\r\n color: white;\r\n }\n.type--color--grey4 {\r\n color: #9c9c9c;\r\n }\n.type--color--warning {\r\n color: #f03e1b;\r\n }\n.type--color--success {\r\n color: #2dba67;\r\n }\n.type--color--note {\r\n color: #efbc23;\r\n }\n.type--bool {\r\n font-size: 10px;\r\n line-height: 21px;\r\n font-weight: 500;\r\n padding: 2px 6px; \r\n text-align: center;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n border: 1px solid;\r\n }\n.type--bool--yes\r\n {\r\n color: #2dba67;\r\n border-color: rgba(45, 186, 103, 0.5);\r\n /* background-color: $color-success-faded; */\r\n }\n.type--bool--no {\r\n color: #f03e1b;\r\n border-color: rgba(240, 62, 27, 0.5);\r\n /* background-color: $color-success-faded; */\r\n }\n.type--status {\r\n font-size: 10px;\r\n line-height: 21px;\r\n display: inline-block;\r\n font-weight: 500;\r\n padding: 0 6px; \r\n text-align: center;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n border: 1px solid;\r\n }\n.type--status--active {\r\n color: #2dba67;\r\n border-color: rgba(45, 186, 103, 0.5);\r\n /* background-color: $color-success-faded; */\r\n }\n.type--status--pending {\r\n color: #efbc23;\r\n border-color: rgba(239, 188, 35, 0.5);\r\n /* background-color: $color-note-faded; */\r\n }\n.type--status--inactive {\r\n color: #c7c7c7;\r\n border-color: rgba(199, 199, 199, 0.5);\r\n /* background-color: $color-warning-faded; */\r\n }\n.type--status--unknown {\r\n color: #c7c7c7;\r\n border-color: rgba(199, 199, 199, 0.5);\r\n /* background-color: $color-warning-faded; */\r\n }\n.type--status--incomplete {\r\n position: relative;\r\n color: #f03e1b;\r\n border-color: rgba(240, 62, 27, 0.5);\r\n /* background-color: $color-warning-faded;\r\n padding-right: calc($unit * 6);\r\n\r\n &:after {\r\n content: '!';\r\n display: block;\r\n position: absolute;\r\n top: 50%;\r\n right: calc($unit * 2 + 2px);\r\n width: calc($unit * 3);\r\n height: calc($unit * 2);\r\n @mixin type-scale $type-tiny, 0.7;\r\n color: #fff;\r\n border-right: calc($unit + 2px) solid transparent;\r\n border-bottom: calc($unit * 2) solid $color-warning;\r\n border-left: calc($unit + 2px) solid transparent;\r\n text-align: center;\r\n transform: translateY(-50%);\r\n } */\r\n }\n.type--label {\r\n font-size: 10px;\r\n line-height: 21px;\r\n display: inline-block;\r\n font-weight: 500;\r\n padding: 0 6px; \r\n text-align: center;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n border: 2px solid;\r\n white-space: nowrap;\r\n }\n.type--label--red {\r\n color: #e51646;\r\n border-color: #e51646;\r\n background-color: #fbe4e9; \r\n\r\n }\n.type--label--orange {\r\n color: #efbc23;\r\n border-color: #efbc23;\r\n background-color: #fff9c2; \r\n }\n.type--label--green {\r\n color: #2dba67;\r\n border-color: #2dba67;\r\n background-color: #e9f9e5;\r\n }\n.type--label--grey {\r\n color: #9c9c9c;\r\n border-color: #9c9c9c;\r\n background-color: #c7c7c7;\r\n }\n/* Type case */\n.type--uppercase {\r\n text-transform: uppercase;\r\n letter-spacing: 0.05em;\r\n }\n.type--capitalize {\r\n text-transform: capitalize;\r\n }\n.type--none {\r\n text-transform: none;\r\n }\n.type--lowercase {\r\n text-transform: lowercase;\r\n }\n.type--narrow {\r\n letter-spacing: 0.0625em;\r\n }\n.type--wide {\r\n letter-spacing: 0.1250em;\r\n }\n/* Type positioning */\n.type--center {\r\n text-align: center;\r\n }\n.type--left {\r\n text-align: left;\r\n }\n.type--right {\r\n text-align: right;\r\n }\n@media (min-width: 48em) {\n.type--right--from--med {\r\n text-align: right\r\n }\r\n }\n@media (min-width: 75em) {\n.type--right--from--xlrg {\r\n text-align: right\r\n }\r\n }\n/* Type decoration */\n.type--italic {\r\n font-style: italic;\r\n }\n.type--underline {\r\n text-decoration: underline;\r\n }\n.type--linethrough {\r\n text-decoration: line-through;\r\n }\n.type--lineheight--22 {\r\n line-height: 22px;\r\n }\n.type--lineheight--26 {\r\n line-height: 26px;\r\n }\n.type--lineheight--34 {\r\n line-height: 34px;\r\n }\n.type--declined {\r\n position: relative;\r\n padding-left: 18px;\r\n color: #f03e1b;\r\n }\n.type--declined:before {\r\n content: 'x';\r\n display: block;\r\n position: absolute;\r\n top: 1px;\r\n left: 0;\r\n width: 15px;\r\n height: 15px;\r\n background-color: #f03e1b;\r\n font-size: 11px;\r\n line-height: 14.7px;\r\n color: #fff;\r\n text-align: center;\r\n }\n.type--approved {\r\n position: relative;\r\n padding-left: 18px;\r\n color: #2dba67;\r\n }\n.type--approved:before {\r\n content: '\\2713';\r\n display: block;\r\n position: absolute;\r\n top: 1px;\r\n left: 0;\r\n width: 15px;\r\n height: 15px;\r\n background-color: #2dba67;\r\n font-size: 11px;\r\n line-height: 14.7px;\r\n color: #fff;\r\n text-align: center;\r\n }\n.type--note {\r\n position: relative;\r\n padding-left: 18px;\r\n color: #efbc23;\r\n }\n.type--note:before {\r\n content: 'i';\r\n display: block;\r\n position: absolute;\r\n top: 1px;\r\n left: 0;\r\n width: 15px;\r\n height: 15px;\r\n background-color: #efbc23;\r\n font-size: 11px;\r\n line-height: 14.7px;\r\n color: #fff;\r\n text-align: center;\r\n }\n.type--clickable {\r\n cursor: pointer;\r\n }\n.type--clickable:hover {\r\n color: #e51646;\r\n }\n.type--error {\r\n position: relative;\r\n color: #f03e1b;\r\n padding-left: 30px;\r\n }\n.type--error:before {\r\n content: '!';\r\n display: block;\r\n position: absolute;\r\n top: 11px;\r\n left: 0;\r\n width: 18px;\r\n height: 12px;\r\n font-size: 11px;\r\n line-height: 14.7px;\r\n color: #fff;\r\n border-right: 8px solid transparent;\r\n border-bottom: 12px solid #f03e1b;\r\n border-left: 8px solid transparent;\r\n text-align: center;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n }\n/* modal values */\n.type--check {\r\n position: relative;\r\n padding-left: 30px;\r\n }\n.type--check:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 3px;\r\n left: 0;\r\n width: 22px;\r\n height: 22px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%232dba67' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.06 8.56l-8.56 8.561-4.06-4.06 2.12-2.122 1.94 1.94 6.44-6.44 2.12 2.122z' fill='%232DBA67'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 100% 100%;\r\n background-size: 100%;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n }\n.type--cross {\r\n position: relative;\r\n padding-left: 36px;\r\n }\n.type--cross:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 3px;\r\n left: 0;\r\n width: 22px;\r\n height: 22px;\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23f03e1b'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n -webkit-background-size: 100% 100%;\r\n background-size: 100%;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n }\n/*------------------------------------*\\\r\n # utils.floats\r\n\\*------------------------------------*/\n.pull {\r\n\tfloat: left;\r\n}\n@media (max-width: 33.9375em) {\n.pull--to--sml {\r\n\t\t \tfloat: left\t\r\n\t\t}\r\n\t\t\t}\n.push {\r\n\tfloat: right;\r\n}\n@media (max-width: 33.9375em) {\n.push--to--sml {\r\n\t\t \tfloat: right\t\r\n\t\t}\r\n\t\t\t}\n/*------------------------------------*\\\r\n # utils.align\r\n\\*------------------------------------*/\n.align--h--center {\r\n\t\t margin-left: auto;\r\n\t\t margin-right: auto;\r\n\t\t}\n.align--h--left {\r\n\t\t margin-right: auto;\r\n\t\t}\n.align--h--right {\r\n\t\t margin-left: auto;\r\n\t\t}\n.align--v--top {\r\n\t\t\tvertical-align: top;\r\n\t\t}\n.align--v--middle {\r\n\t\t\tvertical-align: middle;\r\n\t\t}\n.align--v--sub {\r\n\t\t\tvertical-align: sub;\r\n\t\t}\n.align--v--bottom {\r\n\t\t\tvertical-align: bottom;\r\n\t\t}\n.align--v--baseline {\r\n\t\t\tvertical-align: baseline;\r\n\t\t}\n.align--v--3 {\r\n\t\t\tvertical-align: 3px;\r\n\t\t}\n.align--v--4 {\r\n\t\t\tvertical-align: 4px;\r\n\t\t}\n.align--v--neg--2 {\r\n\t\t\t\tvertical-align: -2px;\r\n\t\t\t}\n.align--v--neg--3 {\r\n\t\t\t\tvertical-align: -3px;\r\n\t\t\t}\n.align--v--neg--4 {\r\n\t\t\t\tvertical-align: -4px;\r\n\t\t\t}\n.align--v--neg--5 {\r\n\t\t\t\tvertical-align: -5px;\r\n\t\t\t}\n.align--v--neg--6 {\r\n\t\t\t\tvertical-align: -6px;\r\n\t\t\t}\n.align--v--neg--7 {\r\n\t\t\t\tvertical-align: -7px;\r\n\t\t\t}\n/*------------------------------------*\\\r\n # components.separator\r\n\\*------------------------------------*/\n.separator {\r\n border: 0;\r\n}\n.separator--primary {\r\n border-bottom: 1px solid rgb(255, 255, 255);\r\n }\n.separator--grey1 {\r\n border-bottom: 1px solid #dfe3e8;\r\n }\n.separator--last:last-child {\r\n \t\tborder-bottom: 1px solid transparent;\r\n \t}\n.separator--right--primary {\r\n border-right: 1px solid rgb(255, 255, 255);\r\n }\n.separator--neg--24 {\r\n margin-right: -24px;\r\n margin-left: -24px;\r\n }\n/*------------------------------------*\\\r\n # utils.border\r\n\\*------------------------------------*/\n.border--top {\r\n\t\tborder-top: 1px solid #dfe3e8;\r\n\t}\n.border--top--last:last-child {\r\n\t\t\t\tborder-bottom: 1px solid #dfe3e8;\r\n\t\t\t}\n.border--bottom {\r\n\t\tborder-bottom: 1px solid #dfe3e8;\r\n\t}\n.border--bottom--last:last-child {\r\n\t\t\t\tborder-bottom: none;\r\n\t\t\t}\n.border--warning {\r\n\t\tborder: 1px solid #f03e1b;\r\n\t}\n.border--none {\r\n\t\tborder: none;\r\n\t}\n/*------------------------------------*\\\r\n # utils.icon\r\n\\*------------------------------------*/\n.icon {\r\n display: inline-block;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n}\n.icon.is-rotated {\r\n -webkit-transform: rotate(90deg);\r\n -ms-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n }\n/*Icon sizes */\n.icon--micro {\r\n -webkit-background-size: 8px 8px;\r\n background-size: 8px; \r\n width: 8px;\r\n height: 8px;\r\n }\n.icon--nano {\r\n -webkit-background-size: 14px 14px;\r\n background-size: 14px; \r\n width: 14px;\r\n height: 14px;\r\n }\n.icon--tiny {\r\n\t\t-webkit-background-size: 16px 16px;\r\n\t\t background-size: 16px; \r\n\t\twidth: 16px;\r\n\t\theight: 16px;\r\n\t}\n.icon--xxsml {\r\n -webkit-background-size: 18px 18px;\r\n background-size: 18px; \r\n width: 18px;\r\n height: 18px;\r\n }\n.icon--xsml {\r\n -webkit-background-size: 20px 20px;\r\n background-size: 20px; \r\n width: 20px;\r\n height: 20px;\r\n }\n.icon--sml {\r\n\t\t-webkit-background-size: 24px 24px;\r\n\t\t background-size: 24px; \r\n\t\twidth: 24px;\r\n\t\theight: 24px;\r\n\t}\n.icon--med {\r\n -webkit-background-size: 36px 36px;\r\n background-size: 36px; \r\n\t\twidth: 36px;\r\n\t\theight: 36px;\r\n }\n.icon--xlrg {\r\n\t\t-webkit-background-size: 80px 80px;\r\n\t\t background-size: 80px; \r\n\t\twidth: 80px;\r\n\t\theight: 80px;\r\n }\n.icon--middle {\r\n\t\tvertical-align: middle;\r\n\t}\n.icon--text-top {\r\n\t\tvertical-align: text-top;\r\n\t}\n.icon--icon {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='color(%23e51646 a(0.1))'%3E%3Cpath d='M2.8 3.5h17.7v17.7H2.8z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow {\r\n -webkit-transition: ease .2s all;\r\n -o-transition: ease .2s all;\r\n transition: ease .2s all;\r\n }\n.icon--arrow--up--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 5L21 15.323 18.537 18 11.5 10.353 4.463 18 2 15.323 11.5 5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--up--secondary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 5L21 15.323 18.537 18 11.5 10.353 4.463 18 2 15.323 11.5 5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--down--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 18L2 7.676 4.593 5 12 12.647 19.407 5 22 7.676 12 18z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--down--secondary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 18L2 7.676 4.593 5 12 12.647 19.407 5 22 7.676 12 18z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--right--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 11.5L7.676 21 5 18.537l7.647-7.037L5 4.463 7.676 2 18 11.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--right--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 11.5L7.676 21 5 18.537l7.647-7.037L5 4.463 7.676 2 18 11.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--left {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 11.5L15.323 2 18 4.463 10.353 11.5 18 18.537 15.323 21 5 11.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--left--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 11.5L15.323 2 18 4.463 10.353 11.5 18 18.537 15.323 21 5 11.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--dropdown {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%239c9c9c' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.open .icon--arrow--dropdown {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%23e51646' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow--dropdown.is-active {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%23e51646' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--arrow.is-active {\r\n -webkit-transform: rotate(180deg);\r\n -ms-transform: rotate(180deg);\r\n transform: rotate(180deg);\r\n }\n.icon--arrow.is-expanded {\r\n -webkit-transform: rotate(90deg);\r\n -ms-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n }\n.icon--add {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n.icon--add--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg height='20' width='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23e51646'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E\");\r\n }\n.icon--drag {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23fff'%3E%3Ctitle%3EGroup@1,5x%3C/title%3E%3Cg fill='%23261A3B'%3E%3Cpath d='M1.548 3.75H0v-3C0 .336.346 0 .774 0h3.097v1.5H1.548v2.25zM3.871 21.75H.774A.762.762 0 0 1 0 21v-3h1.548v2.25h2.323v1.5zM22.451 3.75h-1.548V1.5H18.58V0h3.098c.428 0 .773.336.773.75v3zM6.193 0h3.871v1.5H6.193zM12.387 0h3.871v1.5h-3.871zM6.193 20.25h3.871v1.5H6.193zM0 6h1.548v3.75H0zM0 12h1.548v3.75H0zM20.903 6h1.548v3.75h-1.548zM23.66 21.329l-4.809-4.658 4.374-2.421-11.613-3 3.096 11.25 2.5-4.237 4.809 4.658c.454.439 1.189.439 1.643 0s.453-1.152 0-1.592z'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--drag--negative {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3EGroup@1,5x%3C/title%3E%3Cg fill='%23FFF' fill-rule='evenodd'%3E%3Cpath opacity='.148' d='M0 1h22v20H0z'/%3E%3Cpath d='M1.548 3.75H0v-3C0 .336.346 0 .774 0h3.097v1.5H1.548v2.25zM3.871 21.75H.774A.762.762 0 0 1 0 21v-3h1.548v2.25h2.323v1.5zM22.452 3.75h-1.549V1.5h-2.322V0h3.096c.429 0 .775.336.775.75v3zM6.194 0h3.871v1.5H6.194zM12.387 0h3.871v1.5h-3.871zM6.194 20.25h3.871v1.5H6.194zM0 6h1.548v3.75H0zM0 12h1.548v3.75H0zM20.903 6h1.548v3.75h-1.548zM23.66 21.33l-4.808-4.659 4.374-2.421-11.613-3L14.71 22.5l2.5-4.238 4.808 4.659c.454.44 1.188.44 1.642 0a1.102 1.102 0 0 0 0-1.592z'/%3E%3C/g%3E%3C/svg%3E\"); \r\n }\n.icon--expand {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / double / search@1,5x%3C/title%3E%3Cg fill-rule='nonzero' fill='none'%3E%3Cpath d='M15.44 1.5h-2.69a.75.75 0 0 1 0-1.5h4.275c.04 0 .08.002.12.007a.749.749 0 0 1 .848.848c.005.04.007.08.007.12V5.25a.75.75 0 0 1-1.5 0V2.56l-3.22 3.22a.75.75 0 0 1-1.06-1.06l3.22-3.22zM1.5 2.56v2.69a.75.75 0 0 1-1.5 0V.975c0-.04.002-.08.007-.12A.749.749 0 0 1 .855.007.985.985 0 0 1 .975 0H5.25a.75.75 0 0 1 0 1.5H2.56l3.22 3.22a.75.75 0 1 1-1.06 1.06L1.5 2.56zM16.5 15.44v-2.69a.75.75 0 0 1 1.5 0v4.275c0 .04-.002.08-.007.12a.749.749 0 0 1-.848.848.985.985 0 0 1-.12.007H12.75a.75.75 0 0 1 0-1.5h2.69l-3.22-3.22a.75.75 0 0 1 1.06-1.06l3.22 3.22zM2.56 16.5h2.69a.75.75 0 0 1 0 1.5H.975a.985.985 0 0 1-.12-.007.749.749 0 0 1-.848-.848.985.985 0 0 1-.007-.12V12.75a.75.75 0 0 1 1.5 0v2.69l3.22-3.22a.75.75 0 0 1 1.06 1.06L2.56 16.5z' fill='%23667182'/%3E%3Cpath d='M9 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--privacy {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23fff'%3E%3Cpath d='M17.2 1.3H2.8c-1 0-1.8.8-1.8 1.9v5.6c0 5.2 3.7 9.6 8.9 10.5h.2C15.3 18.5 19 14 19 8.8V3.2c0-1.1-.8-1.9-1.8-1.9zm.3 7.5c0 4.4-3.2 8.2-7.5 9-4.4-.8-7.5-4.6-7.5-9V3.2c0-.2.2-.4.4-.4h14.3c.2 0 .4.2.4.4v5.6z'/%3E%3Cpath d='M11.3 10.8c1.1-.5 2-1.6 2-3 0-1.8-1.4-3.2-3.2-3.2S6.8 6.1 6.8 7.8c0 1.3.8 2.4 1.9 3-.4.1-.7.2-1 .4-1 .5-1.8 1.3-2.3 2.3-.2.4 0 .8.3 1 .4.2.8 0 1-.3.4-.7.9-1.3 1.6-1.6 1.8-.9 4-.2 4.9 1.6.1.3.4.4.7.4.1 0 .2 0 .3-.1.4-.2.5-.6.3-1-.6-1.4-1.8-2.3-3.2-2.7zM10 6.1c1 0 1.7.8 1.7 1.7S11 9.6 10 9.6s-1.7-.8-1.7-1.7S9 6.1 10 6.1z'/%3E%3C/svg%3E\");\r\n }\n.icon--copyright {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / double / report%3C/title%3E%3Cpath d='M10 19.6C4.7 19.6.4 15.3.4 10S4.7.4 10 .4s9.6 4.3 9.6 9.6-4.3 9.6-9.6 9.6zm0-17.7c-4.5 0-8.1 3.6-8.1 8.1s3.6 8.1 8.1 8.1 8.1-3.6 8.1-8.1-3.6-8.1-8.1-8.1z'/%3E%3Cpath d='M13.2 5.7c.8.7 1.4 1.6 1.6 2.7H13c-.1-.7-.5-1.3-1-1.7-.5-.4-1.2-.6-2-.6-.6 0-1.1.1-1.6.4s-.9.7-1.1 1.3-.5 1.2-.5 2.1c0 .8.1 1.5.4 2.1.3.6.7 1 1.2 1.2.5.3 1 .4 1.6.4.8 0 1.5-.2 2-.6.5-.4.9-1 1-1.7h1.8c-.2 1.2-.7 2.1-1.6 2.8s-1.9 1-3.2 1c-1 0-1.8-.2-2.6-.6-.7-.4-1.3-1-1.7-1.8S5.1 11 5.1 10c0-1 .2-2 .6-2.7.4-.8 1-1.4 1.7-1.8.8-.6 1.7-.8 2.6-.8 1.3 0 2.4.3 3.2 1z'/%3E%3C/svg%3E\");\r\n }\n.icon--open-new {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='19' viewBox='0 0 18 19' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3EExpand@3x%3C/title%3E%3Cg stroke='%23E51646' stroke-width='2' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 12.75v4.75H1v-16h5M11 1.5h6M17 7.5v-6M16.5 2l-8 8'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--dragdots {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H3v2h2V0zm3 0H6v2h2V0zM3 3h2v2H3V3zm5 0H6v2h2V3zM3 6h2v2H3V6zm5 0H6v2h2V6zM3 9h2v2H3V9zm5 0H6v2h2V9z' fill='%23C4C4C4'/%3E%3C/svg%3E\");\r\n }\n.icon--dots {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%239c9c9c'%3E%3Ctitle%3Eicon / full / active / drag active@1,5x%3C/title%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='2.4' r='1.4'/%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='7.9' r='1.4'/%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='13.5' r='1.4'/%3E%3C/svg%3E\");\r\n }\n.icon--dots--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e51646'%3E%3Ctitle%3Eicon / full / active / drag active@1,5x%3C/title%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='2.4' r='1.4'/%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='7.9' r='1.4'/%3E%3Ccircle fill-rule='evenodd' clip-rule='evenodd' cx='8' cy='13.5' r='1.4'/%3E%3C/svg%3E\");\r\n }\n.icon--dragdots-active {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicon / full / active / drag active@1,5x%3C/title%3E%3Cg transform='translate(5 1)' fill='%23E51646' fill-rule='evenodd'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3Ccircle cx='5' cy='5' r='1'/%3E%3Ccircle cx='1' cy='5' r='1'/%3E%3Ccircle cx='5' cy='1' r='1'/%3E%3Ccircle cx='1' cy='9' r='1'/%3E%3Ccircle cx='5' cy='9' r='1'/%3E%3Ccircle cx='1' cy='13' r='1'/%3E%3Ccircle cx='5' cy='13' r='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--eye-crossed {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / double / hide@1,5x%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M17.575 11.1c.5-.7.5-1.6 0-2.3-1.2-1.7-4-4.8-7.6-4.8-3.6 0-6.4 3.1-7.6 4.9-.5.7-.5 1.6 0 2.2 1.2 1.8 4 4.9 7.6 4.9 3.6 0 6.4-3.1 7.6-4.9z' stroke='%23667182' stroke-width='1.5'/%3E%3Ccircle fill='%23E51646' cx='10' cy='10' r='2'/%3E%3Cpath d='M3.53 17.53l14-14a.75.75 0 0 0-1.06-1.06l-14 14a.75.75 0 0 0 1.06 1.06z' fill='%23667182' fill-rule='nonzero'/%3E%3Cpath d='M3.53 17.53l14-14a.75.75 0 0 0-1.06-1.06l-14 14a.75.75 0 0 0 1.06 1.06z' fill='%23667182' fill-rule='nonzero'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--shutdown {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23667182'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42A6.92 6.92 0 0 1 19 12c0 3.87-3.13 7-7 7A6.995 6.995 0 0 1 7.58 6.58L6.17 5.17A8.932 8.932 0 0 0 3 12a9 9 0 0 0 18 0c0-2.74-1.23-5.18-3.17-6.83z'/%3E%3C/svg%3E\");\r\n }\n.icon--minimize {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / double / search@1,5x%3C/title%3E%3Cg fill-rule='nonzero' fill='none'%3E%3Cpath d='M14.56 4.5h2.69a.75.75 0 0 1 0 1.5h-4.275a.985.985 0 0 1-.12-.007.749.749 0 0 1-.848-.848.985.985 0 0 1-.007-.12V.75a.75.75 0 0 1 1.5 0v2.69L16.72.22a.75.75 0 0 1 1.06 1.06L14.56 4.5zM4.5 3.44V.75a.75.75 0 0 1 1.5 0v4.275c0 .04-.002.08-.007.12a.749.749 0 0 1-.848.848.985.985 0 0 1-.12.007H.75a.75.75 0 0 1 0-1.5h2.69L.22 1.28A.75.75 0 1 1 1.28.22L4.5 3.44zM13.5 14.56v2.69a.75.75 0 0 1-1.5 0v-4.275c0-.04.002-.08.007-.12a.749.749 0 0 1 .848-.848.985.985 0 0 1 .12-.007h4.275a.75.75 0 0 1 0 1.5h-2.69l3.22 3.22a.75.75 0 0 1-1.06 1.06l-3.22-3.22zM3.44 13.5H.75a.75.75 0 0 1 0-1.5h4.275c.04 0 .08.002.12.007a.749.749 0 0 1 .848.848c.005.04.007.08.007.12v4.275a.75.75 0 0 1-1.5 0v-2.69l-3.22 3.22a.75.75 0 0 1-1.06-1.06l3.22-3.22z' fill='%23667182'/%3E%3Cpath d='M9 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--menu-expand {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='12' viewBox='0 0 20 12' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3EMenu Expand@1,5x%3C/title%3E%3Cg fill='%23667182' stroke='%23667182' fill-rule='evenodd'%3E%3Cpath d='M1 1h12M1 6h12M1 11h12' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M17.328 7.45l1.622-1.622-1.622-1.62V7.45z'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--menu-expand:hover {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='12' viewBox='0 0 20 12' xmlns='http://www.w3.org/2000/svg' fill='%23e51646'%3E%3Ctitle%3EMenu Expand active@1,5x%3C/title%3E%3Cg fill='%23E51646' fill-rule='evenodd'%3E%3Cpath d='M1 1h12M1 6h12M1 11h12' stroke='%23E51646' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M16.828 7.45V4.207a.5.5 0 0 1 .854-.353l1.621 1.62a.5.5 0 0 1 0 .708l-1.621 1.621a.5.5 0 0 1-.854-.353z'/%3E%3C/g%3E%3C/svg%3E\"); \r\n }\n.icon--menu-expand--negative {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='12' viewBox='0 0 20 12' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3EMenu Expand active@1,5x%3C/title%3E%3Cg fill='%23E51646' fill-rule='evenodd'%3E%3Cpath d='M1 1h12M1 6h12M1 11h12' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M16.828 7.45V4.207a.5.5 0 0 1 .854-.353l1.621 1.62a.5.5 0 0 1 0 .708l-1.621 1.621a.5.5 0 0 1-.854-.353z'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--menu-collapse {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='12' viewBox='0 0 20 12' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Ctitle%3EMenu Expand@1,5x%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M19 1H7M19 6H7M19 11H7' stroke='%23667182' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M3.172 7.45V4.207a.5.5 0 0 0-.854-.353L.697 5.474a.5.5 0 0 0 0 .708l1.621 1.621a.5.5 0 0 0 .854-.353z' fill='%23667182'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--menu-collapse:hover {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='12' viewBox='0 0 20 12' xmlns='http://www.w3.org/2000/svg' fill='%23e51646'%3E%3Ctitle%3EMenu Expand_active@1,5x%3C/title%3E%3Cg fill='%23E51646' stroke='%23E51646' fill-rule='evenodd'%3E%3Cpath d='M19 1H7M19 6H7M19 11H7' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M2.672 7.45L1.05 5.828l1.622-1.62V7.45z'/%3E%3C/g%3E%3C/svg%3E\"); \r\n }\n.icon--search {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9 14c-2.745 0-5-2.178-5-4.95C4 6.277 6.255 4 9 4s5 2.277 5 5.05C14 11.822 11.745 14 9 14zm5.7-.77a6.777 6.777 0 0 0 1.4-4.174C16.1 5.18 13 2 9.1 2S2 5.18 2 9.056s3.2 7.056 7.1 7.056c1.6 0 3.1-.497 4.2-1.392l3 2.982c.2.199.5.298.7.298.2 0 .5-.1.7-.298.4-.398.4-.994 0-1.391l-3-3.081z' fill='%23667182'/%3E%3Cpath d='M9 6a3 3 0 0 0-3 3' stroke='%23E51646' stroke-width='1.5' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--search--disabled {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239c9c9c'%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}.st0,.st1{fill:%23667182}.st2{fill:none;stroke:%23e51646;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cg id='icons-_x2F_-20px-_x2F_-search'%3E%3Cpath class='st0' d='M15.7 14.3l-3-3.1c.9-1.2 1.4-2.6 1.4-4.2 0-1.7-.6-3.3-1.6-4.5L11 4c.6.8 1 1.9 1 3 0 2.8-2.3 5-5 5-1.1 0-2.2-.4-3-1l-1.5 1.4C3.7 13.4 5.3 14 7 14c1.6 0 3.1-.5 4.2-1.4l3 3c.2.2.5.3.7.3s.5-.1.7-.3c.5-.3.5-.9.1-1.3zM10.3 1.1s0-.1 0 0c-.1-.3-.3-.4-.4-.5h-.1c-.1 0-.2-.1-.3-.1C8.8.2 8 0 7.1 0 3.2 0 0 3.2 0 7.1c0 .9.2 1.7.5 2.5v.1s0 .1.1.2c.2.3.5.5.9.5.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7 0-.1 0-.3-.1-.4-.3-.7-.4-1.3-.4-2 0-2.8 2.3-5 5-5 .7 0 1.3.1 1.9.4.1 0 .2.1.4.1.3 0 .5-.1.7-.3.2-.2.3-.4.3-.7v-.4z' transform='translate(2 2)' id='ico'/%3E%3C/g%3E%3Cpath class='st1' d='M2 18L17.1 2.9M3 18c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l14-14c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-14 14c-.2.2-.4.3-.7.3z'/%3E%3Cpath class='st0' d='M4.5 11.3c0 .3-.1.5-.3.7-.2.2-.4.3-.7.3-.4 0-.7-.2-.9-.5 0 0 0-.1-.1-.2v-.1-.2c0-.5.5-1 1-1 .4 0 .8.3.9.6 0 .2.1.3.1.4zM12.3 3.4c0 .3-.1.5-.3.7-.2.2-.4.3-.7.3-.1 0-.3 0-.4-.1-.2-.1-.4-.3-.5-.5 0 0-.1-.1-.1-.2v-.1-.2c0-.6.5-1 1-1h.2c.1 0 .2.1.3.1h.1c.1.3.3.4.4.6v.4z'/%3E%3Cpath id='Path_1_' class='st2' d='M9 6C7.3 6 6 7.3 6 9'/%3E%3C/svg%3E\");\r\n }\n.icon--envelope {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / envelope%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M.003.034h17.98V13.34H.003z'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(1 3)'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cpath d='M15.788.034H2.199C.986.034 0 .993 0 2.172v9.03c0 1.18.986 2.138 2.2 2.138h13.584c1.213 0 2.2-.959 2.2-2.138V2.176C17.986.996 17 .034 15.787.034zm1.194 11.168c0 .64-.535 1.161-1.194 1.161H2.199c-.658 0-1.194-.52-1.194-1.161V2.176c0-.64.536-1.161 1.194-1.161h13.585c.659 0 1.195.52 1.195 1.16v9.027h.003z' stroke='%23667182' stroke-width='.55' fill='%23667182' mask='url(%23b)'/%3E%3C/g%3E%3Cpath d='M11.959 9.882l3.682-3.205a.402.402 0 0 0 .032-.578.432.432 0 0 0-.595-.03l-5.079 4.424-.99-.859a.635.635 0 0 0-.075-.066L4.902 6.066a.429.429 0 0 0-.595.033.4.4 0 0 0 .034.578L8.068 9.91l.632.55 1.022.886a.428.428 0 0 0 .56-.003l1.05-.913.627-.548z' stroke='%23E51646' stroke-width='.55' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--edit {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3EB8875B4B-8CAE-430D-A550-F76555E99CBD%3C/title%3E%3Cg stroke-width='1.5' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 8l-4-4' stroke='%23E51646'/%3E%3Cpath stroke='%23667182' d='M6.5 15.5l-5 1 1-5 10-10 4 4z'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--edit-alt--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 12v4h4l8-8-4-4-8 8zM14 6l-4-4 2-2 4 4-2 2z'/%3E%3C/svg%3E\");\r\n }\n.icon--edit-alt--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 12v4h4l8-8-4-4-8 8zM14 6l-4-4 2-2 4 4-2 2z'/%3E%3C/svg%3E\");\r\n }\n.icon--view {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / view%3C/title%3E%3Cg transform='translate(1 3)' fill='none' fill-rule='evenodd'%3E%3Cpath d='M9 14c5.295 0 8.712-6.165 8.855-6.426.192-.355.193-.789.001-1.143C17.714 6.168 14.322 0 9 0 3.65 0 .282 6.17.142 6.433c-.19.354-.19.784.002 1.138C.286 7.83 3.678 14 9 14zM9 2.333c3.194 0 5.665 3.308 6.545 4.667-.882 1.36-3.353 4.667-6.545 4.667-3.196 0-5.668-3.311-6.546-4.668C3.328 5.64 5.789 2.333 9 2.333z' stroke='%23FFF' stroke-width='.6' fill='%23667182' fill-rule='nonzero'/%3E%3Cellipse fill='%23E51646' cx='9' cy='7' rx='2.25' ry='2.333'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--eye-disabled {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / double / hide@1,5x%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M17.575 11.1c.5-.7.5-1.6 0-2.3-1.2-1.7-4-4.8-7.6-4.8-3.6 0-6.4 3.1-7.6 4.9-.5.7-.5 1.6 0 2.2 1.2 1.8 4 4.9 7.6 4.9 3.6 0 6.4-3.1 7.6-4.9z' stroke='%23667182' stroke-width='1.5'/%3E%3Ccircle fill='%23667182' cx='10' cy='10' r='2'/%3E%3Cpath d='M3.53 17.53l14-14a.75.75 0 0 0-1.06-1.06l-14 14a.75.75 0 0 0 1.06 1.06z' fill='%23667182' fill-rule='nonzero'/%3E%3Cpath d='M3.53 17.53l14-14a.75.75 0 0 0-1.06-1.06l-14 14a.75.75 0 0 0 1.06 1.06z' fill='%23667182' fill-rule='nonzero'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--bus {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z'/%3E%3C/svg%3E\");\r\n }\n.icon--download {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Eicons / 20px / download%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Crect fill='%23667182' fill-rule='nonzero' x='1' y='11' width='1.5' height='7' rx='.75'/%3E%3Crect fill='%23667182' fill-rule='nonzero' x='17' y='11' width='1.5' height='7' rx='.75'/%3E%3Cpath fill='%23667182' fill-rule='nonzero' d='M1 18v-1.5h17V18z'/%3E%3Cpath d='M10.819 10.195l1.631-1.628a.424.424 0 0 1 .301-.123c.113 0 .22.043.3.123l.254.253a.42.42 0 0 1 .124.3.42.42 0 0 1-.124.299l-2.79 2.79a.42.42 0 0 1-.3.124.42.42 0 0 1-.3-.123L7.122 9.419a.42.42 0 0 1-.123-.3.42.42 0 0 1 .123-.299l.254-.253a.42.42 0 0 1 .592 0l1.641 1.647V6.429c0-.233.201-.429.434-.429h.359a.43.43 0 0 1 .418.435l-.002 3.76z' stroke='%23E51646' stroke-width='.3' fill='%23E51646'/%3E%3Crect fill='%23E51646' fill-rule='nonzero' x='9.46' y='3' width='1.5' height='7' rx='.75'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--upload {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%237f7f7f'%3E%3Cstyle%3E.st0{fill:%23667182}.st1{fill-rule:evenodd;clip-rule:evenodd;stroke:%23e51646;stroke-width:.3}.st1,.st2{fill:%23e51646}%3C/style%3E%3Ctitle%3Eicons / 20px / download%3C/title%3E%3Cpath id='Rectangle' class='st0' d='M1.8 11c.4 0 .8.3.8.8v5.5c0 .4-.3.8-.8.8-.5-.1-.8-.4-.8-.9v-5.5c0-.4.3-.7.8-.7z'/%3E%3Cpath id='Rectangle_1_' class='st0' d='M17.8 11c.4 0 .8.3.8.8v5.5c0 .4-.3.8-.8.8-.4 0-.8-.3-.8-.8v-5.5c0-.5.3-.8.8-.8z'/%3E%3Cpath id='Rectangle_2_' class='st0' d='M1 16.5h17V18H1z'/%3E%3Cpath id='Fill-1' class='st1' d='M9.6 5.1L8 6.8c-.1 0-.2.1-.3.1-.1 0-.2 0-.3-.1l-.3-.3C7 6.4 7 6.3 7 6.2c0-.1 0-.2.1-.3l2.8-2.8c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1l2.8 2.8c.1.1.1.2.1.3 0 .1 0 .2-.1.3l-.3.3c-.1.1-.2.1-.3.1-.1 0-.2 0-.3-.1l-1.6-1.6V9c0 .2-.2.4-.4.4H10c-.2 0-.4-.2-.4-.4V5.1z'/%3E%3Cpath id='Rectangle_3_' class='st2' d='M10.2 12.3c-.4 0-.8-.3-.8-.8V6.1c0-.4.3-.8.8-.8.4 0 .8.3.8.8v5.5c0 .4-.4.7-.8.7z'/%3E%3C/svg%3E\");\r\n }\n.icon--spinner {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' stroke='%23fff'%3E%3Ctitle%3Eicons / 20px / download%3C/title%3E%3Cpath fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M14.9 6.1c-2.2-2.7-6.3-3.1-9-.8-1.5 1.2-2.3 3-2.3 4.9v1.7M5.3 14.5c2.4 2.5 6.5 2.7 9.1.3 1.3-1.2 2-2.9 2-4.6V9'/%3E%3Cpath fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1.2 9.6l2.3 2.3 2.3-2.3M18.8 11.3L16.4 9l-2.3 2.3'/%3E%3C/svg%3E\");\r\n -webkit-animation: icon-rotation 2s infinite linear;\r\n animation: icon-rotation 2s infinite linear;\r\n }\n.icon--info {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Einfo-tip-icon%3C/title%3E%3Cpath d='M11.95 2.05a6.998 6.998 0 0 0-9.899 0 6.998 6.998 0 0 0 0 9.9 7 7 0 1 0 9.899-9.9zm-4.036 7.993a.913.913 0 1 1-1.827 0V6.39a.913.913 0 1 1 1.827 0v3.652zM6.983 4.83c-.526 0-.875-.373-.865-.834-.01-.48.34-.842.877-.842.537 0 .876.361.887.842 0 .461-.35.834-.899.834z' fill='%23C8CFD5' fill-rule='evenodd'/%3E%3C/svg%3E\");\r\n }\n.icon--info--notification {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='.1' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20z' fill='%232E86EB'/%3E%3Cpath d='M20 11c-4.95 0-9 4.05-9 9s4.05 9 9 9 9-4.05 9-9-4.05-9-9-9zm0 14.625c-.675 0-1.125-.45-1.125-1.125s.45-1.125 1.125-1.125 1.125.45 1.125 1.125-.45 1.125-1.125 1.125zm1.688-5.175c-.563.338-.563.45-.563.675v1.125h-2.25v-1.125c0-1.462.9-2.137 1.575-2.587.563-.338.675-.45.675-.788 0-.675-.45-1.125-1.125-1.125-.45 0-.788.225-1.012.563l-.563 1.012-1.913-1.125.563-1.012c.563-1.013 1.688-1.688 2.925-1.688 1.913 0 3.375 1.463 3.375 3.375 0 1.575-1.012 2.25-1.688 2.7z' fill='%2377AFF1'/%3E%3C/svg%3E\");\r\n }\n.icon--user-alt {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Eicons / 20px / user-new%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M6.625 6.625A3.379 3.379 0 0 1 10 3.25a3.379 3.379 0 0 1 3.375 3.375A3.379 3.379 0 0 1 10 10a3.379 3.379 0 0 1-3.375-3.375zm9.032 5.718a7.97 7.97 0 0 0-3.04-1.907 4.623 4.623 0 0 0 2.008-3.811A4.63 4.63 0 0 0 10 2a4.63 4.63 0 0 0-4.625 4.625c0 1.58.796 2.977 2.008 3.811a7.97 7.97 0 0 0-3.04 1.907A7.948 7.948 0 0 0 2 18h1.25A6.758 6.758 0 0 1 10 11.25 6.758 6.758 0 0 1 16.75 18H18a7.948 7.948 0 0 0-2.343-5.657z' stroke='%23667182' stroke-width='.2' fill='%23667182'/%3E%3Crect fill='%23E51646' fill-rule='nonzero' x='6' y='17' width='8' height='1.5' rx='.75'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--company {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%237f7f7f' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.75 3.5a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25h-8.5zM7 3.75C7 2.784 7.784 2 8.75 2h8.5c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0 1 17.25 18h-8.5A1.75 1.75 0 0 1 7 16.25V3.75z' fill='%23667182'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.25 8.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3.5zm-1.75.25C1.5 7.784 2.284 7 3.25 7h3.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 6.75 18h-3.5a1.75 1.75 0 0 1-1.75-1.75v-7.5z' fill='%23667182'/%3E%3Cpath d='M12 6h-2v2h2V6zM16 10h-2v2h2v-2zM12 10h-2v2h2v-2zM6 10H4v2h2v-2zM16 6h-2v2h2V6z' fill='%23E51646'/%3E%3C/svg%3E\");\r\n }\n.icon--company--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.75 3.5a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25h-8.5zM7 3.75C7 2.784 7.784 2 8.75 2h8.5c.966 0 1.75.784 1.75 1.75v12.5A1.75 1.75 0 0 1 17.25 18h-8.5A1.75 1.75 0 0 1 7 16.25V3.75z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.25 8.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3.5zm-1.75.25C1.5 7.784 2.284 7 3.25 7h3.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 6.75 18h-3.5a1.75 1.75 0 0 1-1.75-1.75v-7.5z'/%3E%3Cpath d='M12 6h-2v2h2V6zM16 10h-2v2h2v-2zM12 10h-2v2h2v-2zM6 10H4v2h2v-2zM16 6h-2v2h2V6z' fill='%23E51646'/%3E%3C/svg%3E\");\r\n }\n.icon--company-alt--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='%23667182'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.646 9.412v9.338h10.707V9.412h2.223v9.9c0 .932-.746 1.688-1.667 1.688H6.091c-.92 0-1.667-.756-1.667-1.688v-9.9h2.222z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.919 3H19.08L22 7.74l.001.32c.004 1.646-1.151 3.033-2.722 3.397a3.572 3.572 0 0 1-2.967-.635 3.55 3.55 0 0 1-4.311.001 3.551 3.551 0 0 1-4.311-.001 3.572 3.572 0 0 1-2.967.635C3.152 11.093 1.996 9.707 2 8.06v-.32L4.92 3zm1.233 2.25L4.253 8.334c.103.434.455.811.965.93.618.143 1.227-.155 1.487-.66l.99-1.926.983 1.93c.208.409.653.692 1.167.692s.96-.283 1.167-.692L12 6.669l.988 1.939c.208.409.653.692 1.167.692s.959-.283 1.167-.692l.983-1.93.99 1.926c.26.505.869.803 1.487.66.51-.119.861-.496.965-.93L17.848 5.25H6.152z'/%3E%3C/svg%3E\");\r\n }\n.icon--support {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M11.9 2C17.5 2 22 6.5 22 12.1s-4.5 10.1-10.1 10.1S1.8 17.6 1.8 12.1 6.3 2 11.9 2zm-.2 13.6c-.7 0-1.2.5-1.2 1.2S11 18 11.7 18s1.2-.5 1.2-1.2-.6-1.2-1.2-1.2zm0-9.5c-.9 0-1.9.3-2.6.9C8.4 7.5 8 8.3 8 9c0 .6.5.9.9.9.7 0 .8-.4 1.1-.9.3-.6.6-1.3 1.8-1.3 1.1 0 1.7.6 1.7 1.6 0 .8-.6 1.3-1.2 1.8l-.5.4c-.6.5-1.2 1-1.2 1.9 0 .5.3 1 .9 1 .7 0 .8-.3 1-.8.1-.2.1-.4.3-.6.2-.3.5-.5.9-.8.9-.6 2-1.5 2-2.9.1-2.4-2.1-3.2-4-3.2z'/%3E%3C/svg%3E\");\r\n }\n.icon--bell {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Eicons / 20px / notifications-new%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23FFF' fill-rule='nonzero' d='M8 14h4v3H8z'/%3E%3Cpath d='M14.25 14.385h-7.5V8.846c0-2.294 1.42-4.154 3.75-4.154s3.75 1.86 3.75 4.154v5.539zm1.875-.923V8.846c0-2.838-1.533-5.206-4.219-5.834v-.627C11.906 1.618 11.278 1 10.5 1c-.778 0-1.406.618-1.406 1.385v.627c-2.686.628-4.219 2.996-4.219 5.834v4.616L3 15.308v.923h15v-.923l-1.875-1.846z' stroke='%23FFF' stroke-width='.5' fill='%23667182'/%3E%3Crect fill='%23E51646' fill-rule='nonzero' x='8' y='17.5' width='5' height='1.5' rx='.75'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--down {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M12 22l4-4h-3V3h-2v15H8l4 4z'/%3E%3Cpath fill='none' d='M24 0v24H0V0h24z'/%3E%3C/svg%3E\");\r\n }\n.icon--up {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M12 2L8 6h3v15h2V6h3l-4-4z'/%3E%3Cpath fill='none' d='M0 24V0h24v24H0z'/%3E%3C/svg%3E\");\r\n }\n.icon--left {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--right {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12l-4.58 4.59z'/%3E%3Cpath fill='none' d='M24 24H0V0h24v24z'/%3E%3C/svg%3E\");\r\n }\n.icon--print {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Eicons / 20px / print-doc%3C/title%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Crect stroke='%23667182' stroke-width='1.5' x='1.75' y='9.75' width='16.5' height='7.5' rx='1.4'/%3E%3Cpath stroke='%23667182' stroke-width='1.5' d='M4.75 2.75h10.5v6.5H4.75z'/%3E%3Crect stroke='%23E51646' fill='%23D8D8D8' x='5.5' y='13.5' width='9' height='1' rx='.5'/%3E%3Crect fill='%23DFE3E8' x='7.5' y='5' width='5' height='1.5' rx='.75'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--slider--left {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--slider--left:hover {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%23e51646' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--slider--right {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12l-4.58 4.59z'/%3E%3Cpath fill='none' d='M24 24H0V0h24v24z'/%3E%3C/svg%3E\");\r\n }\n.icon--slider--right:hover {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e51646'%3E%3Cpath d='M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12l-4.58 4.59z'/%3E%3Cpath fill='none' d='M24 24H0V0h24v24z'/%3E%3C/svg%3E\");\r\n }\n.icon--eye {\r\n background-image: url(" + __webpack_require__(/*! ../images/eye.png */ "./src/styles/images/eye.png") + ");\r\n }\n.icon--cancel {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23e51646'%3E%3Ctitle%3Eicons / 20px / close small%3C/title%3E%3Cdefs%3E%3Cpath id='a' d='M12.4 6L10 8.4 7.6 6 6 7.6 8.4 10 6 12.4 7.6 14l2.4-2.4 2.4 2.4 1.6-1.6-2.4-2.4L14 7.6z'/%3E%3C/defs%3E%3Cg transform='translate(-6 -6)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23444' xlink:href='%23a'/%3E%3Cg mask='url(%23b)' fill='%23e51646'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--cancel--gray {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667182'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16.6 4.4L12 9 7.4 4.4l-3 3L9 12l-4.6 4.6 3 3L12 15l4.6 4.6 3-3L15 12l4.6-4.6z'/%3E%3C/svg%3E\");\r\n }\n.icon--card {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / card@3x%3C/title%3E%3Cg transform='translate(-3 -6)'%3E%3Cpath d='M20.39 7.043v1.429H3.6V7.043a1.04 1.04 0 0 1 1.039-1.039H19.35c.574 0 1.04.466 1.04 1.039zm0 3.336v5.947a1.04 1.04 0 0 1-1.039 1.04H4.639a1.04 1.04 0 0 1-1.039-1.04v-5.947h16.79z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='0' y='0' width='24' height='24'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='0' y='0' width='24' height='24' id='b'%3E%3Cpath fill='%23FFF' d='M20.39 7.043v1.429H3.6V7.043a1.04 1.04 0 0 1 1.039-1.039H19.35c.574 0 1.04.466 1.04 1.039zm0 3.336v5.947a1.04 1.04 0 0 1-1.039 1.04H4.639a1.04 1.04 0 0 1-1.039-1.04v-5.947h16.79z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath fill='%23FFF' d='M0 0h24v24H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--check {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.06 8.56l-8.56 8.561-4.06-4.06 2.12-2.122 1.94 1.94 6.44-6.44 2.12 2.122z' fill='%23E51646'/%3E%3C/svg%3E\"); \r\n }\n.icon--check--success {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%232dba67' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.06 8.56l-8.56 8.561-4.06-4.06 2.12-2.122 1.94 1.94 6.44-6.44 2.12 2.122z' fill='%232DBA67'/%3E%3C/svg%3E\");\r\n }\n.icon--confirm {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667182'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M21.1 7.4L8.2 20.3l-6.1-6.1L5.3 11l2.9 2.9 9.7-9.7 3.2 3.2z'/%3E%3C/svg%3E\");\r\n }\n.icon--settings {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--user {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--clear {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--clear--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e51646'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--close {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--close--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%23e51646' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\r\n }\n.icon--transactions {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23c8cfd5'%3E%3Cdefs%3E%3Cpath id='a' d='M6.978 7h1V5.5a.5.5 0 0 0-1 0V7zm0 8h1v-2h-1v2zM2 4v.01c0 .547.443.99.99.99a.99.99 0 0 1 .988.99V15a2 2 0 0 0 2 2h3a2 2 0 0 0 2-2V6a1 1 0 1 1 2 0v9.5a1.5 1.5 0 0 0 3 0V6.044c0-.577.468-1.044 1.044-1.044h.044a.958.958 0 0 0 .956-1c-.024-.56-.485-1-1.045-1H3a1 1 0 0 0-1 1z'/%3E%3C/defs%3E%3Cg fill-rule='evenodd'%3E%3Cmask id='b'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse xlink:href='%23a'/%3E%3Cg mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--close-big {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='%237f7f7f'%3E%3Cpath fill='%23667182' d='M9.949 1.515L8.535.101 5 3.637 1.464.101.05 1.515l3.536 3.536L.05 8.586 1.464 10 5 6.465 8.535 10l1.414-1.414-3.535-3.535z'/%3E%3C/svg%3E\");\r\n }\n.icon--calendar {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%237f7f7f'%3E%3Ctitle%3Eicons / 20px / calendar%3C/title%3E%3Cg transform='translate(1 1)' fill-rule='nonzero' fill='none'%3E%3Crect stroke='%23667182' stroke-width='1.1' x='1.113' y='1.675' width='15.775' height='15.775' rx='1.1'/%3E%3Cpath fill='%23667182' d='M1.125 1.25h15.75V9H1.125z'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='3.5' width='3.5' height='5.625' rx='1'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='11' width='3.5' height='5.625' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--settings {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / settings-new%3C/title%3E%3Cdefs%3E%3Cpath d='M16.4 5.1L15 3.7l-2.1 1.1c-.3-.2-.7-.3-1.1-.4L11 2H9l-.8 2.3c-.3.1-.7.2-1 .4L5.1 3.6 3.6 5.1l1.1 2.1c-.2.3-.3.7-.4 1L2 9v2l2.3.8c.1.4.3.7.4 1.1L3.6 15 5 16.4l2.1-1.1c.3.2.7.3 1.1.4L9 18h2l.8-2.3c.4-.1.7-.3 1.1-.4l2.1 1.1 1.4-1.4-1.1-2.1c.2-.3.3-.7.4-1.1L18 11V9l-2.3-.8c-.1-.3-.2-.7-.4-1l1.1-2.1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse stroke='%23667182' stroke-width='1.4' xlink:href='%23a'/%3E%3Ccircle stroke='%23E51646' stroke-width='1.4' fill-rule='nonzero' mask='url(%23b)' cx='10' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--menu {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'/%3E%3C/svg%3E\");\r\n }\n.icon--menu--positive {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23636363'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'/%3E%3C/svg%3E\");\r\n }\n.icon--notifications {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cdefs%3E%3Cpath id='a' d='M12 16c0 1.1-.9 2-2 2s-2-.9-2-2h4zm5-3c.6 0 1 .4 1 1s-.4 1-1 1H3c-.6 0-1-.4-1-1s.4-1 1-1h.5c.7-.7 1.5-1.7 1.5-3V7c0-2.8 2.2-5 5-5s5 2.2 5 5v3c0 1.3.8 2.3 1.5 3h.5z'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23667182' xlink:href='%23a'/%3E%3Cg fill='%23667182' mask='url(%23b)'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--notifications--negative {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23fff'%3E%3Cpath fill='%23FFF' d='M12 16c0 1.1-.9 2-2 2s-2-.9-2-2h4zm5-3c.6 0 1 .4 1 1s-.4 1-1 1H3c-.6 0-1-.4-1-1s.4-1 1-1h.5c.7-.7 1.5-1.7 1.5-3V7c0-2.8 2.2-5 5-5s5 2.2 5 5v3c0 1.3.8 2.3 1.5 3h.5z'/%3E%3Cdefs%3E%3Cfilter id='a' filterUnits='userSpaceOnUse' x='0' y='0' width='20' height='20'%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3C/defs%3E%3Cmask maskUnits='userSpaceOnUse' x='0' y='0' width='20' height='20' id='b'%3E%3Cpath fill='%23FFF' d='M12 16c0 1.1-.9 2-2 2s-2-.9-2-2h4zm5-3c.6 0 1 .4 1 1s-.4 1-1 1H3c-.6 0-1-.4-1-1s.4-1 1-1h.5c.7-.7 1.5-1.7 1.5-3V7c0-2.8 2.2-5 5-5s5 2.2 5 5v3c0 1.3.8 2.3 1.5 3h.5z' filter='url(%23a)'/%3E%3C/mask%3E%3Cg mask='url(%23b)'%3E%3Cpath fill='%23FFF' d='M0 0h20v20H0V0z'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--void {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / void%3C/title%3E%3Cg transform='translate(2 3)' fill='none' fill-rule='evenodd'%3E%3Crect stroke='%23667182' stroke-width='1.4' fill-rule='nonzero' x='.7' y='.7' width='14.081' height='10.743' rx='1.4'/%3E%3Cellipse fill='%23FFF' fill-rule='nonzero' cx='13.019' cy='8.929' rx='5.981' ry='6.071'/%3E%3Cpath d='M13.408 8.969l1.906-1.935a.311.311 0 0 0 0-.435.3.3 0 0 0-.429 0L12.98 8.533 11.073 6.6a.3.3 0 0 0-.429 0 .311.311 0 0 0 0 .435l1.907 1.935-1.907 1.934a.311.311 0 0 0 0 .435.3.3 0 0 0 .43 0l1.905-1.934 1.906 1.934a.3.3 0 0 0 .429 0 .311.311 0 0 0 0-.435L13.408 8.97z' stroke='%23E51646' stroke-width='.7' fill='%23E51646'/%3E%3Crect fill='%23DFE3E8' fill-rule='nonzero' x='3.519' y='3.571' width='7.741' height='1.429' rx='.7'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--addnote {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='21' viewBox='0 0 20 21' xmlns='http://www.w3.org/2000/svg' fill='%23e51646;'%3E%3Ctitle%3EC1854A9E-8EAF-4EBD-B50C-FE8B2377125C%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M5 11.625h7.123M5.5 7.875h2.571' stroke='%23E51646' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19.107 13.183a5.027 5.027 0 0 0-1.5-1.508V8.192l-5.983-5.817H2.393v16.25h8.323a5.027 5.027 0 0 0 1.542 1.5H1.643a.75.75 0 0 1-.75-.75V1.625a.75.75 0 0 1 .75-.75h10.286a.75.75 0 0 1 .522.212l6.429 6.25a.75.75 0 0 1 .227.538v5.308z' fill='%23667182' fill-rule='nonzero'/%3E%3Cpath d='M18.357 7.125a.75.75 0 0 1 0 1.5H11.93a.75.75 0 0 1-.75-.75v-6.25a.75.75 0 0 1 1.5 0v5.5h5.678z' fill='%23667182' fill-rule='nonzero'/%3E%3Cpath d='M15.247 16.25h2.193a.249.249 0 0 0 .247-.25c0-.138-.11-.25-.247-.25h-2.193v-2.227c0-.138-.11-.25-.247-.25a.249.249 0 0 0-.247.25v2.227H12.56a.252.252 0 1 0-.175.427.245.245 0 0 0 .175.073h2.193v2.227c0 .07.028.132.073.177a.244.244 0 0 0 .174.073.249.249 0 0 0 .247-.25V16.25z' stroke='%23E51646' stroke-width='.7' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--files {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 21' fill='%23667182'%3E%3Ctitle%3EC1854A9E-8EAF-4EBD-B50C-FE8B2377125C%3C/title%3E%3Cpath fill='none' stroke='%23667182' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M11.7 1.6l6.6 6.3M18.3 19.6H1.7v-18h10v6.3h6.6z'/%3E%3C/svg%3E\");\r\n }\n.icon--capture {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / capture%3C/title%3E%3Cg transform='translate(2 4)' fill='none' fill-rule='evenodd'%3E%3Crect stroke='%23667182' stroke-width='1.4' fill-rule='nonzero' x='.7' y='.7' width='14.081' height='10.743' rx='1.4'/%3E%3Cellipse fill='%23FFF' fill-rule='nonzero' cx='13.019' cy='8.929' rx='5.981' ry='6.071'/%3E%3Crect fill='%23DFE3E8' fill-rule='nonzero' x='3.519' y='3.571' width='7.741' height='1.429' rx='.7'/%3E%3Cpath d='M11.99 9.533l1.628 1.632a.423.423 0 0 1 0 .601l-.253.253a.42.42 0 0 1-.3.124.42.42 0 0 1-.298-.124L9.975 9.23a.42.42 0 0 1-.123-.3.42.42 0 0 1 .123-.3l2.792-2.791a.42.42 0 0 1 .299-.124.42.42 0 0 1 .299.124l.253.253a.42.42 0 0 1 0 .593l-1.647 1.64h3.785c.233 0 .43.201.43.435v.358a.43.43 0 0 1-.436.419l-3.76-.003z' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--refund {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / refund%3C/title%3E%3Cg transform='translate(2 4)' fill='none' fill-rule='evenodd'%3E%3Crect stroke='%23667182' stroke-width='1.4' fill-rule='nonzero' x='.7' y='.7' width='14.081' height='10.743' rx='1.4'/%3E%3Cellipse fill='%23FFF' fill-rule='nonzero' cx='13.019' cy='8.929' rx='5.981' ry='6.071'/%3E%3Crect fill='%23DFE3E8' fill-rule='nonzero' x='3.519' y='3.571' width='7.741' height='1.429' rx='.7'/%3E%3Cpath d='M14.047 8.324L12.42 6.693a.424.424 0 0 1-.124-.301c0-.114.044-.22.124-.3l.253-.254a.42.42 0 0 1 .3-.124.42.42 0 0 1 .299.124l2.79 2.79a.42.42 0 0 1 .124.3.42.42 0 0 1-.123.3L13.27 12.02a.42.42 0 0 1-.3.124.42.42 0 0 1-.299-.124l-.253-.253a.42.42 0 0 1 0-.592l1.647-1.641H10.28a.439.439 0 0 1-.43-.434V8.74a.43.43 0 0 1 .436-.418l3.76.002z' fill='%23E51646'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--logout {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / search%3C/title%3E%3Cpath d='M10.1 9.6c-.6 0-1-.4-1-1V3.2c0-.6.4-1 1-1s1 .4 1 1v5.3c0 .6-.4 1.1-1 1.1z'/%3E%3Cpath d='M10.1 18.1C6.2 18.1 3 14.9 3 11c0-1.9.7-3.7 2.1-5 .4-.4 1-.4 1.4 0s.4 1 0 1.4C5.6 8.4 5 9.6 5 11c0 2.8 2.3 5.1 5.1 5.1s5.1-2.3 5.1-5.1c0-1.3-.5-2.5-1.3-3.4-.4-.4-.3-1 .1-1.4.4-.4 1-.3 1.4.1 1.2 1.3 1.9 3 1.9 4.8-.1 3.8-3.3 7-7.2 7z'/%3E%3C/svg%3E\");\r\n }\n.icon--wastebasket {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / double / Trash%3C/title%3E%3Cg stroke-width='1.5' fill='none' fill-rule='evenodd'%3E%3Cpath d='M15.818 7.818l-.63 8.83A1.455 1.455 0 0 1 13.737 18H6.263c-.763 0-1.396-.59-1.45-1.351l-.631-8.83' stroke='%23667182' stroke-linecap='round'/%3E%3Cpath d='M7.09 4.91V2.726c0-.401.327-.727.728-.727h4.364c.401 0 .727.326.727.727V4.91' stroke='%23E51646'/%3E%3Cpath d='M2 4.91h16' stroke='%23667182' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--delete {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.2.6a2 2 0 0 1 1.995 1.85l.005.15v1.2h2.4a.8.8 0 0 1 .1 1.594l-.1.006h-.8v6.4c0 .831-.642 1.52-1.455 1.593l-.145.007H3.8c-.831 0-1.52-.642-1.593-1.455L2.2 11.8V5.4h-.8a.8.8 0 0 1-.794-.7L.6 4.6a.8.8 0 0 1 .7-.794l.1-.006h2.4V2.6A2 2 0 0 1 5.65.605L5.8.6h2.4zM5.4 6.2a.8.8 0 0 0-.8.8v3.2a.8.8 0 0 0 1.6 0V7a.8.8 0 0 0-.8-.8zm3.2 0a.8.8 0 0 0-.8.8v3.2a.8.8 0 0 0 1.6 0V7a.8.8 0 0 0-.8-.8zm-1-4H6.4a1 1 0 0 0-.993.883L5.4 3.2v.6h3.2v-.6a1 1 0 0 0-1-1z'/%3E%3C/svg%3E\");\r\n }\n.icon--delete--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.2.6a2 2 0 0 1 1.995 1.85l.005.15v1.2h2.4a.8.8 0 0 1 .1 1.594l-.1.006h-.8v6.4c0 .831-.642 1.52-1.455 1.593l-.145.007H3.8c-.831 0-1.52-.642-1.593-1.455L2.2 11.8V5.4h-.8a.8.8 0 0 1-.794-.7L.6 4.6a.8.8 0 0 1 .7-.794l.1-.006h2.4V2.6A2 2 0 0 1 5.65.605L5.8.6h2.4zM5.4 6.2a.8.8 0 0 0-.8.8v3.2a.8.8 0 0 0 1.6 0V7a.8.8 0 0 0-.8-.8zm3.2 0a.8.8 0 0 0-.8.8v3.2a.8.8 0 0 0 1.6 0V7a.8.8 0 0 0-.8-.8zm-1-4H6.4a1 1 0 0 0-.993.883L5.4 3.2v.6h3.2v-.6a1 1 0 0 0-1-1z'/%3E%3C/svg%3E\");\r\n }\n.icon--new {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / new%3C/title%3E%3Cg transform='translate(2 3)' fill='none' fill-rule='evenodd'%3E%3Crect stroke='%23667182' stroke-width='1.4' fill-rule='nonzero' x='.7' y='.7' width='14.081' height='10.743' rx='1.4'/%3E%3Cellipse fill='%23FFF' fill-rule='nonzero' cx='13.019' cy='8.929' rx='5.981' ry='6.071'/%3E%3Cpath d='M13.282 9.276h2.696a.305.305 0 0 0 .303-.307.305.305 0 0 0-.303-.308h-2.696V5.925a.305.305 0 0 0-.303-.308.305.305 0 0 0-.303.308V8.66H9.98a.31.31 0 1 0-.215.525c.056.056.132.09.215.09h2.696v2.737a.31.31 0 0 0 .089.217.3.3 0 0 0 .214.09.306.306 0 0 0 .303-.308V9.276z' stroke='%23E51646' stroke-width='.7' fill='%23E51646'/%3E%3Crect fill='%23DFE3E8' fill-rule='nonzero' x='3.519' y='3.571' width='7.741' height='1.429' rx='.7'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--section--dark {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 4H4v3h12V4zM2 2v7h16V2H2zM16 13H4v3h12v-3zM2 11v7h16v-7H2z'/%3E%3C/svg%3E\");\r\n }\n.icon--move-up--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.5 0L4 5h2.333v8h2.334V5H11L7.5 0z'/%3E%3C/svg%3E\");\r\n }\n.icon--move-down--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.5 13L10 8H7.667V0H5.333v8H3l3.5 5z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h14v14H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\r\n }\n.icon--copy--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 13V1c0-.5.5-1 1-1h10c.5 0 1 .5 1 1v2H6c-.5 0-1 .5-1 1v10H1c-.5 0-1-.5-1-1z'/%3E%3Cpath d='M7 6a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V6z'/%3E%3C/svg%3E\");\r\n }\n/* Notifications */\n.icon--notifications--general {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='.1' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20z' fill='%232DBA67'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.997 20.789c-.12.19-.24.387-.36.585-.934 1.547-1.995 3.3-4.546 3.3h-.043c-.846-.006-1.592-.202-2.217-.582a3.739 3.739 0 0 1-1.445-1.628c-.328-.691-.491-1.511-.484-2.438.007-.925.182-1.755.52-2.467.34-.72.835-1.284 1.466-1.679.623-.387 1.355-.584 2.175-.584h.04c1.351.01 2.402.501 3.307 1.544l.09.104-1.222 1.912-.155-.25c-.434-.702-1.066-1.28-1.865-1.31l-.059-.003c-1.155 0-1.723.89-1.737 2.72-.007.944.143 1.626.447 2.028.296.393.71.585 1.268.59.997 0 1.62-1.007 2.12-1.817l.148-.239 3.16-4.995 2.673.02-3.281 5.189zm.54 3.684l-.397-.649a1.882 1.882 0 0 1 .016-2l.723-1.144 2.332 3.814-2.674-.02zM20.068 11a9 9 0 1 0-.136 18 9 9 0 0 0 .136-18z' fill='%2378D29D'/%3E%3C/svg%3E\");\r\n }\n.icon--notifications--info {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='.1' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20z' fill='%232E86EB'/%3E%3Cpath d='M20 11c-4.95 0-9 4.05-9 9s4.05 9 9 9 9-4.05 9-9-4.05-9-9-9zm0 14.625c-.675 0-1.125-.45-1.125-1.125s.45-1.125 1.125-1.125 1.125.45 1.125 1.125-.45 1.125-1.125 1.125zm1.688-5.175c-.563.338-.563.45-.563.675v1.125h-2.25v-1.125c0-1.462.9-2.137 1.575-2.587.563-.338.675-.45.675-.788 0-.675-.45-1.125-1.125-1.125-.45 0-.788.225-1.012.563l-.563 1.012-1.913-1.125.563-1.012c.563-1.013 1.688-1.688 2.925-1.688 1.913 0 3.375 1.463 3.375 3.375 0 1.575-1.012 2.25-1.688 2.7z' fill='%2377AFF1'/%3E%3C/svg%3E\");\r\n }\n.icon--notifications--warning {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='.1' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20z' fill='%23E51646'/%3E%3Cpath d='M20 11c-4.95 0-9 4.05-9 9s4.05 9 9 9 9-4.05 9-9-4.05-9-9-9zm0 13.5c-.675 0-1.125-.45-1.125-1.125s.45-1.125 1.125-1.125 1.125.45 1.125 1.125S20.675 24.5 20 24.5zm1.125-3.375h-2.25V15.5h2.25v5.625z' fill='%23EB6787'/%3E%3C/svg%3E\");\r\n }\n.icon--alert {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='%23f03e1b'%3E%3Ctitle%3EExported from Streamline App (https://app.streamlineicons.com)%3C/title%3E%3Cpath d='M38.5 35.1L22.7 2.9c-.5-1.1-1.6-1.7-2.7-1.7-.4 0-.9.1-1.3.3-.6.3-1.1.8-1.4 1.4L1.5 35.1c-.6 1.3-.1 2.8 1.2 3.4.3.2.7.3 1.1.3h32.4c1.4 0 2.5-1.1 2.5-2.5.1-.5 0-.9-.2-1.2zM17.8 12.4c0-1.2 1-2.2 2.2-2.2s2.2 1 2.2 2.2v12.5c0 1.2-1 2.2-2.2 2.2s-2.2-1-2.2-2.2V12.4zM20 35.6c-1.6 0-2.8-1.3-2.8-2.8S18.5 30 20 30s2.8 1.3 2.8 2.8-1.2 2.8-2.8 2.8z'/%3E%3C/svg%3E\");\r\n }\n/* Payment site manager */\n.icon--layout-1--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 1a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1zM0 11a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-4z'/%3E%3C/svg%3E\");\r\n }\n.icon--layout-1--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 1a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1zM0 11a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-4z'/%3E%3C/svg%3E\");\r\n }\n.icon--layout-2--primary {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 1c0-.552.168-1 .375-1h5.25C5.832 0 6 .448 6 1v4c0 .552-.168 1-.375 1H.375C.168 6 0 5.552 0 5V1zM0 11c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1H.375C.168 16 0 15.552 0 15v-4zM10 1c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1h-5.25C10.168 6 10 5.552 10 5V1zM10 11c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1h-5.25c-.207 0-.375-.448-.375-1v-4z'/%3E%3C/svg%3E\");\r\n }\n.icon--layout-2--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 1c0-.552.168-1 .375-1h5.25C5.832 0 6 .448 6 1v4c0 .552-.168 1-.375 1H.375C.168 6 0 5.552 0 5V1zM0 11c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1H.375C.168 16 0 15.552 0 15v-4zM10 1c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1h-5.25C10.168 6 10 5.552 10 5V1zM10 11c0-.552.168-1 .375-1h5.25c.207 0 .375.448.375 1v4c0 .552-.168 1-.375 1h-5.25c-.207 0-.375-.448-.375-1v-4z'/%3E%3C/svg%3E\");\r\n }\n.icon--warning {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23f6554a' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.147 3.396a1 1 0 0 1 1.706 0l9.217 15.082A1 1 0 0 1 21.217 20H2.783a1 1 0 0 1-.853-1.521l9.217-15.083zM11 8a1 1 0 1 1 2 0v6a1 1 0 1 1-2 0V8zm1 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E\");\r\n }\n.icon--ach-disabled {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='83' height='54' viewBox='0 0 83 54' xmlns='http://www.w3.org/2000/svg' fill='%23f6554a'%3E%3Ctitle%3Eico_check@1,5x%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath stroke='%239AA2B0' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' d='M55.864 9.023H81V52H2V9.023h10.773'/%3E%3Cpath d='M18.16 39.465h46.68M43.295 25.14h21.546' stroke='%23C8CFD5' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M34 0c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10S39.5 0 34 0zm-1.25 14.25L28.5 10l1.75-1.75 2.5 2.5 5-5L39.5 7.5l-6.75 6.75z' fill='%232DBA67' fill-rule='nonzero'/%3E%3C/g%3E%3C/svg%3E\");\r\n }\n.icon--credit-card--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19.5 4.5A2.5 2.5 0 0 1 22 7v10a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17V7a2.5 2.5 0 0 1 2.5-2.5h15zM4.5 12v5h15v-5h-15zm0-2.5h15V7h-15v2.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--check--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19.5 4.5A2.5 2.5 0 0 1 22 7v10a2.5 2.5 0 0 1-2.5 2.5h-15A2.5 2.5 0 0 1 2 17V7a2.5 2.5 0 0 1 2.5-2.5h15zm0 2.5h-15v10h15V7zm-3.125 2.5c.345 0 .625.28.625.625v1.25c0 .345-.28.625-.625.625h-8.75A.625.625 0 0 1 7 11.375v-1.25c0-.345.28-.625.625-.625h8.75z'/%3E%3C/svg%3E\");\r\n }\n.icon--name--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.543 13.909c-1.493-.492-2.379-1.032-2.756-1.469 1.415-.891 2.356-2.432 2.356-4.19V7c0-2.758-2.307-5-5.143-5S6.857 4.242 6.857 7v1.25c0 1.758.941 3.299 2.356 4.19-.376.438-1.262.978-2.754 1.469C4.389 14.587 3 16.462 3 18.575v2.175c0 .69.576 1.25 1.286 1.25h15.428c.71 0 1.286-.56 1.286-1.25v-2.175c0-2.113-1.39-3.987-3.457-4.666zM9.429 7c0-1.379 1.153-2.5 2.571-2.5 1.418 0 2.571 1.121 2.571 2.5v1.25c0 1.379-1.153 2.5-2.571 2.5-1.418 0-2.571-1.121-2.571-2.5V7zm9 12.5H5.57v-.925c0-1.039.687-1.961 1.71-2.297 2.373-.78 3.858-1.795 4.439-3.028h.56c.581 1.232 2.066 2.248 4.44 3.027 1.022.335 1.709 1.26 1.709 2.298v.925z'/%3E%3C/svg%3E\");\r\n }\n.icon--address--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.55 21.588c-.136-.13-5.7-4.852-5.7-4.983C2.95 15.032 2 12.671 2 10.18 2 5.065 6.207 1 11.5 1S21 5.065 21 10.18c0 2.491-.95 4.852-2.85 6.556-.136.131-5.564 4.852-5.7 4.984a1.491 1.491 0 0 1-1.9-.132zm-3.664-6.556l4.614 3.934 4.614-3.934c1.357-1.312 2.172-2.885 2.172-4.721 0-3.672-2.986-6.557-6.786-6.557-3.8 0-6.786 2.754-6.786 6.426 0 1.835.815 3.54 2.172 4.852 0-.132 0-.132 0 0z'/%3E%3Cpath d='M11.5 12.147c1.21 0 2.192-.936 2.192-2.09 0-1.155-.981-2.09-2.192-2.09-1.21 0-2.192.935-2.192 2.09 0 1.154.981 2.09 2.192 2.09z'/%3E%3C/svg%3E\");\r\n }\n.icon--city--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 4.525l-12.5-2.5A1.25 1.25 0 0 0 7 3.25V9.5H3.25c-.69 0-1.25.56-1.25 1.25v10c0 .69.56 1.25 1.25 1.25h17.5c.69 0 1.25-.56 1.25-1.25v-15a1.25 1.25 0 0 0-1-1.225zM9.5 19.5h-5V17h5v2.5zm0-5h-5V12h5v2.5zm10 5H12v-8.75c0-.69-.56-1.25-1.25-1.25H9.5V4.775l10 2V19.5z'/%3E%3Cpath d='M17 9.5h-2.5V17H17V9.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--state--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 17.5c-4.125 0-7.5-3.375-7.5-7.5S7.875 4.5 12 4.5s7.5 3.375 7.5 7.5-3.375 7.5-7.5 7.5z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14.75 8L11 9.75c-.5.375-.875.75-1.125 1.25l-1.75 3.75a.829.829 0 0 0 1.125 1.125l3.75-1.75c.5-.25 1-.625 1.125-1.125l1.75-3.75C16.25 8.5 15.5 7.75 14.75 8z'/%3E%3C/svg%3E\");\r\n }\n.icon--phone-number--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.646 3.289c.83-.83 2.175-.83 3.004 0l2.543 2.543c.83.83.83 2.174 0 3.004l-.925.925 4.97 4.97.926-.925c.83-.83 2.174-.83 3.004 0l2.543 2.544c.83.829.83 2.174 0 3.003l-1.358 1.358a2.124 2.124 0 0 1-1.655.619c-8.123-.3-14.662-6.8-15.023-14.907a12.031 12.031 0 0 1-.008-.22 2.123 2.123 0 0 1 .622-1.557L4.646 3.29zm4.046 4.045L6.148 4.79 4.791 6.148c.001.073.003.133.006.18.312 7.004 5.962 12.62 12.98 12.88.021 0 .046 0 .074.002l1.358-1.359-2.543-2.543-.925.925c-.83.83-2.175.83-3.004 0l-4.97-4.97a2.124 2.124 0 0 1 0-3.004l.925-.925z'/%3E%3C/svg%3E\");\r\n }\n.icon--country--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 17.5c-1.875 0-3.5-.625-4.875-1.75.75-1 .875-2.25.125-3.25-.625-.875-1.625-1.75-1.625-2.5 0-1 2.375-1.375 3.125-2.375.875-1 0-2.875-.875-3.875 1-.625 2.125-1.125 3.5-1.25.25.625 1.125 1.375 1.5 1.875C13.5 7.375 13.625 8 14.5 8c.25 0 2.5 0 3.75-.375.75 1.25 1.25 2.75 1.25 4.375 0 4.125-3.375 7.5-7.5 7.5z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14.75 10.375c-1.5 0-2.875 1-2.75 2.375.375 3.125-.625 4.25.75 4.875 1.625.625 4.875-2.375 4.75-4.875 0-1.375-1.125-2.375-2.75-2.375z'/%3E%3C/svg%3E\");\r\n }\n.icon--zip--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.154 2c.426 0 .825.2 1.069.534l2.542 3.485c.298.409.314.949.04 1.373l-2.59 4.015a1.317 1.317 0 0 1-1.109.593H5.608v8.75c0 .69-.584 1.25-1.304 1.25C3.584 22 3 21.44 3 20.75V2h14.154zm-.162 2.5H5.608v5h11.3l1.74-2.715L16.992 4.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--invoice--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.473 7.488l-5.4-5A1.875 1.875 0 0 0 13.8 2h-9C3.806 2 3 2.746 3 3.667v16.666C3 21.253 3.806 22 4.8 22h14.4c.994 0 1.8-.746 1.8-1.667V8.667c0-.442-.19-.866-.527-1.179zM5.57 19.5v-15H12v5.833h6.422V19.5H5.572z'/%3E%3C/svg%3E\");\r\n }\n.icon--12--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 6.917V4h5.417v12.083H9.5V19H2v-2.917h2.083V6.917H2zM12 6.917v1.25h3.333V7.75c0-.833.834-.833 1.25-.833.834 0 1.25.416 1.25.833v1.667L11.167 19H22v-2.917h-5.417l4.584-6.666V7.333c0-.416-.417-3.333-4.584-3.333C13.25 4 12.14 5.944 12 6.917z'/%3E%3C/svg%3E\");\r\n }\n.icon--01--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 14.263V8.737C2 6.763 3.243 4 7.385 4c4.142 0 5.384 2.763 5.384 4.737v5.526C12.77 16.237 10.7 19 7.385 19 4.07 19 2 16.237 2 14.263zm5.385-7.105c-1.275 0-2.308 1.06-2.308 2.368v3.948c0 1.308 1.033 2.368 2.308 2.368 1.274 0 2.307-1.06 2.307-2.368V9.526c0-1.308-1.033-2.368-2.307-2.368z'/%3E%3Cpath d='M14.692 7.553V4.789h5v11.448H22V19h-7.692v-2.763h2.307V7.553h-1.923z'/%3E%3C/svg%3E\");\r\n }\n.icon--description--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 16H2v2h20v-2zM17 11H2v2h15v-2zM12 6H2v2h10V6z'/%3E%3C/svg%3E\");\r\n }\n.icon--custom-fields--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 4.5C3 3.12 4.151 2 5.571 2H18.43C19.849 2 21 3.12 21 4.5v15c0 1.38-1.151 2.5-2.571 2.5H5.57C4.151 22 3 20.88 3 19.5v-15zm15.429 0H5.57v15H18.43v-15z'/%3E%3C/svg%3E\");\r\n }\n.icon--email-address--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.75 3H3.25C2.56 3 2 3.575 2 4.286v15.428C2 20.425 2.56 21 3.25 21h17.5c.69 0 1.25-.575 1.25-1.286V4.286C22 3.575 21.44 3 20.75 3zM19.5 18.429h-15v-8.07l6.88 4.043c.385.226.856.226 1.24 0l6.88-4.044v8.07zm0-11.032L12 11.806 4.5 7.397V5.571h15v1.826z'/%3E%3C/svg%3E\");\r\n }\n.icon--short-text-box--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 13.333H2V16h20v-2.667zM22 8H2v2.667h20V8z'/%3E%3C/svg%3E\");\r\n }\n.icon--long-text-box--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 10.8H2v2.4h20v-2.4zM22 15.6H2V18h20v-2.4zM22 6H2v2.4h20V6z'/%3E%3C/svg%3E\");\r\n }\n.icon--signature--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 20h20v2H2v-2zM17 4.535a1.16 1.16 0 0 0-1.649 0l-9.163 9.18a1.208 1.208 0 0 0 0 1.703 1.161 1.161 0 0 0 1.649 0L17 6.237a1.208 1.208 0 0 0 0-1.702zm-3.233-1.537a3.404 3.404 0 0 1 4.817 0 3.377 3.377 0 0 1 0 4.775L9.42 16.954a3.406 3.406 0 0 1-4.816 0 3.377 3.377 0 0 1 0-4.775l9.162-9.18z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.968 16.173l-3.036 3.042-1.584-1.537 3.036-3.041 1.584 1.536zM19.285 7.21l2.355 2.36-5.587 5.597-1.584-1.537 4.053-4.06-.82-.823 1.583-1.536z'/%3E%3C/svg%3E\");\r\n }\n.icon--radio-button--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 17.5c-4.125 0-7.5-3.375-7.5-7.5S7.875 4.5 12 4.5s7.5 3.375 7.5 7.5-3.375 7.5-7.5 7.5z'/%3E%3C/svg%3E\");\r\n }\n.icon--checkbox--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 2h20v20H2V2zm2.5 2.5v15h15v-15h-15z'/%3E%3C/svg%3E\");\r\n }\n.icon--dropdown-square--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 9l5 6 5-6H7z'/%3E%3C/svg%3E\");\r\n }\n.icon--table--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2H2v5h5V2zM14.5 2h-5v5h5V2zM22 2h-5v5h5V2zM7 9.5H2v5h5v-5zM14.5 9.5h-5v5h5v-5zM22 9.5h-5v5h5v-5zM7 17H2v5h5v-5zM14.5 17h-5v5h5v-5zM22 17h-5v5h5v-5z'/%3E%3C/svg%3E\");\r\n }\n.icon--description-area--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.184 16.488l-.55-1.456H4.958l-.55 1.488c-.214.58-.397.973-.548 1.18-.152.2-.4.3-.746.3-.293 0-.552-.108-.777-.325C2.112 17.46 2 17.215 2 16.94c0-.158.026-.322.078-.49.053-.17.14-.404.26-.705L5.28 8.208l.298-.775c.12-.306.246-.56.376-.76.136-.2.312-.362.526-.483.22-.127.49-.19.808-.19.325 0 .594.063.809.19.22.121.394.28.525.475.136.195.249.406.338.633.094.222.211.52.353.895l3.005 7.488c.235.57.353.984.353 1.243 0 .269-.113.517-.337.744-.22.221-.487.332-.8.332a1.001 1.001 0 0 1-.801-.364 2.75 2.75 0 0 1-.29-.523c-.1-.237-.186-.445-.26-.625zM5.57 13.267h3.437l-1.734-4.79-1.703 4.79zM19.654 16.781c-.518.406-1.02.712-1.506.918-.482.2-1.023.301-1.625.301-.549 0-1.033-.108-1.451-.325a2.425 2.425 0 0 1-.957-.894 2.325 2.325 0 0 1-.338-1.219c0-.591.186-1.095.557-1.512.372-.417.882-.696 1.53-.839.136-.032.474-.103 1.012-.214.54-.11 1-.21 1.381-.3a29.4 29.4 0 0 0 1.256-.34c-.026-.57-.142-.988-.346-1.252-.198-.269-.614-.403-1.247-.403-.544 0-.955.076-1.232.23a2.044 2.044 0 0 0-.706.688c-.194.306-.332.51-.416.61-.078.095-.251.142-.518.142a.932.932 0 0 1-.627-.23.78.78 0 0 1-.26-.601c0-.38.134-.75.4-1.108.268-.36.683-.655 1.248-.887.565-.232 1.269-.348 2.111-.348.941 0 1.682.113 2.22.34.54.222.918.575 1.138 1.06.225.486.338 1.13.338 1.932 0 .507-.003.937-.008 1.29 0 .354-.003.747-.008 1.18 0 .406.065.831.196 1.274.136.438.204.72.204.847 0 .222-.105.425-.314.61-.204.18-.437.269-.698.269-.22 0-.437-.103-.651-.309-.215-.21-.442-.514-.683-.91zm-.141-3.127c-.314.116-.772.24-1.373.372-.597.127-1.01.222-1.24.285-.23.058-.45.177-.66.357-.208.174-.313.42-.313.736 0 .327.123.607.369.839.246.227.567.34.965.34.424 0 .813-.092 1.169-.277.36-.19.625-.433.792-.728.194-.327.29-.866.29-1.615v-.309z'/%3E%3C/svg%3E\");\r\n }\n.icon--embed-code--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.875 16.776l-1.75-1.792L19 12.04l-2.875-2.944 1.75-1.792 3.75 3.84c.5.512.5 1.28 0 1.792l-3.75 3.84zM6.125 16.776l-3.75-3.84c-.5-.512-.5-1.28 0-1.792l3.75-3.84 1.75 1.792L5 12.04l2.875 2.944-1.75 1.792zM9.5 21c-.125 0-.25 0-.375-.128-.625-.256-1-.896-.75-1.664l5-15.36c.25-.64.875-1.024 1.625-.768.625.256 1 .896.75 1.664l-5 15.36C10.5 20.616 10 21 9.5 21z'/%3E%3C/svg%3E\");\r\n }\n.icon--event-ticket-product--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.5 10.714h-15v9C4.5 20.486 5 21 5.75 21h12.5c.75 0 1.25-.514 1.25-1.286v-9z'/%3E%3Cpath d='M22 3H2v5.143h20V3z'/%3E%3C/svg%3E\");\r\n }\n.icon--image--grey {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23667182' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.188 4.188v15.625h15.625V4.188H4.188zM3.874 2C2.839 2 2 2.84 2 3.875v16.25C2 21.16 2.84 22 3.875 22h16.25C21.16 22 22 21.16 22 20.125V3.875C22 2.839 21.16 2 20.125 2H3.875z'/%3E%3Cpath d='M8.563 12.313L5.75 17h12.5L14.5 9.812 10.75 14.5l-2.188-2.188zM10.75 8.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0z'/%3E%3C/svg%3E\");\r\n }\n.icon--shop-basket {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 22L2 9.5h2.5L8.25 2h2.5L7 9.5h10L13.25 2h2.5l3.75 7.5H22L17 22H7z' fill='%23E51646'/%3E%3C/svg%3E\");\r\n }\n.is-active .icon--check {\r\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%23e51646' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.06 8.56l-8.56 8.561-4.06-4.06 2.12-2.122 1.94 1.94 6.44-6.44 2.12 2.122z' fill='%23fff'/%3E%3C/svg%3E\");\r\n}\n@-webkit-keyframes icon-rotation {\r\n from {\r\n -webkit-transform: rotate(0deg);\r\n }\r\n\r\n to {\r\n -webkit-transform: rotate(359deg);\r\n }\r\n }\n/*------------------------------------*\\\r\n # utils.radius\r\n\\*------------------------------------*/\n.radial {\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n}\n.rounded {\r\n -webkit-border-radius: 1000px;\r\n border-radius: 1000px;\r\n}\n.noradius {\r\n\t-webkit-border-radius: 0;\r\n\t border-radius: 0;\r\n}\n/*------------------------------------*\\\r\n # utils.opacity\r\n\\*------------------------------------*/\n.opacity--7 {\r\n \topacity: 0.7;\r\n }\n/*------------------------------------*\\\r\n # utils.display\r\n\\*------------------------------------*/\n.display--f {\r\n\t\tdisplay: -webkit-box;\r\n\t\tdisplay: -webkit-flex;\r\n\t\tdisplay: -ms-flexbox;\r\n\t\tdisplay: flex;\r\n\t}\n.display--b {\r\n\t\tdisplay: block;\r\n\t}\n.display--ib {\r\n\t\tdisplay: inline-block;\r\n\t}\n.display--n {\r\n\t\tdisplay: none;\r\n\t}\n.display--t {\r\n\t\tdisplay: table;\r\n\t}\n@media (max-width: 61.9375em) {\n.hide--to--lrg {\r\n\t\t\t\tdisplay: none !important\r\n\t\t}\r\n\t\t\t}\n.hide--to--xlrg {\r\n\t\t\tdisplay: none;\r\n\t\t}\n@media (min-width: 75em) {\n.hide--to--xlrg {\r\n\t\t\t\tdisplay: block\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 62em) {\n.hide--from--lrg {\r\n\t\t\t\tdisplay: none !important\r\n\t\t}\r\n\t\t\t}\n/*------------------------------------*\\\r\n # util.spacers\r\n\\*------------------------------------*/\n/*custom multiplyer*/\n/* PADDING TOP */\n.padd--top--nano {\r\n padding-top: 3px;\r\n }\n.padd--top--tny {\r\n padding-top: 6px;\r\n }\n.padd--top--xsml {\r\n padding-top: 9px;\r\n }\n.padd--top--sml {\r\n padding-top: 12px;\r\n }\n.padd--top--med {\r\n padding-top: 24px;\r\n }\n.padd--top--lrg {\r\n padding-top: 36px;\r\n }\n.padd--top--xlrg {\r\n padding-top: 48px;\r\n }\n.padd--top--xxlrg {\r\n padding-top: 60px;\r\n }\n.padd--top--xxxlrg {\r\n padding-top: 72px;\r\n }\n.padd--top--huge{\r\n padding-top: 90px;\r\n }\n.padd--top--none {\r\n padding-top: 0;\r\n }\n/* PADDING RIGHT */\n.padd--right--tny {\r\n padding-right: 6px;\r\n }\n.padd--right--xsml {\r\n padding-right: 9px;\r\n }\n.padd--right--sml {\r\n padding-right: 12px;\r\n }\n.padd--right--med {\r\n padding-right: 24px;\r\n }\n.padd--right--lrg {\r\n padding-right: 36px;\r\n }\n.padd--right--xlrg {\r\n padding-right: 48px;\r\n }\n.padd--right--xxlrg {\r\n padding-right: 60px;\r\n }\n.padd--right--xxxlrg {\r\n padding-right: 72px;\r\n }\n.padd--right--huge{\r\n padding-right: 90px;\r\n }\n/* PADDING BOTTOM */\n.padd--bottom--no {\r\n padding-bottom: 0;\r\n }\n.padd--bottom--nano {\r\n padding-bottom: 3px;\r\n }\n.padd--bottom--tny {\r\n padding-bottom: 6px;\r\n }\n.padd--bottom--xsml {\r\n padding-bottom: 9px;\r\n }\n.padd--bottom--sml {\r\n padding-bottom: 12px;\r\n }\n.padd--bottom--med {\r\n padding-bottom: 24px;\r\n }\n.padd--bottom--lrg {\r\n padding-bottom: 36px;\r\n }\n.padd--bottom--xlrg {\r\n padding-bottom: 48px;\r\n }\n.padd--bottom--xxlrg {\r\n padding-bottom: 60px;\r\n }\n.padd--bottom--xxxlrg {\r\n padding-bottom: 72px;\r\n }\n.padd--bottom--huge{\r\n padding-bottom: 90px;\r\n }\n/* PADDING LEFT */\n.padd--left--tny {\r\n padding-left: 6px;\r\n }\n.padd--left--xsml {\r\n padding-left: 9px;\r\n }\n.padd--left--sml {\r\n padding-left: 12px;\r\n }\n.padd--left--med {\r\n padding-left: 24px;\r\n }\n.padd--left--lrg {\r\n padding-left: 36px;\r\n }\n.padd--left--xlrg {\r\n padding-left: 48px;\r\n }\n.padd--left--xxlrg {\r\n padding-left: 60px;\r\n }\n.padd--left--xxxlrg {\r\n padding-left: 72px;\r\n }\n.padd--left--huge{\r\n padding-left: 90px;\r\n }\n/* \r\n ---------------------------------\r\n -- x-axis -> left & right --\r\n -- y-axis -> top & bottom -- \r\n ---------------------------------\r\n */\n.padd--x--sml{\r\n padding: inherit 12px; \r\n }\n/*You can use spacers by axis*/\n.padd--y--sml{\r\n padding: 12px inherit; \r\n }\n.padd--sml {\r\n padding: 12px;\r\n }\n.padd--med {\r\n padding: 24px;\r\n }\n.padd--none {\r\n padding: 0;\r\n }\n/*------------------------------------*\\\r\n # utils.positions\r\n\\*------------------------------------*/\n.pos--rel {\r\n\t\tposition: relative;\r\n\t}\n.pos--fix {\r\n\t\tposition: fixed;\r\n\t}\n.pos--abs {\r\n\t\tposition: absolute;\r\n\t}\n/*------------------------------------*\\\r\n # utils.height\r\n\\*------------------------------------*/\n.h--40 {\r\n height: 40px;\r\n }\n/*column*/\n.f--c {\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: column;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n }\n/*justify*/\n.f--j--start {\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start; \r\n }\n.f--j--sb {\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n }\n.f--j--end {\r\n -webkit-box-pack: end;\r\n -webkit-justify-content: flex-end;\r\n -ms-flex-pack: end;\r\n justify-content: flex-end;\r\n }\n.f--j--c {\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\n.f--a--c {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.f--a--end {\r\n -webkit-box-align: end;\r\n -webkit-align-items: flex-end;\r\n -ms-flex-align: end;\r\n align-items: flex-end;\r\n }\n.f--a--bl {\r\n -webkit-box-align: baseline;\r\n -webkit-align-items: baseline;\r\n -ms-flex-align: baseline;\r\n align-items: baseline;\r\n }\n.f--wrap {\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.flex--primary {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: start;\r\n -webkit-justify-content: flex-start;\r\n -ms-flex-pack: start;\r\n justify-content: flex-start;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.flex--primary--long {\r\n -webkit-box-flex: 2;\r\n -webkit-flex-grow: 2;\r\n -ms-flex-positive: 2;\r\n flex-grow: 2;\r\n }\n.flex--secondary {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: space-evenly;\r\n -webkit-justify-content: space-evenly;\r\n -ms-flex-pack: space-evenly;\r\n justify-content: space-evenly;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.flex--secondary__item {\r\n -webkit-flex-basis: 0;\r\n -ms-flex-preferred-size: 0;\r\n flex-basis: 0;\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n }\n.flex--secondary--long {\r\n -webkit-box-flex: 2;\r\n -webkit-flex-grow: 2;\r\n -ms-flex-positive: 2;\r\n flex-grow: 2;\r\n }\n.flex--tertiary {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: justify;\r\n -webkit-justify-content: space-between;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.flex--center {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-orient: horizontal;\r\n -webkit-box-direction: normal;\r\n -webkit-flex-direction: row;\r\n -ms-flex-direction: row;\r\n flex-direction: row;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n -webkit-flex-wrap: wrap;\r\n -ms-flex-wrap: wrap;\r\n flex-wrap: wrap;\r\n }\n.flex--align--center {\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n }\n.flex--align--bottom {\r\n -webkit-box-align: end;\r\n -webkit-align-items: flex-end;\r\n -ms-flex-align: end;\r\n align-items: flex-end;\r\n }\n.flex--align--v--bottom {\r\n margin-top: auto;\r\n }\n.flex--grow--1 {\r\n -webkit-box-flex: 1;\r\n -webkit-flex-grow: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n }\n.flex--nowrap {\r\n -webkit-flex-wrap: nowrap;\r\n -ms-flex-wrap: nowrap;\r\n flex-wrap: nowrap;\r\n }\n/*------------------------------------*\\\r\n # utils.visibility\r\n\\*------------------------------------*/\n.visibility--hidden {\r\n \tvisibility: hidden;\r\n\t}\n.visibility--visible {\r\n\t\tvisibility: visible;\r\n\t}\n.show--to--sml--block {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\n@media (min-width: 34em) {\n.show--to--sml--block {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n.show--to--sml--inlineblock {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t}\n@media (min-width: 34em) {\n.show--to--sml--inlineblock {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n.show--to--med--block {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\n@media (min-width: 62em) {\n.show--to--med--block {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n.show--to--lrg--inlineblock {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t}\n@media (min-width: 75em) {\n.show--to--lrg--inlineblock {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n.show--to--xlrg--block {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\n@media (min-width: 75em) {\n.show--to--xlrg--block {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--xsml--inline {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 23.4375em) {\n.hide--to--xsml--inline {\r\n\t\t\t\t\tdisplay: inline\r\n\t\t\t}\r\n\t\t\t\t}\n@media (max-width: 33.9375em) {\n.hide--to--sml {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n.hide--to--sml--inline {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 34em) {\n.hide--to--sml--inline {\r\n\t\t\t\t\tdisplay: inline\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--sml--block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 34em) {\n.hide--to--sml--block {\r\n\t\t\t\t\tdisplay: block\r\n\t\t\t}\r\n\t\t\t\t}\n@media (max-width: 47.9375em) {\n.hide--to--med {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n.hide--to--med--inline {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 48em) {\n.hide--to--med--inline {\r\n\t\t\t\t\tdisplay: inline\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--med--inline-block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 48em) {\n.hide--to--med--inline-block {\r\n\t\t\t\t\tdisplay: inline-block\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--med--block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 48em) {\n.hide--to--med--block {\r\n\t\t\t\t\tdisplay: block\r\n\t\t\t}\r\n\t\t\t\t}\n@media (max-width: 61.9375em) {\n.hide--to--lrg {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n.hide--to--lrg--block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 62em) {\n.hide--to--lrg--block {\r\n\t\t\t\t\tdisplay: block\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--lrg--inline-block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 62em) {\n.hide--to--lrg--inline-block {\r\n\t\t\t\t\tdisplay: inline-block\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--lrg--inline {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 62em) {\n.hide--to--lrg--inline {\r\n\t\t\t\t\tdisplay: inline\r\n\t\t\t}\r\n\t\t\t\t}\n@media (max-width: 74.9375em) {\n.hide--to--xlrg {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n.hide--to--xlrg--block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 75em) {\n.hide--to--xlrg--block {\r\n\t\t\t\t\tdisplay: block\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--xlrg--inline-block {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 75em) {\n.hide--to--xlrg--inline-block {\r\n\t\t\t\t\tdisplay: inline-block\r\n\t\t\t}\r\n\t\t\t\t}\n.hide--to--xlrg--inline {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n@media (min-width: 75em) {\n.hide--to--xlrg--inline {\r\n\t\t\t\t\tdisplay: inline\r\n\t\t\t}\r\n\t\t\t\t}\n@media (max-width: 89.9375em) {\n.hide--to--xxlrg {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 34em) {\n.hide--from--sml {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 48em) {\n.hide--from--med {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n@media (min-width: 48em) {\n.hide--from--med--inline {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n@media (min-width: 48em) {\n.hide--from--med--block {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n@media (min-width: 48em) {\n.hide--from--med--inline-block {\r\n\t\t\t\t\tdisplay: none\r\n\t\t\t}\r\n\t\t\t\t}\n@media (min-width: 62em) {\n.hide--from--lrg {\r\n\t\t\t\tdisplay: none\r\n\t\t}\r\n\t\t\t}\n/*------------------------------------*\\\r\n # utils.group\r\n\\*------------------------------------*/\n.group {\r\n overflow: hidden;\r\n}\n.group--alt {\r\n \tdisplay: inline-block;\r\n \twidth: 100%;\r\n \tclear: both;\r\n }\n.group--alt--auto {\r\n \t\twidth: auto;\r\n \t}\n/*------------------------------------*\\\r\n # utils.custom\r\n\\*------------------------------------*/\n/*\r\n Scroll bar style\r\n -Working only on chrome \r\n -all except textarea because of chrome know issue with scrollbar cursors\r\n*/\n*:not(textarea)::-webkit-scrollbar {\r\n width: 9px;\r\n height: 9px;\r\n background-color: rgba(0, 0, 0, 0);\r\n -webkit-border-radius: 100px;\r\n border-radius: 100px;\r\n}\n*:not(textarea)::-webkit-scrollbar:hover {\r\n background-color: rgba(0, 0, 0, 0.05);\r\n}\n*:not(textarea)::-webkit-scrollbar-thumb {\r\n background: #c8cfd5;\r\n -webkit-border-radius: 100px;\r\n border-radius: 100px;\r\n}\n*:not(textarea)::-webkit-scrollbar-thumb:active {\r\n background: #acb2b7;\r\n -webkit-border-radius: 100px;\r\n border-radius: 100px;\r\n}\n/* add vertical min-height & horizontal min-width */\n*:not(textarea)::-webkit-scrollbar-thumb:vertical {\r\n min-height: 10px;\r\n}\n*:not(textarea)::-webkit-scrollbar-thumb:horizontal {\r\n min-width: 10px;\r\n}\n/*------------------------------------*\\\r\n # utils.cursor\r\n\\*------------------------------------*/\n.cursor--pointer {\r\n cursor: pointer;\r\n }\n/*------------------------------------*\\\r\n # utils.rotate\r\n\\*------------------------------------*/\n.rotate--180 {\r\n -webkit-transform: rotate(180deg);\r\n -ms-transform: rotate(180deg);\r\n transform: rotate(180deg);\r\n }\n.rotate--90 {\r\n -webkit-transform: rotate(90deg);\r\n -ms-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n }\n/* @import utils.floats.css; */\n/**\r\n* Import: plugins\r\n* Description: 3rd party code, external plugin CSS etc\r\n* Note: when importing code from a 3rd party it should be stripped off\r\n* any vendor prefixes since autoprefixer will use project specific vendor prefixes\r\n*/\n/*------------------------------------*\\\r\n # plugins.fontface\r\n\\*------------------------------------*/\n/*------------------------------------*\\\r\n # plugins.rc-menu\r\n\\*------------------------------------*/\n.rc-menu.rc-menu-horizontal {\r\n\t\tborder: none !important;\r\n\t\tbackground-color: transparent !important;\r\n\t}\n/* Hover */\n.rc-menu.rc-menu-horizontal > .rc-menu-submenu-active,\r\n\t\t.rc-menu.rc-menu-horizontal > .rc-menu-item-active {\r\n\t\t\tcolor: inherit;\r\n\t\t\tborder-color: #a8afb7;\r\n\t\t\tborder-bottom: 1px solid #a8afb7 !important;\r\n\t\t\tbackground-color: transparent;\r\n\t\t}\n.rc-menu.rc-menu-horizontal > .rc-menu-submenu-active > .rc-menu-submenu-title, .rc-menu.rc-menu-horizontal > .rc-menu-item-active > .rc-menu-submenu-title {\r\n\t\t\t\tbackground-color: transparent;\r\n\t\t\t}\n.rc-menu.rc-menu-horizontal > .rc-menu-item,\r\n\t\t.rc-menu.rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {\r\n\t\t\tpadding-right: 30px;\r\n\t\t\theight: 36px;\r\n\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\tbackground-position: 12px center;\r\n\t\t\t-webkit-background-size: 20px 20px;\r\n\t\t\t background-size: 20px;\r\n\t\t}\n.rc-menu.rc-menu-horizontal > .rc-menu-item:after, .rc-menu.rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title:after {\r\n\t\t\t\tcontent: '';\r\n\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tright: 12px;\t\t\r\n\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\twidth: 12px;\r\n\t\t\t\theight: 100%;\r\n\r\n\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12h6l-3 3.6L7 12zm6-3.4H7L10 5l3 3.6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\tbackground-position: center center;\r\n\t\t\t\t-webkit-background-size: 18px 18px;\r\n\t\t\t\t background-size: 18px;\r\n\t\t\t}\n.rc-menu.rc-menu-horizontal > .rc-menu-item:placeholder, .rc-menu.rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title:placeholder {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder: 1px solid #dfe3e8;\r\n\t\t\t-webkit-border-radius: 4px;\r\n\t\t\t border-radius: 4px;\r\n\t\t\t-webkit-transition: all 250ms ease-in-out;\r\n\t\t\t-o-transition: all 250ms ease-in-out;\r\n\t\t\ttransition: all 250ms ease-in-out;\r\n\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput:hover {\r\n\t\t\t\tborder: 1px solid #a8afb7;\r\n\t\t\t\tbackground-color: transparent;\r\n\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput.rc-menu-submenu-open {\r\n\t\t\t\tborder: 1px solid #e51646;\r\n\t\t\t\tborder-bottom: 1px solid #e51646 !important;\r\n\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput > .rc-menu-submenu-title {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput > .rc-menu-submenu-title input {\r\n\t\t\t\t\theight: 100%;\r\n\t\t\t\t\tpadding-right: 12px;\r\n\t\t\t\t\tpadding-left: 42px;\r\n\t\r\n\t\t\t\t\tborder: 0;\r\n\t\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%239c9c9c'%3E%3Ctitle%3Eicons / 20px / calendar%3C/title%3E%3Cg transform='translate(1 1)' fill-rule='nonzero' fill='none'%3E%3Crect stroke='%23667182' stroke-width='1.1' x='1.113' y='1.675' width='15.775' height='15.775' rx='1.1'/%3E%3Cpath fill='%23667182' d='M1.125 1.25h15.75V9H1.125z'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='3.5' width='3.5' height='5.625' rx='1'/%3E%3Crect stroke='%23FFF' stroke-width='1.5' fill='%23E51646' x='11' width='3.5' height='5.625' rx='1'/%3E%3C/g%3E%3C/svg%3E\");\r\n\t\t\t\t\t-webkit-background-size: 18px 18px;\r\n\t\t\t\t\t background-size: 18px;\r\n\t\t\t\t\tbackground-position: 12px center;\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput > .rc-menu-submenu-title input.is-invalid {\r\n\t\t\t\t\t\toutline: 0;\r\n\t\t\t\t\t\tborder: 1px solid #f03e1b;\r\n\t\t\t\t\t}\n.rc-menu > .rc-menu-submenu.DayPickerInput > .rc-menu-submenu-title:after {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\n/* Dropdown menu */\n.rc-menu-submenu {\r\n\tz-index: 9999;\r\n}\n@media (max-width: 33.9375em) {\n.rc-menu-submenu {\r\n\t\tleft: 12px !important;\r\n\t\tright: 12px\r\n}\r\n\t}\n.rc-menu-submenu > .rc-menu.rc-menu-sub.rc-menu-vertical {\r\n\t\t\t\tfont-size: 13px;\r\n\t\t\t\tline-height: 21px;\r\n\t\t\t}\n.rc-menu-submenu > .rc-menu > .rc-menu-submenu > .rc-menu-submenu-title > .rc-menu-submenu-arrow {\r\n\t\t\t\t\tright: 10px;\r\n\t\t\r\n\t\t\t\t\twidth: 12px;\r\n\t\t\t\t\theight: 21px;\r\n\t\t\t\t\t\r\n\t\t\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 11.5L7.676 21 5 18.537l7.647-7.037L5 4.463 7.676 2 18 11.5z'/%3E%3C/svg%3E\");\r\n\t\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\t\t-webkit-background-size: 80% 80%;\r\n\t\t\t\t\t background-size: 80%;\r\n\t\t\t\t\tbackground-position: center center;\r\n\t\t\t\t}\n.rc-menu-submenu.rc-menu-submenu-popup {\r\n\t\tmin-width: 250px;\r\n\t}\n.rc-menu-submenu.rc-menu-submenu-vertical-left {\r\n\t\tcursor: pointer;\r\n\t}\n.rc-menu-submenu.rc-menu-submenu-vertical-left.rc-menu-submenu-active > .rc-menu-submenu-title {\r\n\t\t\tbackground-color: #f3f6f9;\r\n\t\t}\n.rc-menu-submenu.rc-menu-submenu-vertical-left .rc-menu-submenu.rc-menu-submenu-popup:hover {\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t}\n.rc-menu-submenu.rc-menu-submenu-vertical-left .rc-menu-item.rc-menu-item-active,\r\n\t\t.rc-menu-submenu.rc-menu-submenu-vertical-left .rc-menu-item.rc-menu-item-selected {\r\n\t\t\tbackground-color: white;\r\n\t\t}\n.rc-menu-submenu.rc-menu-submenu-vertical .rc-menu-submenu-arrow:before {\r\n\t\t\t\tcontent: '' !important;\r\n\t\t\t}\n.rc-menu-submenu.rc-menu-submenu-vertical .rc-menu-submenu-active {\r\n\t\t\tbackground-color: #f3f6f9;\r\n\t\t\tcursor: pointer;\r\n\t\t}\n.rc-menu-submenu.rc-menu-submenu-vertical.rc-menu-submenu-open.rc-menu-submenu-active > .rc-menu-submenu-title {\r\n\t\t\t\t\tfont-weight: 700;\r\n\t\t\t\t}\n.rc-menu-submenu > .rc-menu-vertical.rc-menu-sub {\r\n\t\t\toverflow-x: hidden;\r\n\t\t\tmin-width: 192px !important;\r\n\t\t\tmax-height: 408px;\r\n\t\t}\n.rc-menu-submenu > .rc-menu-vertical .rc-menu-submenu-arrow:before {\r\n\t\t\t\tcontent: '' !important;\r\n\t\t\t}\n.rc-menu-submenu.rc-menu-submenu-horizontal {\r\n\t\twidth: 100%;\r\n\t\tborder: 1px solid #dfe3e8;\r\n\t\tborder-bottom: 1px solid #dfe3e8 !important;\r\n\t\t-webkit-border-radius: 4px;\r\n\t\t border-radius: 4px;\r\n\t}\n.rc-menu-submenu.rc-menu-submenu-horizontal + .rc-menu-submenu-open + .rc-menu-submenu-active {\r\n\t\t\t\tborder-color: #e51646 !important;\r\n\t\t\t\t-webkit-box-shadow: 0 0 0 2px #ff93ac;\r\n\t\t\t\t box-shadow: 0 0 0 2px #ff93ac;\r\n\t\t\t}\n.rc-menu-submenu .rc-menu-abs-footer {\r\n\t\tposition: absolute !important;\r\n\t\tbottom: -33px;\r\n\t\tright: 0;\r\n\t\tleft: 0;\r\n\r\n\t\t-webkit-box-shadow: 0 3px 4px #d9d9d9;\r\n\r\n\t\t box-shadow: 0 3px 4px #d9d9d9;\r\n\t\tborder: 1px solid #dfe3e8;\r\n\t\tborder-top: none;\r\n\t\tbackground-color: #fff;\r\n\t}\n.rc-menu-submenu .rc-menu-abs-footer .rc-menu-footer {\r\n\t\t\toverflow: hidden;\r\n\t\t\tmargin: -6px -12px;\r\n\t\t\tpadding: 9px 12px;\r\n\t\r\n\t\t\tborder-top: 1px solid #dfe3e8;\r\n\t\t}\n.rc-menu-submenu .rc-menu-abs-footer .rc-menu-footer.rc-menu-footer-alt {\r\n\t\t\t\tmargin-top: -6px;\r\n\t\t\t\tbackground-color: rgba(223, 227, 232, 0.5);\r\n\t\t\t}\n.rc-menu-submenu .rc-menu-submenu-vertical .rc-menu-submenu-arrow {\r\n\t\t\tright: 10px;\r\n\r\n\t\t\twidth: 12px;\r\n\t\t\theight: 21px;\r\n\r\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='%239c9c9c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 11.5L7.676 21 5 18.537l7.647-7.037L5 4.463 7.676 2 18 11.5z'/%3E%3C/svg%3E\");\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t-webkit-background-size: 80% 80%;\r\n\t\t\t background-size: 80%;\r\n\t\t\tbackground-position: center center;\r\n\t\t}\n/* Removing scrollbar when dropdown is opaning and closing */\n.rc-menu-submenu .rc-menu-open-slide-up-leave,\r\n\t.rc-menu-submenu .rc-menu-open-slide-up-enter {\r\n\t\toverflow: hidden;\r\n\t}\n/* OSTALO */\n.rc-menu-submenu-disabled {\r\n\tbackground-color: rgb(235, 235, 228);\r\n}\n.rc-menu-item-active {\r\n\tbackground-color: #f3f6f9;\r\n\tcursor: pointer;\r\n}\n.rc-menu-vertical > .rc-menu-item,\r\n.rc-menu-vertical-left > .rc-menu-item,\r\n.rc-menu-vertical-right > .rc-menu-item,\r\n.rc-menu-inline > .rc-menu-item,\r\n.rc-menu-vertical > .rc-menu-submenu > .rc-menu-submenu-title,\r\n.rc-menu-vertical-left > .rc-menu-submenu > .rc-menu-submenu-title,\r\n.rc-menu-vertical-right > .rc-menu-submenu > .rc-menu-submenu-title,\r\n.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {\r\n\tpadding: 6px 12px !important;\r\n}\n/*------------------------------------*\\\r\n # plugins.rc-timepicker\r\n\\*------------------------------------*/\n.react-time-picker__wrapper {\r\n\twidth: 100%;\r\n\tpadding-left: 6px;\r\n\tborder: none !important;\r\n}\n.react-time-picker__inputGroup__input {\r\n\toutline: none;\r\n\t-webkit-appearance: none;\r\n}\n.react-time-picker--open {\r\n border-color: #e51646;\r\n}\n.react-time-picker--open:hover {\r\n\t\tborder-color: #e51646;\r\n\t}\nselect.react-time-picker__inputGroup__input {\r\n\t-webkit-box-flex: 2;\r\n\t-webkit-flex-grow: 2;\r\n\t -ms-flex-positive: 2;\r\n\t flex-grow: 2;\r\n}\n/*------------------------------------*\\\r\n # plugins.inputfromto\r\n\\*------------------------------------*/\n.Selectable .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) {\r\n background-color: #fbe4e9 !important;\r\n color: inherit;\r\n}\n.Selectable .DayPicker-Day {\r\n -webkit-border-radius: 0 !important;\r\n border-radius: 0 !important;\r\n}\n.Selectable .DayPicker-Day--start {\r\n -webkit-border-top-left-radius: 1000px !important;\r\n border-top-left-radius: 1000px !important;\r\n -webkit-border-bottom-left-radius: 1000px !important;\r\n border-bottom-left-radius: 1000px !important;\r\n}\n.Selectable .DayPicker-Day--end {\r\n -webkit-border-top-right-radius: 1000px !important;\r\n border-top-right-radius: 1000px !important;\r\n -webkit-border-bottom-right-radius: 1000px !important;\r\n border-bottom-right-radius: 1000px !important;\r\n}\n.DayPicker-Week .DayPicker-Day.DayPicker-Day--selected:last-child {\r\n -webkit-border-top-right-radius: 1000px !important;\r\n border-top-right-radius: 1000px !important;\r\n -webkit-border-bottom-right-radius: 1000px !important;\r\n border-bottom-right-radius: 1000px !important;\r\n}\n.DayPicker-Week .DayPicker-Day.DayPicker-Day--selected:first-child {\r\n -webkit-border-top-left-radius: 1000px !important;\r\n border-top-left-radius: 1000px !important;\r\n -webkit-border-bottom-left-radius: 1000px !important;\r\n border-bottom-left-radius: 1000px !important;\r\n}\n.DayPicker-Day:focus {\r\n outline: none;\r\n}\n.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {\r\n background-color: #e51646 !important;\r\n}\n.DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover {\r\n background-color: #fbe4e9 !important;\r\n}\n.DayPickerInput-Overlay {\r\n left: -18px !important;\r\n margin-top: 6px;\r\n -webkit-box-shadow: 0px 3px 5px #d9d9d9 !important;\r\n box-shadow: 0px 3px 5px #d9d9d9 !important;\r\n}\n.InputFromTo .DayPickerInput-Overlay {\r\n\twidth: 455px;\r\n}\n.InputFromTo-to .DayPickerInput-Overlay {\r\n\twidth: 455px;\r\n}\n.InputFromTo-to .DayPickerInput-Overlay {\r\n\tmargin-left: -184px;\r\n}\n.DayPickerInput input {\r\n\tdisplay: inline-block;\r\n\r\n vertical-align: middle;\r\n cursor: pointer;\r\n -ms-touch-action: manipulation;\r\n touch-action: manipulation;\r\n -moz-appearance: none;\r\n appearance: none;\r\n -webkit-transition: border-color 200ms;\r\n -o-transition: border-color 200ms;\r\n transition: border-color 200ms;\r\n -webkit-appearance: none;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: white;\r\n\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n border: 1px solid rgb(196, 196, 196);\r\n\r\n height: 24px;\r\n line-height: 24px;\r\n padding: 0 6px;\r\n}\n.DayPickerInput input::-webkit-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.DayPickerInput input::-moz-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.DayPickerInput input:-ms-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.DayPickerInput input::-ms-input-placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.DayPickerInput input::placeholder {\r\n color: rgb(159, 159, 159);\r\n }\n.DayPickerInput input::-webkit-inner-spin-button,\r\n .DayPickerInput input::-webkit-outer-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\n.DayPickerInput input:focus {\r\n outline: 0;\r\n border-color: rgb(250, 204, 215);\r\n }\n.DayPicker {\r\n width: 100%;\r\n font-size: 12px !important;\r\n line-height: 18px;\r\n}\n.DayPicker-Day {\r\n padding: 6px 8px !important;\r\n -webkit-border-radius: 1000px !important;\r\n border-radius: 1000px !important;\r\n}\n.DayPicker-Day--disabled {\r\n position: relative;\r\n cursor: pointer;\r\n }\n.DayPicker-Day--disabled:hover:before,\r\n .DayPicker-Day--disabled:hover:after {\r\n z-index: 9999;\r\n visibility: hidden;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\r\n filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);\r\n opacity: 0;\r\n pointer-events: none;\r\n }\n.DayPicker-Day--disabled:hover:before {\r\n position: absolute;\r\n bottom: -webkit-calc(100% + 7px);\r\n bottom: calc(100% + 7px);\r\n left: 50%;\r\n padding: 6px 12px;\r\n -webkit-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: #0e0125;\r\n color: #fff;\r\n text-align: center;\r\n font-family: \"Roboto\", \"Helvetica Neue\", \r\n\t\t\tsans-serif, Helvetica, Arial, sans-serif;\r\n width: 250px;\r\n font-size: 12px;\r\n line-height: 21px;\r\n font-style: normal;\r\n -webkit-transform: translateX(-50%);\r\n -ms-transform: translateX(-50%);\r\n transform: translateX(-50%);\r\n white-space: normal;\r\n word-break: break-word;\r\n }\n@media (max-width: 61.9375em) {\n.DayPicker-Day--disabled:hover:before {\r\n display: none\r\n }\r\n }\n.DayPicker-Day--disabled:hover:after {\r\n position: absolute;\r\n bottom: -webkit-calc(100% + 2px);\r\n bottom: calc(100% + 2px);\r\n left: 50%;\r\n margin-left: -5px;\r\n width: 0;\r\n border-top: 5px solid #0e0125;\r\n border-right: 5px solid transparent;\r\n border-left: 5px solid transparent;\r\n content: \" \";\r\n font-size: 0;\r\n line-height: 0;\r\n }\n@media (max-width: 61.9375em) {\n.DayPicker-Day--disabled:hover:after {\r\n display: none\r\n }\r\n }\n.DayPicker-Day--disabled:hover:hover:before,\r\n .DayPicker-Day--disabled:hover:hover:after {\r\n visibility: visible;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";\r\n filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);\r\n opacity: 1;\r\n }\n.DayPicker-Months {\r\n width: 100%;\r\n}\n.DayPicker-Month {\r\n width: 220px;\r\n margin-top: 12px !important;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\n@media (min-width: 48em) {\n.DayPicker-Month {\r\n width: -webkit-calc(50% - 18px);\r\n width: calc(50% - 18px)\r\n}\r\n\r\n .DayPicker-Month:first-child {\r\n margin-right: 0;\r\n margin-left: 0;\r\n }\r\n\r\n .DayPicker-Month:last-child {\r\n margin-right: 0;\r\n margin-left: 12px;\r\n }\r\n }\n.DayPicker-Month:focus, .DayPicker-wrapper:focus {\r\n outline: none;\r\n }\n.inputfromto__holder {\r\n margin: -6px -12px;\r\n }\n@media (min-width: 48em) {\n.inputfromto__holder {\r\n width: 480px\r\n }\r\n }\n.inputfromto__holder--single {\r\n background-color: #fff;\r\n }\n@media (min-width: 48em) {\n.inputfromto__holder--single {\r\n width: 252px\r\n }\r\n }\n.inputfromto__holder--single .DayPicker-Month:last-child {\r\n width: 100%;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\n.inputfromto__holder--single .inputfromto__heading {\r\n display: none;\r\n }\n.inputfromto__heading {\r\n padding: 12px 12px 0;\r\n background-color: #f3f6f9;\r\n border-bottom: 1px solid #cdd1d6;\r\n cursor: default;\r\n }\n@media (min-width: 48em) {\n.inputfromto__heading {\r\n padding: 24px 24px 12px\r\n }\r\n }\n.inputfromto__body {\r\n position: relative;\r\n padding: 0 12px;\r\n }\n@media (min-width: 48em) {\r\n .inputfromto__body:before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 50%;\r\n width: 1px;\r\n height: 100%;\r\n background-color: #cdd1d6;\r\n }\r\n }\n.inputfromto__body--noseparator:before {\r\n display: none;\r\n }\n.DayPicker-Caption {\r\n font-size: 13px;\r\n line-height: 31.5px;\r\n text-align: center !important;\r\n}\n.DayPicker-NavButton--prev {\r\n right: auto !important;\r\n left: 0 !important;\r\n}\n.DayPicker-NavButton--prev:focus {\r\n outline: none;\r\n }\n.DayPicker-NavButton--next {\r\n right: 0 !important;\r\n left: auto !important;\r\n}\n.DayPicker-NavButton--next:focus {\r\n outline: none;\r\n }\n.DayPicker-wrapper {\r\n padding-bottom: 6px !important;\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n width: 100%;\r\n}\n.DayPicker-Week .DayPicker-Day.DayPicker-Day--selected:first-child {\r\n -webkit-border-top-left-radius: 50%;\r\n border-top-left-radius: 50%;\r\n -webkit-border-bottom-left-radius: 50%;\r\n border-bottom-left-radius: 50%;\r\n }\n.DayPicker-Week .DayPicker-Day.DayPicker-Day--selected:last-child {\r\n -webkit-border-top-right-radius: 50%;\r\n border-top-right-radius: 50%;\r\n -webkit-border-bottom-right-radius: 50%;\r\n border-bottom-right-radius: 50%;\r\n }\n.rc-menu-datepicker-tooltip .rc-menu-vertical, .rc-menu-datepicker-tooltip .rc-menu-sub {\r\n overflow: visible;\r\n }\n/*------------------------------------*\\\r\n # plugins.select\r\n\\*------------------------------------*/\n.Select {\r\n\t-webkit-border-radius: 2px;\r\n\t border-radius: 2px;\r\n}\n.Select:focus {\r\n\t\toutline-color: #e51646;\r\n\t}\n.Select.is-pseudo-focused, .Select.is-focused {\r\n\t\tborder: 1px solid #e51646 !important;\r\n -webkit-box-shadow: 0 0 0 2px #ff93ac;\r\n box-shadow: 0 0 0 2px #ff93ac;\r\n\t}\n.Select.is-focused:not(.is-open)>.Select-control {\r\n\tborder-color: #e51646 !important;\r\n\t-webkit-box-shadow: 0 0 0 2px #ff93ac !important;\r\n\t box-shadow: 0 0 0 2px #ff93ac !important;\r\n}\n.Select-option.is-focused {\r\n\tbackground-color: #dfe3e8 !important;\r\n}\n/*------------------------------------*\\\r\n # plugins.reactselect\r\n\\*------------------------------------*/\n.reactselect--iconed .css-vj8t7z, .reactselect--iconed .css-2o5izw {\r\n\t\t\tpadding-left: 30px;\r\n\t\t\tbackground-color: transparent;\r\n\t\t}\n.reactselect--iconed--descending {\r\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3Eicons / 20px / descending%3C/title%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M3.829 16.171V2H2v16h16v-1.829z' fill='%23667182'/%3E%3Cpath fill='%23E51646' d='M8.769 9.842l4.063 2.272 4.11-5.306-1.084-.84-3.387 4.373-3.983-2.227-3.84 4.213 1.013.924z'/%3E%3C/g%3E%3C/svg%3E\");\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\tbackground-position: 12px center;\r\n\t\t\t-webkit-background-size: 18px 18px;\r\n\t\t\t background-size: 18px;\r\n\t\t}\n.css-2o5izw {\r\n\tmin-height: 40px !important;\r\n\tborder-color: #e51646 !important;\r\n -webkit-box-shadow: 0 0 0 2px #ff93ac !important;\r\n box-shadow: 0 0 0 2px #ff93ac !important;\r\n}\n.css-2o5izw:hover, .css-2o5izw:focus {\r\n\t\toutline: 0;\r\n border-color: #e51646;\r\n -webkit-box-shadow: 0 0 0 2px #ff93ac !important;\r\n box-shadow: 0 0 0 2px #ff93ac !important;\r\n\t}\n.css-vj8t7z {\r\n\tmin-height: 40px !important;\r\n\tborder-color: #dfe3e8 !important;\r\n}\n.css-1wy0on6 svg {\r\n\t\tdisplay: none !important;\r\n\t}\n.css-1wy0on6:after {\r\n\t\tcontent: '';\r\n\t\tdisplay: block;\r\n\t\tposition: absolute;\r\n\t\ttop: 3px;\r\n\t\tright: 0;\r\n\t\theight: 30px;\r\n\t\twidth: 30px;\r\n\t\tbackground-color: #fff;\r\n\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12h6l-3 3.6L7 12zm6-3.4H7L10 5l3 3.6z' fill='%23B8B8B8'/%3E%3C/svg%3E\");\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center center;\r\n\t\t-webkit-background-size: 18px 18px;\r\n\t\t background-size: 18px;\r\n\t}\n.css-1ep9fjw {\r\n\tposition: relative;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n}\n.css-1ep9fjw:first-child:after {\r\n\t\t\tcontent: '';\r\n\t\t\tdisplay: block;\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: -3px;\r\n\t\t\tright: 6px;\r\n\t\t\theight: 30px;\r\n\t\t\twidth: 30px;\r\n\t\t\tbackground-color: #fff;\r\n\t\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='%237f7f7f'%3E%3Cpath fill='%23667182' d='M9.949 1.515L8.535.101 5 3.637 1.464.101.05 1.515l3.536 3.536L.05 8.586 1.464 10 5 6.465 8.535 10l1.414-1.414-3.535-3.535z'/%3E%3C/svg%3E\");\r\n\t\t\tbackground-repeat: no-repeat;\r\n\t\t\tbackground-position: center center;\r\n\t\t\t-webkit-background-size: 8px 8px;\r\n\t\t\t background-size: 8px;\r\n\t\t}\n.css-d8oujb {\r\n\tdisplay: none !important;\r\n}\n.css-1hwfws3 {\r\n\tpadding-right: 36px !important;\r\n}\n.css-wqgs6e {\r\n\tbackground-color: #f3f6f9 !important;\r\n}\n.css-z5z6cw {\r\n\tposition: relative;\r\n\tcolor: inherit !important;\r\n\tbackground-color: #f3f6f9 !important;\r\n}\n.css-xwjg1b {\r\n\tbackground-color: #fff !important;\r\n\tborder: 1px solid #dfe3e8 !important;\r\n}\n.css-12jo7m5 {\r\n\tpadding: 3px 3px 2px 6px !important;\r\n}\n.css-1alnv5e {\r\n\tposition: relative;\r\n}\n.css-1alnv5e:hover {\r\n\t\tbackground-color: transparent !important;\r\n\t\tcolor: inherit !important;\r\n\t}\n.css-1alnv5e:after {\r\n\t\tcontent: '';\r\n\t\tdisplay: block;\r\n\t\tposition: absolute;\r\n\t\ttop: 1px;\r\n\t\tright: 1px;\r\n\t\theight: 24px;\r\n\t\twidth: 18px;\r\n\t\tbackground-color: #fff;\r\n\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' fill='%237f7f7f'%3E%3Cpath fill='%23667182' d='M9.949 1.515L8.535.101 5 3.637 1.464.101.05 1.515l3.536 3.536L.05 8.586 1.464 10 5 6.465 8.535 10l1.414-1.414-3.535-3.535z'/%3E%3C/svg%3E\");\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center center;\r\n\t\t-webkit-background-size: 8px 8px;\r\n\t\t background-size: 8px;\r\n\t}\n.css-2b097c-container .css-yk16xz-control {\r\n\t\tborder: 1px solid #dfe3e8;\r\n\t}\n.css-2b097c-container .css-1pahdxg-control {\r\n\t\tborder: 1px solid #e51646;\r\n\t\t-webkit-box-shadow: none;\r\n\t\t box-shadow: none;\r\n\t}\n.css-2b097c-container .css-1pahdxg-control:hover {\r\n\t\t\tborder-color: #e51646;\r\n\t\t}\n/*@import \"plugins.recharts.css\";*/\n/*------------------------------------*\\\r\n # plugins.ui-calendar\r\n\\*------------------------------------*/\n.ui-widget.ui-widget-content {\r\n\tborder: 1px solid #d9d9d9 !important;\r\n -webkit-box-shadow: 0 0 4px #d9d9d9 !important;\r\n box-shadow: 0 0 4px #d9d9d9 !important;\r\n}\n.ui-calendar {\r\n\tz-index: 99;\r\n}\n.ui-flexcal {\r\n\tpadding: 0 !important;\r\n}\n.ui-datepicker-header {\r\n\tpadding: 12px !important;\r\n\tbackground-color: #f3f6f9 !important;\r\n\tborder: none !important;\r\n}\n.ui-state-default,\r\n.ui-widget-content .ui-state-default,\r\n.ui-widget-header .ui-state-default,\r\n.ui-button,\r\nhtml .ui-button.ui-state-disabled:hover,\r\nhtml .ui-button.ui-state-disabled:active {\r\n\tborder: none !important;\r\n\tbackground-color: transparent !important;\r\n\ttext-align: center !important;\r\n}\n.ui-state-highlight,\r\n.ui-widget-content .ui-state-highlight,\r\n.ui-widget-header .ui-state-highlight {\r\n\twidth: 30px;\r\n\theight: 30px;\r\n\tpadding: 5px 0;\r\n\tcolor: #e51646 !important;\r\n\tborder: none !important;\r\n\t-webkit-border-radius: 1000px !important;\r\n\t border-radius: 1000px !important;\r\n}\n.ui-datepicker .ui-datepicker-prev,\r\n.ui-datepicker .ui-datepicker-next {\r\n\ttop: 9px !important;\r\n}\n.ui-datepicker .ui-datepicker-prev .ui-icon,\r\n\t.ui-datepicker .ui-datepicker-prev .ui-widget-content .ui-icon {\r\n\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg fill='%237f7f7f' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\") !important;\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center;\r\n\t\t-webkit-background-size: 18px 18px;\r\n\t\t background-size: 18px;\r\n\t}\n.ui-datepicker .ui-datepicker-next .ui-icon,\r\n\t.ui-datepicker .ui-datepicker-next .ui-widget-content .ui-icon {\r\n\t\tbackground-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%237f7f7f'%3E%3Cpath d='M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12l-4.58 4.59z'/%3E%3Cpath fill='none' d='M24 24H0V0h24v24z'/%3E%3C/svg%3E\") !important;\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: center;\r\n\t\t-webkit-background-size: 18px 18px;\r\n\t\t background-size: 18px;\r\n\t}\n.ui-state-hover,\r\n.ui-widget-content .ui-state-hover,\r\n.ui-widget-header .ui-state-hover,\r\n.ui-state-focus,\r\n.ui-widget-content .ui-state-focus,\r\n.ui-widget-header .ui-state-focus,\r\n.ui-button:hover,\r\n.ui-button:focus {\r\n\tborder: none !important;\r\n}\n.ui-flexcal [dir=rtl] .go.ui-state-hover.ui-datepicker-prev {\r\n\tright: 2px !important;\r\n}\n.ui-flexcal [dir=rtl] .go.ui-state-hover.ui-datepicker-next {\r\n\tleft: 2px !important;\r\n}\n.ui-state-active,\r\n.ui-widget-content .ui-state-active,\r\n.ui-widget-header .ui-state-active,\r\na.ui-button:active, .ui-button:active,\r\n.ui-button.ui-state-active:hover {\r\n\tbackground-color: #e51646 !important;\r\n\tcolor: #fff !important;\r\n\tborder: none !important;\r\n\t-webkit-border-radius: 1000px !important;\r\n\t border-radius: 1000px !important;\r\n}\n/*@import \"plugins.rc-datepicker.css\";*/\n/* @import plugins.select2.css; */\n/* @import plugins.remodal.css; */\n/**\r\n* Import: shame\r\n* Description: CSS shame file\r\n* Note: to be avoided, exists only if REALLY necessary or legacy code\r\n*/\n/* @import shame.css; */\r\n", ""]); // exports /***/ }), /***/ "./node_modules/css-loader/lib/css-base.js": /*!*************************************************!*\ !*** ./node_modules/css-loader/lib/css-base.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader module.exports = function(useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if(item[2]) { return "@media " + item[2] + "{" + content + "}"; } else { return content; } }).join(""); }; // import a list of modules into the list list.i = function(modules, mediaQuery) { if(typeof modules === "string") modules = [[null, modules, ""]]; var alreadyImportedModules = {}; for(var i = 0; i < this.length; i++) { var id = this[i][0]; if(typeof id === "number") alreadyImportedModules[id] = true; } for(i = 0; i < modules.length; i++) { var item = modules[i]; // skip already imported module // this implementation is not 100% perfect for weird media query combinations // when a module is imported multiple times with different media queries. // I hope this will never occur (Hey this way we have smaller bundles) if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { if(mediaQuery && !item[2]) { item[2] = mediaQuery; } else if(mediaQuery) { item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; } list.push(item); } } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; return '/*# ' + data + ' */'; } /***/ }), /***/ "./node_modules/debug/src/browser.js": /*!*******************************************!*\ !*** ./node_modules/debug/src/browser.js ***! \*******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** * This is the web browser implementation of `debug()`. * * Expose `debug()` as the module. */ exports = module.exports = __webpack_require__(/*! ./debug */ "./node_modules/debug/src/debug.js"); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; exports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage(); /** * Colors. */ exports.colors = [ 'lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson' ]; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { return true; } // is webkit? http://stackoverflow.com/a/16459606/376773 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || // is firebug? http://stackoverflow.com/a/398120/376773 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || // is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || // double check webkit in userAgent just in case we are in a worker (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ exports.formatters.j = function(v) { try { return JSON.stringify(v); } catch (err) { return '[UnexpectedJSONParseError]: ' + err.message; } }; /** * Colorize log arguments if enabled. * * @api public */ function formatArgs(args) { var useColors = this.useColors; args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff); if (!useColors) return; var c = 'color: ' + this.color; args.splice(1, 0, c, 'color: inherit') // the final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into var index = 0; var lastC = 0; args[0].replace(/%[a-zA-Z%]/g, function(match) { if ('%%' === match) return; index++; if ('%c' === match) { // we only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); args.splice(lastC, 0, c); } /** * Invokes `console.log()` when available. * No-op when `console.log` is not a "function". * * @api public */ function log() { // this hackery is required for IE8/9, where // the `console.log` function doesn't have 'apply' return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments); } /** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces) { try { if (null == namespaces) { exports.storage.removeItem('debug'); } else { exports.storage.debug = namespaces; } } catch(e) {} } /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load() { var r; try { r = exports.storage.debug; } catch(e) {} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG if (!r && typeof process !== 'undefined' && 'env' in process) { r = Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).DEBUG; } return r; } /** * Enable namespaces listed in `localStorage.debug` initially. */ exports.enable(load()); /** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage() { try { return window.localStorage; } catch (e) {} } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/debug/src/debug.js": /*!*****************************************!*\ !*** ./node_modules/debug/src/debug.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /** * This is the common logic for both the Node.js and web browser * implementations of `debug()`. * * Expose `debug()` as the module. */ exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; exports.humanize = __webpack_require__(/*! ms */ "./node_modules/ms/index.js"); /** * The currently active debug mode names, and names to skip. */ exports.names = []; exports.skips = []; /** * Map of special "%n" handling functions, for the debug "format" argument. * * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". */ exports.formatters = {}; /** * Previous log timestamp. */ var prevTime; /** * Select a color. * @param {String} namespace * @return {Number} * @api private */ function selectColor(namespace) { var hash = 0, i; for (i in namespace) { hash = ((hash << 5) - hash) + namespace.charCodeAt(i); hash |= 0; // Convert to 32bit integer } return exports.colors[Math.abs(hash) % exports.colors.length]; } /** * Create a debugger with the given `namespace`. * * @param {String} namespace * @return {Function} * @api public */ function createDebug(namespace) { function debug() { // disabled? if (!debug.enabled) return; var self = debug; // set `diff` timestamp var curr = +new Date(); var ms = curr - (prevTime || curr); self.diff = ms; self.prev = prevTime; self.curr = curr; prevTime = curr; // turn the `arguments` into a proper Array var args = new Array(arguments.length); for (var i = 0; i < args.length; i++) { args[i] = arguments[i]; } args[0] = exports.coerce(args[0]); if ('string' !== typeof args[0]) { // anything else let's inspect with %O args.unshift('%O'); } // apply any `formatters` transformations var index = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { // if we encounter an escaped % then don't increase the array index if (match === '%%') return match; index++; var formatter = exports.formatters[format]; if ('function' === typeof formatter) { var val = args[index]; match = formatter.call(self, val); // now we need to remove `args[index]` since it's inlined in the `format` args.splice(index, 1); index--; } return match; }); // apply env-specific formatting (colors, etc.) exports.formatArgs.call(self, args); var logFn = debug.log || exports.log || console.log.bind(console); logFn.apply(self, args); } debug.namespace = namespace; debug.enabled = exports.enabled(namespace); debug.useColors = exports.useColors(); debug.color = selectColor(namespace); // env-specific initialization logic for debug instances if ('function' === typeof exports.init) { exports.init(debug); } return debug; } /** * Enables a debug mode by namespaces. This can include modes * separated by a colon and wildcards. * * @param {String} namespaces * @api public */ function enable(namespaces) { exports.save(namespaces); exports.names = []; exports.skips = []; var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); var len = split.length; for (var i = 0; i < len; i++) { if (!split[i]) continue; // ignore empty strings namespaces = split[i].replace(/\*/g, '.*?'); if (namespaces[0] === '-') { exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); } else { exports.names.push(new RegExp('^' + namespaces + '$')); } } } /** * Disable debug output. * * @api public */ function disable() { exports.enable(''); } /** * Returns true if the given mode name is enabled, false otherwise. * * @param {String} name * @return {Boolean} * @api public */ function enabled(name) { var i, len; for (i = 0, len = exports.skips.length; i < len; i++) { if (exports.skips[i].test(name)) { return false; } } for (i = 0, len = exports.names.length; i < len; i++) { if (exports.names[i].test(name)) { return true; } } return false; } /** * Coerce `val`. * * @param {Mixed} val * @return {Mixed} * @api private */ function coerce(val) { if (val instanceof Error) return val.stack || val.message; return val; } /***/ }), /***/ "./node_modules/des.js/lib/des.js": /*!****************************************!*\ !*** ./node_modules/des.js/lib/des.js ***! \****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.utils = __webpack_require__(/*! ./des/utils */ "./node_modules/des.js/lib/des/utils.js"); exports.Cipher = __webpack_require__(/*! ./des/cipher */ "./node_modules/des.js/lib/des/cipher.js"); exports.DES = __webpack_require__(/*! ./des/des */ "./node_modules/des.js/lib/des/des.js"); exports.CBC = __webpack_require__(/*! ./des/cbc */ "./node_modules/des.js/lib/des/cbc.js"); exports.EDE = __webpack_require__(/*! ./des/ede */ "./node_modules/des.js/lib/des/ede.js"); /***/ }), /***/ "./node_modules/des.js/lib/des/cbc.js": /*!********************************************!*\ !*** ./node_modules/des.js/lib/des/cbc.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var proto = {}; function CBCState(iv) { assert.equal(iv.length, 8, 'Invalid IV length'); this.iv = new Array(8); for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i]; } function instantiate(Base) { function CBC(options) { Base.call(this, options); this._cbcInit(); } inherits(CBC, Base); var keys = Object.keys(proto); for (var i = 0; i < keys.length; i++) { var key = keys[i]; CBC.prototype[key] = proto[key]; } CBC.create = function create(options) { return new CBC(options); }; return CBC; } exports.instantiate = instantiate; proto._cbcInit = function _cbcInit() { var state = new CBCState(this.options.iv); this._cbcState = state; }; proto._update = function _update(inp, inOff, out, outOff) { var state = this._cbcState; var superProto = this.constructor.super_.prototype; var iv = state.iv; if (this.type === 'encrypt') { for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i]; superProto._update.call(this, iv, 0, out, outOff); for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i]; } else { superProto._update.call(this, inp, inOff, out, outOff); for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i]; for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i]; } }; /***/ }), /***/ "./node_modules/des.js/lib/des/cipher.js": /*!***********************************************!*\ !*** ./node_modules/des.js/lib/des/cipher.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); function Cipher(options) { this.options = options; this.type = this.options.type; this.blockSize = 8; this._init(); this.buffer = new Array(this.blockSize); this.bufferOff = 0; } module.exports = Cipher; Cipher.prototype._init = function _init() { // Might be overrided }; Cipher.prototype.update = function update(data) { if (data.length === 0) return []; if (this.type === 'decrypt') return this._updateDecrypt(data); else return this._updateEncrypt(data); }; Cipher.prototype._buffer = function _buffer(data, off) { // Append data to buffer var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i]; this.bufferOff += min; // Shift next return min; }; Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { this._update(this.buffer, 0, out, off); this.bufferOff = 0; return this.blockSize; }; Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { var inputOff = 0; var outputOff = 0; var count = ((this.bufferOff + data.length) / this.blockSize) | 0; var out = new Array(count * this.blockSize); if (this.bufferOff !== 0) { inputOff += this._buffer(data, inputOff); if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff); } // Write blocks var max = data.length - ((data.length - inputOff) % this.blockSize); for (; inputOff < max; inputOff += this.blockSize) { this._update(data, inputOff, out, outputOff); outputOff += this.blockSize; } // Queue rest for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff]; return out; }; Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { var inputOff = 0; var outputOff = 0; var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal for (; count > 0; count--) { inputOff += this._buffer(data, inputOff); outputOff += this._flushBuffer(out, outputOff); } // Buffer rest of the input inputOff += this._buffer(data, inputOff); return out; }; Cipher.prototype.final = function final(buffer) { var first; if (buffer) first = this.update(buffer); var last; if (this.type === 'encrypt') last = this._finalEncrypt(); else last = this._finalDecrypt(); if (first) return first.concat(last); else return last; }; Cipher.prototype._pad = function _pad(buffer, off) { if (off === 0) return false; while (off < buffer.length) buffer[off++] = 0; return true; }; Cipher.prototype._finalEncrypt = function _finalEncrypt() { if (!this._pad(this.buffer, this.bufferOff)) return []; var out = new Array(this.blockSize); this._update(this.buffer, 0, out, 0); return out; }; Cipher.prototype._unpad = function _unpad(buffer) { return buffer; }; Cipher.prototype._finalDecrypt = function _finalDecrypt() { assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt'); var out = new Array(this.blockSize); this._flushBuffer(out, 0); return this._unpad(out); }; /***/ }), /***/ "./node_modules/des.js/lib/des/des.js": /*!********************************************!*\ !*** ./node_modules/des.js/lib/des/des.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var des = __webpack_require__(/*! ../des */ "./node_modules/des.js/lib/des.js"); var utils = des.utils; var Cipher = des.Cipher; function DESState() { this.tmp = new Array(2); this.keys = null; } function DES(options) { Cipher.call(this, options); var state = new DESState(); this._desState = state; this.deriveKeys(state, options.key); } inherits(DES, Cipher); module.exports = DES; DES.create = function create(options) { return new DES(options); }; var shiftTable = [ 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 ]; DES.prototype.deriveKeys = function deriveKeys(state, key) { state.keys = new Array(16 * 2); assert.equal(key.length, this.blockSize, 'Invalid key length'); var kL = utils.readUInt32BE(key, 0); var kR = utils.readUInt32BE(key, 4); utils.pc1(kL, kR, state.tmp, 0); kL = state.tmp[0]; kR = state.tmp[1]; for (var i = 0; i < state.keys.length; i += 2) { var shift = shiftTable[i >>> 1]; kL = utils.r28shl(kL, shift); kR = utils.r28shl(kR, shift); utils.pc2(kL, kR, state.keys, i); } }; DES.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._desState; var l = utils.readUInt32BE(inp, inOff); var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation utils.ip(l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0); else this._decrypt(state, l, r, state.tmp, 0); l = state.tmp[0]; r = state.tmp[1]; utils.writeUInt32BE(out, l, outOff); utils.writeUInt32BE(out, r, outOff + 4); }; DES.prototype._pad = function _pad(buffer, off) { var value = buffer.length - off; for (var i = off; i < buffer.length; i++) buffer[i] = value; return true; }; DES.prototype._unpad = function _unpad(buffer) { var pad = buffer[buffer.length - 1]; for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad); return buffer.slice(0, buffer.length - pad); }; DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { var l = lStart; var r = rStart; // Apply f() x16 times for (var i = 0; i < state.keys.length; i += 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(r, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = r; r = (l ^ f) >>> 0; l = t; } // Reverse Initial Permutation utils.rip(r, l, out, off); }; DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { var l = rStart; var r = lStart; // Apply f() x16 times for (var i = state.keys.length - 2; i >= 0; i -= 2) { var keyL = state.keys[i]; var keyR = state.keys[i + 1]; // f(r, k) utils.expand(l, state.tmp, 0); keyL ^= state.tmp[0]; keyR ^= state.tmp[1]; var s = utils.substitute(keyL, keyR); var f = utils.permute(s); var t = l; l = (r ^ f) >>> 0; r = t; } // Reverse Initial Permutation utils.rip(l, r, out, off); }; /***/ }), /***/ "./node_modules/des.js/lib/des/ede.js": /*!********************************************!*\ !*** ./node_modules/des.js/lib/des/ede.js ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var des = __webpack_require__(/*! ../des */ "./node_modules/des.js/lib/des.js"); var Cipher = des.Cipher; var DES = des.DES; function EDEState(type, key) { assert.equal(key.length, 24, 'Invalid key length'); var k1 = key.slice(0, 8); var k2 = key.slice(8, 16); var k3 = key.slice(16, 24); if (type === 'encrypt') { this.ciphers = [ DES.create({ type: 'encrypt', key: k1 }), DES.create({ type: 'decrypt', key: k2 }), DES.create({ type: 'encrypt', key: k3 }) ]; } else { this.ciphers = [ DES.create({ type: 'decrypt', key: k3 }), DES.create({ type: 'encrypt', key: k2 }), DES.create({ type: 'decrypt', key: k1 }) ]; } } function EDE(options) { Cipher.call(this, options); var state = new EDEState(this.type, this.options.key); this._edeState = state; } inherits(EDE, Cipher); module.exports = EDE; EDE.create = function create(options) { return new EDE(options); }; EDE.prototype._update = function _update(inp, inOff, out, outOff) { var state = this._edeState; state.ciphers[0]._update(inp, inOff, out, outOff); state.ciphers[1]._update(out, outOff, out, outOff); state.ciphers[2]._update(out, outOff, out, outOff); }; EDE.prototype._pad = DES.prototype._pad; EDE.prototype._unpad = DES.prototype._unpad; /***/ }), /***/ "./node_modules/des.js/lib/des/utils.js": /*!**********************************************!*\ !*** ./node_modules/des.js/lib/des/utils.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.readUInt32BE = function readUInt32BE(bytes, off) { var res = (bytes[0 + off] << 24) | (bytes[1 + off] << 16) | (bytes[2 + off] << 8) | bytes[3 + off]; return res >>> 0; }; exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { bytes[0 + off] = value >>> 24; bytes[1 + off] = (value >>> 16) & 0xff; bytes[2 + off] = (value >>> 8) & 0xff; bytes[3 + off] = value & 0xff; }; exports.ip = function ip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 6; i >= 0; i -= 2) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 6; i >= 0; i -= 2) { for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; } for (var j = 1; j <= 25; j += 8) { outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.rip = function rip(inL, inR, out, off) { var outL = 0; var outR = 0; for (var i = 0; i < 4; i++) { for (var j = 24; j >= 0; j -= 8) { outL <<= 1; outL |= (inR >>> (j + i)) & 1; outL <<= 1; outL |= (inL >>> (j + i)) & 1; } } for (var i = 4; i < 8; i++) { for (var j = 24; j >= 0; j -= 8) { outR <<= 1; outR |= (inR >>> (j + i)) & 1; outR <<= 1; outR |= (inL >>> (j + i)) & 1; } } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.pc1 = function pc1(inL, inR, out, off) { var outL = 0; var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63 // 6, 14, 22, 30, 39, 47, 55, 63 // 5, 13, 21, 29, 39, 47, 55, 63 // 4, 12, 20, 28 for (var i = 7; i >= 5; i--) { for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outL <<= 1; outL |= (inR >> (j + i)) & 1; } // 1, 9, 17, 25, 33, 41, 49, 57 // 2, 10, 18, 26, 34, 42, 50, 58 // 3, 11, 19, 27, 35, 43, 51, 59 // 36, 44, 52, 60 for (var i = 1; i <= 3; i++) { for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inR >> (j + i)) & 1; } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } } for (var j = 0; j <= 24; j += 8) { outR <<= 1; outR |= (inL >> (j + i)) & 1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.r28shl = function r28shl(num, shift) { return ((num << shift) & 0xfffffff) | (num >>> (28 - shift)); }; var pc2table = [ // inL => outL 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24 ]; exports.pc2 = function pc2(inL, inR, out, off) { var outL = 0; var outR = 0; var len = pc2table.length >>> 1; for (var i = 0; i < len; i++) { outL <<= 1; outL |= (inL >>> pc2table[i]) & 0x1; } for (var i = len; i < pc2table.length; i++) { outR <<= 1; outR |= (inR >>> pc2table[i]) & 0x1; } out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; exports.expand = function expand(r, out, off) { var outL = 0; var outR = 0; outL = ((r & 1) << 5) | (r >>> 27); for (var i = 23; i >= 15; i -= 4) { outL <<= 6; outL |= (r >>> i) & 0x3f; } for (var i = 11; i >= 3; i -= 4) { outR |= (r >>> i) & 0x3f; outR <<= 6; } outR |= ((r & 0x1f) << 1) | (r >>> 31); out[off + 0] = outL >>> 0; out[off + 1] = outR >>> 0; }; var sTable = [ 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 ]; exports.substitute = function substitute(inL, inR) { var out = 0; for (var i = 0; i < 4; i++) { var b = (inL >>> (18 - i * 6)) & 0x3f; var sb = sTable[i * 0x40 + b]; out <<= 4; out |= sb; } for (var i = 0; i < 4; i++) { var b = (inR >>> (18 - i * 6)) & 0x3f; var sb = sTable[4 * 0x40 + i * 0x40 + b]; out <<= 4; out |= sb; } return out >>> 0; }; var permuteTable = [ 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7 ]; exports.permute = function permute(num) { var out = 0; for (var i = 0; i < permuteTable.length; i++) { out <<= 1; out |= (num >>> permuteTable[i]) & 0x1; } return out >>> 0; }; exports.padSplit = function padSplit(num, size, group) { var str = num.toString(2); while (str.length < size) str = '0' + str; var out = []; for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group)); return out.join(' '); }; /***/ }), /***/ "./node_modules/detect-element-overflow/dist/entry.js": /*!************************************************************!*\ !*** ./node_modules/detect-element-overflow/dist/entry.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var detectElementOverflow = function detectElementOverflow(element, container) { return { get collidedTop() { return element.getBoundingClientRect().top < container.getBoundingClientRect().top; }, get collidedBottom() { return element.getBoundingClientRect().bottom > container.getBoundingClientRect().bottom; }, get collidedLeft() { return element.getBoundingClientRect().left < container.getBoundingClientRect().left; }, get collidedRight() { return element.getBoundingClientRect().right > container.getBoundingClientRect().right; }, get overflowTop() { return container.getBoundingClientRect().top - element.getBoundingClientRect().top; }, get overflowBottom() { return element.getBoundingClientRect().bottom - container.getBoundingClientRect().bottom; }, get overflowLeft() { return container.getBoundingClientRect().left - element.getBoundingClientRect().left; }, get overflowRight() { return element.getBoundingClientRect().right - container.getBoundingClientRect().right; } }; }; exports.default = detectElementOverflow; /***/ }), /***/ "./node_modules/diffie-hellman/browser.js": /*!************************************************!*\ !*** ./node_modules/diffie-hellman/browser.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(/*! ./lib/generatePrime */ "./node_modules/diffie-hellman/lib/generatePrime.js") var primes = __webpack_require__(/*! ./lib/primes.json */ "./node_modules/diffie-hellman/lib/primes.json") var DH = __webpack_require__(/*! ./lib/dh */ "./node_modules/diffie-hellman/lib/dh.js") function getDiffieHellman (mod) { var prime = new Buffer(primes[mod].prime, 'hex') var gen = new Buffer(primes[mod].gen, 'hex') return new DH(prime, gen) } var ENCODINGS = { 'binary': true, 'hex': true, 'base64': true } function createDiffieHellman (prime, enc, generator, genc) { if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { return createDiffieHellman(prime, 'binary', enc, generator) } enc = enc || 'binary' genc = genc || 'binary' generator = generator || new Buffer([2]) if (!Buffer.isBuffer(generator)) { generator = new Buffer(generator, genc) } if (typeof prime === 'number') { return new DH(generatePrime(prime, generator), generator, true) } if (!Buffer.isBuffer(prime)) { prime = new Buffer(prime, enc) } return new DH(prime, generator, true) } exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/diffie-hellman/lib/dh.js": /*!***********************************************!*\ !*** ./node_modules/diffie-hellman/lib/dh.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var MillerRabin = __webpack_require__(/*! miller-rabin */ "./node_modules/miller-rabin/lib/mr.js"); var millerRabin = new MillerRabin(); var TWENTYFOUR = new BN(24); var ELEVEN = new BN(11); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var primes = __webpack_require__(/*! ./generatePrime */ "./node_modules/diffie-hellman/lib/generatePrime.js"); var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); module.exports = DH; function setPublicKey(pub, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(pub)) { pub = new Buffer(pub, enc); } this._pub = new BN(pub); return this; } function setPrivateKey(priv, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(priv)) { priv = new Buffer(priv, enc); } this._priv = new BN(priv); return this; } var primeCache = {}; function checkPrime(prime, generator) { var gen = generator.toString('hex'); var hex = [gen, prime.toString(16)].join('_'); if (hex in primeCache) { return primeCache[hex]; } var error = 0; if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) { //not a prime so +1 error += 1; if (gen === '02' || gen === '05') { // we'd be able to check the generator // it would fail so +8 error += 8; } else { //we wouldn't be able to test the generator // so +4 error += 4; } primeCache[hex] = error; return error; } if (!millerRabin.test(prime.shrn(1))) { //not a safe prime error += 2; } var rem; switch (gen) { case '02': if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { // unsuidable generator error += 8; } break; case '05': rem = prime.mod(TEN); if (rem.cmp(THREE) && rem.cmp(SEVEN)) { // prime mod 10 needs to equal 3 or 7 error += 8; } break; default: error += 4; } primeCache[hex] = error; return error; } function DH(prime, generator, malleable) { this.setGenerator(generator); this.__prime = new BN(prime); this._prime = BN.mont(this.__prime); this._primeLen = prime.length; this._pub = undefined; this._priv = undefined; this._primeCode = undefined; if (malleable) { this.setPublicKey = setPublicKey; this.setPrivateKey = setPrivateKey; } else { this._primeCode = 8; } } Object.defineProperty(DH.prototype, 'verifyError', { enumerable: true, get: function () { if (typeof this._primeCode !== 'number') { this._primeCode = checkPrime(this.__prime, this.__gen); } return this._primeCode; } }); DH.prototype.generateKeys = function () { if (!this._priv) { this._priv = new BN(randomBytes(this._primeLen)); } this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed(); return this.getPublicKey(); }; DH.prototype.computeSecret = function (other) { other = new BN(other); other = other.toRed(this._prime); var secret = other.redPow(this._priv).fromRed(); var out = new Buffer(secret.toArray()); var prime = this.getPrime(); if (out.length < prime.length) { var front = new Buffer(prime.length - out.length); front.fill(0); out = Buffer.concat([front, out]); } return out; }; DH.prototype.getPublicKey = function getPublicKey(enc) { return formatReturnValue(this._pub, enc); }; DH.prototype.getPrivateKey = function getPrivateKey(enc) { return formatReturnValue(this._priv, enc); }; DH.prototype.getPrime = function (enc) { return formatReturnValue(this.__prime, enc); }; DH.prototype.getGenerator = function (enc) { return formatReturnValue(this._gen, enc); }; DH.prototype.setGenerator = function (gen, enc) { enc = enc || 'utf8'; if (!Buffer.isBuffer(gen)) { gen = new Buffer(gen, enc); } this.__gen = gen; this._gen = new BN(gen); return this; }; function formatReturnValue(bn, enc) { var buf = new Buffer(bn.toArray()); if (!enc) { return buf; } else { return buf.toString(enc); } } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/diffie-hellman/lib/generatePrime.js": /*!**********************************************************!*\ !*** ./node_modules/diffie-hellman/lib/generatePrime.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js"); module.exports = findPrime; findPrime.simpleSieve = simpleSieve; findPrime.fermatTest = fermatTest; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var TWENTYFOUR = new BN(24); var MillerRabin = __webpack_require__(/*! miller-rabin */ "./node_modules/miller-rabin/lib/mr.js"); var millerRabin = new MillerRabin(); var ONE = new BN(1); var TWO = new BN(2); var FIVE = new BN(5); var SIXTEEN = new BN(16); var EIGHT = new BN(8); var TEN = new BN(10); var THREE = new BN(3); var SEVEN = new BN(7); var ELEVEN = new BN(11); var FOUR = new BN(4); var TWELVE = new BN(12); var primes = null; function _getPrimes() { if (primes !== null) return primes; var limit = 0x100000; var res = []; res[0] = 2; for (var i = 1, k = 3; k < limit; k += 2) { var sqrt = Math.ceil(Math.sqrt(k)); for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break; if (i !== j && res[j] <= sqrt) continue; res[i++] = k; } primes = res; return res; } function simpleSieve(p) { var primes = _getPrimes(); for (var i = 0; i < primes.length; i++) if (p.modn(primes[i]) === 0) { if (p.cmpn(primes[i]) === 0) { return true; } else { return false; } } return true; } function fermatTest(p) { var red = BN.mont(p); return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0; } function findPrime(bits, gen) { if (bits < 16) { // this is what openssl does if (gen === 2 || gen === 5) { return new BN([0x8c, 0x7b]); } else { return new BN([0x8c, 0x27]); } } gen = new BN(gen); var num, n2; while (true) { num = new BN(randomBytes(Math.ceil(bits / 8))); while (num.bitLength() > bits) { num.ishrn(1); } if (num.isEven()) { num.iadd(ONE); } if (!num.testn(1)) { num.iadd(TWO); } if (!gen.cmp(TWO)) { while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { num.iadd(FOUR); } } else if (!gen.cmp(FIVE)) { while (num.mod(TEN).cmp(THREE)) { num.iadd(FOUR); } } n2 = num.shrn(1); if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) { return num; } } } /***/ }), /***/ "./node_modules/diffie-hellman/lib/primes.json": /*!*****************************************************!*\ !*** ./node_modules/diffie-hellman/lib/primes.json ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}} /***/ }), /***/ "./node_modules/dom-align/es/adjustForViewport.js": /*!********************************************************!*\ !*** ./node_modules/dom-align/es/adjustForViewport.js ***! \********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/dom-align/es/utils.js"); function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) { var pos = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].clone(elFuturePos); var size = { width: elRegion.width, height: elRegion.height }; if (overflow.adjustX && pos.left < visibleRect.left) { pos.left = visibleRect.left; } // Left edge inside and right edge outside viewport, try to resize it. if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) { size.width -= pos.left + size.width - visibleRect.right; } // Right edge outside viewport, try to move it. if (overflow.adjustX && pos.left + size.width > visibleRect.right) { // 保证左边界和可视区域左边界对齐 pos.left = Math.max(visibleRect.right - size.width, visibleRect.left); } // Top edge outside viewport, try to move it. if (overflow.adjustY && pos.top < visibleRect.top) { pos.top = visibleRect.top; } // Top edge inside and bottom edge outside viewport, try to resize it. if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) { size.height -= pos.top + size.height - visibleRect.bottom; } // Bottom edge outside viewport, try to move it. if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) { // 保证上边界和可视区域上边界对齐 pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top); } return __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].mix(pos, size); } /* harmony default export */ __webpack_exports__["a"] = (adjustForViewport); /***/ }), /***/ "./node_modules/dom-align/es/align/align.js": /*!**************************************************!*\ !*** ./node_modules/dom-align/es/align/align.js ***! \**************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ../utils */ "./node_modules/dom-align/es/utils.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getVisibleRectForElement__ = __webpack_require__(/*! ../getVisibleRectForElement */ "./node_modules/dom-align/es/getVisibleRectForElement.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adjustForViewport__ = __webpack_require__(/*! ../adjustForViewport */ "./node_modules/dom-align/es/adjustForViewport.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__getRegion__ = __webpack_require__(/*! ../getRegion */ "./node_modules/dom-align/es/getRegion.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__getElFuturePos__ = __webpack_require__(/*! ../getElFuturePos */ "./node_modules/dom-align/es/getElFuturePos.js"); /** * align dom node flexibly * @author yiminghe@gmail.com */ // http://yiminghe.iteye.com/blog/1124720 function isFailX(elFuturePos, elRegion, visibleRect) { return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right; } function isFailY(elFuturePos, elRegion, visibleRect) { return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom; } function isCompleteFailX(elFuturePos, elRegion, visibleRect) { return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left; } function isCompleteFailY(elFuturePos, elRegion, visibleRect) { return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top; } function flip(points, reg, map) { var ret = []; __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].each(points, function (p) { ret.push(p.replace(reg, function (m) { return map[m]; })); }); return ret; } function flipOffset(offset, index) { offset[index] = -offset[index]; return offset; } function convertOffset(str, offsetLen) { var n = void 0; if (/%$/.test(str)) { n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen; } else { n = parseInt(str, 10); } return n || 0; } function normalizeOffset(offset, el) { offset[0] = convertOffset(offset[0], el.width); offset[1] = convertOffset(offset[1], el.height); } /** * @param el * @param tgtRegion 参照节点所占的区域: { left, top, width, height } * @param align */ function doAlign(el, tgtRegion, align, isTgtRegionVisible) { var points = align.points; var offset = align.offset || [0, 0]; var targetOffset = align.targetOffset || [0, 0]; var overflow = align.overflow; var source = align.source || el; offset = [].concat(offset); targetOffset = [].concat(targetOffset); overflow = overflow || {}; var newOverflowCfg = {}; var fail = 0; // 当前节点可以被放置的显示区域 var visibleRect = Object(__WEBPACK_IMPORTED_MODULE_1__getVisibleRectForElement__["a" /* default */])(source); // 当前节点所占的区域, left/top/width/height var elRegion = Object(__WEBPACK_IMPORTED_MODULE_3__getRegion__["a" /* default */])(source); // 将 offset 转换成数值,支持百分比 normalizeOffset(offset, elRegion); normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置 var elFuturePos = Object(__WEBPACK_IMPORTED_MODULE_4__getElFuturePos__["a" /* default */])(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域 var newElRegion = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整 if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) { if (overflow.adjustX) { // 如果横向不能放下 if (isFailX(elFuturePos, elRegion, visibleRect)) { // 对齐位置反下 var newPoints = flip(points, /[lr]/ig, { l: 'r', r: 'l' }); // 偏移量也反下 var newOffset = flipOffset(offset, 0); var newTargetOffset = flipOffset(targetOffset, 0); var newElFuturePos = Object(__WEBPACK_IMPORTED_MODULE_4__getElFuturePos__["a" /* default */])(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset); if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) { fail = 1; points = newPoints; offset = newOffset; targetOffset = newTargetOffset; } } } if (overflow.adjustY) { // 如果纵向不能放下 if (isFailY(elFuturePos, elRegion, visibleRect)) { // 对齐位置反下 var _newPoints = flip(points, /[tb]/ig, { t: 'b', b: 't' }); // 偏移量也反下 var _newOffset = flipOffset(offset, 1); var _newTargetOffset = flipOffset(targetOffset, 1); var _newElFuturePos = Object(__WEBPACK_IMPORTED_MODULE_4__getElFuturePos__["a" /* default */])(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset); if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) { fail = 1; points = _newPoints; offset = _newOffset; targetOffset = _newTargetOffset; } } } // 如果失败,重新计算当前节点将要被放置的位置 if (fail) { elFuturePos = Object(__WEBPACK_IMPORTED_MODULE_4__getElFuturePos__["a" /* default */])(elRegion, tgtRegion, points, offset, targetOffset); __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].mix(newElRegion, elFuturePos); } var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect); var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下: // 1. 复原修改过的定位参数 if (isStillFailX || isStillFailY) { points = align.points; offset = align.offset || [0, 0]; targetOffset = align.targetOffset || [0, 0]; } // 2. 只有指定了可以调整当前方向才调整 newOverflowCfg.adjustX = overflow.adjustX && isStillFailX; newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度 if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) { newElRegion = Object(__WEBPACK_IMPORTED_MODULE_2__adjustForViewport__["a" /* default */])(elFuturePos, elRegion, visibleRect, newOverflowCfg); } } // need judge to in case set fixed with in css on height auto element if (newElRegion.width !== elRegion.width) { __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(source, 'width', __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].width(source) + newElRegion.width - elRegion.width); } if (newElRegion.height !== elRegion.height) { __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(source, 'height', __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].height(source) + newElRegion.height - elRegion.height); } // https://github.com/kissyteam/kissy/issues/190 // 相对于屏幕位置没变,而 left/top 变了 // 例如
__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].offset(source, { left: newElRegion.left, top: newElRegion.top }, { useCssRight: align.useCssRight, useCssBottom: align.useCssBottom, useCssTransform: align.useCssTransform, ignoreShake: align.ignoreShake }); return { points: points, offset: offset, targetOffset: targetOffset, overflow: newOverflowCfg }; } /* harmony default export */ __webpack_exports__["a"] = (doAlign); /** * 2012-04-26 yiminghe@gmail.com * - 优化智能对齐算法 * - 慎用 resizeXX * * 2011-07-13 yiminghe@gmail.com note: * - 增加智能对齐,以及大小调整选项 **/ /***/ }), /***/ "./node_modules/dom-align/es/align/alignElement.js": /*!*********************************************************!*\ !*** ./node_modules/dom-align/es/align/alignElement.js ***! \*********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__align__ = __webpack_require__(/*! ./align */ "./node_modules/dom-align/es/align/align.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getOffsetParent__ = __webpack_require__(/*! ../getOffsetParent */ "./node_modules/dom-align/es/getOffsetParent.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__getVisibleRectForElement__ = __webpack_require__(/*! ../getVisibleRectForElement */ "./node_modules/dom-align/es/getVisibleRectForElement.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__getRegion__ = __webpack_require__(/*! ../getRegion */ "./node_modules/dom-align/es/getRegion.js"); function isOutOfVisibleRect(target) { var visibleRect = Object(__WEBPACK_IMPORTED_MODULE_2__getVisibleRectForElement__["a" /* default */])(target); var targetRegion = Object(__WEBPACK_IMPORTED_MODULE_3__getRegion__["a" /* default */])(target); return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom; } function alignElement(el, refNode, align) { var target = align.target || refNode; var refNodeRegion = Object(__WEBPACK_IMPORTED_MODULE_3__getRegion__["a" /* default */])(target); var isTargetNotOutOfVisible = !isOutOfVisibleRect(target); return Object(__WEBPACK_IMPORTED_MODULE_0__align__["a" /* default */])(el, refNodeRegion, align, isTargetNotOutOfVisible); } alignElement.__getOffsetParent = __WEBPACK_IMPORTED_MODULE_1__getOffsetParent__["a" /* default */]; alignElement.__getVisibleRectForElement = __WEBPACK_IMPORTED_MODULE_2__getVisibleRectForElement__["a" /* default */]; /* harmony default export */ __webpack_exports__["a"] = (alignElement); /***/ }), /***/ "./node_modules/dom-align/es/align/alignPoint.js": /*!*******************************************************!*\ !*** ./node_modules/dom-align/es/align/alignPoint.js ***! \*******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ../utils */ "./node_modules/dom-align/es/utils.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__align__ = __webpack_require__(/*! ./align */ "./node_modules/dom-align/es/align/align.js"); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /** * `tgtPoint`: { pageX, pageY } or { clientX, clientY }. * If client position provided, will internal convert to page position. */ function alignPoint(el, tgtPoint, align) { var pageX = void 0; var pageY = void 0; var doc = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getDocument(el); var win = doc.defaultView || doc.parentWindow; var scrollX = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollLeft(win); var scrollY = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollTop(win); var viewportWidth = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportWidth(win); var viewportHeight = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportHeight(win); if ('pageX' in tgtPoint) { pageX = tgtPoint.pageX; } else { pageX = scrollX + tgtPoint.clientX; } if ('pageY' in tgtPoint) { pageY = tgtPoint.pageY; } else { pageY = scrollY + tgtPoint.clientY; } var tgtRegion = { left: pageX, top: pageY, width: 0, height: 0 }; var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point var points = [align.points[0], 'cc']; return Object(__WEBPACK_IMPORTED_MODULE_1__align__["a" /* default */])(el, tgtRegion, _extends({}, align, { points: points }), pointInView); } /* harmony default export */ __webpack_exports__["a"] = (alignPoint); /***/ }), /***/ "./node_modules/dom-align/es/getAlignOffset.js": /*!*****************************************************!*\ !*** ./node_modules/dom-align/es/getAlignOffset.js ***! \*****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /** * 获取 node 上的 align 对齐点 相对于页面的坐标 */ function getAlignOffset(region, align) { var V = align.charAt(0); var H = align.charAt(1); var w = region.width; var h = region.height; var x = region.left; var y = region.top; if (V === 'c') { y += h / 2; } else if (V === 'b') { y += h; } if (H === 'c') { x += w / 2; } else if (H === 'r') { x += w; } return { left: x, top: y }; } /* harmony default export */ __webpack_exports__["a"] = (getAlignOffset); /***/ }), /***/ "./node_modules/dom-align/es/getElFuturePos.js": /*!*****************************************************!*\ !*** ./node_modules/dom-align/es/getElFuturePos.js ***! \*****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__getAlignOffset__ = __webpack_require__(/*! ./getAlignOffset */ "./node_modules/dom-align/es/getAlignOffset.js"); function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) { var p1 = Object(__WEBPACK_IMPORTED_MODULE_0__getAlignOffset__["a" /* default */])(refNodeRegion, points[1]); var p2 = Object(__WEBPACK_IMPORTED_MODULE_0__getAlignOffset__["a" /* default */])(elRegion, points[0]); var diff = [p2.left - p1.left, p2.top - p1.top]; return { left: elRegion.left - diff[0] + offset[0] - targetOffset[0], top: elRegion.top - diff[1] + offset[1] - targetOffset[1] }; } /* harmony default export */ __webpack_exports__["a"] = (getElFuturePos); /***/ }), /***/ "./node_modules/dom-align/es/getOffsetParent.js": /*!******************************************************!*\ !*** ./node_modules/dom-align/es/getOffsetParent.js ***! \******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/dom-align/es/utils.js"); /** * 得到会导致元素显示不全的祖先元素 */ function getOffsetParent(element) { if (__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].isWindow(element) || element.nodeType === 9) { return null; } // ie 这个也不是完全可行 /*
元素 6 高 100px 宽 50px
*/ // element.offsetParent does the right thing in ie7 and below. Return parent with layout! // In other browsers it only includes elements with position absolute, relative or // fixed, not elements with overflow set to auto or scroll. // if (UA.ie && ieMode < 8) { // return element.offsetParent; // } // 统一的 offsetParent 方法 var doc = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getDocument(element); var body = doc.body; var parent = void 0; var positionStyle = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(element, 'position'); var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute'; if (!skipStatic) { return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode; } for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) { positionStyle = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(parent, 'position'); if (positionStyle !== 'static') { return parent; } } return null; } /* harmony default export */ __webpack_exports__["a"] = (getOffsetParent); /***/ }), /***/ "./node_modules/dom-align/es/getRegion.js": /*!************************************************!*\ !*** ./node_modules/dom-align/es/getRegion.js ***! \************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/dom-align/es/utils.js"); function getRegion(node) { var offset = void 0; var w = void 0; var h = void 0; if (!__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].isWindow(node) && node.nodeType !== 9) { offset = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].offset(node); w = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].outerWidth(node); h = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].outerHeight(node); } else { var win = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindow(node); offset = { left: __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollLeft(win), top: __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollTop(win) }; w = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportWidth(win); h = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportHeight(win); } offset.width = w; offset.height = h; return offset; } /* harmony default export */ __webpack_exports__["a"] = (getRegion); /***/ }), /***/ "./node_modules/dom-align/es/getVisibleRectForElement.js": /*!***************************************************************!*\ !*** ./node_modules/dom-align/es/getVisibleRectForElement.js ***! \***************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/dom-align/es/utils.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getOffsetParent__ = __webpack_require__(/*! ./getOffsetParent */ "./node_modules/dom-align/es/getOffsetParent.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__isAncestorFixed__ = __webpack_require__(/*! ./isAncestorFixed */ "./node_modules/dom-align/es/isAncestorFixed.js"); /** * 获得元素的显示部分的区域 */ function getVisibleRectForElement(element) { var visibleRect = { left: 0, right: Infinity, top: 0, bottom: Infinity }; var el = Object(__WEBPACK_IMPORTED_MODULE_1__getOffsetParent__["a" /* default */])(element); var doc = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getDocument(element); var win = doc.defaultView || doc.parentWindow; var body = doc.body; var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for // all scrollable containers. while (el) { // clientWidth is zero for inline block elements in ie. if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire // viewport. In some browsers, el.offsetParent may be // document.documentElement, so check for that too. el !== body && el !== documentElement && __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(el, 'overflow') !== 'visible') { var pos = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].offset(el); // add border pos.left += el.clientLeft; pos.top += el.clientTop; visibleRect.top = Math.max(visibleRect.top, pos.top); visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar pos.left + el.clientWidth); visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight); visibleRect.left = Math.max(visibleRect.left, pos.left); } else if (el === body || el === documentElement) { break; } el = Object(__WEBPACK_IMPORTED_MODULE_1__getOffsetParent__["a" /* default */])(el); } // Set element position to fixed // make sure absolute element itself don't affect it's visible area // https://github.com/ant-design/ant-design/issues/7601 var originalPosition = null; if (!__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].isWindow(element) && element.nodeType !== 9) { originalPosition = element.style.position; var position = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(element, 'position'); if (position === 'absolute') { element.style.position = 'fixed'; } } var scrollX = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollLeft(win); var scrollY = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getWindowScrollTop(win); var viewportWidth = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportWidth(win); var viewportHeight = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].viewportHeight(win); var documentWidth = documentElement.scrollWidth; var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX. // We should cut this ourself. var bodyStyle = window.getComputedStyle(body); if (bodyStyle.overflowX === 'hidden') { documentWidth = win.innerWidth; } if (bodyStyle.overflowY === 'hidden') { documentHeight = win.innerHeight; } // Reset element position after calculate the visible area if (element.style) { element.style.position = originalPosition; } if (Object(__WEBPACK_IMPORTED_MODULE_2__isAncestorFixed__["a" /* default */])(element)) { // Clip by viewport's size. visibleRect.left = Math.max(visibleRect.left, scrollX); visibleRect.top = Math.max(visibleRect.top, scrollY); visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth); visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight); } else { // Clip by document's size. var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth); visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth); var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight); visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight); } return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null; } /* harmony default export */ __webpack_exports__["a"] = (getVisibleRectForElement); /***/ }), /***/ "./node_modules/dom-align/es/index.js": /*!********************************************!*\ !*** ./node_modules/dom-align/es/index.js ***! \********************************************/ /*! exports provided: alignElement, alignPoint, default */ /*! exports used: alignElement, alignPoint */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__align_alignElement__ = __webpack_require__(/*! ./align/alignElement */ "./node_modules/dom-align/es/align/alignElement.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__align_alignPoint__ = __webpack_require__(/*! ./align/alignPoint */ "./node_modules/dom-align/es/align/alignPoint.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__align_alignElement__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__align_alignPoint__["a"]; }); /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0__align_alignElement__["a" /* default */]); /***/ }), /***/ "./node_modules/dom-align/es/isAncestorFixed.js": /*!******************************************************!*\ !*** ./node_modules/dom-align/es/isAncestorFixed.js ***! \******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = isAncestorFixed; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(/*! ./utils */ "./node_modules/dom-align/es/utils.js"); function isAncestorFixed(element) { if (__WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].isWindow(element) || element.nodeType === 9) { return false; } var doc = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].getDocument(element); var body = doc.body; var parent = null; for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) { var positionStyle = __WEBPACK_IMPORTED_MODULE_0__utils__["a" /* default */].css(parent, 'position'); if (positionStyle === 'fixed') { return true; } } return false; } /***/ }), /***/ "./node_modules/dom-align/es/propertyUtils.js": /*!****************************************************!*\ !*** ./node_modules/dom-align/es/propertyUtils.js ***! \****************************************************/ /*! exports provided: getTransformName, setTransitionProperty, getTransitionProperty, getTransformXY, setTransformXY */ /*! exports used: getTransformName, getTransformXY, getTransitionProperty, setTransformXY, setTransitionProperty */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = getTransformName; /* harmony export (immutable) */ __webpack_exports__["e"] = setTransitionProperty; /* harmony export (immutable) */ __webpack_exports__["c"] = getTransitionProperty; /* harmony export (immutable) */ __webpack_exports__["b"] = getTransformXY; /* harmony export (immutable) */ __webpack_exports__["d"] = setTransformXY; var vendorPrefix = void 0; var jsCssMap = { Webkit: '-webkit-', Moz: '-moz-', // IE did it wrong again ... ms: '-ms-', O: '-o-' }; function getVendorPrefix() { if (vendorPrefix !== undefined) { return vendorPrefix; } vendorPrefix = ''; var style = document.createElement('p').style; var testProp = 'Transform'; for (var key in jsCssMap) { if (key + testProp in style) { vendorPrefix = key; } } return vendorPrefix; } function getTransitionName() { return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty'; } function getTransformName() { return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform'; } function setTransitionProperty(node, value) { var name = getTransitionName(); if (name) { node.style[name] = value; if (name !== 'transitionProperty') { node.style.transitionProperty = value; } } } function setTransform(node, value) { var name = getTransformName(); if (name) { node.style[name] = value; if (name !== 'transform') { node.style.transform = value; } } } function getTransitionProperty(node) { return node.style.transitionProperty || node.style[getTransitionName()]; } function getTransformXY(node) { var style = window.getComputedStyle(node, null); var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName()); if (transform && transform !== 'none') { var matrix = transform.replace(/[^0-9\-.,]/g, '').split(','); return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) }; } return { x: 0, y: 0 }; } var matrix2d = /matrix\((.*)\)/; var matrix3d = /matrix3d\((.*)\)/; function setTransformXY(node, xy) { var style = window.getComputedStyle(node, null); var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName()); if (transform && transform !== 'none') { var arr = void 0; var match2d = transform.match(matrix2d); if (match2d) { match2d = match2d[1]; arr = match2d.split(',').map(function (item) { return parseFloat(item, 10); }); arr[4] = xy.x; arr[5] = xy.y; setTransform(node, 'matrix(' + arr.join(',') + ')'); } else { var match3d = transform.match(matrix3d)[1]; arr = match3d.split(',').map(function (item) { return parseFloat(item, 10); }); arr[12] = xy.x; arr[13] = xy.y; setTransform(node, 'matrix3d(' + arr.join(',') + ')'); } } else { setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)'); } } /***/ }), /***/ "./node_modules/dom-align/es/utils.js": /*!********************************************!*\ !*** ./node_modules/dom-align/es/utils.js ***! \********************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__propertyUtils__ = __webpack_require__(/*! ./propertyUtils */ "./node_modules/dom-align/es/propertyUtils.js"); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; var getComputedStyleX = void 0; // https://stackoverflow.com/a/3485654/3040605 function forceRelayout(elem) { var originalStyle = elem.style.display; elem.style.display = 'none'; elem.offsetHeight; // eslint-disable-line elem.style.display = originalStyle; } function css(el, name, v) { var value = v; if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { for (var i in name) { if (name.hasOwnProperty(i)) { css(el, i, name[i]); } } return undefined; } if (typeof value !== 'undefined') { if (typeof value === 'number') { value = value + 'px'; } el.style[name] = value; return undefined; } return getComputedStyleX(el, name); } function getClientPosition(elem) { var box = void 0; var x = void 0; var y = void 0; var doc = elem.ownerDocument; var body = doc.body; var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式 box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确 // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin x = box.left; y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and // IE6 standards mode, this border can be overridden by setting the // document element's border to zero -- thus, we cannot rely on the // offset always being 2 pixels. // In quirks mode, the offset can be determined by querying the body's // clientLeft/clientTop, but in standards mode, it is found by querying // the document element's clientLeft/clientTop. Since we already called // getClientBoundingRect we have already forced a reflow, so it is not // too expensive just to query them all. // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的 // 窗口边框标准是设 documentElement ,quirks 时设置 body // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去 // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置 // 标准 ie 下 docElem.clientTop 就是 border-top // ie7 html 即窗口边框改变不了。永远为 2 // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0 x -= docElem.clientLeft || body.clientLeft || 0; y -= docElem.clientTop || body.clientTop || 0; return { left: x, top: y }; } function getScroll(w, top) { var ret = w['page' + (top ? 'Y' : 'X') + 'Offset']; var method = 'scroll' + (top ? 'Top' : 'Left'); if (typeof ret !== 'number') { var d = w.document; // ie6,7,8 standard mode ret = d.documentElement[method]; if (typeof ret !== 'number') { // quirks mode ret = d.body[method]; } } return ret; } function getScrollLeft(w) { return getScroll(w); } function getScrollTop(w) { return getScroll(w, true); } function getOffset(el) { var pos = getClientPosition(el); var doc = el.ownerDocument; var w = doc.defaultView || doc.parentWindow; pos.left += getScrollLeft(w); pos.top += getScrollTop(w); return pos; } /** * A crude way of determining if an object is a window * @member util */ function isWindow(obj) { // must use == for ie8 /* eslint eqeqeq:0 */ return obj !== null && obj !== undefined && obj == obj.window; } function getDocument(node) { if (isWindow(node)) { return node.document; } if (node.nodeType === 9) { return node; } return node.ownerDocument; } function _getComputedStyle(elem, name, cs) { var computedStyle = cs; var val = ''; var d = getDocument(elem); computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61 if (computedStyle) { val = computedStyle.getPropertyValue(name) || computedStyle[name]; } return val; } var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i'); var RE_POS = /^(top|right|bottom|left)$/; var CURRENT_STYLE = 'currentStyle'; var RUNTIME_STYLE = 'runtimeStyle'; var LEFT = 'left'; var PX = 'px'; function _getComputedStyleIE(elem, name) { // currentStyle maybe null // http://msdn.microsoft.com/en-us/library/ms535231.aspx var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值 // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19 // 在 ie 下不对,需要直接用 offset 方式 // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了 // From the awesome hack by Dean Edwards // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 // If we're not dealing with a regular pixel number // but a number that has a weird ending, we need to convert it to pixels // exclude left right for relativity if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) { // Remember the original values var style = elem.style; var left = style[LEFT]; var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out style[LEFT] = name === 'fontSize' ? '1em' : ret || 0; ret = style.pixelLeft + PX; // Revert the changed values style[LEFT] = left; elem[RUNTIME_STYLE][LEFT] = rsLeft; } return ret === '' ? 'auto' : ret; } if (typeof window !== 'undefined') { getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE; } function getOffsetDirection(dir, option) { if (dir === 'left') { return option.useCssRight ? 'right' : dir; } return option.useCssBottom ? 'bottom' : dir; } function oppositeOffsetDirection(dir) { if (dir === 'left') { return 'right'; } else if (dir === 'right') { return 'left'; } else if (dir === 'top') { return 'bottom'; } else if (dir === 'bottom') { return 'top'; } } // 设置 elem 相对 elem.ownerDocument 的坐标 function setLeftTop(elem, offset, option) { // set position first, in-case top/left are set even on static elem if (css(elem, 'position') === 'static') { elem.style.position = 'relative'; } var presetH = -999; var presetV = -999; var horizontalProperty = getOffsetDirection('left', option); var verticalProperty = getOffsetDirection('top', option); var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty); var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty); if (horizontalProperty !== 'left') { presetH = 999; } if (verticalProperty !== 'top') { presetV = 999; } var originalTransition = ''; var originalOffset = getOffset(elem); if ('left' in offset || 'top' in offset) { originalTransition = Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["c" /* getTransitionProperty */])(elem) || ''; Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["e" /* setTransitionProperty */])(elem, 'none'); } if ('left' in offset) { elem.style[oppositeHorizontalProperty] = ''; elem.style[horizontalProperty] = presetH + 'px'; } if ('top' in offset) { elem.style[oppositeVerticalProperty] = ''; elem.style[verticalProperty] = presetV + 'px'; } // force relayout forceRelayout(elem); var old = getOffset(elem); var originalStyle = {}; for (var key in offset) { if (offset.hasOwnProperty(key)) { var dir = getOffsetDirection(key, option); var preset = key === 'left' ? presetH : presetV; var off = originalOffset[key] - old[key]; if (dir === key) { originalStyle[dir] = preset + off; } else { originalStyle[dir] = preset - off; } } } css(elem, originalStyle); // force relayout forceRelayout(elem); if ('left' in offset || 'top' in offset) { Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["e" /* setTransitionProperty */])(elem, originalTransition); } var ret = {}; for (var _key in offset) { if (offset.hasOwnProperty(_key)) { var _dir = getOffsetDirection(_key, option); var _off = offset[_key] - originalOffset[_key]; if (_key === _dir) { ret[_dir] = originalStyle[_dir] + _off; } else { ret[_dir] = originalStyle[_dir] - _off; } } } css(elem, ret); } function setTransform(elem, offset) { var originalOffset = getOffset(elem); var originalXY = Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["b" /* getTransformXY */])(elem); var resultXY = { x: originalXY.x, y: originalXY.y }; if ('left' in offset) { resultXY.x = originalXY.x + offset.left - originalOffset.left; } if ('top' in offset) { resultXY.y = originalXY.y + offset.top - originalOffset.top; } Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["d" /* setTransformXY */])(elem, resultXY); } function setOffset(elem, offset, option) { if (option.ignoreShake) { var oriOffset = getOffset(elem); var oLeft = oriOffset.left.toFixed(0); var oTop = oriOffset.top.toFixed(0); var tLeft = offset.left.toFixed(0); var tTop = offset.top.toFixed(0); if (oLeft === tLeft && oTop === tTop) { return; } } if (option.useCssRight || option.useCssBottom) { setLeftTop(elem, offset, option); } else if (option.useCssTransform && Object(__WEBPACK_IMPORTED_MODULE_0__propertyUtils__["a" /* getTransformName */])() in document.body.style) { setTransform(elem, offset, option); } else { setLeftTop(elem, offset, option); } } function each(arr, fn) { for (var i = 0; i < arr.length; i++) { fn(arr[i]); } } function isBorderBoxFn(elem) { return getComputedStyleX(elem, 'boxSizing') === 'border-box'; } var BOX_MODELS = ['margin', 'border', 'padding']; var CONTENT_INDEX = -1; var PADDING_INDEX = 2; var BORDER_INDEX = 1; var MARGIN_INDEX = 0; function swap(elem, options, callback) { var old = {}; var style = elem.style; var name = void 0; // Remember the old values, and insert the new ones for (name in options) { if (options.hasOwnProperty(name)) { old[name] = style[name]; style[name] = options[name]; } } callback.call(elem); // Revert the old values for (name in options) { if (options.hasOwnProperty(name)) { style[name] = old[name]; } } } function getPBMWidth(elem, props, which) { var value = 0; var prop = void 0; var j = void 0; var i = void 0; for (j = 0; j < props.length; j++) { prop = props[j]; if (prop) { for (i = 0; i < which.length; i++) { var cssProp = void 0; if (prop === 'border') { cssProp = '' + prop + which[i] + 'Width'; } else { cssProp = prop + which[i]; } value += parseFloat(getComputedStyleX(elem, cssProp)) || 0; } } } return value; } var domUtils = {}; each(['Width', 'Height'], function (name) { domUtils['doc' + name] = function (refWin) { var d = refWin.document; return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight // ie standard mode : documentElement.scrollHeight> body.scrollHeight d.documentElement['scroll' + name], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点? d.body['scroll' + name], domUtils['viewport' + name](d)); }; domUtils['viewport' + name] = function (win) { // pc browser includes scrollbar in window.innerWidth var prop = 'client' + name; var doc = win.document; var body = doc.body; var documentElement = doc.documentElement; var documentElementProp = documentElement[prop]; // 标准模式取 documentElement // backcompat 取 body return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp; }; }); /* 得到元素的大小信息 @param elem @param name @param {String} [extra] 'padding' : (css width) + padding 'border' : (css width) + padding + border 'margin' : (css width) + padding + border + margin */ function getWH(elem, name, ex) { var extra = ex; if (isWindow(elem)) { return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem); } else if (elem.nodeType === 9) { return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem); } var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height; var computedStyle = getComputedStyleX(elem); var isBorderBox = isBorderBoxFn(elem, computedStyle); var cssBoxValue = 0; if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) { borderBoxValue = undefined; // Fall back to computed then un computed css if necessary cssBoxValue = getComputedStyleX(elem, name); if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) { cssBoxValue = elem.style[name] || 0; } // Normalize '', auto, and prepare for extra cssBoxValue = parseFloat(cssBoxValue) || 0; } if (extra === undefined) { extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX; } var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox; var val = borderBoxValue || cssBoxValue; if (extra === CONTENT_INDEX) { if (borderBoxValueOrIsBorderBox) { return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle); } return cssBoxValue; } else if (borderBoxValueOrIsBorderBox) { if (extra === BORDER_INDEX) { return val; } return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle)); } return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); } var cssShow = { position: 'absolute', visibility: 'hidden', display: 'block' }; // fix #119 : https://github.com/kissyteam/kissy/issues/119 function getWHIgnoreDisplay() { for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) { args[_key2] = arguments[_key2]; } var val = void 0; var elem = args[0]; // in case elem is window // elem.offsetWidth === undefined if (elem.offsetWidth !== 0) { val = getWH.apply(undefined, args); } else { swap(elem, cssShow, function () { val = getWH.apply(undefined, args); }); } return val; } each(['width', 'height'], function (name) { var first = name.charAt(0).toUpperCase() + name.slice(1); domUtils['outer' + first] = function (el, includeMargin) { return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX); }; var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; domUtils[name] = function (elem, v) { var val = v; if (val !== undefined) { if (elem) { var computedStyle = getComputedStyleX(elem); var isBorderBox = isBorderBoxFn(elem); if (isBorderBox) { val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle); } return css(elem, name, val); } return undefined; } return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX); }; }); function mix(to, from) { for (var i in from) { if (from.hasOwnProperty(i)) { to[i] = from[i]; } } return to; } var utils = { getWindow: function getWindow(node) { if (node && node.document && node.setTimeout) { return node; } var doc = node.ownerDocument || node; return doc.defaultView || doc.parentWindow; }, getDocument: getDocument, offset: function offset(el, value, option) { if (typeof value !== 'undefined') { setOffset(el, value, option || {}); } else { return getOffset(el); } }, isWindow: isWindow, each: each, css: css, clone: function clone(obj) { var i = void 0; var ret = {}; for (i in obj) { if (obj.hasOwnProperty(i)) { ret[i] = obj[i]; } } var overflow = obj.overflow; if (overflow) { for (i in obj) { if (obj.hasOwnProperty(i)) { ret.overflow[i] = obj.overflow[i]; } } } return ret; }, mix: mix, getWindowScrollLeft: function getWindowScrollLeft(w) { return getScrollLeft(w); }, getWindowScrollTop: function getWindowScrollTop(w) { return getScrollTop(w); }, merge: function merge() { var ret = {}; for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) { args[_key3] = arguments[_key3]; } for (var i = 0; i < args.length; i++) { utils.mix(ret, args[i]); } return ret; }, viewportWidth: 0, viewportHeight: 0 }; mix(utils, domUtils); /* harmony default export */ __webpack_exports__["a"] = (utils); /***/ }), /***/ "./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js": /*!***********************************************************************!*\ !*** ./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js ***! \***********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(/*! ./util */ "./node_modules/dom-scroll-into-view/lib/util.js"); function scrollIntoView(elem, container, config) { config = config || {}; // document 归一化到 window if (container.nodeType === 9) { container = util.getWindow(container); } var allowHorizontalScroll = config.allowHorizontalScroll; var onlyScrollIfNeeded = config.onlyScrollIfNeeded; var alignWithTop = config.alignWithTop; var alignWithLeft = config.alignWithLeft; var offsetTop = config.offsetTop || 0; var offsetLeft = config.offsetLeft || 0; var offsetBottom = config.offsetBottom || 0; var offsetRight = config.offsetRight || 0; allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll; var isWin = util.isWindow(container); var elemOffset = util.offset(elem); var eh = util.outerHeight(elem); var ew = util.outerWidth(elem); var containerOffset = undefined; var ch = undefined; var cw = undefined; var containerScroll = undefined; var diffTop = undefined; var diffBottom = undefined; var win = undefined; var winScroll = undefined; var ww = undefined; var wh = undefined; if (isWin) { win = container; wh = util.height(win); ww = util.width(win); winScroll = { left: util.scrollLeft(win), top: util.scrollTop(win) }; // elem 相对 container 可视视窗的距离 diffTop = { left: elemOffset.left - winScroll.left - offsetLeft, top: elemOffset.top - winScroll.top - offsetTop }; diffBottom = { left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight, top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom }; containerScroll = winScroll; } else { containerOffset = util.offset(container); ch = container.clientHeight; cw = container.clientWidth; containerScroll = { left: container.scrollLeft, top: container.scrollTop }; // elem 相对 container 可视视窗的距离 // 注意边框, offset 是边框到根节点 diffTop = { left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft, top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop }; diffBottom = { left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight, top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom }; } if (diffTop.top < 0 || diffBottom.top > 0) { // 强制向上 if (alignWithTop === true) { util.scrollTop(container, containerScroll.top + diffTop.top); } else if (alignWithTop === false) { util.scrollTop(container, containerScroll.top + diffBottom.top); } else { // 自动调整 if (diffTop.top < 0) { util.scrollTop(container, containerScroll.top + diffTop.top); } else { util.scrollTop(container, containerScroll.top + diffBottom.top); } } } else { if (!onlyScrollIfNeeded) { alignWithTop = alignWithTop === undefined ? true : !!alignWithTop; if (alignWithTop) { util.scrollTop(container, containerScroll.top + diffTop.top); } else { util.scrollTop(container, containerScroll.top + diffBottom.top); } } } if (allowHorizontalScroll) { if (diffTop.left < 0 || diffBottom.left > 0) { // 强制向上 if (alignWithLeft === true) { util.scrollLeft(container, containerScroll.left + diffTop.left); } else if (alignWithLeft === false) { util.scrollLeft(container, containerScroll.left + diffBottom.left); } else { // 自动调整 if (diffTop.left < 0) { util.scrollLeft(container, containerScroll.left + diffTop.left); } else { util.scrollLeft(container, containerScroll.left + diffBottom.left); } } } else { if (!onlyScrollIfNeeded) { alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft; if (alignWithLeft) { util.scrollLeft(container, containerScroll.left + diffTop.left); } else { util.scrollLeft(container, containerScroll.left + diffBottom.left); } } } } } module.exports = scrollIntoView; /***/ }), /***/ "./node_modules/dom-scroll-into-view/lib/index.js": /*!********************************************************!*\ !*** ./node_modules/dom-scroll-into-view/lib/index.js ***! \********************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = __webpack_require__(/*! ./dom-scroll-into-view */ "./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js"); /***/ }), /***/ "./node_modules/dom-scroll-into-view/lib/util.js": /*!*******************************************************!*\ !*** ./node_modules/dom-scroll-into-view/lib/util.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; function getClientPosition(elem) { var box = undefined; var x = undefined; var y = undefined; var doc = elem.ownerDocument; var body = doc.body; var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式 box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确 // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin x = box.left; y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and // IE6 standards mode, this border can be overridden by setting the // document element's border to zero -- thus, we cannot rely on the // offset always being 2 pixels. // In quirks mode, the offset can be determined by querying the body's // clientLeft/clientTop, but in standards mode, it is found by querying // the document element's clientLeft/clientTop. Since we already called // getClientBoundingRect we have already forced a reflow, so it is not // too expensive just to query them all. // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的 // 窗口边框标准是设 documentElement ,quirks 时设置 body // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去 // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置 // 标准 ie 下 docElem.clientTop 就是 border-top // ie7 html 即窗口边框改变不了。永远为 2 // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0 x -= docElem.clientLeft || body.clientLeft || 0; y -= docElem.clientTop || body.clientTop || 0; return { left: x, top: y }; } function getScroll(w, top) { var ret = w['page' + (top ? 'Y' : 'X') + 'Offset']; var method = 'scroll' + (top ? 'Top' : 'Left'); if (typeof ret !== 'number') { var d = w.document; // ie6,7,8 standard mode ret = d.documentElement[method]; if (typeof ret !== 'number') { // quirks mode ret = d.body[method]; } } return ret; } function getScrollLeft(w) { return getScroll(w); } function getScrollTop(w) { return getScroll(w, true); } function getOffset(el) { var pos = getClientPosition(el); var doc = el.ownerDocument; var w = doc.defaultView || doc.parentWindow; pos.left += getScrollLeft(w); pos.top += getScrollTop(w); return pos; } function _getComputedStyle(elem, name, computedStyle_) { var val = ''; var d = elem.ownerDocument; var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61 if (computedStyle) { val = computedStyle.getPropertyValue(name) || computedStyle[name]; } return val; } var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i'); var RE_POS = /^(top|right|bottom|left)$/; var CURRENT_STYLE = 'currentStyle'; var RUNTIME_STYLE = 'runtimeStyle'; var LEFT = 'left'; var PX = 'px'; function _getComputedStyleIE(elem, name) { // currentStyle maybe null // http://msdn.microsoft.com/en-us/library/ms535231.aspx var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值 // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19 // 在 ie 下不对,需要直接用 offset 方式 // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了 // From the awesome hack by Dean Edwards // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 // If we're not dealing with a regular pixel number // but a number that has a weird ending, we need to convert it to pixels // exclude left right for relativity if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) { // Remember the original values var style = elem.style; var left = style[LEFT]; var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out style[LEFT] = name === 'fontSize' ? '1em' : ret || 0; ret = style.pixelLeft + PX; // Revert the changed values style[LEFT] = left; elem[RUNTIME_STYLE][LEFT] = rsLeft; } return ret === '' ? 'auto' : ret; } var getComputedStyleX = undefined; if (typeof window !== 'undefined') { getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE; } function each(arr, fn) { for (var i = 0; i < arr.length; i++) { fn(arr[i]); } } function isBorderBoxFn(elem) { return getComputedStyleX(elem, 'boxSizing') === 'border-box'; } var BOX_MODELS = ['margin', 'border', 'padding']; var CONTENT_INDEX = -1; var PADDING_INDEX = 2; var BORDER_INDEX = 1; var MARGIN_INDEX = 0; function swap(elem, options, callback) { var old = {}; var style = elem.style; var name = undefined; // Remember the old values, and insert the new ones for (name in options) { if (options.hasOwnProperty(name)) { old[name] = style[name]; style[name] = options[name]; } } callback.call(elem); // Revert the old values for (name in options) { if (options.hasOwnProperty(name)) { style[name] = old[name]; } } } function getPBMWidth(elem, props, which) { var value = 0; var prop = undefined; var j = undefined; var i = undefined; for (j = 0; j < props.length; j++) { prop = props[j]; if (prop) { for (i = 0; i < which.length; i++) { var cssProp = undefined; if (prop === 'border') { cssProp = prop + which[i] + 'Width'; } else { cssProp = prop + which[i]; } value += parseFloat(getComputedStyleX(elem, cssProp)) || 0; } } } return value; } /** * A crude way of determining if an object is a window * @member util */ function isWindow(obj) { // must use == for ie8 /* eslint eqeqeq:0 */ return obj != null && obj == obj.window; } var domUtils = {}; each(['Width', 'Height'], function (name) { domUtils['doc' + name] = function (refWin) { var d = refWin.document; return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight // ie standard mode : documentElement.scrollHeight> body.scrollHeight d.documentElement['scroll' + name], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点? d.body['scroll' + name], domUtils['viewport' + name](d)); }; domUtils['viewport' + name] = function (win) { // pc browser includes scrollbar in window.innerWidth var prop = 'client' + name; var doc = win.document; var body = doc.body; var documentElement = doc.documentElement; var documentElementProp = documentElement[prop]; // 标准模式取 documentElement // backcompat 取 body return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp; }; }); /* 得到元素的大小信息 @param elem @param name @param {String} [extra] 'padding' : (css width) + padding 'border' : (css width) + padding + border 'margin' : (css width) + padding + border + margin */ function getWH(elem, name, extra) { if (isWindow(elem)) { return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem); } else if (elem.nodeType === 9) { return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem); } var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight; var computedStyle = getComputedStyleX(elem); var isBorderBox = isBorderBoxFn(elem, computedStyle); var cssBoxValue = 0; if (borderBoxValue == null || borderBoxValue <= 0) { borderBoxValue = undefined; // Fall back to computed then un computed css if necessary cssBoxValue = getComputedStyleX(elem, name); if (cssBoxValue == null || Number(cssBoxValue) < 0) { cssBoxValue = elem.style[name] || 0; } // Normalize '', auto, and prepare for extra cssBoxValue = parseFloat(cssBoxValue) || 0; } if (extra === undefined) { extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX; } var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox; var val = borderBoxValue || cssBoxValue; if (extra === CONTENT_INDEX) { if (borderBoxValueOrIsBorderBox) { return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle); } return cssBoxValue; } if (borderBoxValueOrIsBorderBox) { var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle); return val + (extra === BORDER_INDEX ? 0 : padding); } return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle); } var cssShow = { position: 'absolute', visibility: 'hidden', display: 'block' }; // fix #119 : https://github.com/kissyteam/kissy/issues/119 function getWHIgnoreDisplay(elem) { var val = undefined; var args = arguments; // in case elem is window // elem.offsetWidth === undefined if (elem.offsetWidth !== 0) { val = getWH.apply(undefined, args); } else { swap(elem, cssShow, function () { val = getWH.apply(undefined, args); }); } return val; } function css(el, name, v) { var value = v; if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { for (var i in name) { if (name.hasOwnProperty(i)) { css(el, i, name[i]); } } return undefined; } if (typeof value !== 'undefined') { if (typeof value === 'number') { value += 'px'; } el.style[name] = value; return undefined; } return getComputedStyleX(el, name); } each(['width', 'height'], function (name) { var first = name.charAt(0).toUpperCase() + name.slice(1); domUtils['outer' + first] = function (el, includeMargin) { return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX); }; var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; domUtils[name] = function (elem, val) { if (val !== undefined) { if (elem) { var computedStyle = getComputedStyleX(elem); var isBorderBox = isBorderBoxFn(elem); if (isBorderBox) { val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle); } return css(elem, name, val); } return undefined; } return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX); }; }); // 设置 elem 相对 elem.ownerDocument 的坐标 function setOffset(elem, offset) { // set position first, in-case top/left are set even on static elem if (css(elem, 'position') === 'static') { elem.style.position = 'relative'; } var old = getOffset(elem); var ret = {}; var current = undefined; var key = undefined; for (key in offset) { if (offset.hasOwnProperty(key)) { current = parseFloat(css(elem, key)) || 0; ret[key] = current + offset[key] - old[key]; } } css(elem, ret); } module.exports = _extends({ getWindow: function getWindow(node) { var doc = node.ownerDocument || node; return doc.defaultView || doc.parentWindow; }, offset: function offset(el, value) { if (typeof value !== 'undefined') { setOffset(el, value); } else { return getOffset(el); } }, isWindow: isWindow, each: each, css: css, clone: function clone(obj) { var ret = {}; for (var i in obj) { if (obj.hasOwnProperty(i)) { ret[i] = obj[i]; } } var overflow = obj.overflow; if (overflow) { for (var i in obj) { if (obj.hasOwnProperty(i)) { ret.overflow[i] = obj.overflow[i]; } } } return ret; }, scrollLeft: function scrollLeft(w, v) { if (isWindow(w)) { if (v === undefined) { return getScrollLeft(w); } window.scrollTo(v, getScrollTop(w)); } else { if (v === undefined) { return w.scrollLeft; } w.scrollLeft = v; } }, scrollTop: function scrollTop(w, v) { if (isWindow(w)) { if (v === undefined) { return getScrollTop(w); } window.scrollTo(getScrollLeft(w), v); } else { if (v === undefined) { return w.scrollTop; } w.scrollTop = v; } }, viewportWidth: 0, viewportHeight: 0 }, domUtils); /***/ }), /***/ "./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js": /*!*********************************************************************!*\ !*** ./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; var getParamBytesForAlg = __webpack_require__(/*! ./param-bytes-for-alg */ "./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js"); var MAX_OCTET = 0x80, CLASS_UNIVERSAL = 0, PRIMITIVE_BIT = 0x20, TAG_SEQ = 0x10, TAG_INT = 0x02, ENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6), ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6); function base64Url(base64) { return base64 .replace(/=/g, '') .replace(/\+/g, '-') .replace(/\//g, '_'); } function signatureAsBuffer(signature) { if (Buffer.isBuffer(signature)) { return signature; } else if ('string' === typeof signature) { return Buffer.from(signature, 'base64'); } throw new TypeError('ECDSA signature must be a Base64 string or a Buffer'); } function derToJose(signature, alg) { signature = signatureAsBuffer(signature); var paramBytes = getParamBytesForAlg(alg); // the DER encoded param should at most be the param size, plus a padding // zero, since due to being a signed integer var maxEncodedParamLength = paramBytes + 1; var inputLength = signature.length; var offset = 0; if (signature[offset++] !== ENCODED_TAG_SEQ) { throw new Error('Could not find expected "seq"'); } var seqLength = signature[offset++]; if (seqLength === (MAX_OCTET | 1)) { seqLength = signature[offset++]; } if (inputLength - offset < seqLength) { throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); } if (signature[offset++] !== ENCODED_TAG_INT) { throw new Error('Could not find expected "int" for "r"'); } var rLength = signature[offset++]; if (inputLength - offset - 2 < rLength) { throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); } if (maxEncodedParamLength < rLength) { throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); } var rOffset = offset; offset += rLength; if (signature[offset++] !== ENCODED_TAG_INT) { throw new Error('Could not find expected "int" for "s"'); } var sLength = signature[offset++]; if (inputLength - offset !== sLength) { throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); } if (maxEncodedParamLength < sLength) { throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); } var sOffset = offset; offset += sLength; if (offset !== inputLength) { throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); } var rPadding = paramBytes - rLength, sPadding = paramBytes - sLength; var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength); for (offset = 0; offset < rPadding; ++offset) { dst[offset] = 0; } signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); offset = paramBytes; for (var o = offset; offset < o + sPadding; ++offset) { dst[offset] = 0; } signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); dst = dst.toString('base64'); dst = base64Url(dst); return dst; } function countPadding(buf, start, stop) { var padding = 0; while (start + padding < stop && buf[start + padding] === 0) { ++padding; } var needsSign = buf[start + padding] >= MAX_OCTET; if (needsSign) { --padding; } return padding; } function joseToDer(signature, alg) { signature = signatureAsBuffer(signature); var paramBytes = getParamBytesForAlg(alg); var signatureBytes = signature.length; if (signatureBytes !== paramBytes * 2) { throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); } var rPadding = countPadding(signature, 0, paramBytes); var sPadding = countPadding(signature, paramBytes, signature.length); var rLength = paramBytes - rPadding; var sLength = paramBytes - sPadding; var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; var shortLength = rsBytes < MAX_OCTET; var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes); var offset = 0; dst[offset++] = ENCODED_TAG_SEQ; if (shortLength) { // Bit 8 has value "0" // bits 7-1 give the length. dst[offset++] = rsBytes; } else { // Bit 8 of first octet has value "1" // bits 7-1 give the number of additional length octets. dst[offset++] = MAX_OCTET | 1; // length, base 256 dst[offset++] = rsBytes & 0xff; } dst[offset++] = ENCODED_TAG_INT; dst[offset++] = rLength; if (rPadding < 0) { dst[offset++] = 0; offset += signature.copy(dst, offset, 0, paramBytes); } else { offset += signature.copy(dst, offset, rPadding, paramBytes); } dst[offset++] = ENCODED_TAG_INT; dst[offset++] = sLength; if (sPadding < 0) { dst[offset++] = 0; signature.copy(dst, offset, paramBytes); } else { signature.copy(dst, offset, paramBytes + sPadding); } return dst; } module.exports = { derToJose: derToJose, joseToDer: joseToDer }; /***/ }), /***/ "./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js": /*!*********************************************************************!*\ !*** ./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function getParamSize(keySize) { var result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1); return result; } var paramBytesForAlg = { ES256: getParamSize(256), ES384: getParamSize(384), ES512: getParamSize(521) }; function getParamBytesForAlg(alg) { var paramBytes = paramBytesForAlg[alg]; if (paramBytes) { return paramBytes; } throw new Error('Unknown algorithm "' + alg + '"'); } module.exports = getParamBytesForAlg; /***/ }), /***/ "./node_modules/eivindfjeldstad-dot/index.js": /*!***************************************************!*\ !*** ./node_modules/eivindfjeldstad-dot/index.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Set given `path` * * @param {Object} obj * @param {String} path * @param {Mixed} val * @api public */ exports.set = function (obj, path, val) { var segs = path.split('.'); var attr = segs.pop(); for (var i = 0; i < segs.length; i++) { var seg = segs[i]; obj[seg] = obj[seg] || {}; obj = obj[seg]; } obj[attr] = val; }; /** * Get given `path` * * @param {Object} obj * @param {String} path * @return {Mixed} * @api public */ exports.get = function (obj, path) { var segs = path.split('.'); var attr = segs.pop(); for (var i = 0; i < segs.length; i++) { var seg = segs[i]; if (!obj[seg]) return; obj = obj[seg]; } return obj[attr]; }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic.js": /*!***********************************************!*\ !*** ./node_modules/elliptic/lib/elliptic.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var elliptic = exports; elliptic.version = __webpack_require__(/*! ../package.json */ "./node_modules/elliptic/package.json").version; elliptic.utils = __webpack_require__(/*! ./elliptic/utils */ "./node_modules/elliptic/lib/elliptic/utils.js"); elliptic.rand = __webpack_require__(/*! brorand */ "./node_modules/brorand/index.js"); elliptic.curve = __webpack_require__(/*! ./elliptic/curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); elliptic.curves = __webpack_require__(/*! ./elliptic/curves */ "./node_modules/elliptic/lib/elliptic/curves.js"); // Protocols elliptic.ec = __webpack_require__(/*! ./elliptic/ec */ "./node_modules/elliptic/lib/elliptic/ec/index.js"); elliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ "./node_modules/elliptic/lib/elliptic/eddsa/index.js"); /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curve/base.js": /*!**********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curve/base.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var getNAF = utils.getNAF; var getJSF = utils.getJSF; var assert = utils.assert; function BaseCurve(type, conf) { this.type = type; this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves this.zero = new BN(0).toRed(this.red); this.one = new BN(1).toRed(this.red); this.two = new BN(2).toRed(this.red); // Curve configuration, optional this.n = conf.n && new BN(conf.n, 16); this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays this._wnafT1 = new Array(4); this._wnafT2 = new Array(4); this._wnafT3 = new Array(4); this._wnafT4 = new Array(4); // Generalized Greg Maxwell's trick var adjustCount = this.n && this.p.div(this.n); if (!adjustCount || adjustCount.cmpn(100) > 0) { this.redN = null; } else { this._maxwellTrick = true; this.redN = this.n.toRed(this.red); } } module.exports = BaseCurve; BaseCurve.prototype.point = function point() { throw new Error('Not implemented'); }; BaseCurve.prototype.validate = function validate() { throw new Error('Not implemented'); }; BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { assert(p.precomputed); var doubles = p._getDoubles(); var naf = getNAF(k, 1); var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1); I /= 3; // Translate into more windowed form var repr = []; for (var j = 0; j < naf.length; j += doubles.step) { var nafW = 0; for (var k = j + doubles.step - 1; k >= j; k--) nafW = (nafW << 1) + naf[k]; repr.push(nafW); } var a = this.jpoint(null, null, null); var b = this.jpoint(null, null, null); for (var i = I; i > 0; i--) { for (var j = 0; j < repr.length; j++) { var nafW = repr[j]; if (nafW === i) b = b.mixedAdd(doubles.points[j]); else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()); } a = a.add(b); } return a.toP(); }; BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { var w = 4; // Precompute window var nafPoints = p._getNAFPoints(w); w = nafPoints.wnd; var wnd = nafPoints.points; // Get NAF form var naf = getNAF(k, w); // Add `this`*(N+1) for every w-NAF index var acc = this.jpoint(null, null, null); for (var i = naf.length - 1; i >= 0; i--) { // Count zeroes for (var k = 0; i >= 0 && naf[i] === 0; i--) k++; if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; var z = naf[i]; assert(z !== 0); if (p.type === 'affine') { // J +- P if (z > 0) acc = acc.mixedAdd(wnd[(z - 1) >> 1]); else acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()); } else { // J +- J if (z > 0) acc = acc.add(wnd[(z - 1) >> 1]); else acc = acc.add(wnd[(-z - 1) >> 1].neg()); } } return p.type === 'affine' ? acc.toP() : acc; }; BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { var wndWidth = this._wnafT1; var wnd = this._wnafT2; var naf = this._wnafT3; // Fill all arrays var max = 0; for (var i = 0; i < len; i++) { var p = points[i]; var nafPoints = p._getNAFPoints(defW); wndWidth[i] = nafPoints.wnd; wnd[i] = nafPoints.points; } // Comb small window NAFs for (var i = len - 1; i >= 1; i -= 2) { var a = i - 1; var b = i; if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { naf[a] = getNAF(coeffs[a], wndWidth[a]); naf[b] = getNAF(coeffs[b], wndWidth[b]); max = Math.max(naf[a].length, max); max = Math.max(naf[b].length, max); continue; } var comb = [ points[a], /* 1 */ null, /* 3 */ null, /* 5 */ points[b] /* 7 */ ]; // Try to avoid Projective points, if possible if (points[a].y.cmp(points[b].y) === 0) { comb[1] = points[a].add(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].add(points[b].neg()); } else { comb[1] = points[a].toJ().mixedAdd(points[b]); comb[2] = points[a].toJ().mixedAdd(points[b].neg()); } var index = [ -3, /* -1 -1 */ -1, /* -1 0 */ -5, /* -1 1 */ -7, /* 0 -1 */ 0, /* 0 0 */ 7, /* 0 1 */ 5, /* 1 -1 */ 1, /* 1 0 */ 3 /* 1 1 */ ]; var jsf = getJSF(coeffs[a], coeffs[b]); max = Math.max(jsf[0].length, max); naf[a] = new Array(max); naf[b] = new Array(max); for (var j = 0; j < max; j++) { var ja = jsf[0][j] | 0; var jb = jsf[1][j] | 0; naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; naf[b][j] = 0; wnd[a] = comb; } } var acc = this.jpoint(null, null, null); var tmp = this._wnafT4; for (var i = max; i >= 0; i--) { var k = 0; while (i >= 0) { var zero = true; for (var j = 0; j < len; j++) { tmp[j] = naf[j][i] | 0; if (tmp[j] !== 0) zero = false; } if (!zero) break; k++; i--; } if (i >= 0) k++; acc = acc.dblp(k); if (i < 0) break; for (var j = 0; j < len; j++) { var z = tmp[j]; var p; if (z === 0) continue; else if (z > 0) p = wnd[j][(z - 1) >> 1]; else if (z < 0) p = wnd[j][(-z - 1) >> 1].neg(); if (p.type === 'affine') acc = acc.mixedAdd(p); else acc = acc.add(p); } } // Zeroify references for (var i = 0; i < len; i++) wnd[i] = null; if (jacobianResult) return acc; else return acc.toP(); }; function BasePoint(curve, type) { this.curve = curve; this.type = type; this.precomputed = null; } BaseCurve.BasePoint = BasePoint; BasePoint.prototype.eq = function eq(/*other*/) { throw new Error('Not implemented'); }; BasePoint.prototype.validate = function validate() { return this.curve.validate(this); }; BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { bytes = utils.toArray(bytes, enc); var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) { if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0); else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1); var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)); return res; } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) { return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); } throw new Error('Unknown point format'); }; BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { return this.encode(enc, true); }; BasePoint.prototype._encode = function _encode(compact) { var len = this.curve.p.byteLength(); var x = this.getX().toArray('be', len); if (compact) return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x); return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ; }; BasePoint.prototype.encode = function encode(enc, compact) { return utils.encode(this._encode(compact), enc); }; BasePoint.prototype.precompute = function precompute(power) { if (this.precomputed) return this; var precomputed = { doubles: null, naf: null, beta: null }; precomputed.naf = this._getNAFPoints(8); precomputed.doubles = this._getDoubles(4, power); precomputed.beta = this._getBeta(); this.precomputed = precomputed; return this; }; BasePoint.prototype._hasDoubles = function _hasDoubles(k) { if (!this.precomputed) return false; var doubles = this.precomputed.doubles; if (!doubles) return false; return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); }; BasePoint.prototype._getDoubles = function _getDoubles(step, power) { if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles; var doubles = [ this ]; var acc = this; for (var i = 0; i < power; i += step) { for (var j = 0; j < step; j++) acc = acc.dbl(); doubles.push(acc); } return { step: step, points: doubles }; }; BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { if (this.precomputed && this.precomputed.naf) return this.precomputed.naf; var res = [ this ]; var max = (1 << wnd) - 1; var dbl = max === 1 ? null : this.dbl(); for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl); return { wnd: wnd, points: res }; }; BasePoint.prototype._getBeta = function _getBeta() { return null; }; BasePoint.prototype.dblp = function dblp(k) { var r = this; for (var i = 0; i < k; i++) r = r.dbl(); return r; }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curve/edwards.js": /*!*************************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curve/edwards.js ***! \*************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Base = curve.base; var assert = elliptic.utils.assert; function EdwardsCurve(conf) { // NOTE: Important as we are creating point in Base.call() this.twisted = (conf.a | 0) !== 1; this.mOneA = this.twisted && (conf.a | 0) === -1; this.extended = this.mOneA; Base.call(this, 'edwards', conf); this.a = new BN(conf.a, 16).umod(this.red.m); this.a = this.a.toRed(this.red); this.c = new BN(conf.c, 16).toRed(this.red); this.c2 = this.c.redSqr(); this.d = new BN(conf.d, 16).toRed(this.red); this.dd = this.d.redAdd(this.d); assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); this.oneC = (conf.c | 0) === 1; } inherits(EdwardsCurve, Base); module.exports = EdwardsCurve; EdwardsCurve.prototype._mulA = function _mulA(num) { if (this.mOneA) return num.redNeg(); else return this.a.redMul(num); }; EdwardsCurve.prototype._mulC = function _mulC(num) { if (this.oneC) return num; else return this.c.redMul(num); }; // Just for compatibility with Short curve EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { return this.point(x, y, z, t); }; EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var x2 = x.redSqr(); var rhs = this.c2.redSub(this.a.redMul(x2)); var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)); var y2 = rhs.redMul(lhs.redInvm()); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); var isOdd = y.fromRed().isOdd(); if (odd && !isOdd || !odd && isOdd) y = y.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { y = new BN(y, 16); if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - 1) / (d y^2 + 1) var y2 = y.redSqr(); var lhs = y2.redSub(this.one); var rhs = y2.redMul(this.d).redAdd(this.one); var x2 = lhs.redMul(rhs.redInvm()); if (x2.cmp(this.zero) === 0) { if (odd) throw new Error('invalid point'); else return this.point(this.zero, y); } var x = x2.redSqrt(); if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point'); if (x.isOdd() !== odd) x = x.redNeg(); return this.point(x, y); }; EdwardsCurve.prototype.validate = function validate(point) { if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2) point.normalize(); var x2 = point.x.redSqr(); var y2 = point.y.redSqr(); var lhs = x2.redMul(this.a).redAdd(y2); var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))); return lhs.cmp(rhs) === 0; }; function Point(curve, x, y, z, t) { Base.BasePoint.call(this, curve, 'projective'); if (x === null && y === null && z === null) { this.x = this.curve.zero; this.y = this.curve.one; this.z = this.curve.one; this.t = this.curve.zero; this.zOne = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = z ? new BN(z, 16) : this.curve.one; this.t = t && new BN(t, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red); this.zOne = this.z === this.curve.one; // Use extended coordinates if (this.curve.extended && !this.t) { this.t = this.x.redMul(this.y); if (!this.zOne) this.t = this.t.redMul(this.z.redInvm()); } } } inherits(Point, Base.BasePoint); EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; EdwardsCurve.prototype.point = function point(x, y, z, t) { return new Point(this, x, y, z, t); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1], obj[2]); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.x.cmpn(0) === 0 && this.y.cmp(this.z) === 0; }; Point.prototype._extDbl = function _extDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #doubling-dbl-2008-hwcd // 4M + 4S // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = 2 * Z1^2 var c = this.z.redSqr(); c = c.redIAdd(c); // D = a * A var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B var g = d.redAdd(b); // F = G - C var f = g.redSub(c); // H = D - B var h = d.redSub(b); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projDbl = function _projDbl() { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #doubling-dbl-2008-bbjlp // #doubling-dbl-2007-bl // and others // Generally 3M + 4S or 2M + 4S // B = (X1 + Y1)^2 var b = this.x.redAdd(this.y).redSqr(); // C = X1^2 var c = this.x.redSqr(); // D = Y1^2 var d = this.y.redSqr(); var nx; var ny; var nz; if (this.curve.twisted) { // E = a * C var e = this.curve._mulA(c); // F = E + D var f = e.redAdd(d); if (this.zOne) { // X3 = (B - C - D) * (F - 2) nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F nz = f.redSqr().redSub(f).redSub(f); } else { // H = Z1^2 var h = this.z.redSqr(); // J = F - 2 * H var j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D) ny = f.redMul(e.redSub(d)); // Z3 = F * J nz = f.redMul(j); } } else { // E = C + D var e = c.redAdd(d); // H = (c * Z1)^2 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr(); // J = E - 2 * H var j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D) ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J nz = e.redMul(j); } return this.curve.point(nx, ny, nz); }; Point.prototype.dbl = function dbl() { if (this.isInfinity()) return this; // Double in extended coordinates if (this.curve.extended) return this._extDbl(); else return this._projDbl(); }; Point.prototype._extAdd = function _extAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html // #addition-add-2008-hwcd-3 // 8M // A = (Y1 - X1) * (Y2 - X2) var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2) var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2 var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2 var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A var e = b.redSub(a); // F = D - C var f = d.redSub(c); // G = D + C var g = d.redAdd(c); // H = B + A var h = b.redAdd(a); // X3 = E * F var nx = e.redMul(f); // Y3 = G * H var ny = g.redMul(h); // T3 = E * H var nt = e.redMul(h); // Z3 = F * G var nz = f.redMul(g); return this.curve.point(nx, ny, nz, nt); }; Point.prototype._projAdd = function _projAdd(p) { // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html // #addition-add-2008-bbjlp // #addition-add-2007-bl // 10M + 1S // A = Z1 * Z2 var a = this.z.redMul(p.z); // B = A^2 var b = a.redSqr(); // C = X1 * X2 var c = this.x.redMul(p.x); // D = Y1 * Y2 var d = this.y.redMul(p.y); // E = d * C * D var e = this.curve.d.redMul(c).redMul(d); // F = B - E var f = b.redSub(e); // G = B + E var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d); var nx = a.redMul(f).redMul(tmp); var ny; var nz; if (this.curve.twisted) { // Y3 = A * G * (D - a * C) ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G nz = f.redMul(g); } else { // Y3 = A * G * (D - C) ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G nz = this.curve._mulC(f).redMul(g); } return this.curve.point(nx, ny, nz); }; Point.prototype.add = function add(p) { if (this.isInfinity()) return p; if (p.isInfinity()) return this; if (this.curve.extended) return this._extAdd(p); else return this._projAdd(p); }; Point.prototype.mul = function mul(k) { if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false); }; Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true); }; Point.prototype.normalize = function normalize() { if (this.zOne) return this; // Normalize coordinates var zi = this.z.redInvm(); this.x = this.x.redMul(zi); this.y = this.y.redMul(zi); if (this.t) this.t = this.t.redMul(zi); this.z = this.curve.one; this.zOne = true; return this; }; Point.prototype.neg = function neg() { return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()); }; Point.prototype.getX = function getX() { this.normalize(); return this.x.fromRed(); }; Point.prototype.getY = function getY() { this.normalize(); return this.y.fromRed(); }; Point.prototype.eq = function eq(other) { return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0; }; Point.prototype.eqXToP = function eqXToP(x) { var rx = x.toRed(this.curve.red).redMul(this.z); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(this.z); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; // Compatibility with BaseCurve Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curve/index.js": /*!***********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curve/index.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var curve = exports; curve.base = __webpack_require__(/*! ./base */ "./node_modules/elliptic/lib/elliptic/curve/base.js"); curve.short = __webpack_require__(/*! ./short */ "./node_modules/elliptic/lib/elliptic/curve/short.js"); curve.mont = __webpack_require__(/*! ./mont */ "./node_modules/elliptic/lib/elliptic/curve/mont.js"); curve.edwards = __webpack_require__(/*! ./edwards */ "./node_modules/elliptic/lib/elliptic/curve/edwards.js"); /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curve/mont.js": /*!**********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curve/mont.js ***! \**********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Base = curve.base; var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; function MontCurve(conf) { Base.call(this, 'mont', conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.i4 = new BN(4).toRed(this.red).redInvm(); this.two = new BN(2).toRed(this.red); this.a24 = this.i4.redMul(this.a.redAdd(this.two)); } inherits(MontCurve, Base); module.exports = MontCurve; MontCurve.prototype.validate = function validate(point) { var x = point.normalize().x; var x2 = x.redSqr(); var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x); var y = rhs.redSqrt(); return y.redSqr().cmp(rhs) === 0; }; function Point(curve, x, z) { Base.BasePoint.call(this, curve, 'projective'); if (x === null && z === null) { this.x = this.curve.one; this.z = this.curve.zero; } else { this.x = new BN(x, 16); this.z = new BN(z, 16); if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); } } inherits(Point, Base.BasePoint); MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { return this.point(utils.toArray(bytes, enc), 1); }; MontCurve.prototype.point = function point(x, z) { return new Point(this, x, z); }; MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { return Point.fromJSON(this, obj); }; Point.prototype.precompute = function precompute() { // No-op }; Point.prototype._encode = function _encode() { return this.getX().toArray('be', this.curve.p.byteLength()); }; Point.fromJSON = function fromJSON(curve, obj) { return new Point(curve, obj[0], obj[1] || curve.one); }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; Point.prototype.dbl = function dbl() { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 // 2M + 2S + 4A // A = X1 + Z1 var a = this.x.redAdd(this.z); // AA = A^2 var aa = a.redSqr(); // B = X1 - Z1 var b = this.x.redSub(this.z); // BB = B^2 var bb = b.redSqr(); // C = AA - BB var c = aa.redSub(bb); // X3 = AA * BB var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C) var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))); return this.curve.point(nx, nz); }; Point.prototype.add = function add() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.diffAdd = function diffAdd(p, diff) { // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 // 4M + 2S + 6A // A = X2 + Z2 var a = this.x.redAdd(this.z); // B = X2 - Z2 var b = this.x.redSub(this.z); // C = X3 + Z3 var c = p.x.redAdd(p.z); // D = X3 - Z3 var d = p.x.redSub(p.z); // DA = D * A var da = d.redMul(a); // CB = C * B var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2 var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2 var nz = diff.x.redMul(da.redISub(cb).redSqr()); return this.curve.point(nx, nz); }; Point.prototype.mul = function mul(k) { var t = k.clone(); var a = this; // (N / 2) * Q + Q var b = this.curve.point(null, null); // (N / 2) * Q var c = this; // Q for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1)); for (var i = bits.length - 1; i >= 0; i--) { if (bits[i] === 0) { // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q)) b = b.dbl(); } else { // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q) a = a.dbl(); } } return b; }; Point.prototype.mulAdd = function mulAdd() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.jumlAdd = function jumlAdd() { throw new Error('Not supported on Montgomery curve'); }; Point.prototype.eq = function eq(other) { return this.getX().cmp(other.getX()) === 0; }; Point.prototype.normalize = function normalize() { this.x = this.x.redMul(this.z.redInvm()); this.z = this.curve.one; return this; }; Point.prototype.getX = function getX() { // Normalize coordinates this.normalize(); return this.x.fromRed(); }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curve/short.js": /*!***********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curve/short.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var curve = __webpack_require__(/*! ../curve */ "./node_modules/elliptic/lib/elliptic/curve/index.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); var Base = curve.base; var assert = elliptic.utils.assert; function ShortCurve(conf) { Base.call(this, 'short', conf); this.a = new BN(conf.a, 16).toRed(this.red); this.b = new BN(conf.b, 16).toRed(this.red); this.tinv = this.two.redInvm(); this.zeroA = this.a.fromRed().cmpn(0) === 0; this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda this.endo = this._getEndomorphism(conf); this._endoWnafT1 = new Array(4); this._endoWnafT2 = new Array(4); } inherits(ShortCurve, Base); module.exports = ShortCurve; ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { // No efficient endomorphism if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py) var beta; var lambda; if (conf.beta) { beta = new BN(conf.beta, 16).toRed(this.red); } else { var betas = this._getEndoRoots(this.p); // Choose the smallest beta beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; beta = beta.toRed(this.red); } if (conf.lambda) { lambda = new BN(conf.lambda, 16); } else { // Choose the lambda that is matching selected beta var lambdas = this._getEndoRoots(this.n); if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { lambda = lambdas[0]; } else { lambda = lambdas[1]; assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); } } // Get basis vectors, used for balanced length-two representation var basis; if (conf.basis) { basis = conf.basis.map(function(vec) { return { a: new BN(vec.a, 16), b: new BN(vec.b, 16) }; }); } else { basis = this._getEndoBasis(lambda); } return { beta: beta, lambda: lambda, basis: basis }; }; ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { // Find roots of for x^2 + x + 1 in F // Root = (-1 +- Sqrt(-3)) / 2 // var red = num === this.p ? this.red : BN.mont(num); var tinv = new BN(2).toRed(red).redInvm(); var ntinv = tinv.redNeg(); var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); var l1 = ntinv.redAdd(s).fromRed(); var l2 = ntinv.redSub(s).fromRed(); return [ l1, l2 ]; }; ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { // aprxSqrt >= sqrt(this.n) var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74 // Run EGCD, until r(L + 1) < aprxSqrt var u = lambda; var v = this.n.clone(); var x1 = new BN(1); var y1 = new BN(0); var x2 = new BN(0); var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) var a0; var b0; // First vector var a1; var b1; // Second vector var a2; var b2; var prevR; var i = 0; var r; var x; while (u.cmpn(0) !== 0) { var q = v.div(u); r = v.sub(q.mul(u)); x = x2.sub(q.mul(x1)); var y = y2.sub(q.mul(y1)); if (!a1 && r.cmp(aprxSqrt) < 0) { a0 = prevR.neg(); b0 = x1; a1 = r.neg(); b1 = x; } else if (a1 && ++i === 2) { break; } prevR = r; v = u; u = r; x2 = x1; x1 = x; y2 = y1; y1 = y; } a2 = r.neg(); b2 = x; var len1 = a1.sqr().add(b1.sqr()); var len2 = a2.sqr().add(b2.sqr()); if (len2.cmp(len1) >= 0) { a2 = a0; b2 = b0; } // Normalize signs if (a1.negative) { a1 = a1.neg(); b1 = b1.neg(); } if (a2.negative) { a2 = a2.neg(); b2 = b2.neg(); } return [ { a: a1, b: b1 }, { a: a2, b: b2 } ]; }; ShortCurve.prototype._endoSplit = function _endoSplit(k) { var basis = this.endo.basis; var v1 = basis[0]; var v2 = basis[1]; var c1 = v2.b.mul(k).divRound(this.n); var c2 = v1.b.neg().mul(k).divRound(this.n); var p1 = c1.mul(v1.a); var p2 = c2.mul(v2.a); var q1 = c1.mul(v1.b); var q2 = c2.mul(v2.b); // Calculate answer var k1 = k.sub(p1).sub(p2); var k2 = q1.add(q2).neg(); return { k1: k1, k2: k2 }; }; ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { x = new BN(x, 16); if (!x.red) x = x.toRed(this.red); var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); var y = y2.redSqrt(); if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it // to non-red form? var isOdd = y.fromRed().isOdd(); if (odd && !isOdd || !odd && isOdd) y = y.redNeg(); return this.point(x, y); }; ShortCurve.prototype.validate = function validate(point) { if (point.inf) return true; var x = point.x; var y = point.y; var ax = this.a.redMul(x); var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); return y.redSqr().redISub(rhs).cmpn(0) === 0; }; ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { var npoints = this._endoWnafT1; var ncoeffs = this._endoWnafT2; for (var i = 0; i < points.length; i++) { var split = this._endoSplit(coeffs[i]); var p = points[i]; var beta = p._getBeta(); if (split.k1.negative) { split.k1.ineg(); p = p.neg(true); } if (split.k2.negative) { split.k2.ineg(); beta = beta.neg(true); } npoints[i * 2] = p; npoints[i * 2 + 1] = beta; ncoeffs[i * 2] = split.k1; ncoeffs[i * 2 + 1] = split.k2; } var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients for (var j = 0; j < i * 2; j++) { npoints[j] = null; ncoeffs[j] = null; } return res; }; function Point(curve, x, y, isRed) { Base.BasePoint.call(this, curve, 'affine'); if (x === null && y === null) { this.x = null; this.y = null; this.inf = true; } else { this.x = new BN(x, 16); this.y = new BN(y, 16); // Force redgomery representation when loading from JSON if (isRed) { this.x.forceRed(this.curve.red); this.y.forceRed(this.curve.red); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); this.inf = false; } } inherits(Point, Base.BasePoint); ShortCurve.prototype.point = function point(x, y, isRed) { return new Point(this, x, y, isRed); }; ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { return Point.fromJSON(this, obj, red); }; Point.prototype._getBeta = function _getBeta() { if (!this.curve.endo) return; var pre = this.precomputed; if (pre && pre.beta) return pre.beta; var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); if (pre) { var curve = this.curve; var endoMul = function(p) { return curve.point(p.x.redMul(curve.endo.beta), p.y); }; pre.beta = beta; beta.precomputed = { beta: null, naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(endoMul) }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(endoMul) } }; } return beta; }; Point.prototype.toJSON = function toJSON() { if (!this.precomputed) return [ this.x, this.y ]; return [ this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) } } ]; }; Point.fromJSON = function fromJSON(curve, obj, red) { if (typeof obj === 'string') obj = JSON.parse(obj); var res = curve.point(obj[0], obj[1], red); if (!obj[2]) return res; function obj2point(obj) { return curve.point(obj[0], obj[1], red); } var pre = obj[2]; res.precomputed = { beta: null, doubles: pre.doubles && { step: pre.doubles.step, points: [ res ].concat(pre.doubles.points.map(obj2point)) }, naf: pre.naf && { wnd: pre.naf.wnd, points: [ res ].concat(pre.naf.points.map(obj2point)) } }; return res; }; Point.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; Point.prototype.isInfinity = function isInfinity() { return this.inf; }; Point.prototype.add = function add(p) { // O + P = P if (this.inf) return p; // P + O = P if (p.inf) return this; // P + P = 2P if (this.eq(p)) return this.dbl(); // P + (-P) = O if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O if (this.x.cmp(p.x) === 0) return this.curve.point(null, null); var c = this.y.redSub(p.y); if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()); var nx = c.redSqr().redISub(this.x).redISub(p.x); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.dbl = function dbl() { if (this.inf) return this; // 2P = O var ys1 = this.y.redAdd(this.y); if (ys1.cmpn(0) === 0) return this.curve.point(null, null); var a = this.curve.a; var x2 = this.x.redSqr(); var dyinv = ys1.redInvm(); var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); var nx = c.redSqr().redISub(this.x.redAdd(this.x)); var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); return this.curve.point(nx, ny); }; Point.prototype.getX = function getX() { return this.x.fromRed(); }; Point.prototype.getY = function getY() { return this.y.fromRed(); }; Point.prototype.mul = function mul(k) { k = new BN(k, 16); if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k); else if (this.curve.endo) return this.curve._endoWnafMulAdd([ this ], [ k ]); else return this.curve._wnafMul(this, k); }; Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { var points = [ this, p2 ]; var coeffs = [ k1, k2 ]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs); else return this.curve._wnafMulAdd(1, points, coeffs, 2); }; Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { var points = [ this, p2 ]; var coeffs = [ k1, k2 ]; if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true); else return this.curve._wnafMulAdd(1, points, coeffs, 2, true); }; Point.prototype.eq = function eq(p) { return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); }; Point.prototype.neg = function neg(_precompute) { if (this.inf) return this; var res = this.curve.point(this.x, this.y.redNeg()); if (_precompute && this.precomputed) { var pre = this.precomputed; var negate = function(p) { return p.neg(); }; res.precomputed = { naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(negate) }, doubles: pre.doubles && { step: pre.doubles.step, points: pre.doubles.points.map(negate) } }; } return res; }; Point.prototype.toJ = function toJ() { if (this.inf) return this.curve.jpoint(null, null, null); var res = this.curve.jpoint(this.x, this.y, this.curve.one); return res; }; function JPoint(curve, x, y, z) { Base.BasePoint.call(this, curve, 'jacobian'); if (x === null && y === null && z === null) { this.x = this.curve.one; this.y = this.curve.one; this.z = new BN(0); } else { this.x = new BN(x, 16); this.y = new BN(y, 16); this.z = new BN(z, 16); } if (!this.x.red) this.x = this.x.toRed(this.curve.red); if (!this.y.red) this.y = this.y.toRed(this.curve.red); if (!this.z.red) this.z = this.z.toRed(this.curve.red); this.zOne = this.z === this.curve.one; } inherits(JPoint, Base.BasePoint); ShortCurve.prototype.jpoint = function jpoint(x, y, z) { return new JPoint(this, x, y, z); }; JPoint.prototype.toP = function toP() { if (this.isInfinity()) return this.curve.point(null, null); var zinv = this.z.redInvm(); var zinv2 = zinv.redSqr(); var ax = this.x.redMul(zinv2); var ay = this.y.redMul(zinv2).redMul(zinv); return this.curve.point(ax, ay); }; JPoint.prototype.neg = function neg() { return this.curve.jpoint(this.x, this.y.redNeg(), this.z); }; JPoint.prototype.add = function add(p) { // O + P = P if (this.isInfinity()) return p; // P + O = P if (p.isInfinity()) return this; // 12M + 4S + 7A var pz2 = p.z.redSqr(); var z2 = this.z.redSqr(); var u1 = this.x.redMul(pz2); var u2 = p.x.redMul(z2); var s1 = this.y.redMul(pz2.redMul(p.z)); var s2 = p.y.redMul(z2.redMul(this.z)); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(p.z).redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mixedAdd = function mixedAdd(p) { // O + P = P if (this.isInfinity()) return p.toJ(); // P + O = P if (p.isInfinity()) return this; // 8M + 3S + 7A var z2 = this.z.redSqr(); var u1 = this.x; var u2 = p.x.redMul(z2); var s1 = this.y; var s2 = p.y.redMul(z2).redMul(this.z); var h = u1.redSub(u2); var r = s1.redSub(s2); if (h.cmpn(0) === 0) { if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null); else return this.dbl(); } var h2 = h.redSqr(); var h3 = h2.redMul(h); var v = u1.redMul(h2); var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); var nz = this.z.redMul(h); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.dblp = function dblp(pow) { if (pow === 0) return this; if (this.isInfinity()) return this; if (!pow) return this.dbl(); if (this.curve.zeroA || this.curve.threeA) { var r = this; for (var i = 0; i < pow; i++) r = r.dbl(); return r; } // 1M + 2S + 1A + N * (4S + 5M + 8A) // N = 1 => 6M + 6S + 9A var a = this.curve.a; var tinv = this.curve.tinv; var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); // Reuse results var jyd = jy.redAdd(jy); for (var i = 0; i < pow; i++) { var jx2 = jx.redSqr(); var jyd2 = jyd.redSqr(); var jyd4 = jyd2.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var t1 = jx.redMul(jyd2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var dny = c.redMul(t2); dny = dny.redIAdd(dny).redISub(jyd4); var nz = jyd.redMul(jz); if (i + 1 < pow) jz4 = jz4.redMul(jyd4); jx = nx; jz = nz; jyd = dny; } return this.curve.jpoint(jx, jyd.redMul(tinv), jz); }; JPoint.prototype.dbl = function dbl() { if (this.isInfinity()) return this; if (this.curve.zeroA) return this._zeroDbl(); else if (this.curve.threeA) return this._threeDbl(); else return this._dbl(); }; JPoint.prototype._zeroDbl = function _zeroDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-mdbl-2007-bl // 1M + 5S + 14A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html // #doubling-dbl-2009-l // 2M + 5S + 13A // A = X1^2 var a = this.x.redSqr(); // B = Y1^2 var b = this.y.redSqr(); // C = B^2 var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C) var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); d = d.redIAdd(d); // E = 3 * A var e = a.redAdd(a).redIAdd(a); // F = E^2 var f = e.redSqr(); // 8 * C var c8 = c.redIAdd(c); c8 = c8.redIAdd(c8); c8 = c8.redIAdd(c8); // X3 = F - 2 * D nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1 nz = this.y.redMul(this.z); nz = nz.redIAdd(nz); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._threeDbl = function _threeDbl() { var nx; var ny; var nz; // Z = 1 if (this.zOne) { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html // #doubling-mdbl-2007-bl // 1M + 5S + 15A // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); s = s.redIAdd(s); // M = 3 * XX + a var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S var t = m.redSqr().redISub(s).redISub(s); // X3 = T nx = t; // Y3 = M * (S - T) - 8 * YYYY var yyyy8 = yyyy.redIAdd(yyyy); yyyy8 = yyyy8.redIAdd(yyyy8); yyyy8 = yyyy8.redIAdd(yyyy8); ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1 nz = this.y.redAdd(this.y); } else { // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b // 3M + 5S // delta = Z1^2 var delta = this.z.redSqr(); // gamma = Y1^2 var gamma = this.y.redSqr(); // beta = X1 * gamma var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta) var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta var beta4 = beta.redIAdd(beta); beta4 = beta4.redIAdd(beta4); var beta8 = beta4.redAdd(beta4); nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 var ggamma8 = gamma.redSqr(); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ggamma8 = ggamma8.redIAdd(ggamma8); ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); } return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype._dbl = function _dbl() { var a = this.curve.a; // 4M + 6S + 10A var jx = this.x; var jy = this.y; var jz = this.z; var jz4 = jz.redSqr().redSqr(); var jx2 = jx.redSqr(); var jy2 = jy.redSqr(); var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); var jxd4 = jx.redAdd(jx); jxd4 = jxd4.redIAdd(jxd4); var t1 = jxd4.redMul(jy2); var nx = c.redSqr().redISub(t1.redAdd(t1)); var t2 = t1.redISub(nx); var jyd8 = jy2.redSqr(); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); jyd8 = jyd8.redIAdd(jyd8); var ny = c.redMul(t2).redISub(jyd8); var nz = jy.redAdd(jy).redMul(jz); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.trpl = function trpl() { if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl // 5M + 10S + ... // XX = X1^2 var xx = this.x.redSqr(); // YY = Y1^2 var yy = this.y.redSqr(); // ZZ = Z1^2 var zz = this.z.redSqr(); // YYYY = YY^2 var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0 var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2 var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); e = e.redIAdd(e); e = e.redAdd(e).redIAdd(e); e = e.redISub(mm); // EE = E^2 var ee = e.redSqr(); // T = 16*YYYY var t = yyyy.redIAdd(yyyy); t = t.redIAdd(t); t = t.redIAdd(t); t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U) var yyu4 = yy.redMul(u); yyu4 = yyu4.redIAdd(yyu4); yyu4 = yyu4.redIAdd(yyu4); var nx = this.x.redMul(ee).redISub(yyu4); nx = nx.redIAdd(nx); nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE) var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); return this.curve.jpoint(nx, ny, nz); }; JPoint.prototype.mul = function mul(k, kbase) { k = new BN(k, kbase); return this.curve._wnafMul(this, k); }; JPoint.prototype.eq = function eq(p) { if (p.type === 'affine') return this.eq(p.toJ()); if (this === p) return true; // x1 * z2^2 == x2 * z1^2 var z2 = this.z.redSqr(); var pz2 = p.z.redSqr(); if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3 var z3 = z2.redMul(this.z); var pz3 = pz2.redMul(p.z); return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; }; JPoint.prototype.eqXToP = function eqXToP(x) { var zs = this.z.redSqr(); var rx = x.toRed(this.curve.red).redMul(zs); if (this.x.cmp(rx) === 0) return true; var xc = x.clone(); var t = this.curve.redN.redMul(zs); for (;;) { xc.iadd(this.curve.n); if (xc.cmp(this.curve.p) >= 0) return false; rx.redIAdd(t); if (this.x.cmp(rx) === 0) return true; } return false; }; JPoint.prototype.inspect = function inspect() { if (this.isInfinity()) return ''; return ''; }; JPoint.prototype.isInfinity = function isInfinity() { // XXX This code assumes that zero is always zero in red return this.z.cmpn(0) === 0; }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/curves.js": /*!******************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/curves.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var curves = exports; var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); var elliptic = __webpack_require__(/*! ../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var assert = elliptic.utils.assert; function PresetCurve(options) { if (options.type === 'short') this.curve = new elliptic.curve.short(options); else if (options.type === 'edwards') this.curve = new elliptic.curve.edwards(options); else this.curve = new elliptic.curve.mont(options); this.g = this.curve.g; this.n = this.curve.n; this.hash = options.hash; assert(this.g.validate(), 'Invalid curve'); assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); } curves.PresetCurve = PresetCurve; function defineCurve(name, options) { Object.defineProperty(curves, name, { configurable: true, enumerable: true, get: function() { var curve = new PresetCurve(options); Object.defineProperty(curves, name, { configurable: true, enumerable: true, value: curve }); return curve; } }); } defineCurve('p192', { type: 'short', prime: 'p192', p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', hash: hash.sha256, gRed: false, g: [ '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' ] }); defineCurve('p224', { type: 'short', prime: 'p224', p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', hash: hash.sha256, gRed: false, g: [ 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' ] }); defineCurve('p256', { type: 'short', prime: null, p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', hash: hash.sha256, gRed: false, g: [ '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' ] }); defineCurve('p384', { type: 'short', prime: null, p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff', a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc', b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', hash: hash.sha384, gRed: false, g: [ 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' ] }); defineCurve('p521', { type: 'short', prime: null, p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff', a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc', b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', hash: hash.sha512, gRed: false, g: [ '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650' ] }); defineCurve('curve25519', { type: 'mont', prime: 'p25519', p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', a: '76d06', b: '1', n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', hash: hash.sha256, gRed: false, g: [ '9' ] }); defineCurve('ed25519', { type: 'edwards', prime: 'p25519', p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', a: '-1', c: '1', // -121665 * (121666^(-1)) (mod P) d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', hash: hash.sha256, gRed: false, g: [ '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5 '6666666666666666666666666666666666666666666666666666666666666658' ] }); var pre; try { pre = __webpack_require__(/*! ./precomputed/secp256k1 */ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js"); } catch (e) { pre = undefined; } defineCurve('secp256k1', { type: 'short', prime: 'k256', p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', a: '0', b: '7', n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', h: '1', hash: hash.sha256, // Precomputed endomorphism beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', basis: [ { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' } ], gRed: false, g: [ '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre ] }); /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/ec/index.js": /*!********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/ec/index.js ***! \********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var HmacDRBG = __webpack_require__(/*! hmac-drbg */ "./node_modules/hmac-drbg/lib/hmac-drbg.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var KeyPair = __webpack_require__(/*! ./key */ "./node_modules/elliptic/lib/elliptic/ec/key.js"); var Signature = __webpack_require__(/*! ./signature */ "./node_modules/elliptic/lib/elliptic/ec/signature.js"); function EC(options) { if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)` if (typeof options === 'string') { assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options); options = elliptic.curves[options]; } // Shortcut for `elliptic.ec(elliptic.curves.curveName)` if (options instanceof elliptic.curves.PresetCurve) options = { curve: options }; this.curve = options.curve.curve; this.n = this.curve.n; this.nh = this.n.ushrn(1); this.g = this.curve.g; // Point on curve this.g = options.curve.g; this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG this.hash = options.hash || options.curve.hash; } module.exports = EC; EC.prototype.keyPair = function keyPair(options) { return new KeyPair(this, options); }; EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { return KeyPair.fromPrivate(this, priv, enc); }; EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { return KeyPair.fromPublic(this, pub, enc); }; EC.prototype.genKeyPair = function genKeyPair(options) { if (!options) options = {}; // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, pers: options.pers, persEnc: options.persEnc || 'utf8', entropy: options.entropy || elliptic.rand(this.hash.hmacStrength), entropyEnc: options.entropy && options.entropyEnc || 'utf8', nonce: this.n.toArray() }); var bytes = this.n.byteLength(); var ns2 = this.n.sub(new BN(2)); do { var priv = new BN(drbg.generate(bytes)); if (priv.cmp(ns2) > 0) continue; priv.iaddn(1); return this.keyFromPrivate(priv); } while (true); }; EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { var delta = msg.byteLength() * 8 - this.n.bitLength(); if (delta > 0) msg = msg.ushrn(delta); if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n); else return msg; }; EC.prototype.sign = function sign(msg, key, enc, options) { if (typeof enc === 'object') { options = enc; enc = null; } if (!options) options = {}; key = this.keyFromPrivate(key, enc); msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy var bytes = this.n.byteLength(); var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG var drbg = new HmacDRBG({ hash: this.hash, entropy: bkey, nonce: nonce, pers: options.pers, persEnc: options.persEnc || 'utf8' }); // Number of bytes to generate var ns1 = this.n.sub(new BN(1)); for (var iter = 0; true; iter++) { var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())); k = this._truncateToN(k, true); if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue; var kp = this.g.mul(k); if (kp.isInfinity()) continue; var kpX = kp.getX(); var r = kpX.umod(this.n); if (r.cmpn(0) === 0) continue; var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); s = s.umod(this.n); if (s.cmpn(0) === 0) continue; var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2` if (options.canonical && s.cmp(this.nh) > 0) { s = this.n.sub(s); recoveryParam ^= 1; } return new Signature({ r: r, s: s, recoveryParam: recoveryParam }); } }; EC.prototype.verify = function verify(msg, signature, key, enc) { msg = this._truncateToN(new BN(msg, 16)); key = this.keyFromPublic(key, enc); signature = new Signature(signature, 'hex'); // Perform primitive values validation var r = signature.r; var s = signature.s; if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false; if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature var sinv = s.invm(this.n); var u1 = sinv.mul(msg).umod(this.n); var u2 = sinv.mul(r).umod(this.n); if (!this.curve._maxwellTrick) { var p = this.g.mulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; return p.getX().umod(this.n).cmp(r) === 0; } // NOTE: Greg Maxwell's trick, inspired by: // https://git.io/vad3K var p = this.g.jmulAdd(u1, key.getPublic(), u2); if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`, // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the // inverse of `p.z^2` return p.eqXToP(r); }; EC.prototype.recoverPubKey = function(msg, signature, j, enc) { assert((3 & j) === j, 'The recovery param is more than two bits'); signature = new Signature(signature, enc); var n = this.n; var e = new BN(msg); var r = signature.r; var s = signature.s; // A set LSB signifies that the y-coordinate is odd var isYOdd = j & 1; var isSecondKey = j >> 1; if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn. if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd); else r = this.curve.pointFromX(r, isYOdd); var rInv = signature.r.invm(n); var s1 = n.sub(e).mul(rInv).umod(n); var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR - eG) // Q = r^-1 (sR + -eG) return this.g.mulAdd(s1, r, s2); }; EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { signature = new Signature(signature, enc); if (signature.recoveryParam !== null) return signature.recoveryParam; for (var i = 0; i < 4; i++) { var Qprime; try { Qprime = this.recoverPubKey(e, signature, i); } catch (e) { continue; } if (Qprime.eq(Q)) return i; } throw new Error('Unable to find valid recovery factor'); }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/ec/key.js": /*!******************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/ec/key.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; function KeyPair(ec, options) { this.ec = ec; this.priv = null; this.pub = null; // KeyPair(ec, { priv: ..., pub: ... }) if (options.priv) this._importPrivate(options.priv, options.privEnc); if (options.pub) this._importPublic(options.pub, options.pubEnc); } module.exports = KeyPair; KeyPair.fromPublic = function fromPublic(ec, pub, enc) { if (pub instanceof KeyPair) return pub; return new KeyPair(ec, { pub: pub, pubEnc: enc }); }; KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { if (priv instanceof KeyPair) return priv; return new KeyPair(ec, { priv: priv, privEnc: enc }); }; KeyPair.prototype.validate = function validate() { var pub = this.getPublic(); if (pub.isInfinity()) return { result: false, reason: 'Invalid public key' }; if (!pub.validate()) return { result: false, reason: 'Public key is not a point' }; if (!pub.mul(this.ec.curve.n).isInfinity()) return { result: false, reason: 'Public key * N != O' }; return { result: true, reason: null }; }; KeyPair.prototype.getPublic = function getPublic(compact, enc) { // compact is optional argument if (typeof compact === 'string') { enc = compact; compact = null; } if (!this.pub) this.pub = this.ec.g.mul(this.priv); if (!enc) return this.pub; return this.pub.encode(enc, compact); }; KeyPair.prototype.getPrivate = function getPrivate(enc) { if (enc === 'hex') return this.priv.toString(16, 2); else return this.priv; }; KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail // in fixed multiplication method this.priv = this.priv.umod(this.ec.curve.n); }; KeyPair.prototype._importPublic = function _importPublic(key, enc) { if (key.x || key.y) { // Montgomery points only have an `x` coordinate. // Weierstrass/Edwards points on the other hand have both `x` and // `y` coordinates. if (this.ec.curve.type === 'mont') { assert(key.x, 'Need x coordinate'); } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') { assert(key.x && key.y, 'Need both x and y coordinate'); } this.pub = this.ec.curve.point(key.x, key.y); return; } this.pub = this.ec.curve.decodePoint(key, enc); }; // ECDH KeyPair.prototype.derive = function derive(pub) { return pub.mul(this.priv).getX(); }; // ECDSA KeyPair.prototype.sign = function sign(msg, enc, options) { return this.ec.sign(msg, this, enc, options); }; KeyPair.prototype.verify = function verify(msg, signature) { return this.ec.verify(msg, signature, this); }; KeyPair.prototype.inspect = function inspect() { return ''; }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/ec/signature.js": /*!************************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/ec/signature.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; function Signature(options, enc) { if (options instanceof Signature) return options; if (this._importDER(options, enc)) return; assert(options.r && options.s, 'Signature without r or s'); this.r = new BN(options.r, 16); this.s = new BN(options.s, 16); if (options.recoveryParam === undefined) this.recoveryParam = null; else this.recoveryParam = options.recoveryParam; } module.exports = Signature; function Position() { this.place = 0; } function getLength(buf, p) { var initial = buf[p.place++]; if (!(initial & 0x80)) { return initial; } var octetLen = initial & 0xf; var val = 0; for (var i = 0, off = p.place; i < octetLen; i++, off++) { val <<= 8; val |= buf[off]; } p.place = off; return val; } function rmPadding(buf) { var i = 0; var len = buf.length - 1; while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { i++; } if (i === 0) { return buf; } return buf.slice(i); } Signature.prototype._importDER = function _importDER(data, enc) { data = utils.toArray(data, enc); var p = new Position(); if (data[p.place++] !== 0x30) { return false; } var len = getLength(data, p); if ((len + p.place) !== data.length) { return false; } if (data[p.place++] !== 0x02) { return false; } var rlen = getLength(data, p); var r = data.slice(p.place, rlen + p.place); p.place += rlen; if (data[p.place++] !== 0x02) { return false; } var slen = getLength(data, p); if (data.length !== slen + p.place) { return false; } var s = data.slice(p.place, slen + p.place); if (r[0] === 0 && (r[1] & 0x80)) { r = r.slice(1); } if (s[0] === 0 && (s[1] & 0x80)) { s = s.slice(1); } this.r = new BN(r); this.s = new BN(s); this.recoveryParam = null; return true; }; function constructLength(arr, len) { if (len < 0x80) { arr.push(len); return; } var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); arr.push(octets | 0x80); while (--octets) { arr.push((len >>> (octets << 3)) & 0xff); } arr.push(len); } Signature.prototype.toDER = function toDER(enc) { var r = this.r.toArray(); var s = this.s.toArray(); // Pad values if (r[0] & 0x80) r = [ 0 ].concat(r); // Pad values if (s[0] & 0x80) s = [ 0 ].concat(s); r = rmPadding(r); s = rmPadding(s); while (!s[0] && !(s[1] & 0x80)) { s = s.slice(1); } var arr = [ 0x02 ]; constructLength(arr, r.length); arr = arr.concat(r); arr.push(0x02); constructLength(arr, s.length); var backHalf = arr.concat(s); var res = [ 0x30 ]; constructLength(res, backHalf.length); res = res.concat(backHalf); return utils.encode(res, enc); }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/eddsa/index.js": /*!***********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/eddsa/index.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var KeyPair = __webpack_require__(/*! ./key */ "./node_modules/elliptic/lib/elliptic/eddsa/key.js"); var Signature = __webpack_require__(/*! ./signature */ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js"); function EDDSA(curve) { assert(curve === 'ed25519', 'only tested with ed25519 so far'); if (!(this instanceof EDDSA)) return new EDDSA(curve); var curve = elliptic.curves[curve].curve; this.curve = curve; this.g = curve.g; this.g.precompute(curve.n.bitLength() + 1); this.pointClass = curve.point().constructor; this.encodingLength = Math.ceil(curve.n.bitLength() / 8); this.hash = hash.sha512; } module.exports = EDDSA; /** * @param {Array|String} message - message bytes * @param {Array|String|KeyPair} secret - secret bytes or a keypair * @returns {Signature} - signature */ EDDSA.prototype.sign = function sign(message, secret) { message = parseBytes(message); var key = this.keyFromSecret(secret); var r = this.hashInt(key.messagePrefix(), message); var R = this.g.mul(r); var Rencoded = this.encodePoint(R); var s_ = this.hashInt(Rencoded, key.pubBytes(), message) .mul(key.priv()); var S = r.add(s_).umod(this.curve.n); return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }); }; /** * @param {Array} message - message bytes * @param {Array|String|Signature} sig - sig bytes * @param {Array|String|Point|KeyPair} pub - public key * @returns {Boolean} - true if public key matches sig of message */ EDDSA.prototype.verify = function verify(message, sig, pub) { message = parseBytes(message); sig = this.makeSignature(sig); var key = this.keyFromPublic(pub); var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); var SG = this.g.mul(sig.S()); var RplusAh = sig.R().add(key.pub().mul(h)); return RplusAh.eq(SG); }; EDDSA.prototype.hashInt = function hashInt() { var hash = this.hash(); for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]); return utils.intFromLE(hash.digest()).umod(this.curve.n); }; EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { return KeyPair.fromPublic(this, pub); }; EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { return KeyPair.fromSecret(this, secret); }; EDDSA.prototype.makeSignature = function makeSignature(sig) { if (sig instanceof Signature) return sig; return new Signature(this, sig); }; /** * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2 * * EDDSA defines methods for encoding and decoding points and integers. These are * helper convenience methods, that pass along to utility functions implied * parameters. * */ EDDSA.prototype.encodePoint = function encodePoint(point) { var enc = point.getY().toArray('le', this.encodingLength); enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0; return enc; }; EDDSA.prototype.decodePoint = function decodePoint(bytes) { bytes = utils.parseBytes(bytes); var lastIx = bytes.length - 1; var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80); var xIsOdd = (bytes[lastIx] & 0x80) !== 0; var y = utils.intFromLE(normed); return this.curve.pointFromY(y, xIsOdd); }; EDDSA.prototype.encodeInt = function encodeInt(num) { return num.toArray('le', this.encodingLength); }; EDDSA.prototype.decodeInt = function decodeInt(bytes) { return utils.intFromLE(bytes); }; EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/eddsa/key.js": /*!*********************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/eddsa/key.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var parseBytes = utils.parseBytes; var cachedProperty = utils.cachedProperty; /** * @param {EDDSA} eddsa - instance * @param {Object} params - public/private key parameters * * @param {Array} [params.secret] - secret seed bytes * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) * @param {Array} [params.pub] - public key point encoded as bytes * */ function KeyPair(eddsa, params) { this.eddsa = eddsa; this._secret = parseBytes(params.secret); if (eddsa.isPoint(params.pub)) this._pub = params.pub; else this._pubBytes = parseBytes(params.pub); } KeyPair.fromPublic = function fromPublic(eddsa, pub) { if (pub instanceof KeyPair) return pub; return new KeyPair(eddsa, { pub: pub }); }; KeyPair.fromSecret = function fromSecret(eddsa, secret) { if (secret instanceof KeyPair) return secret; return new KeyPair(eddsa, { secret: secret }); }; KeyPair.prototype.secret = function secret() { return this._secret; }; cachedProperty(KeyPair, 'pubBytes', function pubBytes() { return this.eddsa.encodePoint(this.pub()); }); cachedProperty(KeyPair, 'pub', function pub() { if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes); return this.eddsa.g.mul(this.priv()); }); cachedProperty(KeyPair, 'privBytes', function privBytes() { var eddsa = this.eddsa; var hash = this.hash(); var lastIx = eddsa.encodingLength - 1; var a = hash.slice(0, eddsa.encodingLength); a[0] &= 248; a[lastIx] &= 127; a[lastIx] |= 64; return a; }); cachedProperty(KeyPair, 'priv', function priv() { return this.eddsa.decodeInt(this.privBytes()); }); cachedProperty(KeyPair, 'hash', function hash() { return this.eddsa.hash().update(this.secret()).digest(); }); cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { return this.hash().slice(this.eddsa.encodingLength); }); KeyPair.prototype.sign = function sign(message) { assert(this._secret, 'KeyPair can only verify'); return this.eddsa.sign(message, this); }; KeyPair.prototype.verify = function verify(message, sig) { return this.eddsa.verify(message, sig, this); }; KeyPair.prototype.getSecret = function getSecret(enc) { assert(this._secret, 'KeyPair is public only'); return utils.encode(this.secret(), enc); }; KeyPair.prototype.getPublic = function getPublic(enc) { return utils.encode(this.pubBytes(), enc); }; module.exports = KeyPair; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js": /*!***************************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/eddsa/signature.js ***! \***************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var elliptic = __webpack_require__(/*! ../../elliptic */ "./node_modules/elliptic/lib/elliptic.js"); var utils = elliptic.utils; var assert = utils.assert; var cachedProperty = utils.cachedProperty; var parseBytes = utils.parseBytes; /** * @param {EDDSA} eddsa - eddsa instance * @param {Array|Object} sig - * @param {Array|Point} [sig.R] - R point as Point or bytes * @param {Array|bn} [sig.S] - S scalar as bn or bytes * @param {Array} [sig.Rencoded] - R point encoded * @param {Array} [sig.Sencoded] - S scalar encoded */ function Signature(eddsa, sig) { this.eddsa = eddsa; if (typeof sig !== 'object') sig = parseBytes(sig); if (Array.isArray(sig)) { sig = { R: sig.slice(0, eddsa.encodingLength), S: sig.slice(eddsa.encodingLength) }; } assert(sig.R && sig.S, 'Signature without R or S'); if (eddsa.isPoint(sig.R)) this._R = sig.R; if (sig.S instanceof BN) this._S = sig.S; this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; } cachedProperty(Signature, 'S', function S() { return this.eddsa.decodeInt(this.Sencoded()); }); cachedProperty(Signature, 'R', function R() { return this.eddsa.decodePoint(this.Rencoded()); }); cachedProperty(Signature, 'Rencoded', function Rencoded() { return this.eddsa.encodePoint(this.R()); }); cachedProperty(Signature, 'Sencoded', function Sencoded() { return this.eddsa.encodeInt(this.S()); }); Signature.prototype.toBytes = function toBytes() { return this.Rencoded().concat(this.Sencoded()); }; Signature.prototype.toHex = function toHex() { return utils.encode(this.toBytes(), 'hex').toUpperCase(); }; module.exports = Signature; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js": /*!*********************************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js ***! \*********************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = { doubles: { step: 4, points: [ [ 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' ], [ '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' ], [ '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' ], [ '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' ], [ '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' ], [ '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' ], [ 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' ], [ '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' ], [ 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' ], [ 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' ], [ 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' ], [ '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' ], [ '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' ], [ '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' ], [ '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' ], [ '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' ], [ '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' ], [ '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' ], [ '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' ], [ 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' ], [ 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' ], [ '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' ], [ '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' ], [ 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' ], [ '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' ], [ 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' ], [ 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' ], [ 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' ], [ 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' ], [ 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' ], [ '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' ], [ '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' ], [ 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' ], [ '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' ], [ 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' ], [ 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' ], [ 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' ], [ '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' ], [ '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' ], [ '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' ], [ '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' ], [ 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' ], [ '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' ], [ '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' ], [ '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' ], [ 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' ], [ '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' ], [ 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' ], [ 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' ], [ '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' ], [ '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' ], [ 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' ], [ 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' ], [ 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' ], [ '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' ], [ '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' ], [ 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' ], [ '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' ], [ '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' ], [ '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' ], [ 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' ], [ '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' ], [ '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' ], [ 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' ], [ 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' ] ] }, naf: { wnd: 7, points: [ [ 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' ], [ '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' ], [ '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' ], [ 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' ], [ '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' ], [ 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' ], [ 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' ], [ 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' ], [ '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' ], [ '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' ], [ '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' ], [ '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' ], [ 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' ], [ 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' ], [ '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' ], [ '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' ], [ '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' ], [ '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' ], [ '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' ], [ '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' ], [ 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' ], [ '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' ], [ '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' ], [ 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' ], [ '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' ], [ 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' ], [ 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' ], [ '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' ], [ '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' ], [ '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' ], [ 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' ], [ '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' ], [ 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' ], [ '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' ], [ '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' ], [ 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' ], [ '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' ], [ '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' ], [ 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' ], [ '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' ], [ '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' ], [ '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' ], [ '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' ], [ 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' ], [ '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' ], [ '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' ], [ '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' ], [ 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' ], [ 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' ], [ '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' ], [ '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' ], [ 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' ], [ 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' ], [ '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' ], [ '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' ], [ 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' ], [ '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' ], [ 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' ], [ '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' ], [ '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' ], [ 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' ], [ 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' ], [ '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' ], [ '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' ], [ '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' ], [ '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' ], [ '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' ], [ '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' ], [ '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' ], [ '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' ], [ 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' ], [ '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' ], [ 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' ], [ 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' ], [ 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' ], [ 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' ], [ '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' ], [ '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' ], [ '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' ], [ 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' ], [ 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' ], [ 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' ], [ 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' ], [ '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' ], [ 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' ], [ 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' ], [ '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' ], [ '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' ], [ 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' ], [ 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' ], [ 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' ], [ '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' ], [ 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' ], [ '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' ], [ 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' ], [ 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' ], [ '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' ], [ 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' ], [ 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' ], [ 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' ], [ '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' ], [ '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' ], [ 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' ], [ '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' ], [ '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' ], [ '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' ], [ 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' ], [ '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' ], [ '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' ], [ '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' ], [ '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' ], [ 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' ], [ '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' ], [ 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' ], [ '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' ], [ 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' ], [ 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' ], [ 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' ], [ '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' ], [ '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' ], [ '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' ], [ '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' ], [ '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' ], [ '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' ], [ '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' ], [ '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' ], [ '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' ] ] } }; /***/ }), /***/ "./node_modules/elliptic/lib/elliptic/utils.js": /*!*****************************************************!*\ !*** ./node_modules/elliptic/lib/elliptic/utils.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = exports; var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); var minAssert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var minUtils = __webpack_require__(/*! minimalistic-crypto-utils */ "./node_modules/minimalistic-crypto-utils/lib/utils.js"); utils.assert = minAssert; utils.toArray = minUtils.toArray; utils.zero2 = minUtils.zero2; utils.toHex = minUtils.toHex; utils.encode = minUtils.encode; // Represent num in a w-NAF form function getNAF(num, w) { var naf = []; var ws = 1 << (w + 1); var k = num.clone(); while (k.cmpn(1) >= 0) { var z; if (k.isOdd()) { var mod = k.andln(ws - 1); if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod; else z = mod; k.isubn(z); } else { z = 0; } naf.push(z); // Optimization, shift by word if possible var shift = (k.cmpn(0) !== 0 && k.andln(ws - 1) === 0) ? (w + 1) : 1; for (var i = 1; i < shift; i++) naf.push(0); k.iushrn(shift); } return naf; } utils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form function getJSF(k1, k2) { var jsf = [ [], [] ]; k1 = k1.clone(); k2 = k2.clone(); var d1 = 0; var d2 = 0; while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { // First phase var m14 = (k1.andln(3) + d1) & 3; var m24 = (k2.andln(3) + d2) & 3; if (m14 === 3) m14 = -1; if (m24 === 3) m24 = -1; var u1; if ((m14 & 1) === 0) { u1 = 0; } else { var m8 = (k1.andln(7) + d1) & 7; if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14; else u1 = m14; } jsf[0].push(u1); var u2; if ((m24 & 1) === 0) { u2 = 0; } else { var m8 = (k2.andln(7) + d2) & 7; if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24; else u2 = m24; } jsf[1].push(u2); // Second phase if (2 * d1 === u1 + 1) d1 = 1 - d1; if (2 * d2 === u2 + 1) d2 = 1 - d2; k1.iushrn(1); k2.iushrn(1); } return jsf; } utils.getJSF = getJSF; function cachedProperty(obj, name, computer) { var key = '_' + name; obj.prototype[name] = function cachedProperty() { return this[key] !== undefined ? this[key] : this[key] = computer.call(this); }; } utils.cachedProperty = cachedProperty; function parseBytes(bytes) { return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes; } utils.parseBytes = parseBytes; function intFromLE(bytes) { return new BN(bytes, 'hex', 'le'); } utils.intFromLE = intFromLE; /***/ }), /***/ "./node_modules/elliptic/package.json": /*!********************************************!*\ !*** ./node_modules/elliptic/package.json ***! \********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = {"_args":[["elliptic@6.4.0","c:\\Cardknox\\PartnerPortal\\ClientApp"]],"_from":"elliptic@6.4.0","_id":"elliptic@6.4.0","_inBundle":false,"_integrity":"sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.4.0","name":"elliptic","escapedName":"elliptic","rawSpec":"6.4.0","saveSpec":null,"fetchSpec":"6.4.0"},"_requiredBy":["/browserify-sign","/create-ecdh"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz","_spec":"6.4.0","_where":"c:\\Cardknox\\PartnerPortal\\ClientApp","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^2.11.3","grunt":"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2","istanbul":"^0.4.2","jscs":"^2.9.0","jshint":"^2.6.0","mocha":"^2.1.0"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.4.0"} /***/ }), /***/ "./node_modules/emailjs-com/source/index.js": /*!**************************************************!*\ !*** ./node_modules/emailjs-com/source/index.js ***! \**************************************************/ /*! dynamic exports provided */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EmailJSResponseStatus = exports.sendForm = exports.send = exports.init = void 0; var EmailJSResponseStatus_1 = __webpack_require__(/*! ./models/EmailJSResponseStatus */ "./node_modules/emailjs-com/source/models/EmailJSResponseStatus.js"); Object.defineProperty(exports, "EmailJSResponseStatus", { enumerable: true, get: function () { return EmailJSResponseStatus_1.EmailJSResponseStatus; } }); var UI_1 = __webpack_require__(/*! ./services/ui/UI */ "./node_modules/emailjs-com/source/services/ui/UI.js"); var _userID = null; var _origin = 'https://api.emailjs.com'; function sendPost(url, data, headers) { if (headers === void 0) { headers = {}; } return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); xhr.addEventListener('load', function (event) { var responseStatus = new EmailJSResponseStatus_1.EmailJSResponseStatus(event.target); if (responseStatus.status === 200 || responseStatus.text === 'OK') { resolve(responseStatus); } else { reject(responseStatus); } }); xhr.addEventListener('error', function (event) { reject(new EmailJSResponseStatus_1.EmailJSResponseStatus(event.target)); }); xhr.open('POST', url, true); for (var key in headers) { xhr.setRequestHeader(key, headers[key]); } xhr.send(data); }); } function appendGoogleCaptcha(templatePrams) { var element = document && document.getElementById('g-recaptcha-response'); if (element && element.value) { templatePrams['g-recaptcha-response'] = element.value; } element = null; return templatePrams; } function fixIdSelector(selector) { if (selector[0] !== '#') { return '#' + selector; } return selector; } /** * Initiation * @param {string} userID - set the EmailJS user ID * @param {string} origin - set the EmailJS origin */ function init(userID, origin) { _userID = userID; _origin = origin || 'https://api.emailjs.com'; } exports.init = init; /** * Send a template to the specific EmailJS service * @param {string} serviceID - the EmailJS service ID * @param {string} templateID - the EmailJS template ID * @param {Object} templatePrams - the template params, what will be set to the EmailJS template * @param {string} userID - the EmailJS user ID * @returns {Promise} */ function send(serviceID, templateID, templatePrams, userID) { var params = { lib_version: '2.6.3', user_id: userID || _userID, service_id: serviceID, template_id: templateID, template_params: appendGoogleCaptcha(templatePrams) }; return sendPost(_origin + '/api/v1.0/email/send', JSON.stringify(params), { 'Content-type': 'application/json' }); } exports.send = send; /** * Send a form the specific EmailJS service * @param {string} serviceID - the EmailJS service ID * @param {string} templateID - the EmailJS template ID * @param {string | HTMLFormElement} form - the form element or selector * @param {string} userID - the EmailJS user ID * @returns {Promise} */ function sendForm(serviceID, templateID, form, userID) { if (typeof form === 'string') { form = document.querySelector(fixIdSelector(form)); } if (!form || form.nodeName !== 'FORM') { throw 'Expected the HTML form element or the style selector of form'; } UI_1.UI.progressState(form); var formData = new FormData(form); formData.append('lib_version', '2.6.3'); formData.append('service_id', serviceID); formData.append('template_id', templateID); formData.append('user_id', userID || _userID); return sendPost(_origin + '/api/v1.0/email/send-form', formData) .then(function (response) { UI_1.UI.successState(form); return response; }, function (error) { UI_1.UI.errorState(form); return Promise.reject(error); }); } exports.sendForm = sendForm; exports.default = { init: init, send: send, sendForm: sendForm }; /***/ }), /***/ "./node_modules/emailjs-com/source/models/EmailJSResponseStatus.js": /*!*************************************************************************!*\ !*** ./node_modules/emailjs-com/source/models/EmailJSResponseStatus.js ***! \*************************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EmailJSResponseStatus = void 0; var EmailJSResponseStatus = /** @class */ (function () { function EmailJSResponseStatus(httpResponse) { this.status = httpResponse.status; this.text = httpResponse.responseText; } return EmailJSResponseStatus; }()); exports.EmailJSResponseStatus = EmailJSResponseStatus; /***/ }), /***/ "./node_modules/emailjs-com/source/services/ui/UI.js": /*!***********************************************************!*\ !*** ./node_modules/emailjs-com/source/services/ui/UI.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UI = void 0; var UI = /** @class */ (function () { function UI() { } UI.clearAll = function (form) { form.classList.remove(this.PROGRESS); form.classList.remove(this.DONE); form.classList.remove(this.ERROR); }; UI.progressState = function (form) { this.clearAll(form); form.classList.add(this.PROGRESS); }; UI.successState = function (form) { form.classList.remove(this.PROGRESS); form.classList.add(this.DONE); }; UI.errorState = function (form) { form.classList.remove(this.PROGRESS); form.classList.add(this.ERROR); }; UI.PROGRESS = 'emailjs-sending'; UI.DONE = 'emailjs-success'; UI.ERROR = 'emailjs-error'; return UI; }()); exports.UI = UI; /***/ }), /***/ "./node_modules/escape-string-regexp/index.js": /*!****************************************************!*\ !*** ./node_modules/escape-string-regexp/index.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; module.exports = function (str) { if (typeof str !== 'string') { throw new TypeError('Expected a string'); } return str.replace(matchOperatorsRe, '\\$&'); }; /***/ }), /***/ "./node_modules/events/events.js": /*!***************************************!*\ !*** ./node_modules/events/events.js ***! \***************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = undefined; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function(n) { if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError('n must be a positive number'); this._maxListeners = n; return this; }; EventEmitter.prototype.emit = function(type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || (isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (er instanceof Error) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); err.context = er; throw err; } } } handler = this._events[type]; if (isUndefined(handler)) return false; if (isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: args = Array.prototype.slice.call(arguments, 1); handler.apply(this, args); } } else if (isObject(handler)) { args = Array.prototype.slice.call(arguments, 1); listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } return true; }; EventEmitter.prototype.addListener = function(type, listener) { var m; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events) this._events = {}; // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; else if (isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); else // Adding the second element, need to change to array. this._events[type] = [this._events[type], listener]; // Check for listener leak if (isObject(this._events[type]) && !this._events[type].warned) { if (!isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; } if (m && m > 0 && this._events[type].length > m) { this._events[type].warned = true; console.error('(node) warning: possible EventEmitter memory ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length); if (typeof console.trace === 'function') { // not supported in IE 10 console.trace(); } } } return this; }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function(type, listener) { if (!isFunction(listener)) throw TypeError('listener must be a function'); var fired = false; function g() { this.removeListener(type, g); if (!fired) { fired = true; listener.apply(this, arguments); } } g.listener = listener; this.on(type, g); return this; }; // emits a 'removeListener' event iff the listener was removed EventEmitter.prototype.removeListener = function(type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events || !this._events[type]) return this; list = this._events[type]; length = list.length; position = -1; if (list === listener || (isFunction(list.listener) && list.listener === listener)) { delete this._events[type]; if (this._events.removeListener) this.emit('removeListener', type, listener); } else if (isObject(list)) { for (i = length; i-- > 0;) { if (list[i] === listener || (list[i].listener && list[i].listener === listener)) { position = i; break; } } if (position < 0) return this; if (list.length === 1) { list.length = 0; delete this._events[type]; } else { list.splice(position, 1); } if (this._events.removeListener) this.emit('removeListener', type, listener); } return this; }; EventEmitter.prototype.removeAllListeners = function(type) { var key, listeners; if (!this._events) return this; // not listening for removeListener, no need to emit if (!this._events.removeListener) { if (arguments.length === 0) this._events = {}; else if (this._events[type]) delete this._events[type]; return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { for (key in this._events) { if (key === 'removeListener') continue; this.removeAllListeners(key); } this.removeAllListeners('removeListener'); this._events = {}; return this; } listeners = this._events[type]; if (isFunction(listeners)) { this.removeListener(type, listeners); } else if (listeners) { // LIFO order while (listeners.length) this.removeListener(type, listeners[listeners.length - 1]); } delete this._events[type]; return this; }; EventEmitter.prototype.listeners = function(type) { var ret; if (!this._events || !this._events[type]) ret = []; else if (isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); return ret; }; EventEmitter.prototype.listenerCount = function(type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; else if (evlistener) return evlistener.length; } return 0; }; EventEmitter.listenerCount = function(emitter, type) { return emitter.listenerCount(type); }; function isFunction(arg) { return typeof arg === 'function'; } function isNumber(arg) { return typeof arg === 'number'; } function isObject(arg) { return typeof arg === 'object' && arg !== null; } function isUndefined(arg) { return arg === void 0; } /***/ }), /***/ "./node_modules/evp_bytestokey/index.js": /*!**********************************************!*\ !*** ./node_modules/evp_bytestokey/index.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer var MD5 = __webpack_require__(/*! md5.js */ "./node_modules/md5.js/index.js") /* eslint-disable camelcase */ function EVP_BytesToKey (password, salt, keyBits, ivLen) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary') if (salt) { if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary') if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length') } var keyLen = keyBits / 8 var key = Buffer.alloc(keyLen) var iv = Buffer.alloc(ivLen || 0) var tmp = Buffer.alloc(0) while (keyLen > 0 || ivLen > 0) { var hash = new MD5() hash.update(tmp) hash.update(password) if (salt) hash.update(salt) tmp = hash.digest() var used = 0 if (keyLen > 0) { var keyStart = key.length - keyLen used = Math.min(keyLen, tmp.length) tmp.copy(key, keyStart, 0, used) keyLen -= used } if (used < tmp.length && ivLen > 0) { var ivStart = iv.length - ivLen var length = Math.min(ivLen, tmp.length - used) tmp.copy(iv, ivStart, used, used + length) ivLen -= length } } tmp.fill(0) return { key: key, iv: iv } } module.exports = EVP_BytesToKey /***/ }), /***/ "./node_modules/exenv/index.js": /*!*************************************!*\ !*** ./node_modules/exenv/index.js ***! \*************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/*! Copyright (c) 2015 Jed Watson. Based on code that is Copyright 2013-2015, Facebook, Inc. All rights reserved. */ /* global define */ (function () { 'use strict'; var canUseDOM = !!( typeof window !== 'undefined' && window.document && window.document.createElement ); var ExecutionEnvironment = { canUseDOM: canUseDOM, canUseWorkers: typeof Worker !== 'undefined', canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), canUseViewport: canUseDOM && !!window.screen }; if (true) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { return ExecutionEnvironment; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if (typeof module !== 'undefined' && module.exports) { module.exports = ExecutionEnvironment; } else { window.ExecutionEnvironment = ExecutionEnvironment; } }()); /***/ }), /***/ "./node_modules/export-to-csv/build/export-to-csv.js": /*!***********************************************************!*\ !*** ./node_modules/export-to-csv/build/export-to-csv.js ***! \***********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var CsvConfigConsts = (function () { function CsvConfigConsts() { } CsvConfigConsts.EOL = "\r\n"; CsvConfigConsts.BOM = "\ufeff"; CsvConfigConsts.DEFAULT_FIELD_SEPARATOR = ','; CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR = '.'; CsvConfigConsts.DEFAULT_QUOTE = '"'; CsvConfigConsts.DEFAULT_SHOW_TITLE = false; CsvConfigConsts.DEFAULT_TITLE = 'My Generated Report'; CsvConfigConsts.DEFAULT_FILENAME = 'generated'; CsvConfigConsts.DEFAULT_SHOW_LABELS = false; CsvConfigConsts.DEFAULT_USE_TEXT_FILE = false; CsvConfigConsts.DEFAULT_USE_BOM = true; CsvConfigConsts.DEFAULT_HEADER = []; CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS = false; return CsvConfigConsts; }()); exports.CsvConfigConsts = CsvConfigConsts; exports.ConfigDefaults = { filename: CsvConfigConsts.DEFAULT_FILENAME, fieldSeparator: CsvConfigConsts.DEFAULT_FIELD_SEPARATOR, quoteStrings: CsvConfigConsts.DEFAULT_QUOTE, decimalSeparator: CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR, showLabels: CsvConfigConsts.DEFAULT_SHOW_LABELS, showTitle: CsvConfigConsts.DEFAULT_SHOW_TITLE, title: CsvConfigConsts.DEFAULT_TITLE, useTextFile: CsvConfigConsts.DEFAULT_USE_TEXT_FILE, useBom: CsvConfigConsts.DEFAULT_USE_BOM, headers: CsvConfigConsts.DEFAULT_HEADER, useKeysAsHeaders: CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS, }; var ExportToCsv = (function () { function ExportToCsv(options) { this._csv = ""; var config = options || {}; this._options = objectAssign({}, exports.ConfigDefaults, config); if (this._options.useKeysAsHeaders && this._options.headers && this._options.headers.length > 0) { console.warn('Option to use object keys as headers was set, but headers were still passed!'); } } Object.defineProperty(ExportToCsv.prototype, "options", { get: function () { return this._options; }, set: function (options) { this._options = objectAssign({}, exports.ConfigDefaults, options); }, enumerable: true, configurable: true }); /** * Generate and Download Csv */ ExportToCsv.prototype.generateCsv = function (jsonData, shouldReturnCsv) { if (shouldReturnCsv === void 0) { shouldReturnCsv = false; } // Make sure to reset csv data on each run this._csv = ''; this._parseData(jsonData); if (this._options.useBom) { this._csv += CsvConfigConsts.BOM; } if (this._options.showTitle) { this._csv += this._options.title + '\r\n\n'; } this._getHeaders(); this._getBody(); if (this._csv == '') { console.log("Invalid data"); return; } // When the consumer asks for the data, exit the function // by returning the CSV data built at this point if (shouldReturnCsv) { return this._csv; } // Create CSV blob to download if requesting in the browser and the // consumer doesn't set the shouldReturnCsv param var FileType = this._options.useTextFile ? 'plain' : 'csv'; var fileExtension = this._options.useTextFile ? '.txt' : '.csv'; var blob = new Blob([this._csv], { "type": "text/" + FileType + ";charset=utf8;" }); if (navigator.msSaveBlob) { var filename = this._options.filename.replace(/ /g, "_") + fileExtension; navigator.msSaveBlob(blob, filename); } else { var attachmentType = this._options.useTextFile ? 'text' : 'csv'; var uri = 'data:attachment/' + attachmentType + ';charset=utf-8,' + encodeURI(this._csv); var link = document.createElement("a"); link.href = URL.createObjectURL(blob); link.setAttribute('visibility', 'hidden'); link.download = this._options.filename.replace(/ /g, "_") + fileExtension; document.body.appendChild(link); link.click(); document.body.removeChild(link); } }; /** * Create Headers */ ExportToCsv.prototype._getHeaders = function () { if (!this._options.showLabels && !this._options.useKeysAsHeaders) { return; } var useKeysAsHeaders = this._options.useKeysAsHeaders; var headers = useKeysAsHeaders ? Object.keys(this._data[0]) : this._options.headers; if (headers.length > 0) { var row = ""; for (var keyPos = 0; keyPos < headers.length; keyPos++) { row += headers[keyPos] + this._options.fieldSeparator; } row = row.slice(0, -1); this._csv += row + CsvConfigConsts.EOL; } }; /** * Create Body */ ExportToCsv.prototype._getBody = function () { var keys = Object.keys(this._data[0]); for (var i = 0; i < this._data.length; i++) { var row = ""; for (var keyPos = 0; keyPos < keys.length; keyPos++) { var key = keys[keyPos]; row += this._formatData(this._data[i][key]) + this._options.fieldSeparator; } row = row.slice(0, -1); this._csv += row + CsvConfigConsts.EOL; } }; /** * Format Data * @param {any} data */ ExportToCsv.prototype._formatData = function (data) { if (this._options.decimalSeparator === 'locale' && this._isFloat(data)) { return data.toLocaleString(); } if (this._options.decimalSeparator !== '.' && this._isFloat(data)) { return data.toString().replace('.', this._options.decimalSeparator); } if (typeof data === 'string') { data = data.replace(/"/g, '""'); if (this._options.quoteStrings || data.indexOf(',') > -1 || data.indexOf('\n') > -1 || data.indexOf('\r') > -1) { data = this._options.quoteStrings + data + this._options.quoteStrings; } return data; } if (typeof data === 'boolean') { return data ? 'TRUE' : 'FALSE'; } return data; }; /** * Check if is Float * @param {any} input */ ExportToCsv.prototype._isFloat = function (input) { return +input === input && (!isFinite(input) || Boolean(input % 1)); }; /** * Parse the collection given to it * * @private * @param {*} jsonData * @returns {any[]} * @memberof ExportToCsv */ ExportToCsv.prototype._parseData = function (jsonData) { this._data = typeof jsonData != 'object' ? JSON.parse(jsonData) : jsonData; return this._data; }; return ExportToCsv; }()); exports.ExportToCsv = ExportToCsv; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; /** * Convet to Object * @param {any} val */ function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } /** * Assign data to new Object * @param {any} target * @param {any[]} ...source */ function objectAssign(target) { var source = []; for (var _i = 1; _i < arguments.length; _i++) { source[_i - 1] = arguments[_i]; } var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (Object.getOwnPropertySymbols) { symbols = Object.getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; } //# sourceMappingURL=export-to-csv.js.map /***/ }), /***/ "./node_modules/export-to-csv/build/index.js": /*!***************************************************!*\ !*** ./node_modules/export-to-csv/build/index.js ***! \***************************************************/ /*! dynamic exports provided */ /*! exports used: ExportToCsv */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); __export(__webpack_require__(/*! ./export-to-csv */ "./node_modules/export-to-csv/build/export-to-csv.js")); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/file-selector/dist/es5/file-selector.js": /*!**************************************************************!*\ !*** ./node_modules/file-selector/dist/es5/file-selector.js ***! \**************************************************************/ /*! exports provided: fromEvent */ /*! exports used: fromEvent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = fromEvent; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__file__ = __webpack_require__(/*! ./file */ "./node_modules/file-selector/dist/es5/file.js"); var FILES_TO_IGNORE = [ // Thumbnail cache files for macOS and Windows '.DS_Store', 'Thumbs.db' // Windows ]; /** * Convert a DragEvent's DataTrasfer object to a list of File objects * NOTE: If some of the items are folders, * everything will be flattened and placed in the same list but the paths will be kept as a {path} property. * @param evt */ function fromEvent(evt) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { return [2 /*return*/, isDragEvt(evt) && evt.dataTransfer ? getDataTransferFiles(evt.dataTransfer, evt.type) : getInputFiles(evt)]; }); }); } function isDragEvt(value) { return !!value.dataTransfer; } function getInputFiles(evt) { var files = isInput(evt.target) ? evt.target.files ? fromList(evt.target.files) : [] : []; return files.map(function (file) { return Object(__WEBPACK_IMPORTED_MODULE_1__file__["a" /* toFileWithPath */])(file); }); } function isInput(value) { return value !== null; } function getDataTransferFiles(dt, type) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](this, void 0, void 0, function () { var items, files; return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { switch (_a.label) { case 0: if (!dt.items) return [3 /*break*/, 2]; items = fromList(dt.items) .filter(function (item) { return item.kind === 'file'; }); // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents, // only 'dragstart' and 'drop' has access to the data (source node) if (type !== 'drop') { return [2 /*return*/, items]; } return [4 /*yield*/, Promise.all(items.map(toFilePromises))]; case 1: files = _a.sent(); return [2 /*return*/, noIgnoredFiles(flatten(files))]; case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files) .map(function (file) { return Object(__WEBPACK_IMPORTED_MODULE_1__file__["a" /* toFileWithPath */])(file); }))]; } }); }); } function noIgnoredFiles(files) { return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; }); } // IE11 does not support Array.from() // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility // https://developer.mozilla.org/en-US/docs/Web/API/FileList // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList function fromList(items) { var files = []; // tslint:disable: prefer-for-of for (var i = 0; i < items.length; i++) { var file = items[i]; files.push(file); } return files; } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem function toFilePromises(item) { if (typeof item.webkitGetAsEntry !== 'function') { return fromDataTransferItem(item); } var entry = item.webkitGetAsEntry(); // Safari supports dropping an image node from a different window and can be retrieved using // the DataTransferItem.getAsFile() API // NOTE: FileSystemEntry.file() throws if trying to get the file if (entry && entry.isDirectory) { return fromDirEntry(entry); } return fromDataTransferItem(item); } function flatten(items) { return items.reduce(function (acc, files) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["f" /* __spread */](acc, (Array.isArray(files) ? flatten(files) : [files])); }, []); } function fromDataTransferItem(item) { var file = item.getAsFile(); if (!file) { return Promise.reject(item + " is not a File"); } var fwp = Object(__WEBPACK_IMPORTED_MODULE_1__file__["a" /* toFileWithPath */])(file); return Promise.resolve(fwp); } // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry function fromEntry(entry) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)]; }); }); } // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry function fromDirEntry(entry) { var reader = entry.createReader(); return new Promise(function (resolve, reject) { var entries = []; function readEntries() { var _this = this; // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries reader.readEntries(function (batch) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](_this, void 0, void 0, function () { var files, err_1, items; return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { switch (_a.label) { case 0: if (!!batch.length) return [3 /*break*/, 5]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, Promise.all(entries)]; case 2: files = _a.sent(); resolve(files); return [3 /*break*/, 4]; case 3: err_1 = _a.sent(); reject(err_1); return [3 /*break*/, 4]; case 4: return [3 /*break*/, 6]; case 5: items = Promise.all(batch.map(fromEntry)); entries.push(items); // Continue reading readEntries(); _a.label = 6; case 6: return [2 /*return*/]; } }); }); }, function (err) { reject(err); }); } readEntries(); }); } // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry function fromFileEntry(entry) { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { return [2 /*return*/, new Promise(function (resolve, reject) { entry.file(function (file) { var fwp = Object(__WEBPACK_IMPORTED_MODULE_1__file__["a" /* toFileWithPath */])(file, entry.fullPath); resolve(fwp); }, function (err) { reject(err); }); })]; }); }); } //# sourceMappingURL=file-selector.js.map /***/ }), /***/ "./node_modules/file-selector/dist/es5/file.js": /*!*****************************************************!*\ !*** ./node_modules/file-selector/dist/es5/file.js ***! \*****************************************************/ /*! exports provided: COMMON_MIME_TYPES, toFileWithPath */ /*! exports used: toFileWithPath */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export COMMON_MIME_TYPES */ /* harmony export (immutable) */ __webpack_exports__["a"] = toFileWithPath; var COMMON_MIME_TYPES = new Map([ ['avi', 'video/avi'], ['gif', 'image/gif'], ['ico', 'image/x-icon'], ['jpeg', 'image/jpeg'], ['jpg', 'image/jpeg'], ['mkv', 'video/x-matroska'], ['mov', 'video/quicktime'], ['mp4', 'video/mp4'], ['pdf', 'application/pdf'], ['png', 'image/png'], ['zip', 'application/zip'], ['doc', 'application/msword'], ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'] ]); function toFileWithPath(file, path) { var f = withMimeType(file); if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path var webkitRelativePath = file.webkitRelativePath; Object.defineProperty(f, 'path', { value: typeof path === 'string' ? path // If is set, // the File will have a {webkitRelativePath} property // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0 ? webkitRelativePath : file.name, writable: false, configurable: false, enumerable: true }); } return f; } function withMimeType(file) { var name = file.name; var hasExtension = name && name.lastIndexOf('.') !== -1; if (hasExtension && !file.type) { var ext = name.split('.') .pop().toLowerCase(); var type = COMMON_MIME_TYPES.get(ext); if (type) { Object.defineProperty(file, 'type', { value: type, writable: false, configurable: false, enumerable: true }); } } return file; } //# sourceMappingURL=file.js.map /***/ }), /***/ "./node_modules/file-selector/dist/es5/index.js": /*!******************************************************!*\ !*** ./node_modules/file-selector/dist/es5/index.js ***! \******************************************************/ /*! exports provided: fromEvent */ /*! exports used: fromEvent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__file_selector__ = __webpack_require__(/*! ./file-selector */ "./node_modules/file-selector/dist/es5/file-selector.js"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__file_selector__["a"]; }); //# sourceMappingURL=index.js.map /***/ }), /***/ "./node_modules/get-user-locale/dist/entry.js": /*!****************************************************!*\ !*** ./node_modules/get-user-locale/dist/entry.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.getUserLocale = exports.getUserLocales = void 0; var _lodash = _interopRequireDefault(__webpack_require__(/*! lodash.once */ "./node_modules/lodash.once/index.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } var filterDuplicates = function filterDuplicates(arr) { return arr.filter(function (el, index, self) { return self.indexOf(el) === index; }); }; var fixLowercaseProperties = function fixLowercaseProperties(arr) { return arr.map(function (el) { if (!el || el.indexOf('-') === -1 || el.toLowerCase() !== el) { return el; } var splitEl = el.split('-'); return "".concat(splitEl[0], "-").concat(splitEl[1].toUpperCase()); }); }; var getUserLocales = (0, _lodash.default)(function () { var languageList = []; if (typeof window !== 'undefined') { if (window.navigator.languages) { languageList.push.apply(languageList, _toConsumableArray(window.navigator.languages)); } if (window.navigator.language) { languageList.push(window.navigator.language); } if (window.navigator.userLanguage) { languageList.push(window.navigator.userLanguage); } if (window.navigator.browserLanguage) { languageList.push(window.navigator.browserLanguage); } if (window.navigator.systemLanguage) { languageList.push(window.navigator.systemLanguage); } } languageList.push('en-US'); // Fallback return fixLowercaseProperties(filterDuplicates(languageList)); }); exports.getUserLocales = getUserLocales; var getUserLocale = (0, _lodash.default)(function () { return getUserLocales()[0]; }); exports.getUserLocale = getUserLocale; var _default = getUserLocale; exports.default = _default; /***/ }), /***/ "./node_modules/graphql/error/GraphQLError.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/error/GraphQLError.mjs ***! \*****************************************************/ /*! exports provided: GraphQLError */ /*! exports used: GraphQLError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = GraphQLError; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__printError__ = __webpack_require__(/*! ./printError */ "./node_modules/graphql/error/printError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_location__ = __webpack_require__(/*! ../language/location */ "./node_modules/graphql/language/location.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function GraphQLError( // eslint-disable-line no-redeclare message, nodes, source, positions, path, originalError, extensions) { // Compute list of blame nodes. var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions. var _source = source; if (!_source && _nodes) { var node = _nodes[0]; _source = node && node.loc && node.loc.source; } var _positions = positions; if (!_positions && _nodes) { _positions = _nodes.reduce(function (list, node) { if (node.loc) { list.push(node.loc.start); } return list; }, []); } if (_positions && _positions.length === 0) { _positions = undefined; } var _locations; if (positions && source) { _locations = positions.map(function (pos) { return Object(__WEBPACK_IMPORTED_MODULE_1__language_location__["a" /* getLocation */])(source, pos); }); } else if (_nodes) { _locations = _nodes.reduce(function (list, node) { if (node.loc) { list.push(Object(__WEBPACK_IMPORTED_MODULE_1__language_location__["a" /* getLocation */])(node.loc.source, node.loc.start)); } return list; }, []); } var _extensions = extensions || originalError && originalError.extensions; Object.defineProperties(this, { message: { value: message, // By being enumerable, JSON.stringify will include `message` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: true, writable: true }, locations: { // Coercing falsey values to undefined ensures they will not be included // in JSON.stringify() when not provided. value: _locations || undefined, // By being enumerable, JSON.stringify will include `locations` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: Boolean(_locations) }, path: { // Coercing falsey values to undefined ensures they will not be included // in JSON.stringify() when not provided. value: path || undefined, // By being enumerable, JSON.stringify will include `path` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: Boolean(path) }, nodes: { value: _nodes || undefined }, source: { value: _source || undefined }, positions: { value: _positions || undefined }, originalError: { value: originalError }, extensions: { // Coercing falsey values to undefined ensures they will not be included // in JSON.stringify() when not provided. value: _extensions || undefined, // By being enumerable, JSON.stringify will include `path` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: Boolean(_extensions) } }); // Include (non-enumerable) stack trace. if (originalError && originalError.stack) { Object.defineProperty(this, 'stack', { value: originalError.stack, writable: true, configurable: true }); } else if (Error.captureStackTrace) { Error.captureStackTrace(this, GraphQLError); } else { Object.defineProperty(this, 'stack', { value: Error().stack, writable: true, configurable: true }); } } GraphQLError.prototype = Object.create(Error.prototype, { constructor: { value: GraphQLError }, name: { value: 'GraphQLError' }, toString: { value: function toString() { return Object(__WEBPACK_IMPORTED_MODULE_0__printError__["a" /* printError */])(this); } } }); /***/ }), /***/ "./node_modules/graphql/error/formatError.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/error/formatError.mjs ***! \****************************************************/ /*! exports provided: formatError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export formatError */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given a GraphQLError, format it according to the rules described by the * Response Format, Errors section of the GraphQL Specification. */ function formatError(error) { !error ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Received null or undefined error.') : void 0; var message = error.message || 'An unknown error occurred.'; var locations = error.locations; var path = error.path; var extensions = error.extensions; return extensions ? { message: message, locations: locations, path: path, extensions: extensions } : { message: message, locations: locations, path: path }; } /***/ }), /***/ "./node_modules/graphql/error/index.mjs": /*!**********************************************!*\ !*** ./node_modules/graphql/error/index.mjs ***! \**********************************************/ /*! exports provided: GraphQLError, syntaxError, locatedError, printError, formatError */ /*! exports used: GraphQLError, syntaxError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__GraphQLError__ = __webpack_require__(/*! ./GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__GraphQLError__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__syntaxError__ = __webpack_require__(/*! ./syntaxError */ "./node_modules/graphql/error/syntaxError.mjs"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__syntaxError__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__locatedError__ = __webpack_require__(/*! ./locatedError */ "./node_modules/graphql/error/locatedError.mjs"); /* unused harmony reexport locatedError */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__printError__ = __webpack_require__(/*! ./printError */ "./node_modules/graphql/error/printError.mjs"); /* unused harmony reexport printError */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__formatError__ = __webpack_require__(/*! ./formatError */ "./node_modules/graphql/error/formatError.mjs"); /* unused harmony reexport formatError */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /***/ }), /***/ "./node_modules/graphql/error/locatedError.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/error/locatedError.mjs ***! \*****************************************************/ /*! exports provided: locatedError */ /*! exports used: locatedError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = locatedError; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__GraphQLError__ = __webpack_require__(/*! ./GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given an arbitrary Error, presumably thrown while attempting to execute a * GraphQL operation, produce a new GraphQLError aware of the location in the * document responsible for the original Error. */ function locatedError(originalError, nodes, path) { // Note: this uses a brand-check to support GraphQL errors originating from // other contexts. if (originalError && Array.isArray(originalError.path)) { return originalError; } return new __WEBPACK_IMPORTED_MODULE_0__GraphQLError__["a" /* GraphQLError */](originalError && originalError.message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError); } /***/ }), /***/ "./node_modules/graphql/error/printError.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/error/printError.mjs ***! \***************************************************/ /*! exports provided: printError */ /*! exports used: printError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = printError; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_location__ = __webpack_require__(/*! ../language/location */ "./node_modules/graphql/language/location.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Prints a GraphQLError to a string, representing useful location information * about the error's position in the source. */ function printError(error) { var printedLocations = []; if (error.nodes) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = error.nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var node = _step.value; if (node.loc) { printedLocations.push(highlightSourceAtLocation(node.loc.source, Object(__WEBPACK_IMPORTED_MODULE_0__language_location__["a" /* getLocation */])(node.loc.source, node.loc.start))); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } else if (error.source && error.locations) { var source = error.source; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = error.locations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var location = _step2.value; printedLocations.push(highlightSourceAtLocation(source, location)); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } return printedLocations.length === 0 ? error.message : [error.message].concat(printedLocations).join('\n\n') + '\n'; } /** * Render a helpful description of the location of the error in the GraphQL * Source document. */ function highlightSourceAtLocation(source, location) { var firstLineColumnOffset = source.locationOffset.column - 1; var body = whitespace(firstLineColumnOffset) + source.body; var lineIndex = location.line - 1; var lineOffset = source.locationOffset.line - 1; var lineNum = location.line + lineOffset; var columnOffset = location.line === 1 ? firstLineColumnOffset : 0; var columnNum = location.column + columnOffset; var lines = body.split(/\r\n|[\n\r]/g); return "".concat(source.name, " (").concat(lineNum, ":").concat(columnNum, ")\n") + printPrefixedLines([// Lines specified like this: ["prefix", "string"], ["".concat(lineNum - 1, ": "), lines[lineIndex - 1]], ["".concat(lineNum, ": "), lines[lineIndex]], ['', whitespace(columnNum - 1) + '^'], ["".concat(lineNum + 1, ": "), lines[lineIndex + 1]]]); } function printPrefixedLines(lines) { var existingLines = lines.filter(function (_ref) { var _ = _ref[0], line = _ref[1]; return line !== undefined; }); var padLen = 0; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = existingLines[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var _ref4 = _step3.value; var prefix = _ref4[0]; padLen = Math.max(padLen, prefix.length); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } return existingLines.map(function (_ref3) { var prefix = _ref3[0], line = _ref3[1]; return lpad(padLen, prefix) + line; }).join('\n'); } function whitespace(len) { return Array(len + 1).join(' '); } function lpad(len, str) { return whitespace(len - str.length) + str; } /***/ }), /***/ "./node_modules/graphql/error/syntaxError.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/error/syntaxError.mjs ***! \****************************************************/ /*! exports provided: syntaxError */ /*! exports used: syntaxError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = syntaxError; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__GraphQLError__ = __webpack_require__(/*! ./GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces a GraphQLError representing a syntax error, containing useful * descriptive information about the syntax error's position in the source. */ function syntaxError(source, position, description) { return new __WEBPACK_IMPORTED_MODULE_0__GraphQLError__["a" /* GraphQLError */]("Syntax Error: ".concat(description), undefined, source, [position]); } /***/ }), /***/ "./node_modules/graphql/execution/execute.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/execution/execute.mjs ***! \****************************************************/ /*! exports provided: execute, responsePathAsArray, addPath, assertValidExecutionArguments, buildExecutionContext, collectFields, buildResolveInfo, resolveFieldValueOrError, defaultFieldResolver, getFieldDef */ /*! exports used: addPath, assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef, resolveFieldValueOrError, responsePathAsArray */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["f"] = execute; /* harmony export (immutable) */ __webpack_exports__["i"] = responsePathAsArray; /* harmony export (immutable) */ __webpack_exports__["a"] = addPath; /* harmony export (immutable) */ __webpack_exports__["b"] = assertValidExecutionArguments; /* harmony export (immutable) */ __webpack_exports__["c"] = buildExecutionContext; /* harmony export (immutable) */ __webpack_exports__["e"] = collectFields; /* harmony export (immutable) */ __webpack_exports__["d"] = buildResolveInfo; /* harmony export (immutable) */ __webpack_exports__["h"] = resolveFieldValueOrError; /* unused harmony export defaultFieldResolver */ /* harmony export (immutable) */ __webpack_exports__["g"] = getFieldDef; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_iterall__ = __webpack_require__(/*! iterall */ "./node_modules/iterall/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__error_locatedError__ = __webpack_require__(/*! ../error/locatedError */ "./node_modules/graphql/error/locatedError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__jsutils_isNullish__ = __webpack_require__(/*! ../jsutils/isNullish */ "./node_modules/graphql/jsutils/isNullish.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__ = __webpack_require__(/*! ../jsutils/isPromise */ "./node_modules/graphql/jsutils/isPromise.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__jsutils_memoize3__ = __webpack_require__(/*! ../jsutils/memoize3 */ "./node_modules/graphql/jsutils/memoize3.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__jsutils_promiseForObject__ = __webpack_require__(/*! ../jsutils/promiseForObject */ "./node_modules/graphql/jsutils/promiseForObject.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__jsutils_promiseReduce__ = __webpack_require__(/*! ../jsutils/promiseReduce */ "./node_modules/graphql/jsutils/promiseReduce.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utilities_getOperationRootType__ = __webpack_require__(/*! ../utilities/getOperationRootType */ "./node_modules/graphql/utilities/getOperationRootType.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utilities_typeFromAST__ = __webpack_require__(/*! ../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__values__ = __webpack_require__(/*! ./values */ "./node_modules/graphql/execution/values.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__type_validate__ = __webpack_require__(/*! ../type/validate */ "./node_modules/graphql/type/validate.mjs"); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) { /* eslint-enable no-redeclare */ // Extract arguments from object args if provided. return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); } function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) { // If arguments are missing or incorrect, throw an error. assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments, // a "Response" with only errors is returned. var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed. if (Array.isArray(exeContext)) { return { errors: exeContext }; } // Return a Promise that will eventually resolve to the data described by // The "Response" section of the GraphQL specification. // // If errors are encountered while executing a GraphQL field, only that // field and its descendants will be omitted, and sibling fields will still // be executed. An execution which encounters errors will still result in a // resolved Promise. var data = executeOperation(exeContext, exeContext.operation, rootValue); return buildResponse(exeContext, data); } /** * Given a completed execution context and data, build the { errors, data } * response defined by the "Response" section of the GraphQL specification. */ function buildResponse(exeContext, data) { if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(data)) { return data.then(function (resolved) { return buildResponse(exeContext, resolved); }); } return exeContext.errors.length === 0 ? { data: data } : { errors: exeContext.errors, data: data }; } /** * Given a ResponsePath (found in the `path` entry in the information provided * as the last argument to a field resolver), return an Array of the path keys. */ function responsePathAsArray(path) { var flattened = []; var curr = path; while (curr) { flattened.push(curr.key); curr = curr.prev; } return flattened.reverse(); } /** * Given a ResponsePath and a key, return a new ResponsePath containing the * new key. */ function addPath(prev, key) { return { prev: prev, key: key }; } /** * Essential assertions before executing to provide developer feedback for * improper use of the GraphQL library. */ function assertValidExecutionArguments(schema, document, rawVariableValues) { !document ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide document') : void 0; // If the schema used for execution is invalid, throw an error. Object(__WEBPACK_IMPORTED_MODULE_18__type_validate__["a" /* assertValidSchema */])(schema); // Variables, if provided, must be an object. !(!rawVariableValues || _typeof(rawVariableValues) === 'object') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Variables must be provided as an Object where each property is a ' + 'variable value. Perhaps look to see if an unparsed JSON string ' + 'was provided.') : void 0; } /** * Constructs a ExecutionContext object from the arguments passed to * execute, which we will pass throughout the other execution methods. * * Throws a GraphQLError if a valid execution context cannot be created. */ function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver) { var errors = []; var operation; var hasMultipleAssumedOperations = false; var fragments = Object.create(null); for (var i = 0; i < document.definitions.length; i++) { var definition = document.definitions[i]; switch (definition.kind) { case __WEBPACK_IMPORTED_MODULE_13__language_kinds__["a" /* Kind */].OPERATION_DEFINITION: if (!operationName && operation) { hasMultipleAssumedOperations = true; } else if (!operationName || definition.name && definition.name.value === operationName) { operation = definition; } break; case __WEBPACK_IMPORTED_MODULE_13__language_kinds__["a" /* Kind */].FRAGMENT_DEFINITION: fragments[definition.name.value] = definition; break; } } if (!operation) { if (operationName) { errors.push(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]("Unknown operation named \"".concat(operationName, "\"."))); } else { errors.push(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]('Must provide an operation.')); } } else if (hasMultipleAssumedOperations) { errors.push(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]('Must provide operation name if query contains ' + 'multiple operations.')); } var variableValues; if (operation) { var coercedVariableValues = Object(__WEBPACK_IMPORTED_MODULE_14__values__["c" /* getVariableValues */])(schema, operation.variableDefinitions || [], rawVariableValues || {}); if (coercedVariableValues.errors) { errors.push.apply(errors, coercedVariableValues.errors); } else { variableValues = coercedVariableValues.coerced; } } if (errors.length !== 0) { return errors; } !operation ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Has operation if no errors.') : void 0; !variableValues ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Has variables if no errors.') : void 0; return { schema: schema, fragments: fragments, rootValue: rootValue, contextValue: contextValue, operation: operation, variableValues: variableValues, fieldResolver: fieldResolver || defaultFieldResolver, errors: errors }; } /** * Implements the "Evaluating operations" section of the spec. */ function executeOperation(exeContext, operation, rootValue) { var type = Object(__WEBPACK_IMPORTED_MODULE_11__utilities_getOperationRootType__["a" /* getOperationRootType */])(exeContext.schema, operation); var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null)); var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level, // at which point we still log the error and null the parent field, which // in this case is the entire response. // // Similar to completeValueCatchingError. try { var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields); if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(result)) { return result.then(undefined, function (error) { exeContext.errors.push(error); return Promise.resolve(null); }); } return result; } catch (error) { exeContext.errors.push(error); return null; } } /** * Implements the "Evaluating selection sets" section of the spec * for "write" mode. */ function executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) { return Object(__WEBPACK_IMPORTED_MODULE_10__jsutils_promiseReduce__["a" /* default */])(Object.keys(fields), function (results, responseName) { var fieldNodes = fields[responseName]; var fieldPath = addPath(path, responseName); var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath); if (result === undefined) { return results; } if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(result)) { return result.then(function (resolvedResult) { results[responseName] = resolvedResult; return results; }); } results[responseName] = result; return results; }, Object.create(null)); } /** * Implements the "Evaluating selection sets" section of the spec * for "read" mode. */ function executeFields(exeContext, parentType, sourceValue, path, fields) { var results = Object.create(null); var containsPromise = false; for (var i = 0, keys = Object.keys(fields); i < keys.length; ++i) { var responseName = keys[i]; var fieldNodes = fields[responseName]; var fieldPath = addPath(path, responseName); var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath); if (result !== undefined) { results[responseName] = result; if (!containsPromise && Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(result)) { containsPromise = true; } } } // If there are no promises, we can just return the object if (!containsPromise) { return results; } // Otherwise, results is a map from field name to the result of resolving that // field, which is possibly a promise. Return a promise that will return this // same map, but with any promises replaced with the values they resolved to. return Object(__WEBPACK_IMPORTED_MODULE_9__jsutils_promiseForObject__["a" /* default */])(results); } /** * Given a selectionSet, adds all of the fields in that selection to * the passed in map of fields, and returns it at the end. * * CollectFields requires the "runtime type" of an object. For a field which * returns an Interface or Union type, the "runtime type" will be the actual * Object type returned by that field. */ function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) { for (var i = 0; i < selectionSet.selections.length; i++) { var selection = selectionSet.selections[i]; switch (selection.kind) { case __WEBPACK_IMPORTED_MODULE_13__language_kinds__["a" /* Kind */].FIELD: if (!shouldIncludeNode(exeContext, selection)) { continue; } var name = getFieldEntryKey(selection); if (!fields[name]) { fields[name] = []; } fields[name].push(selection); break; case __WEBPACK_IMPORTED_MODULE_13__language_kinds__["a" /* Kind */].INLINE_FRAGMENT: if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) { continue; } collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames); break; case __WEBPACK_IMPORTED_MODULE_13__language_kinds__["a" /* Kind */].FRAGMENT_SPREAD: var fragName = selection.name.value; if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) { continue; } visitedFragmentNames[fragName] = true; var fragment = exeContext.fragments[fragName]; if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) { continue; } collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames); break; } } return fields; } /** * Determines if a field should be included based on the @include and @skip * directives, where @skip has higher precidence than @include. */ function shouldIncludeNode(exeContext, node) { var skip = Object(__WEBPACK_IMPORTED_MODULE_14__values__["b" /* getDirectiveValues */])(__WEBPACK_IMPORTED_MODULE_17__type_directives__["e" /* GraphQLSkipDirective */], node, exeContext.variableValues); if (skip && skip.if === true) { return false; } var include = Object(__WEBPACK_IMPORTED_MODULE_14__values__["b" /* getDirectiveValues */])(__WEBPACK_IMPORTED_MODULE_17__type_directives__["d" /* GraphQLIncludeDirective */], node, exeContext.variableValues); if (include && include.if === false) { return false; } return true; } /** * Determines if a fragment is applicable to the given type. */ function doesFragmentConditionMatch(exeContext, fragment, type) { var typeConditionNode = fragment.typeCondition; if (!typeConditionNode) { return true; } var conditionalType = Object(__WEBPACK_IMPORTED_MODULE_12__utilities_typeFromAST__["a" /* typeFromAST */])(exeContext.schema, typeConditionNode); if (conditionalType === type) { return true; } if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["n" /* isAbstractType */])(conditionalType)) { return exeContext.schema.isPossibleType(conditionalType, type); } return false; } /** * Implements the logic to compute the key of a given field's entry */ function getFieldEntryKey(node) { return node.alias ? node.alias.value : node.name.value; } /** * Resolves the field on the given source object. In particular, this * figures out the value that the field returns by calling its resolve function, * then calls completeValue to complete promises, serialize scalars, or execute * the sub-selection-set for objects. */ function resolveField(exeContext, parentType, source, fieldNodes, path) { var fieldNode = fieldNodes[0]; var fieldName = fieldNode.name.value; var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName); if (!fieldDef) { return; } var resolveFn = fieldDef.resolve || exeContext.fieldResolver; var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal // or abrupt (error). var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info); return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result); } function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) { // The resolve function's optional fourth argument is a collection of // information about the current execution state. return { fieldName: fieldDef.name, fieldNodes: fieldNodes, returnType: fieldDef.type, parentType: parentType, path: path, schema: exeContext.schema, fragments: exeContext.fragments, rootValue: exeContext.rootValue, operation: exeContext.operation, variableValues: exeContext.variableValues }; } // Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField` // function. Returns the result of resolveFn or the abrupt-return Error object. function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) { try { // Build a JS object of arguments from the field.arguments AST, using the // variables scope to fulfill any variable references. // TODO: find a way to memoize, in case this field is within a List type. var args = Object(__WEBPACK_IMPORTED_MODULE_14__values__["a" /* getArgumentValues */])(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that // is provided to every resolve function within an execution. It is commonly // used to represent an authenticated user, or request-specific caches. var _contextValue = exeContext.contextValue; var result = resolveFn(source, args, _contextValue, info); return Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(result) ? result.then(undefined, asErrorInstance) : result; } catch (error) { return asErrorInstance(error); } } // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a // consistent Error interface. function asErrorInstance(error) { return error instanceof Error ? error : new Error(error || undefined); } // This is a small wrapper around completeValue which detects and logs errors // in the execution context. function completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) { try { var completed; if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(result)) { completed = result.then(function (resolved) { return completeValue(exeContext, returnType, fieldNodes, info, path, resolved); }); } else { completed = completeValue(exeContext, returnType, fieldNodes, info, path, result); } if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(completed)) { // Note: we don't rely on a `catch` method, but we do expect "thenable" // to take a second callback for the error case. return completed.then(undefined, function (error) { return handleFieldError(error, fieldNodes, path, returnType, exeContext); }); } return completed; } catch (error) { return handleFieldError(error, fieldNodes, path, returnType, exeContext); } } function handleFieldError(rawError, fieldNodes, path, returnType, exeContext) { var error = Object(__WEBPACK_IMPORTED_MODULE_2__error_locatedError__["a" /* locatedError */])(asErrorInstance(rawError), fieldNodes, responsePathAsArray(path)); // If the field type is non-nullable, then it is resolved without any // protection from errors, however it still properly locates the error. if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["w" /* isNonNullType */])(returnType)) { throw error; } // Otherwise, error protection is applied, logging the error and resolving // a null value for this field if one is encountered. exeContext.errors.push(error); return null; } /** * Implements the instructions for completeValue as defined in the * "Field entries" section of the spec. * * If the field type is Non-Null, then this recursively completes the value * for the inner type. It throws a field error if that completion returns null, * as per the "Nullability" section of the spec. * * If the field type is a List, then this recursively completes the value * for the inner type on each item in the list. * * If the field type is a Scalar or Enum, ensures the completed value is a legal * value of the type by calling the `serialize` method of GraphQL type * definition. * * If the field is an abstract type, determine the runtime type of the value * and then complete based on that type * * Otherwise, the field type expects a sub-selection set, and will complete the * value by evaluating all sub-selections. */ function completeValue(exeContext, returnType, fieldNodes, info, path, result) { // If result is an Error, throw a located error. if (result instanceof Error) { throw result; } // If field type is NonNull, complete for inner type, and throw field error // if result is null. if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["w" /* isNonNullType */])(returnType)) { var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result); if (completed === null) { throw new Error("Cannot return null for non-nullable field ".concat(info.parentType.name, ".").concat(info.fieldName, ".")); } return completed; } // If result value is null-ish (null, undefined, or NaN) then return null. if (Object(__WEBPACK_IMPORTED_MODULE_6__jsutils_isNullish__["a" /* default */])(result)) { return null; } // If field type is List, complete each item in the list with the inner type if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["u" /* isListType */])(returnType)) { return completeListValue(exeContext, returnType, fieldNodes, info, path, result); } // If field type is a leaf type, Scalar or Enum, serialize to a valid value, // returning null if serialization is not possible. if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["t" /* isLeafType */])(returnType)) { return completeLeafValue(returnType, result); } // If field type is an abstract type, Interface or Union, determine the // runtime Object type and complete for that type. if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["n" /* isAbstractType */])(returnType)) { return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result); } // If field type is Object, execute and complete all sub-selections. if (Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["x" /* isObjectType */])(returnType)) { return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result); } // Not reachable. All possible output types have been considered. /* istanbul ignore next */ throw new Error("Cannot complete value of unexpected type \"".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(returnType), "\".")); } /** * Complete a list value by completing each item in the list with the * inner type */ function completeListValue(exeContext, returnType, fieldNodes, info, path, result) { !Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["e" /* isCollection */])(result) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected Iterable, but did not find one for field ".concat(info.parentType.name, ".").concat(info.fieldName, ".")) : void 0; // This is specified as a simple map, however we're optimizing the path // where the list contains no Promises by avoiding creating another Promise. var itemType = returnType.ofType; var containsPromise = false; var completedResults = []; Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["b" /* forEach */])(result, function (item, index) { // No need to modify the info object containing the path, // since from here on it is not ever accessed by resolver functions. var fieldPath = addPath(path, index); var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item); if (!containsPromise && Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(completedItem)) { containsPromise = true; } completedResults.push(completedItem); }); return containsPromise ? Promise.all(completedResults) : completedResults; } /** * Complete a Scalar or Enum by serializing to a valid value, returning * null if serialization is not possible. */ function completeLeafValue(returnType, result) { !returnType.serialize ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Missing serialize method on type') : void 0; var serializedResult = returnType.serialize(result); if (Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_isInvalid__["a" /* default */])(serializedResult)) { throw new Error("Expected a value of type \"".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(returnType), "\" but ") + "received: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(result))); } return serializedResult; } /** * Complete a value of an abstract type by determining the runtime object type * of that value, then complete the value for that type. */ function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) { var runtimeType = returnType.resolveType ? returnType.resolveType(result, exeContext.contextValue, info) : defaultResolveTypeFn(result, exeContext.contextValue, info, returnType); if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(runtimeType)) { return runtimeType.then(function (resolvedRuntimeType) { return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result); }); } return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result); } function ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) { var runtimeType = typeof runtimeTypeOrName === 'string' ? exeContext.schema.getType(runtimeTypeOrName) : runtimeTypeOrName; if (!Object(__WEBPACK_IMPORTED_MODULE_15__type_definition__["x" /* isObjectType */])(runtimeType)) { throw new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]("Abstract type ".concat(returnType.name, " must resolve to an Object type at ") + "runtime for field ".concat(info.parentType.name, ".").concat(info.fieldName, " with ") + "value ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(result), ", received \"").concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(runtimeType), "\". ") + "Either the ".concat(returnType.name, " type should provide a \"resolveType\" ") + 'function or each possible type should provide an ' + '"isTypeOf" function.', fieldNodes); } if (!exeContext.schema.isPossibleType(returnType, runtimeType)) { throw new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]("Runtime Object type \"".concat(runtimeType.name, "\" is not a possible type ") + "for \"".concat(returnType.name, "\"."), fieldNodes); } return runtimeType; } /** * Complete an Object value by executing all sub-selections. */ function completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) { // If there is an isTypeOf predicate function, call it with the // current result. If isTypeOf returns false, then raise an error rather // than continuing execution. if (returnType.isTypeOf) { var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info); if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(isTypeOf)) { return isTypeOf.then(function (resolvedIsTypeOf) { if (!resolvedIsTypeOf) { throw invalidReturnTypeError(returnType, result, fieldNodes); } return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result); }); } if (!isTypeOf) { throw invalidReturnTypeError(returnType, result, fieldNodes); } } return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result); } function invalidReturnTypeError(returnType, result, fieldNodes) { return new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */]("Expected value of type \"".concat(returnType.name, "\" but got: ").concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(result), "."), fieldNodes); } function collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) { // Collect sub-fields to execute to complete this value. var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes); return executeFields(exeContext, returnType, result, path, subFieldNodes); } /** * A memoized collection of relevant subfields with regard to the return * type. Memoizing ensures the subfields are not repeatedly calculated, which * saves overhead when resolving lists of values. */ var collectSubfields = Object(__WEBPACK_IMPORTED_MODULE_8__jsutils_memoize3__["a" /* default */])(_collectSubfields); function _collectSubfields(exeContext, returnType, fieldNodes) { var subFieldNodes = Object.create(null); var visitedFragmentNames = Object.create(null); for (var i = 0; i < fieldNodes.length; i++) { var selectionSet = fieldNodes[i].selectionSet; if (selectionSet) { subFieldNodes = collectFields(exeContext, returnType, selectionSet, subFieldNodes, visitedFragmentNames); } } return subFieldNodes; } /** * If a resolveType function is not given, then a default resolve behavior is * used which attempts two strategies: * * First, See if the provided value has a `__typename` field defined, if so, use * that value as name of the resolved type. * * Otherwise, test each possible type for the abstract type by calling * isTypeOf for the object being coerced, returning the first type that matches. */ function defaultResolveTypeFn(value, contextValue, info, abstractType) { // First, look for `__typename`. if (value !== null && _typeof(value) === 'object' && typeof value.__typename === 'string') { return value.__typename; } // Otherwise, test each possible type. var possibleTypes = info.schema.getPossibleTypes(abstractType); var promisedIsTypeOfResults = []; for (var i = 0; i < possibleTypes.length; i++) { var type = possibleTypes[i]; if (type.isTypeOf) { var isTypeOfResult = type.isTypeOf(value, contextValue, info); if (Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_isPromise__["a" /* default */])(isTypeOfResult)) { promisedIsTypeOfResults[i] = isTypeOfResult; } else if (isTypeOfResult) { return type; } } } if (promisedIsTypeOfResults.length) { return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) { for (var _i = 0; _i < isTypeOfResults.length; _i++) { if (isTypeOfResults[_i]) { return possibleTypes[_i]; } } }); } } /** * If a resolve function is not given, then a default resolve behavior is used * which takes the property of the source object of the same name as the field * and returns it as the result, or if it's a function, returns the result * of calling that function while passing along args and context value. */ var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) { // ensure source is a value for which property access is acceptable. if (_typeof(source) === 'object' || typeof source === 'function') { var property = source[info.fieldName]; if (typeof property === 'function') { return source[info.fieldName](args, contextValue, info); } return property; } }; /** * This method looks up the field on the given type defintion. * It has special casing for the two introspection fields, __schema * and __typename. __typename is special because it can always be * queried as a field, even in situations where no other fields * are allowed, like on a Union. __schema could get automatically * added to the query type, but that would require mutating type * definitions, which would cause issues. */ function getFieldDef(schema, parentType, fieldName) { if (fieldName === __WEBPACK_IMPORTED_MODULE_16__type_introspection__["a" /* SchemaMetaFieldDef */].name && schema.getQueryType() === parentType) { return __WEBPACK_IMPORTED_MODULE_16__type_introspection__["a" /* SchemaMetaFieldDef */]; } else if (fieldName === __WEBPACK_IMPORTED_MODULE_16__type_introspection__["c" /* TypeMetaFieldDef */].name && schema.getQueryType() === parentType) { return __WEBPACK_IMPORTED_MODULE_16__type_introspection__["c" /* TypeMetaFieldDef */]; } else if (fieldName === __WEBPACK_IMPORTED_MODULE_16__type_introspection__["d" /* TypeNameMetaFieldDef */].name) { return __WEBPACK_IMPORTED_MODULE_16__type_introspection__["d" /* TypeNameMetaFieldDef */]; } return parentType.getFields()[fieldName]; } /***/ }), /***/ "./node_modules/graphql/execution/index.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/execution/index.mjs ***! \**************************************************/ /*! exports provided: execute, defaultFieldResolver, responsePathAsArray, getDirectiveValues */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__execute__ = __webpack_require__(/*! ./execute */ "./node_modules/graphql/execution/execute.mjs"); /* unused harmony reexport execute */ /* unused harmony reexport defaultFieldResolver */ /* unused harmony reexport responsePathAsArray */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__values__ = __webpack_require__(/*! ./values */ "./node_modules/graphql/execution/values.mjs"); /* unused harmony reexport getDirectiveValues */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /***/ }), /***/ "./node_modules/graphql/execution/values.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/execution/values.mjs ***! \***************************************************/ /*! exports provided: getVariableValues, getArgumentValues, getDirectiveValues */ /*! exports used: getArgumentValues, getDirectiveValues, getVariableValues */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["c"] = getVariableValues; /* harmony export (immutable) */ __webpack_exports__["a"] = getArgumentValues; /* harmony export (immutable) */ __webpack_exports__["b"] = getDirectiveValues; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_find__ = __webpack_require__(/*! ../jsutils/find */ "./node_modules/graphql/jsutils/find.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utilities_coerceValue__ = __webpack_require__(/*! ../utilities/coerceValue */ "./node_modules/graphql/utilities/coerceValue.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utilities_typeFromAST__ = __webpack_require__(/*! ../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utilities_valueFromAST__ = __webpack_require__(/*! ../utilities/valueFromAST */ "./node_modules/graphql/utilities/valueFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__language_printer__ = __webpack_require__(/*! ../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Prepares an object map of variableValues of the correct type based on the * provided variable definitions and arbitrary input. If the input cannot be * parsed to match the variable definitions, a GraphQLError will be thrown. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ function getVariableValues(schema, varDefNodes, inputs) { var errors = []; var coercedValues = {}; for (var i = 0; i < varDefNodes.length; i++) { var varDefNode = varDefNodes[i]; var varName = varDefNode.variable.name.value; var varType = Object(__WEBPACK_IMPORTED_MODULE_6__utilities_typeFromAST__["a" /* typeFromAST */])(schema, varDefNode.type); if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["r" /* isInputType */])(varType)) { // Must use input types for variables. This should be caught during // validation, however is checked again here for safety. errors.push(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Variable \"$".concat(varName, "\" expected value of type ") + "\"".concat(Object(__WEBPACK_IMPORTED_MODULE_9__language_printer__["a" /* print */])(varDefNode.type), "\" which cannot be used as an input type."), [varDefNode.type])); } else { var hasValue = hasOwnProperty(inputs, varName); var value = hasValue ? inputs[varName] : undefined; if (!hasValue && varDefNode.defaultValue) { // If no value was provided to a variable with a default value, // use the default value. coercedValues[varName] = Object(__WEBPACK_IMPORTED_MODULE_7__utilities_valueFromAST__["a" /* valueFromAST */])(varDefNode.defaultValue, varType); } else if ((!hasValue || value === null) && Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["w" /* isNonNullType */])(varType)) { // If no value or a nullish value was provided to a variable with a // non-null type (required), produce an error. errors.push(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](hasValue ? "Variable \"$".concat(varName, "\" of non-null type ") + "\"".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(varType), "\" must not be null.") : "Variable \"$".concat(varName, "\" of required type ") + "\"".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(varType), "\" was not provided."), [varDefNode])); } else if (hasValue) { if (value === null) { // If the explicit value `null` was provided, an entry in the coerced // values must exist as the value `null`. coercedValues[varName] = null; } else { // Otherwise, a non-null value was provided, coerce it to the expected // type or report an error if coercion fails. var coerced = Object(__WEBPACK_IMPORTED_MODULE_5__utilities_coerceValue__["a" /* coerceValue */])(value, varType, varDefNode); var coercionErrors = coerced.errors; if (coercionErrors) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = coercionErrors[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var error = _step.value; error.message = "Variable \"$".concat(varName, "\" got invalid ") + "value ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(value), "; ").concat(error.message); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } errors.push.apply(errors, coercionErrors); } else { coercedValues[varName] = coerced.value; } } } } } return errors.length === 0 ? { errors: undefined, coerced: coercedValues } : { errors: errors, coerced: undefined }; } /** * Prepares an object map of argument values given a list of argument * definitions and list of argument AST nodes. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ function getArgumentValues(def, node, variableValues) { var coercedValues = {}; var argDefs = def.args; var argNodes = node.arguments; if (!argDefs || !argNodes) { return coercedValues; } var argNodeMap = Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_keyMap__["a" /* default */])(argNodes, function (arg) { return arg.name.value; }); for (var i = 0; i < argDefs.length; i++) { var argDef = argDefs[i]; var name = argDef.name; var argType = argDef.type; var argumentNode = argNodeMap[name]; var hasValue = void 0; var isNull = void 0; if (argumentNode && argumentNode.value.kind === __WEBPACK_IMPORTED_MODULE_8__language_kinds__["a" /* Kind */].VARIABLE) { var variableName = argumentNode.value.name.value; hasValue = variableValues && hasOwnProperty(variableValues, variableName); isNull = variableValues && variableValues[variableName] === null; } else { hasValue = argumentNode != null; isNull = argumentNode && argumentNode.value.kind === __WEBPACK_IMPORTED_MODULE_8__language_kinds__["a" /* Kind */].NULL; } if (!hasValue && argDef.defaultValue !== undefined) { // If no argument was provided where the definition has a default value, // use the default value. coercedValues[name] = argDef.defaultValue; } else if ((!hasValue || isNull) && Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["w" /* isNonNullType */])(argType)) { // If no argument or a null value was provided to an argument with a // non-null type (required), produce a field error. if (isNull) { throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Argument \"".concat(name, "\" of non-null type \"").concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(argType), "\" ") + 'must not be null.', [argumentNode.value]); } else if (argumentNode && argumentNode.value.kind === __WEBPACK_IMPORTED_MODULE_8__language_kinds__["a" /* Kind */].VARIABLE) { var _variableName = argumentNode.value.name.value; throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Argument \"".concat(name, "\" of required type \"").concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(argType), "\" ") + "was provided the variable \"$".concat(_variableName, "\" ") + 'which was not provided a runtime value.', [argumentNode.value]); } else { throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Argument \"".concat(name, "\" of required type \"").concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(argType), "\" ") + 'was not provided.', [node]); } } else if (hasValue) { if (argumentNode.value.kind === __WEBPACK_IMPORTED_MODULE_8__language_kinds__["a" /* Kind */].NULL) { // If the explicit value `null` was provided, an entry in the coerced // values must exist as the value `null`. coercedValues[name] = null; } else if (argumentNode.value.kind === __WEBPACK_IMPORTED_MODULE_8__language_kinds__["a" /* Kind */].VARIABLE) { var _variableName2 = argumentNode.value.name.value; !variableValues ? Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_invariant__["a" /* default */])(0, 'Must exist for hasValue to be true.') : void 0; // Note: This does no further checking that this variable is correct. // This assumes that this query has been validated and the variable // usage here is of the correct type. coercedValues[name] = variableValues[_variableName2]; } else { var valueNode = argumentNode.value; var coercedValue = Object(__WEBPACK_IMPORTED_MODULE_7__utilities_valueFromAST__["a" /* valueFromAST */])(valueNode, argType, variableValues); if (coercedValue === undefined) { // Note: ValuesOfCorrectType validation should catch this before // execution. This is a runtime check to ensure execution does not // continue with an invalid argument value. throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Argument \"".concat(name, "\" has invalid value ").concat(Object(__WEBPACK_IMPORTED_MODULE_9__language_printer__["a" /* print */])(valueNode), "."), [argumentNode.value]); } coercedValues[name] = coercedValue; } } } return coercedValues; } /** * Prepares an object map of argument values given a directive definition * and a AST node which may contain directives. Optionally also accepts a map * of variable values. * * If the directive does not exist on the node, returns undefined. * * Note: The returned value is a plain Object with a prototype, since it is * exposed to user code. Care should be taken to not pull values from the * Object prototype. */ function getDirectiveValues(directiveDef, node, variableValues) { var directiveNode = node.directives && Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_find__["a" /* default */])(node.directives, function (directive) { return directive.name.value === directiveDef.name; }); if (directiveNode) { return getArgumentValues(directiveDef, directiveNode, variableValues); } } function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } /***/ }), /***/ "./node_modules/graphql/graphql.mjs": /*!******************************************!*\ !*** ./node_modules/graphql/graphql.mjs ***! \******************************************/ /*! exports provided: graphql, graphqlSync */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export graphql */ /* unused harmony export graphqlSync */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__type_validate__ = __webpack_require__(/*! ./type/validate */ "./node_modules/graphql/type/validate.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_parser__ = __webpack_require__(/*! ./language/parser */ "./node_modules/graphql/language/parser.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__validation_validate__ = __webpack_require__(/*! ./validation/validate */ "./node_modules/graphql/validation/validate.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__execution_execute__ = __webpack_require__(/*! ./execution/execute */ "./node_modules/graphql/execution/execute.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) { var _arguments = arguments; /* eslint-enable no-redeclare */ // Always return a Promise for a consistent API. return new Promise(function (resolve) { return resolve( // Extract arguments from object args if provided. _arguments.length === 1 ? graphqlImpl(argsOrSchema.schema, argsOrSchema.source, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : graphqlImpl(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver)); }); } /** * The graphqlSync function also fulfills GraphQL operations by parsing, * validating, and executing a GraphQL document along side a GraphQL schema. * However, it guarantees to complete synchronously (or throw an error) assuming * that all field resolvers are also synchronous. */ function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) { /* eslint-enable no-redeclare */ // Extract arguments from object args if provided. var result = arguments.length === 1 ? graphqlImpl(argsOrSchema.schema, argsOrSchema.source, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : graphqlImpl(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver); // Assert that the execution was synchronous. if (result.then) { throw new Error('GraphQL execution failed to complete synchronously.'); } return result; } function graphqlImpl(schema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) { // Validate Schema var schemaValidationErrors = Object(__WEBPACK_IMPORTED_MODULE_0__type_validate__["b" /* validateSchema */])(schema); if (schemaValidationErrors.length > 0) { return { errors: schemaValidationErrors }; } // Parse var document; try { document = Object(__WEBPACK_IMPORTED_MODULE_1__language_parser__["a" /* parse */])(source); } catch (syntaxError) { return { errors: [syntaxError] }; } // Validate var validationErrors = Object(__WEBPACK_IMPORTED_MODULE_2__validation_validate__["c" /* validate */])(schema, document); if (validationErrors.length > 0) { return { errors: validationErrors }; } // Execute return Object(__WEBPACK_IMPORTED_MODULE_3__execution_execute__["f" /* execute */])(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); } /***/ }), /***/ "./node_modules/graphql/index.mjs": /*!****************************************!*\ !*** ./node_modules/graphql/index.mjs ***! \****************************************/ /*! exports provided: graphql, graphqlSync, GraphQLSchema, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, GraphQLDirective, TypeKind, specifiedScalarTypes, GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID, specifiedDirectives, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, DEFAULT_DEPRECATION_REASON, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind, isSchema, isDirective, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, getNullableType, getNamedType, validateSchema, assertValidSchema, Source, getLocation, parse, parseValue, parseType, print, visit, visitInParallel, visitWithTypeInfo, getVisitFn, Kind, TokenKind, DirectiveLocation, BREAK, isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode, execute, defaultFieldResolver, responsePathAsArray, getDirectiveValues, subscribe, createSourceEventStream, validate, ValidationContext, specifiedRules, FieldsOnCorrectTypeRule, FragmentsOnCompositeTypesRule, KnownArgumentNamesRule, KnownDirectivesRule, KnownFragmentNamesRule, KnownTypeNamesRule, LoneAnonymousOperationRule, NoFragmentCyclesRule, NoUndefinedVariablesRule, NoUnusedFragmentsRule, NoUnusedVariablesRule, OverlappingFieldsCanBeMergedRule, PossibleFragmentSpreadsRule, ProvidedRequiredArgumentsRule, ScalarLeafsRule, SingleFieldSubscriptionsRule, UniqueArgumentNamesRule, UniqueDirectivesPerLocationRule, UniqueFragmentNamesRule, UniqueInputFieldNamesRule, UniqueOperationNamesRule, UniqueVariableNamesRule, ValuesOfCorrectTypeRule, VariablesAreInputTypesRule, VariablesInAllowedPositionRule, GraphQLError, formatError, printError, getIntrospectionQuery, introspectionQuery, getOperationAST, getOperationRootType, introspectionFromSchema, buildClientSchema, buildASTSchema, buildSchema, getDescription, extendSchema, lexicographicSortSchema, printSchema, printIntrospectionSchema, printType, typeFromAST, valueFromAST, valueFromASTUntyped, astFromValue, TypeInfo, coerceValue, isValidJSValue, isValidLiteralValue, concatAST, separateOperations, isEqualType, isTypeSubTypeOf, doTypesOverlap, assertValidName, isValidNameError, findBreakingChanges, findDangerousChanges, BreakingChangeType, DangerousChangeType, findDeprecatedUsages */ /*! exports used: GraphQLError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__graphql__ = __webpack_require__(/*! ./graphql */ "./node_modules/graphql/graphql.mjs"); /* unused harmony reexport graphql */ /* unused harmony reexport graphqlSync */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__type__ = __webpack_require__(/*! ./type */ "./node_modules/graphql/type/index.mjs"); /* unused harmony reexport GraphQLSchema */ /* unused harmony reexport GraphQLScalarType */ /* unused harmony reexport GraphQLObjectType */ /* unused harmony reexport GraphQLInterfaceType */ /* unused harmony reexport GraphQLUnionType */ /* unused harmony reexport GraphQLEnumType */ /* unused harmony reexport GraphQLInputObjectType */ /* unused harmony reexport GraphQLList */ /* unused harmony reexport GraphQLNonNull */ /* unused harmony reexport GraphQLDirective */ /* unused harmony reexport TypeKind */ /* unused harmony reexport specifiedScalarTypes */ /* unused harmony reexport GraphQLInt */ /* unused harmony reexport GraphQLFloat */ /* unused harmony reexport GraphQLString */ /* unused harmony reexport GraphQLBoolean */ /* unused harmony reexport GraphQLID */ /* unused harmony reexport specifiedDirectives */ /* unused harmony reexport GraphQLIncludeDirective */ /* unused harmony reexport GraphQLSkipDirective */ /* unused harmony reexport GraphQLDeprecatedDirective */ /* unused harmony reexport DEFAULT_DEPRECATION_REASON */ /* unused harmony reexport SchemaMetaFieldDef */ /* unused harmony reexport TypeMetaFieldDef */ /* unused harmony reexport TypeNameMetaFieldDef */ /* unused harmony reexport introspectionTypes */ /* unused harmony reexport __Schema */ /* unused harmony reexport __Directive */ /* unused harmony reexport __DirectiveLocation */ /* unused harmony reexport __Type */ /* unused harmony reexport __Field */ /* unused harmony reexport __InputValue */ /* unused harmony reexport __EnumValue */ /* unused harmony reexport __TypeKind */ /* unused harmony reexport isSchema */ /* unused harmony reexport isDirective */ /* unused harmony reexport isType */ /* unused harmony reexport isScalarType */ /* unused harmony reexport isObjectType */ /* unused harmony reexport isInterfaceType */ /* unused harmony reexport isUnionType */ /* unused harmony reexport isEnumType */ /* unused harmony reexport isInputObjectType */ /* unused harmony reexport isListType */ /* unused harmony reexport isNonNullType */ /* unused harmony reexport isInputType */ /* unused harmony reexport isOutputType */ /* unused harmony reexport isLeafType */ /* unused harmony reexport isCompositeType */ /* unused harmony reexport isAbstractType */ /* unused harmony reexport isWrappingType */ /* unused harmony reexport isNullableType */ /* unused harmony reexport isNamedType */ /* unused harmony reexport isRequiredArgument */ /* unused harmony reexport isRequiredInputField */ /* unused harmony reexport isSpecifiedScalarType */ /* unused harmony reexport isIntrospectionType */ /* unused harmony reexport isSpecifiedDirective */ /* unused harmony reexport assertType */ /* unused harmony reexport assertScalarType */ /* unused harmony reexport assertObjectType */ /* unused harmony reexport assertInterfaceType */ /* unused harmony reexport assertUnionType */ /* unused harmony reexport assertEnumType */ /* unused harmony reexport assertInputObjectType */ /* unused harmony reexport assertListType */ /* unused harmony reexport assertNonNullType */ /* unused harmony reexport assertInputType */ /* unused harmony reexport assertOutputType */ /* unused harmony reexport assertLeafType */ /* unused harmony reexport assertCompositeType */ /* unused harmony reexport assertAbstractType */ /* unused harmony reexport assertWrappingType */ /* unused harmony reexport assertNullableType */ /* unused harmony reexport assertNamedType */ /* unused harmony reexport getNullableType */ /* unused harmony reexport getNamedType */ /* unused harmony reexport validateSchema */ /* unused harmony reexport assertValidSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language__ = __webpack_require__(/*! ./language */ "./node_modules/graphql/language/index.mjs"); /* unused harmony reexport Source */ /* unused harmony reexport getLocation */ /* unused harmony reexport parse */ /* unused harmony reexport parseValue */ /* unused harmony reexport parseType */ /* unused harmony reexport print */ /* unused harmony reexport visit */ /* unused harmony reexport visitInParallel */ /* unused harmony reexport visitWithTypeInfo */ /* unused harmony reexport getVisitFn */ /* unused harmony reexport Kind */ /* unused harmony reexport TokenKind */ /* unused harmony reexport DirectiveLocation */ /* unused harmony reexport BREAK */ /* unused harmony reexport isDefinitionNode */ /* unused harmony reexport isExecutableDefinitionNode */ /* unused harmony reexport isSelectionNode */ /* unused harmony reexport isValueNode */ /* unused harmony reexport isTypeNode */ /* unused harmony reexport isTypeSystemDefinitionNode */ /* unused harmony reexport isTypeDefinitionNode */ /* unused harmony reexport isTypeSystemExtensionNode */ /* unused harmony reexport isTypeExtensionNode */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__execution__ = __webpack_require__(/*! ./execution */ "./node_modules/graphql/execution/index.mjs"); /* unused harmony reexport execute */ /* unused harmony reexport defaultFieldResolver */ /* unused harmony reexport responsePathAsArray */ /* unused harmony reexport getDirectiveValues */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__subscription__ = __webpack_require__(/*! ./subscription */ "./node_modules/graphql/subscription/index.mjs"); /* unused harmony reexport subscribe */ /* unused harmony reexport createSourceEventStream */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__validation__ = __webpack_require__(/*! ./validation */ "./node_modules/graphql/validation/index.mjs"); /* unused harmony reexport validate */ /* unused harmony reexport ValidationContext */ /* unused harmony reexport specifiedRules */ /* unused harmony reexport FieldsOnCorrectTypeRule */ /* unused harmony reexport FragmentsOnCompositeTypesRule */ /* unused harmony reexport KnownArgumentNamesRule */ /* unused harmony reexport KnownDirectivesRule */ /* unused harmony reexport KnownFragmentNamesRule */ /* unused harmony reexport KnownTypeNamesRule */ /* unused harmony reexport LoneAnonymousOperationRule */ /* unused harmony reexport NoFragmentCyclesRule */ /* unused harmony reexport NoUndefinedVariablesRule */ /* unused harmony reexport NoUnusedFragmentsRule */ /* unused harmony reexport NoUnusedVariablesRule */ /* unused harmony reexport OverlappingFieldsCanBeMergedRule */ /* unused harmony reexport PossibleFragmentSpreadsRule */ /* unused harmony reexport ProvidedRequiredArgumentsRule */ /* unused harmony reexport ScalarLeafsRule */ /* unused harmony reexport SingleFieldSubscriptionsRule */ /* unused harmony reexport UniqueArgumentNamesRule */ /* unused harmony reexport UniqueDirectivesPerLocationRule */ /* unused harmony reexport UniqueFragmentNamesRule */ /* unused harmony reexport UniqueInputFieldNamesRule */ /* unused harmony reexport UniqueOperationNamesRule */ /* unused harmony reexport UniqueVariableNamesRule */ /* unused harmony reexport ValuesOfCorrectTypeRule */ /* unused harmony reexport VariablesAreInputTypesRule */ /* unused harmony reexport VariablesInAllowedPositionRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__error__ = __webpack_require__(/*! ./error */ "./node_modules/graphql/error/index.mjs"); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_6__error__["a"]; }); /* unused harmony reexport formatError */ /* unused harmony reexport printError */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utilities__ = __webpack_require__(/*! ./utilities */ "./node_modules/graphql/utilities/index.mjs"); /* unused harmony reexport getIntrospectionQuery */ /* unused harmony reexport introspectionQuery */ /* unused harmony reexport getOperationAST */ /* unused harmony reexport getOperationRootType */ /* unused harmony reexport introspectionFromSchema */ /* unused harmony reexport buildClientSchema */ /* unused harmony reexport buildASTSchema */ /* unused harmony reexport buildSchema */ /* unused harmony reexport getDescription */ /* unused harmony reexport extendSchema */ /* unused harmony reexport lexicographicSortSchema */ /* unused harmony reexport printSchema */ /* unused harmony reexport printIntrospectionSchema */ /* unused harmony reexport printType */ /* unused harmony reexport typeFromAST */ /* unused harmony reexport valueFromAST */ /* unused harmony reexport valueFromASTUntyped */ /* unused harmony reexport astFromValue */ /* unused harmony reexport TypeInfo */ /* unused harmony reexport coerceValue */ /* unused harmony reexport isValidJSValue */ /* unused harmony reexport isValidLiteralValue */ /* unused harmony reexport concatAST */ /* unused harmony reexport separateOperations */ /* unused harmony reexport isEqualType */ /* unused harmony reexport isTypeSubTypeOf */ /* unused harmony reexport doTypesOverlap */ /* unused harmony reexport assertValidName */ /* unused harmony reexport isValidNameError */ /* unused harmony reexport findBreakingChanges */ /* unused harmony reexport findDangerousChanges */ /* unused harmony reexport BreakingChangeType */ /* unused harmony reexport DangerousChangeType */ /* unused harmony reexport findDeprecatedUsages */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * GraphQL.js provides a reference implementation for the GraphQL specification * but is also a useful utility for operating on GraphQL files and building * sophisticated tools. * * This primary module exports a general purpose function for fulfilling all * steps of the GraphQL specification in a single operation, but also includes * utilities for every part of the GraphQL specification: * * - Parsing the GraphQL language. * - Building a GraphQL type schema. * - Validating a GraphQL request against a type schema. * - Executing a GraphQL request against a type schema. * * This also includes utility functions for operating on GraphQL types and * GraphQL documents to facilitate building tools. * * You may also import from each sub-directory directly. For example, the * following two import statements are equivalent: * * import { parse } from 'graphql'; * import { parse } from 'graphql/language'; */ // The primary entry point into fulfilling a GraphQL request. // Create and operate on GraphQL type definitions and schema. // Parse and operate on GraphQL language source files. // Execute GraphQL queries. // Validate GraphQL queries. // Create, format, and print GraphQL errors. // Utilities for operating on GraphQL type schema and parsed sources. /***/ }), /***/ "./node_modules/graphql/jsutils/defineToJSON.mjs": /*!*******************************************************!*\ !*** ./node_modules/graphql/jsutils/defineToJSON.mjs ***! \*******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = applyToJSON; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The `applyToJSON()` function defines toJSON() and inspect() prototype * methods which are aliases for toString(). */ function applyToJSON(classObject) { classObject.prototype.toJSON = classObject.prototype.inspect = classObject.prototype.toString; } /***/ }), /***/ "./node_modules/graphql/jsutils/defineToStringTag.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/jsutils/defineToStringTag.mjs ***! \************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = applyToStringTag; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The `applyToStringTag()` function checks first to see if the runtime * supports the `Symbol` class and then if the `Symbol.toStringTag` constant * is defined as a `Symbol` instance. If both conditions are met, the * Symbol.toStringTag property is defined as a getter that returns the * supplied class constructor's name. * * @method applyToStringTag * * @param {Class} classObject a class such as Object, String, Number but * typically one of your own creation through the class keyword; `class A {}`, * for example. */ function applyToStringTag(classObject) { if (typeof Symbol === 'function' && Symbol.toStringTag) { Object.defineProperty(classObject.prototype, Symbol.toStringTag, { get: function get() { return this.constructor.name; } }); } } /***/ }), /***/ "./node_modules/graphql/jsutils/find.mjs": /*!***********************************************!*\ !*** ./node_modules/graphql/jsutils/find.mjs ***! \***********************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = find; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function find(list, predicate) { for (var i = 0; i < list.length; i++) { if (predicate(list[i])) { return list[i]; } } } /***/ }), /***/ "./node_modules/graphql/jsutils/inspect.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/jsutils/inspect.mjs ***! \**************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = inspect; function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Used to print values in error messages. */ function inspect(value) { return value && _typeof(value) === 'object' ? typeof value.inspect === 'function' ? value.inspect() : Array.isArray(value) ? '[' + value.map(inspect).join(', ') + ']' : '{' + Object.keys(value).map(function (k) { return "".concat(k, ": ").concat(inspect(value[k])); }).join(', ') + '}' : typeof value === 'string' ? '"' + value + '"' : typeof value === 'function' ? "[function ".concat(value.name, "]") : String(value); } /***/ }), /***/ "./node_modules/graphql/jsutils/instanceOf.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/jsutils/instanceOf.mjs ***! \*****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * A replacement for instanceof which includes an error warning when multi-realm * constructors are detected. */ // See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production // See: https://webpack.js.org/guides/production/ /* harmony default export */ __webpack_exports__["a"] = ( false ? // eslint-disable-next-line no-shadow function instanceOf(value, constructor) { return value instanceof constructor; } : // eslint-disable-next-line no-shadow function instanceOf(value, constructor) { if (value instanceof constructor) { return true; } if (value) { var valueClass = value.constructor; var className = constructor.name; if (className && valueClass && valueClass.name === className) { throw new Error("Cannot use ".concat(className, " \"").concat(value, "\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.")); } } return false; }); /***/ }), /***/ "./node_modules/graphql/jsutils/invariant.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/invariant.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = invariant; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function invariant(condition, message) { /* istanbul ignore else */ if (!condition) { throw new Error(message); } } /***/ }), /***/ "./node_modules/graphql/jsutils/isFinite.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/jsutils/isFinite.mjs ***! \***************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /** * Copyright (c) 2018-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /* eslint-disable no-redeclare */ // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441 var isFinite = Number.isFinite || function (value) { return typeof value === 'number' && isFinite(value); }; /* harmony default export */ __webpack_exports__["a"] = (isFinite); /***/ }), /***/ "./node_modules/graphql/jsutils/isInteger.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/isInteger.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /** * Copyright (c) 2018-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /* eslint-disable no-redeclare */ // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441 var isInteger = Number.isInteger || function (value) { return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; }; /* harmony default export */ __webpack_exports__["a"] = (isInteger); /***/ }), /***/ "./node_modules/graphql/jsutils/isInvalid.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/isInvalid.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = isInvalid; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Returns true if a value is undefined, or NaN. */ function isInvalid(value) { return value === undefined || value !== value; } /***/ }), /***/ "./node_modules/graphql/jsutils/isNullish.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/isNullish.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = isNullish; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Returns true if a value is null, undefined, or NaN. */ function isNullish(value) { return value === null || value === undefined || value !== value; } /***/ }), /***/ "./node_modules/graphql/jsutils/isPromise.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/isPromise.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = isPromise; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Returns true if the value acts like a Promise, i.e. has a "then" function, * otherwise returns false. */ // eslint-disable-next-line no-redeclare function isPromise(value) { return Boolean(value && typeof value.then === 'function'); } /***/ }), /***/ "./node_modules/graphql/jsutils/keyMap.mjs": /*!*************************************************!*\ !*** ./node_modules/graphql/jsutils/keyMap.mjs ***! \*************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = keyMap; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Creates a keyed JS object from an array, given a function to produce the keys * for each value in the array. * * This provides a convenient lookup for the array items if the key function * produces unique results. * * const phoneBook = [ * { name: 'Jon', num: '555-1234' }, * { name: 'Jenny', num: '867-5309' } * ] * * // { Jon: { name: 'Jon', num: '555-1234' }, * // Jenny: { name: 'Jenny', num: '867-5309' } } * const entriesByName = keyMap( * phoneBook, * entry => entry.name * ) * * // { name: 'Jenny', num: '857-6309' } * const jennyEntry = entriesByName['Jenny'] * */ function keyMap(list, keyFn) { return list.reduce(function (map, item) { return map[keyFn(item)] = item, map; }, Object.create(null)); } /***/ }), /***/ "./node_modules/graphql/jsutils/keyValMap.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/jsutils/keyValMap.mjs ***! \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = keyValMap; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Creates a keyed JS object from an array, given a function to produce the keys * and a function to produce the values from each item in the array. * * const phoneBook = [ * { name: 'Jon', num: '555-1234' }, * { name: 'Jenny', num: '867-5309' } * ] * * // { Jon: '555-1234', Jenny: '867-5309' } * const phonesByName = keyValMap( * phoneBook, * entry => entry.name, * entry => entry.num * ) * */ function keyValMap(list, keyFn, valFn) { return list.reduce(function (map, item) { return map[keyFn(item)] = valFn(item), map; }, Object.create(null)); } /***/ }), /***/ "./node_modules/graphql/jsutils/memoize3.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/jsutils/memoize3.mjs ***! \***************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = memoize3; /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Memoizes the provided three-argument function. */ function memoize3(fn) { var cache0; function memoized(a1, a2, a3) { if (!cache0) { cache0 = new WeakMap(); } var cache1 = cache0.get(a1); var cache2; if (cache1) { cache2 = cache1.get(a2); if (cache2) { var cachedValue = cache2.get(a3); if (cachedValue !== undefined) { return cachedValue; } } } else { cache1 = new WeakMap(); cache0.set(a1, cache1); } if (!cache2) { cache2 = new WeakMap(); cache1.set(a2, cache2); } var newValue = fn.apply(this, arguments); cache2.set(a3, newValue); return newValue; } return memoized; } /***/ }), /***/ "./node_modules/graphql/jsutils/objectValues.mjs": /*!*******************************************************!*\ !*** ./node_modules/graphql/jsutils/objectValues.mjs ***! \*******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /* eslint-disable no-redeclare */ // $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221 var objectValues = Object.values || function (obj) { return Object.keys(obj).map(function (key) { return obj[key]; }); }; /* harmony default export */ __webpack_exports__["a"] = (objectValues); /***/ }), /***/ "./node_modules/graphql/jsutils/orList.mjs": /*!*************************************************!*\ !*** ./node_modules/graphql/jsutils/orList.mjs ***! \*************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = orList; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ var MAX_LENGTH = 5; /** * Given [ A, B, C ] return 'A, B, or C'. */ function orList(items) { var selected = items.slice(0, MAX_LENGTH); return selected.reduce(function (list, quoted, index) { return list + (selected.length > 2 ? ', ' : ' ') + (index === selected.length - 1 ? 'or ' : '') + quoted; }); } /***/ }), /***/ "./node_modules/graphql/jsutils/promiseForObject.mjs": /*!***********************************************************!*\ !*** ./node_modules/graphql/jsutils/promiseForObject.mjs ***! \***********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = promiseForObject; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * This function transforms a JS object `ObjMap>` into * a `Promise>` * * This is akin to bluebird's `Promise.props`, but implemented only using * `Promise.all` so it will work with any implementation of ES6 promises. */ function promiseForObject(object) { var keys = Object.keys(object); var valuesAndPromises = keys.map(function (name) { return object[name]; }); return Promise.all(valuesAndPromises).then(function (values) { return values.reduce(function (resolvedObject, value, i) { resolvedObject[keys[i]] = value; return resolvedObject; }, Object.create(null)); }); } /***/ }), /***/ "./node_modules/graphql/jsutils/promiseReduce.mjs": /*!********************************************************!*\ !*** ./node_modules/graphql/jsutils/promiseReduce.mjs ***! \********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = promiseReduce; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__isPromise__ = __webpack_require__(/*! ./isPromise */ "./node_modules/graphql/jsutils/isPromise.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Similar to Array.prototype.reduce(), however the reducing callback may return * a Promise, in which case reduction will continue after each promise resolves. * * If the callback does not return a Promise, then this function will also not * return a Promise. */ function promiseReduce(values, callback, initialValue) { return values.reduce(function (previous, value) { return Object(__WEBPACK_IMPORTED_MODULE_0__isPromise__["a" /* default */])(previous) ? previous.then(function (resolved) { return callback(resolved, value); }) : callback(previous, value); }, initialValue); } /***/ }), /***/ "./node_modules/graphql/jsutils/quotedOrList.mjs": /*!*******************************************************!*\ !*** ./node_modules/graphql/jsutils/quotedOrList.mjs ***! \*******************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = quotedOrList; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__orList__ = __webpack_require__(/*! ./orList */ "./node_modules/graphql/jsutils/orList.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given [ A, B, C ] return '"A", "B", or "C"'. */ function quotedOrList(items) { return Object(__WEBPACK_IMPORTED_MODULE_0__orList__["a" /* default */])(items.map(function (item) { return "\"".concat(item, "\""); })); } /***/ }), /***/ "./node_modules/graphql/jsutils/suggestionList.mjs": /*!*********************************************************!*\ !*** ./node_modules/graphql/jsutils/suggestionList.mjs ***! \*********************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = suggestionList; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given an invalid input string and a list of valid options, returns a filtered * list of valid options sorted based on their similarity with the input. */ function suggestionList(input, options) { var optionsByDistance = Object.create(null); var oLength = options.length; var inputThreshold = input.length / 2; for (var i = 0; i < oLength; i++) { var distance = lexicalDistance(input, options[i]); var threshold = Math.max(inputThreshold, options[i].length / 2, 1); if (distance <= threshold) { optionsByDistance[options[i]] = distance; } } return Object.keys(optionsByDistance).sort(function (a, b) { return optionsByDistance[a] - optionsByDistance[b]; }); } /** * Computes the lexical distance between strings A and B. * * The "distance" between two strings is given by counting the minimum number * of edits needed to transform string A into string B. An edit can be an * insertion, deletion, or substitution of a single character, or a swap of two * adjacent characters. * * Includes a custom alteration from Damerau-Levenshtein to treat case changes * as a single edit which helps identify mis-cased values with an edit distance * of 1. * * This distance can be useful for detecting typos in input or sorting * * @param {string} a * @param {string} b * @return {int} distance in number of edits */ function lexicalDistance(aStr, bStr) { if (aStr === bStr) { return 0; } var i; var j; var d = []; var a = aStr.toLowerCase(); var b = bStr.toLowerCase(); var aLength = a.length; var bLength = b.length; // Any case change counts as a single edit if (a === b) { return 1; } for (i = 0; i <= aLength; i++) { d[i] = [i]; } for (j = 1; j <= bLength; j++) { d[0][j] = j; } for (i = 1; i <= aLength; i++) { for (j = 1; j <= bLength; j++) { var cost = a[i - 1] === b[j - 1] ? 0 : 1; d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost); if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) { d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost); } } } return d[aLength][bLength]; } /***/ }), /***/ "./node_modules/graphql/language/blockStringValue.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/language/blockStringValue.mjs ***! \************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = blockStringValue; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces the value of a block string from its parsed raw value, similar to * Coffeescript's block string, Python's docstring trim or Ruby's strip_heredoc. * * This implements the GraphQL spec's BlockStringValue() static algorithm. */ function blockStringValue(rawString) { // Expand a block string's raw value into independent lines. var lines = rawString.split(/\r\n|[\n\r]/g); // Remove common indentation from all lines but first. var commonIndent = null; for (var i = 1; i < lines.length; i++) { var line = lines[i]; var indent = leadingWhitespace(line); if (indent < line.length && (commonIndent === null || indent < commonIndent)) { commonIndent = indent; if (commonIndent === 0) { break; } } } if (commonIndent) { for (var _i = 1; _i < lines.length; _i++) { lines[_i] = lines[_i].slice(commonIndent); } } // Remove leading and trailing blank lines. while (lines.length > 0 && isBlank(lines[0])) { lines.shift(); } while (lines.length > 0 && isBlank(lines[lines.length - 1])) { lines.pop(); } // Return a string of the lines joined with U+000A. return lines.join('\n'); } function leadingWhitespace(str) { var i = 0; while (i < str.length && (str[i] === ' ' || str[i] === '\t')) { i++; } return i; } function isBlank(str) { return leadingWhitespace(str) === str.length; } /***/ }), /***/ "./node_modules/graphql/language/directiveLocation.mjs": /*!*************************************************************!*\ !*** ./node_modules/graphql/language/directiveLocation.mjs ***! \*************************************************************/ /*! exports provided: DirectiveLocation */ /*! exports used: DirectiveLocation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DirectiveLocation; }); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The set of allowed directive location values. */ var DirectiveLocation = Object.freeze({ // Request Definitions QUERY: 'QUERY', MUTATION: 'MUTATION', SUBSCRIPTION: 'SUBSCRIPTION', FIELD: 'FIELD', FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION', FRAGMENT_SPREAD: 'FRAGMENT_SPREAD', INLINE_FRAGMENT: 'INLINE_FRAGMENT', VARIABLE_DEFINITION: 'VARIABLE_DEFINITION', // Type System Definitions SCHEMA: 'SCHEMA', SCALAR: 'SCALAR', OBJECT: 'OBJECT', FIELD_DEFINITION: 'FIELD_DEFINITION', ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION', INTERFACE: 'INTERFACE', UNION: 'UNION', ENUM: 'ENUM', ENUM_VALUE: 'ENUM_VALUE', INPUT_OBJECT: 'INPUT_OBJECT', INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION' }); /** * The enum type representing the directive location values. */ /***/ }), /***/ "./node_modules/graphql/language/index.mjs": /*!*************************************************!*\ !*** ./node_modules/graphql/language/index.mjs ***! \*************************************************/ /*! exports provided: getLocation, Kind, createLexer, TokenKind, parse, parseValue, parseType, print, Source, visit, visitInParallel, visitWithTypeInfo, getVisitFn, BREAK, isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode, DirectiveLocation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__location__ = __webpack_require__(/*! ./location */ "./node_modules/graphql/language/location.mjs"); /* unused harmony reexport getLocation */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__kinds__ = __webpack_require__(/*! ./kinds */ "./node_modules/graphql/language/kinds.mjs"); /* unused harmony reexport Kind */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lexer__ = __webpack_require__(/*! ./lexer */ "./node_modules/graphql/language/lexer.mjs"); /* unused harmony reexport createLexer */ /* unused harmony reexport TokenKind */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__parser__ = __webpack_require__(/*! ./parser */ "./node_modules/graphql/language/parser.mjs"); /* unused harmony reexport parse */ /* unused harmony reexport parseValue */ /* unused harmony reexport parseType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__printer__ = __webpack_require__(/*! ./printer */ "./node_modules/graphql/language/printer.mjs"); /* unused harmony reexport print */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__source__ = __webpack_require__(/*! ./source */ "./node_modules/graphql/language/source.mjs"); /* unused harmony reexport Source */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__visitor__ = __webpack_require__(/*! ./visitor */ "./node_modules/graphql/language/visitor.mjs"); /* unused harmony reexport visit */ /* unused harmony reexport visitInParallel */ /* unused harmony reexport visitWithTypeInfo */ /* unused harmony reexport getVisitFn */ /* unused harmony reexport BREAK */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__predicates__ = __webpack_require__(/*! ./predicates */ "./node_modules/graphql/language/predicates.mjs"); /* unused harmony reexport isDefinitionNode */ /* unused harmony reexport isExecutableDefinitionNode */ /* unused harmony reexport isSelectionNode */ /* unused harmony reexport isValueNode */ /* unused harmony reexport isTypeNode */ /* unused harmony reexport isTypeSystemDefinitionNode */ /* unused harmony reexport isTypeDefinitionNode */ /* unused harmony reexport isTypeSystemExtensionNode */ /* unused harmony reexport isTypeExtensionNode */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__directiveLocation__ = __webpack_require__(/*! ./directiveLocation */ "./node_modules/graphql/language/directiveLocation.mjs"); /* unused harmony reexport DirectiveLocation */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /***/ }), /***/ "./node_modules/graphql/language/kinds.mjs": /*!*************************************************!*\ !*** ./node_modules/graphql/language/kinds.mjs ***! \*************************************************/ /*! exports provided: Kind */ /*! exports used: Kind */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Kind; }); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The set of allowed kind values for AST nodes. */ var Kind = Object.freeze({ // Name NAME: 'Name', // Document DOCUMENT: 'Document', OPERATION_DEFINITION: 'OperationDefinition', VARIABLE_DEFINITION: 'VariableDefinition', SELECTION_SET: 'SelectionSet', FIELD: 'Field', ARGUMENT: 'Argument', // Fragments FRAGMENT_SPREAD: 'FragmentSpread', INLINE_FRAGMENT: 'InlineFragment', FRAGMENT_DEFINITION: 'FragmentDefinition', // Values VARIABLE: 'Variable', INT: 'IntValue', FLOAT: 'FloatValue', STRING: 'StringValue', BOOLEAN: 'BooleanValue', NULL: 'NullValue', ENUM: 'EnumValue', LIST: 'ListValue', OBJECT: 'ObjectValue', OBJECT_FIELD: 'ObjectField', // Directives DIRECTIVE: 'Directive', // Types NAMED_TYPE: 'NamedType', LIST_TYPE: 'ListType', NON_NULL_TYPE: 'NonNullType', // Type System Definitions SCHEMA_DEFINITION: 'SchemaDefinition', OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition', // Type Definitions SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition', OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition', FIELD_DEFINITION: 'FieldDefinition', INPUT_VALUE_DEFINITION: 'InputValueDefinition', INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition', UNION_TYPE_DEFINITION: 'UnionTypeDefinition', ENUM_TYPE_DEFINITION: 'EnumTypeDefinition', ENUM_VALUE_DEFINITION: 'EnumValueDefinition', INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition', // Directive Definitions DIRECTIVE_DEFINITION: 'DirectiveDefinition', // Type System Extensions SCHEMA_EXTENSION: 'SchemaExtension', // Type Extensions SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension', OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension', INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension', UNION_TYPE_EXTENSION: 'UnionTypeExtension', ENUM_TYPE_EXTENSION: 'EnumTypeExtension', INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension' }); /** * The enum type representing the possible kind values of AST nodes. */ /***/ }), /***/ "./node_modules/graphql/language/lexer.mjs": /*!*************************************************!*\ !*** ./node_modules/graphql/language/lexer.mjs ***! \*************************************************/ /*! exports provided: createLexer, TokenKind, getTokenDesc */ /*! exports used: TokenKind, createLexer, getTokenDesc */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = createLexer; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TokenKind; }); /* harmony export (immutable) */ __webpack_exports__["c"] = getTokenDesc; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error__ = __webpack_require__(/*! ../error */ "./node_modules/graphql/error/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__blockStringValue__ = __webpack_require__(/*! ./blockStringValue */ "./node_modules/graphql/language/blockStringValue.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given a Source object, this returns a Lexer for that source. * A Lexer is a stateful stream generator in that every time * it is advanced, it returns the next token in the Source. Assuming the * source lexes, the final Token emitted by the lexer will be of kind * EOF, after which the lexer will repeatedly return the same EOF token * whenever called. */ function createLexer(source, options) { var startOfFileToken = new Tok(TokenKind.SOF, 0, 0, 0, 0, null); var lexer = { source: source, options: options, lastToken: startOfFileToken, token: startOfFileToken, line: 1, lineStart: 0, advance: advanceLexer, lookahead: lookahead }; return lexer; } function advanceLexer() { this.lastToken = this.token; var token = this.token = this.lookahead(); return token; } function lookahead() { var token = this.token; if (token.kind !== TokenKind.EOF) { do { // Note: next is only mutable during parsing, so we cast to allow this. token = token.next || (token.next = readToken(this, token)); } while (token.kind === TokenKind.COMMENT); } return token; } /** * The return type of createLexer. */ /** * An exported enum describing the different kinds of tokens that the * lexer emits. */ var TokenKind = Object.freeze({ SOF: '', EOF: '', BANG: '!', DOLLAR: '$', AMP: '&', PAREN_L: '(', PAREN_R: ')', SPREAD: '...', COLON: ':', EQUALS: '=', AT: '@', BRACKET_L: '[', BRACKET_R: ']', BRACE_L: '{', PIPE: '|', BRACE_R: '}', NAME: 'Name', INT: 'Int', FLOAT: 'Float', STRING: 'String', BLOCK_STRING: 'BlockString', COMMENT: 'Comment' }); /** * The enum type representing the token kinds values. */ /** * A helper function to describe a token as a string for debugging */ function getTokenDesc(token) { var value = token.value; return value ? "".concat(token.kind, " \"").concat(value, "\"") : token.kind; } var charCodeAt = String.prototype.charCodeAt; var slice = String.prototype.slice; /** * Helper function for constructing the Token object. */ function Tok(kind, start, end, line, column, prev, value) { this.kind = kind; this.start = start; this.end = end; this.line = line; this.column = column; this.value = value; this.prev = prev; this.next = null; } // Print a simplified form when appearing in JSON/util.inspect. Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() { return { kind: this.kind, value: this.value, line: this.line, column: this.column }; }; function printCharCode(code) { return (// NaN/undefined represents access beyond the end of the file. isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII. code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form. "\"\\u".concat(('00' + code.toString(16).toUpperCase()).slice(-4), "\"") ); } /** * Gets the next token from the source starting at the given position. * * This skips over whitespace and comments until it finds the next lexable * token, then lexes punctuators immediately or calls the appropriate helper * function for more complicated tokens. */ function readToken(lexer, prev) { var source = lexer.source; var body = source.body; var bodyLength = body.length; var pos = positionAfterWhitespace(body, prev.end, lexer); var line = lexer.line; var col = 1 + pos - lexer.lineStart; if (pos >= bodyLength) { return new Tok(TokenKind.EOF, bodyLength, bodyLength, line, col, prev); } var code = charCodeAt.call(body, pos); // SourceCharacter switch (code) { // ! case 33: return new Tok(TokenKind.BANG, pos, pos + 1, line, col, prev); // # case 35: return readComment(source, pos, line, col, prev); // $ case 36: return new Tok(TokenKind.DOLLAR, pos, pos + 1, line, col, prev); // & case 38: return new Tok(TokenKind.AMP, pos, pos + 1, line, col, prev); // ( case 40: return new Tok(TokenKind.PAREN_L, pos, pos + 1, line, col, prev); // ) case 41: return new Tok(TokenKind.PAREN_R, pos, pos + 1, line, col, prev); // . case 46: if (charCodeAt.call(body, pos + 1) === 46 && charCodeAt.call(body, pos + 2) === 46) { return new Tok(TokenKind.SPREAD, pos, pos + 3, line, col, prev); } break; // : case 58: return new Tok(TokenKind.COLON, pos, pos + 1, line, col, prev); // = case 61: return new Tok(TokenKind.EQUALS, pos, pos + 1, line, col, prev); // @ case 64: return new Tok(TokenKind.AT, pos, pos + 1, line, col, prev); // [ case 91: return new Tok(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev); // ] case 93: return new Tok(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev); // { case 123: return new Tok(TokenKind.BRACE_L, pos, pos + 1, line, col, prev); // | case 124: return new Tok(TokenKind.PIPE, pos, pos + 1, line, col, prev); // } case 125: return new Tok(TokenKind.BRACE_R, pos, pos + 1, line, col, prev); // A-Z _ a-z case 65: case 66: case 67: case 68: case 69: case 70: case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: case 90: case 95: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119: case 120: case 121: case 122: return readName(source, pos, line, col, prev); // - 0-9 case 45: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: return readNumber(source, pos, code, line, col, prev); // " case 34: if (charCodeAt.call(body, pos + 1) === 34 && charCodeAt.call(body, pos + 2) === 34) { return readBlockString(source, pos, line, col, prev); } return readString(source, pos, line, col, prev); } throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, pos, unexpectedCharacterMessage(code)); } /** * Report a message that an unexpected character was encountered. */ function unexpectedCharacterMessage(code) { if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) { return "Cannot contain the invalid character ".concat(printCharCode(code), "."); } if (code === 39) { // ' return "Unexpected single quote character ('), did you mean to use " + 'a double quote (")?'; } return "Cannot parse the unexpected character ".concat(printCharCode(code), "."); } /** * Reads from body starting at startPosition until it finds a non-whitespace * or commented character, then returns the position of that character for * lexing. */ function positionAfterWhitespace(body, startPosition, lexer) { var bodyLength = body.length; var position = startPosition; while (position < bodyLength) { var code = charCodeAt.call(body, position); // tab | space | comma | BOM if (code === 9 || code === 32 || code === 44 || code === 0xfeff) { ++position; } else if (code === 10) { // new line ++position; ++lexer.line; lexer.lineStart = position; } else if (code === 13) { // carriage return if (charCodeAt.call(body, position + 1) === 10) { position += 2; } else { ++position; } ++lexer.line; lexer.lineStart = position; } else { break; } } return position; } /** * Reads a comment token from the source file. * * #[\u0009\u0020-\uFFFF]* */ function readComment(source, start, line, col, prev) { var body = source.body; var code; var position = start; do { code = charCodeAt.call(body, ++position); } while (code !== null && ( // SourceCharacter but not LineTerminator code > 0x001f || code === 0x0009)); return new Tok(TokenKind.COMMENT, start, position, line, col, prev, slice.call(body, start + 1, position)); } /** * Reads a number token from the source file, either a float * or an int depending on whether a decimal point appears. * * Int: -?(0|[1-9][0-9]*) * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)? */ function readNumber(source, start, firstCode, line, col, prev) { var body = source.body; var code = firstCode; var position = start; var isFloat = false; if (code === 45) { // - code = charCodeAt.call(body, ++position); } if (code === 48) { // 0 code = charCodeAt.call(body, ++position); if (code >= 48 && code <= 57) { throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, "Invalid number, unexpected digit after 0: ".concat(printCharCode(code), ".")); } } else { position = readDigits(source, position, code); code = charCodeAt.call(body, position); } if (code === 46) { // . isFloat = true; code = charCodeAt.call(body, ++position); position = readDigits(source, position, code); code = charCodeAt.call(body, position); } if (code === 69 || code === 101) { // E e isFloat = true; code = charCodeAt.call(body, ++position); if (code === 43 || code === 45) { // + - code = charCodeAt.call(body, ++position); } position = readDigits(source, position, code); } return new Tok(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, slice.call(body, start, position)); } /** * Returns the new position in the source after reading digits. */ function readDigits(source, start, firstCode) { var body = source.body; var position = start; var code = firstCode; if (code >= 48 && code <= 57) { // 0 - 9 do { code = charCodeAt.call(body, ++position); } while (code >= 48 && code <= 57); // 0 - 9 return position; } throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, "Invalid number, expected digit but got: ".concat(printCharCode(code), ".")); } /** * Reads a string token from the source file. * * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*" */ function readString(source, start, line, col, prev) { var body = source.body; var position = start + 1; var chunkStart = position; var code = 0; var value = ''; while (position < body.length && (code = charCodeAt.call(body, position)) !== null && // not LineTerminator code !== 0x000a && code !== 0x000d) { // Closing Quote (") if (code === 34) { value += slice.call(body, chunkStart, position); return new Tok(TokenKind.STRING, start, position + 1, line, col, prev, value); } // SourceCharacter if (code < 0x0020 && code !== 0x0009) { throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, "Invalid character within String: ".concat(printCharCode(code), ".")); } ++position; if (code === 92) { // \ value += slice.call(body, chunkStart, position - 1); code = charCodeAt.call(body, position); switch (code) { case 34: value += '"'; break; case 47: value += '/'; break; case 92: value += '\\'; break; case 98: value += '\b'; break; case 102: value += '\f'; break; case 110: value += '\n'; break; case 114: value += '\r'; break; case 116: value += '\t'; break; case 117: // u var charCode = uniCharCode(charCodeAt.call(body, position + 1), charCodeAt.call(body, position + 2), charCodeAt.call(body, position + 3), charCodeAt.call(body, position + 4)); if (charCode < 0) { throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, 'Invalid character escape sequence: ' + "\\u".concat(body.slice(position + 1, position + 5), ".")); } value += String.fromCharCode(charCode); position += 4; break; default: throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, "Invalid character escape sequence: \\".concat(String.fromCharCode(code), ".")); } ++position; chunkStart = position; } } throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, 'Unterminated string.'); } /** * Reads a block string token from the source file. * * """("?"?(\\"""|\\(?!=""")|[^"\\]))*""" */ function readBlockString(source, start, line, col, prev) { var body = source.body; var position = start + 3; var chunkStart = position; var code = 0; var rawValue = ''; while (position < body.length && (code = charCodeAt.call(body, position)) !== null) { // Closing Triple-Quote (""") if (code === 34 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34) { rawValue += slice.call(body, chunkStart, position); return new Tok(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, Object(__WEBPACK_IMPORTED_MODULE_1__blockStringValue__["a" /* default */])(rawValue)); } // SourceCharacter if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) { throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, "Invalid character within String: ".concat(printCharCode(code), ".")); } // Escape Triple-Quote (\""") if (code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) { rawValue += slice.call(body, chunkStart, position) + '"""'; position += 4; chunkStart = position; } else { ++position; } } throw Object(__WEBPACK_IMPORTED_MODULE_0__error__["b" /* syntaxError */])(source, position, 'Unterminated string.'); } /** * Converts four hexidecimal chars to the integer that the * string represents. For example, uniCharCode('0','0','0','f') * will return 15, and uniCharCode('0','0','f','f') returns 255. * * Returns a negative number on error, if a char was invalid. * * This is implemented by noting that char2hex() returns -1 on error, * which means the result of ORing the char2hex() will also be negative. */ function uniCharCode(a, b, c, d) { return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d); } /** * Converts a hex character to its integer value. * '0' becomes 0, '9' becomes 9 * 'A' becomes 10, 'F' becomes 15 * 'a' becomes 10, 'f' becomes 15 * * Returns -1 on error. */ function char2hex(a) { return a >= 48 && a <= 57 ? a - 48 // 0-9 : a >= 65 && a <= 70 ? a - 55 // A-F : a >= 97 && a <= 102 ? a - 87 // a-f : -1; } /** * Reads an alphanumeric + underscore name from the source. * * [_A-Za-z][_0-9A-Za-z]* */ function readName(source, start, line, col, prev) { var body = source.body; var bodyLength = body.length; var position = start + 1; var code = 0; while (position !== bodyLength && (code = charCodeAt.call(body, position)) !== null && (code === 95 || // _ code >= 48 && code <= 57 || // 0-9 code >= 65 && code <= 90 || // A-Z code >= 97 && code <= 122) // a-z ) { ++position; } return new Tok(TokenKind.NAME, start, position, line, col, prev, slice.call(body, start, position)); } /***/ }), /***/ "./node_modules/graphql/language/location.mjs": /*!****************************************************!*\ !*** ./node_modules/graphql/language/location.mjs ***! \****************************************************/ /*! exports provided: getLocation */ /*! exports used: getLocation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = getLocation; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Represents a location in a Source. */ /** * Takes a Source and a UTF-8 character offset, and returns the corresponding * line and column as a SourceLocation. */ function getLocation(source, position) { var lineRegexp = /\r\n|[\n\r]/g; var line = 1; var column = position + 1; var match; while ((match = lineRegexp.exec(source.body)) && match.index < position) { line += 1; column = position + 1 - (match.index + match[0].length); } return { line: line, column: column }; } /***/ }), /***/ "./node_modules/graphql/language/parser.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/language/parser.mjs ***! \**************************************************/ /*! exports provided: parse, parseValue, parseType, parseConstValue, parseTypeReference, parseNamedType */ /*! exports used: parse, parseValue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = parse; /* harmony export (immutable) */ __webpack_exports__["b"] = parseValue; /* unused harmony export parseType */ /* unused harmony export parseConstValue */ /* unused harmony export parseTypeReference */ /* unused harmony export parseNamedType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__source__ = __webpack_require__(/*! ./source */ "./node_modules/graphql/language/source.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__error__ = __webpack_require__(/*! ../error */ "./node_modules/graphql/error/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__lexer__ = __webpack_require__(/*! ./lexer */ "./node_modules/graphql/language/lexer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__kinds__ = __webpack_require__(/*! ./kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directiveLocation__ = __webpack_require__(/*! ./directiveLocation */ "./node_modules/graphql/language/directiveLocation.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Configuration options to control parser behavior */ /** * Given a GraphQL source, parses it into a Document. * Throws GraphQLError if a syntax error is encountered. */ function parse(source, options) { var sourceObj = typeof source === 'string' ? new __WEBPACK_IMPORTED_MODULE_1__source__["a" /* Source */](source) : source; if (!(sourceObj instanceof __WEBPACK_IMPORTED_MODULE_1__source__["a" /* Source */])) { throw new TypeError("Must provide Source. Received: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(sourceObj))); } var lexer = Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["b" /* createLexer */])(sourceObj, options || {}); return parseDocument(lexer); } /** * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for * that value. * Throws GraphQLError if a syntax error is encountered. * * This is useful within tools that operate upon GraphQL Values directly and * in isolation of complete GraphQL documents. * * Consider providing the results to the utility function: valueFromAST(). */ function parseValue(source, options) { var sourceObj = typeof source === 'string' ? new __WEBPACK_IMPORTED_MODULE_1__source__["a" /* Source */](source) : source; var lexer = Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["b" /* createLexer */])(sourceObj, options || {}); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].SOF); var value = parseValueLiteral(lexer, false); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EOF); return value; } /** * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for * that type. * Throws GraphQLError if a syntax error is encountered. * * This is useful within tools that operate upon GraphQL Types directly and * in isolation of complete GraphQL documents. * * Consider providing the results to the utility function: typeFromAST(). */ function parseType(source, options) { var sourceObj = typeof source === 'string' ? new __WEBPACK_IMPORTED_MODULE_1__source__["a" /* Source */](source) : source; var lexer = Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["b" /* createLexer */])(sourceObj, options || {}); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].SOF); var type = parseTypeReference(lexer); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EOF); return type; } /** * Converts a name lex token into a name parse node. */ function parseName(lexer) { var token = expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].NAME, value: token.value, loc: loc(lexer, token) }; } // Implements the parsing rules in the Document section. /** * Document : Definition+ */ function parseDocument(lexer) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].DOCUMENT, definitions: many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].SOF, parseDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EOF), loc: loc(lexer, start) }; } /** * Definition : * - ExecutableDefinition * - TypeSystemDefinition * - TypeSystemExtension */ function parseDefinition(lexer) { if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME)) { switch (lexer.token.value) { case 'query': case 'mutation': case 'subscription': case 'fragment': return parseExecutableDefinition(lexer); case 'schema': case 'scalar': case 'type': case 'interface': case 'union': case 'enum': case 'input': case 'directive': return parseTypeSystemDefinition(lexer); case 'extend': return parseTypeSystemExtension(lexer); } } else if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L)) { return parseExecutableDefinition(lexer); } else if (peekDescription(lexer)) { return parseTypeSystemDefinition(lexer); } throw unexpected(lexer); } /** * ExecutableDefinition : * - OperationDefinition * - FragmentDefinition */ function parseExecutableDefinition(lexer) { if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME)) { switch (lexer.token.value) { case 'query': case 'mutation': case 'subscription': return parseOperationDefinition(lexer); case 'fragment': return parseFragmentDefinition(lexer); } } else if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L)) { return parseOperationDefinition(lexer); } throw unexpected(lexer); } // Implements the parsing rules in the Operations section. /** * OperationDefinition : * - SelectionSet * - OperationType Name? VariableDefinitions? Directives? SelectionSet */ function parseOperationDefinition(lexer) { var start = lexer.token; if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L)) { return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OPERATION_DEFINITION, operation: 'query', name: undefined, variableDefinitions: [], directives: [], selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } var operation = parseOperationType(lexer); var name; if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME)) { name = parseName(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OPERATION_DEFINITION, operation: operation, name: name, variableDefinitions: parseVariableDefinitions(lexer), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * OperationType : one of query mutation subscription */ function parseOperationType(lexer) { var operationToken = expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME); switch (operationToken.value) { case 'query': return 'query'; case 'mutation': return 'mutation'; case 'subscription': return 'subscription'; } throw unexpected(lexer, operationToken); } /** * VariableDefinitions : ( VariableDefinition+ ) */ function parseVariableDefinitions(lexer) { return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L, parseVariableDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_R) : []; } /** * VariableDefinition : Variable : Type DefaultValue? Directives[Const]? */ function parseVariableDefinition(lexer) { var start = lexer.token; if (lexer.options.experimentalVariableDefinitionDirectives) { return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].VARIABLE_DEFINITION, variable: parseVariable(lexer), type: (expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON), parseTypeReference(lexer)), defaultValue: skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EQUALS) ? parseValueLiteral(lexer, true) : undefined, directives: parseDirectives(lexer, true), loc: loc(lexer, start) }; } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].VARIABLE_DEFINITION, variable: parseVariable(lexer), type: (expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON), parseTypeReference(lexer)), defaultValue: skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EQUALS) ? parseValueLiteral(lexer, true) : undefined, loc: loc(lexer, start) }; } /** * Variable : $ Name */ function parseVariable(lexer) { var start = lexer.token; expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].DOLLAR); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].VARIABLE, name: parseName(lexer), loc: loc(lexer, start) }; } /** * SelectionSet : { Selection+ } */ function parseSelectionSet(lexer) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].SELECTION_SET, selections: many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseSelection, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R), loc: loc(lexer, start) }; } /** * Selection : * - Field * - FragmentSpread * - InlineFragment */ function parseSelection(lexer) { return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].SPREAD) ? parseFragment(lexer) : parseField(lexer); } /** * Field : Alias? Name Arguments? Directives? SelectionSet? * * Alias : Name : */ function parseField(lexer) { var start = lexer.token; var nameOrAlias = parseName(lexer); var alias; var name; if (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON)) { alias = nameOrAlias; name = parseName(lexer); } else { name = nameOrAlias; } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FIELD, alias: alias, name: name, arguments: parseArguments(lexer, false), directives: parseDirectives(lexer, false), selectionSet: peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) ? parseSelectionSet(lexer) : undefined, loc: loc(lexer, start) }; } /** * Arguments[Const] : ( Argument[?Const]+ ) */ function parseArguments(lexer, isConst) { var item = isConst ? parseConstArgument : parseArgument; return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L, item, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_R) : []; } /** * Argument[Const] : Name : Value[?Const] */ function parseArgument(lexer) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ARGUMENT, name: parseName(lexer), value: (expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON), parseValueLiteral(lexer, false)), loc: loc(lexer, start) }; } function parseConstArgument(lexer) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ARGUMENT, name: parseName(lexer), value: (expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON), parseConstValue(lexer)), loc: loc(lexer, start) }; } // Implements the parsing rules in the Fragments section. /** * Corresponds to both FragmentSpread and InlineFragment in the spec. * * FragmentSpread : ... FragmentName Directives? * * InlineFragment : ... TypeCondition? Directives? SelectionSet */ function parseFragment(lexer) { var start = lexer.token; expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].SPREAD); if (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME) && lexer.token.value !== 'on') { return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FRAGMENT_SPREAD, name: parseFragmentName(lexer), directives: parseDirectives(lexer, false), loc: loc(lexer, start) }; } var typeCondition; if (lexer.token.value === 'on') { lexer.advance(); typeCondition = parseNamedType(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INLINE_FRAGMENT, typeCondition: typeCondition, directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * FragmentDefinition : * - fragment FragmentName on TypeCondition Directives? SelectionSet * * TypeCondition : NamedType */ function parseFragmentDefinition(lexer) { var start = lexer.token; expectKeyword(lexer, 'fragment'); // Experimental support for defining variables within fragments changes // the grammar of FragmentDefinition: // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet if (lexer.options.experimentalFragmentVariables) { return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FRAGMENT_DEFINITION, name: parseFragmentName(lexer), variableDefinitions: parseVariableDefinitions(lexer), typeCondition: (expectKeyword(lexer, 'on'), parseNamedType(lexer)), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FRAGMENT_DEFINITION, name: parseFragmentName(lexer), typeCondition: (expectKeyword(lexer, 'on'), parseNamedType(lexer)), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * FragmentName : Name but not `on` */ function parseFragmentName(lexer) { if (lexer.token.value === 'on') { throw unexpected(lexer); } return parseName(lexer); } // Implements the parsing rules in the Values section. /** * Value[Const] : * - [~Const] Variable * - IntValue * - FloatValue * - StringValue * - BooleanValue * - NullValue * - EnumValue * - ListValue[?Const] * - ObjectValue[?Const] * * BooleanValue : one of `true` `false` * * NullValue : `null` * * EnumValue : Name but not `true`, `false` or `null` */ function parseValueLiteral(lexer, isConst) { var token = lexer.token; switch (token.kind) { case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACKET_L: return parseList(lexer, isConst); case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L: return parseObject(lexer, isConst); case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].INT: lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INT, value: token.value, loc: loc(lexer, token) }; case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].FLOAT: lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FLOAT, value: token.value, loc: loc(lexer, token) }; case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].STRING: case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BLOCK_STRING: return parseStringLiteral(lexer); case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME: if (token.value === 'true' || token.value === 'false') { lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].BOOLEAN, value: token.value === 'true', loc: loc(lexer, token) }; } else if (token.value === 'null') { lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].NULL, loc: loc(lexer, token) }; } lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ENUM, value: token.value, loc: loc(lexer, token) }; case __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].DOLLAR: if (!isConst) { return parseVariable(lexer); } break; } throw unexpected(lexer); } function parseStringLiteral(lexer) { var token = lexer.token; lexer.advance(); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].STRING, value: token.value, block: token.kind === __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BLOCK_STRING, loc: loc(lexer, token) }; } function parseConstValue(lexer) { return parseValueLiteral(lexer, true); } function parseValueValue(lexer) { return parseValueLiteral(lexer, false); } /** * ListValue[Const] : * - [ ] * - [ Value[?Const]+ ] */ function parseList(lexer, isConst) { var start = lexer.token; var item = isConst ? parseConstValue : parseValueValue; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].LIST, values: any(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACKET_L, item, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACKET_R), loc: loc(lexer, start) }; } /** * ObjectValue[Const] : * - { } * - { ObjectField[?Const]+ } */ function parseObject(lexer, isConst) { var start = lexer.token; expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L); var fields = []; while (!skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R)) { fields.push(parseObjectField(lexer, isConst)); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OBJECT, fields: fields, loc: loc(lexer, start) }; } /** * ObjectField[Const] : Name : Value[?Const] */ function parseObjectField(lexer, isConst) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OBJECT_FIELD, name: parseName(lexer), value: (expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON), parseValueLiteral(lexer, isConst)), loc: loc(lexer, start) }; } // Implements the parsing rules in the Directives section. /** * Directives[Const] : Directive[?Const]+ */ function parseDirectives(lexer, isConst) { var directives = []; while (peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].AT)) { directives.push(parseDirective(lexer, isConst)); } return directives; } /** * Directive[Const] : @ Name Arguments[?Const]? */ function parseDirective(lexer, isConst) { var start = lexer.token; expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].AT); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].DIRECTIVE, name: parseName(lexer), arguments: parseArguments(lexer, isConst), loc: loc(lexer, start) }; } // Implements the parsing rules in the Types section. /** * Type : * - NamedType * - ListType * - NonNullType */ function parseTypeReference(lexer) { var start = lexer.token; var type; if (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACKET_L)) { type = parseTypeReference(lexer); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACKET_R); type = { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].LIST_TYPE, type: type, loc: loc(lexer, start) }; } else { type = parseNamedType(lexer); } if (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BANG)) { return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].NON_NULL_TYPE, type: type, loc: loc(lexer, start) }; } return type; } /** * NamedType : Name */ function parseNamedType(lexer) { var start = lexer.token; return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].NAMED_TYPE, name: parseName(lexer), loc: loc(lexer, start) }; } // Implements the parsing rules in the Type Definition section. /** * TypeSystemDefinition : * - SchemaDefinition * - TypeDefinition * - DirectiveDefinition * * TypeDefinition : * - ScalarTypeDefinition * - ObjectTypeDefinition * - InterfaceTypeDefinition * - UnionTypeDefinition * - EnumTypeDefinition * - InputObjectTypeDefinition */ function parseTypeSystemDefinition(lexer) { // Many definitions begin with a description and require a lookahead. var keywordToken = peekDescription(lexer) ? lexer.lookahead() : lexer.token; if (keywordToken.kind === __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME) { switch (keywordToken.value) { case 'schema': return parseSchemaDefinition(lexer); case 'scalar': return parseScalarTypeDefinition(lexer); case 'type': return parseObjectTypeDefinition(lexer); case 'interface': return parseInterfaceTypeDefinition(lexer); case 'union': return parseUnionTypeDefinition(lexer); case 'enum': return parseEnumTypeDefinition(lexer); case 'input': return parseInputObjectTypeDefinition(lexer); case 'directive': return parseDirectiveDefinition(lexer); } } throw unexpected(lexer, keywordToken); } function peekDescription(lexer) { return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].STRING) || peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BLOCK_STRING); } /** * Description : StringValue */ function parseDescription(lexer) { if (peekDescription(lexer)) { return parseStringLiteral(lexer); } } /** * SchemaDefinition : schema Directives[Const]? { OperationTypeDefinition+ } */ function parseSchemaDefinition(lexer) { var start = lexer.token; expectKeyword(lexer, 'schema'); var directives = parseDirectives(lexer, true); var operationTypes = many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseOperationTypeDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].SCHEMA_DEFINITION, directives: directives, operationTypes: operationTypes, loc: loc(lexer, start) }; } /** * OperationTypeDefinition : OperationType : NamedType */ function parseOperationTypeDefinition(lexer) { var start = lexer.token; var operation = parseOperationType(lexer); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON); var type = parseNamedType(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OPERATION_TYPE_DEFINITION, operation: operation, type: type, loc: loc(lexer, start) }; } /** * ScalarTypeDefinition : Description? scalar Name Directives[Const]? */ function parseScalarTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'scalar'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].SCALAR_TYPE_DEFINITION, description: description, name: name, directives: directives, loc: loc(lexer, start) }; } /** * ObjectTypeDefinition : * Description? * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition? */ function parseObjectTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'type'); var name = parseName(lexer); var interfaces = parseImplementsInterfaces(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OBJECT_TYPE_DEFINITION, description: description, name: name, interfaces: interfaces, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * ImplementsInterfaces : * - implements `&`? NamedType * - ImplementsInterfaces & NamedType */ function parseImplementsInterfaces(lexer) { var types = []; if (lexer.token.value === 'implements') { lexer.advance(); // Optional leading ampersand skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].AMP); do { types.push(parseNamedType(lexer)); } while (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].AMP) || // Legacy support for the SDL? lexer.options.allowLegacySDLImplementsInterfaces && peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME)); } return types; } /** * FieldsDefinition : { FieldDefinition+ } */ function parseFieldsDefinition(lexer) { // Legacy support for the SDL? if (lexer.options.allowLegacySDLEmptyFields && peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) && lexer.lookahead().kind === __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R) { lexer.advance(); lexer.advance(); return []; } return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseFieldDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R) : []; } /** * FieldDefinition : * - Description? Name ArgumentsDefinition? : Type Directives[Const]? */ function parseFieldDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); var args = parseArgumentDefs(lexer); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON); var type = parseTypeReference(lexer); var directives = parseDirectives(lexer, true); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].FIELD_DEFINITION, description: description, name: name, arguments: args, type: type, directives: directives, loc: loc(lexer, start) }; } /** * ArgumentsDefinition : ( InputValueDefinition+ ) */ function parseArgumentDefs(lexer) { if (!peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L)) { return []; } return many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_L, parseInputValueDef, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PAREN_R); } /** * InputValueDefinition : * - Description? Name : Type DefaultValue? Directives[Const]? */ function parseInputValueDef(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].COLON); var type = parseTypeReference(lexer); var defaultValue; if (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EQUALS)) { defaultValue = parseConstValue(lexer); } var directives = parseDirectives(lexer, true); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INPUT_VALUE_DEFINITION, description: description, name: name, type: type, defaultValue: defaultValue, directives: directives, loc: loc(lexer, start) }; } /** * InterfaceTypeDefinition : * - Description? interface Name Directives[Const]? FieldsDefinition? */ function parseInterfaceTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'interface'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INTERFACE_TYPE_DEFINITION, description: description, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * UnionTypeDefinition : * - Description? union Name Directives[Const]? UnionMemberTypes? */ function parseUnionTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'union'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var types = parseUnionMemberTypes(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].UNION_TYPE_DEFINITION, description: description, name: name, directives: directives, types: types, loc: loc(lexer, start) }; } /** * UnionMemberTypes : * - = `|`? NamedType * - UnionMemberTypes | NamedType */ function parseUnionMemberTypes(lexer) { var types = []; if (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].EQUALS)) { // Optional leading pipe skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PIPE); do { types.push(parseNamedType(lexer)); } while (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PIPE)); } return types; } /** * EnumTypeDefinition : * - Description? enum Name Directives[Const]? EnumValuesDefinition? */ function parseEnumTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'enum'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var values = parseEnumValuesDefinition(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ENUM_TYPE_DEFINITION, description: description, name: name, directives: directives, values: values, loc: loc(lexer, start) }; } /** * EnumValuesDefinition : { EnumValueDefinition+ } */ function parseEnumValuesDefinition(lexer) { return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseEnumValueDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R) : []; } /** * EnumValueDefinition : Description? EnumValue Directives[Const]? * * EnumValue : Name */ function parseEnumValueDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); var directives = parseDirectives(lexer, true); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ENUM_VALUE_DEFINITION, description: description, name: name, directives: directives, loc: loc(lexer, start) }; } /** * InputObjectTypeDefinition : * - Description? input Name Directives[Const]? InputFieldsDefinition? */ function parseInputObjectTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'input'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseInputFieldsDefinition(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_DEFINITION, description: description, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * InputFieldsDefinition : { InputValueDefinition+ } */ function parseInputFieldsDefinition(lexer) { return peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseInputValueDef, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R) : []; } /** * TypeSystemExtension : * - SchemaExtension * - TypeExtension * * TypeExtension : * - ScalarTypeExtension * - ObjectTypeExtension * - InterfaceTypeExtension * - UnionTypeExtension * - EnumTypeExtension * - InputObjectTypeDefinition */ function parseTypeSystemExtension(lexer) { var keywordToken = lexer.lookahead(); if (keywordToken.kind === __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME) { switch (keywordToken.value) { case 'schema': return parseSchemaExtension(lexer); case 'scalar': return parseScalarTypeExtension(lexer); case 'type': return parseObjectTypeExtension(lexer); case 'interface': return parseInterfaceTypeExtension(lexer); case 'union': return parseUnionTypeExtension(lexer); case 'enum': return parseEnumTypeExtension(lexer); case 'input': return parseInputObjectTypeExtension(lexer); } } throw unexpected(lexer, keywordToken); } /** * SchemaExtension : * - extend schema Directives[Const]? { OperationTypeDefinition+ } * - extend schema Directives[Const] */ function parseSchemaExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'schema'); var directives = parseDirectives(lexer, true); var operationTypes = peek(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L) ? many(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_L, parseOperationTypeDefinition, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].BRACE_R) : []; if (directives.length === 0 && operationTypes.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].SCHEMA_EXTENSION, directives: directives, operationTypes: operationTypes, loc: loc(lexer, start) }; } /** * ScalarTypeExtension : * - extend scalar Name Directives[Const] */ function parseScalarTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'scalar'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); if (directives.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].SCALAR_TYPE_EXTENSION, name: name, directives: directives, loc: loc(lexer, start) }; } /** * ObjectTypeExtension : * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition * - extend type Name ImplementsInterfaces? Directives[Const] * - extend type Name ImplementsInterfaces */ function parseObjectTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'type'); var name = parseName(lexer); var interfaces = parseImplementsInterfaces(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].OBJECT_TYPE_EXTENSION, name: name, interfaces: interfaces, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * InterfaceTypeExtension : * - extend interface Name Directives[Const]? FieldsDefinition * - extend interface Name Directives[Const] */ function parseInterfaceTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'interface'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); if (directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INTERFACE_TYPE_EXTENSION, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * UnionTypeExtension : * - extend union Name Directives[Const]? UnionMemberTypes * - extend union Name Directives[Const] */ function parseUnionTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'union'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var types = parseUnionMemberTypes(lexer); if (directives.length === 0 && types.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].UNION_TYPE_EXTENSION, name: name, directives: directives, types: types, loc: loc(lexer, start) }; } /** * EnumTypeExtension : * - extend enum Name Directives[Const]? EnumValuesDefinition * - extend enum Name Directives[Const] */ function parseEnumTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'enum'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var values = parseEnumValuesDefinition(lexer); if (directives.length === 0 && values.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].ENUM_TYPE_EXTENSION, name: name, directives: directives, values: values, loc: loc(lexer, start) }; } /** * InputObjectTypeExtension : * - extend input Name Directives[Const]? InputFieldsDefinition * - extend input Name Directives[Const] */ function parseInputObjectTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'input'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseInputFieldsDefinition(lexer); if (directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_EXTENSION, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * DirectiveDefinition : * - Description? directive @ Name ArgumentsDefinition? on DirectiveLocations */ function parseDirectiveDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'directive'); expect(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].AT); var name = parseName(lexer); var args = parseArgumentDefs(lexer); expectKeyword(lexer, 'on'); var locations = parseDirectiveLocations(lexer); return { kind: __WEBPACK_IMPORTED_MODULE_4__kinds__["a" /* Kind */].DIRECTIVE_DEFINITION, description: description, name: name, arguments: args, locations: locations, loc: loc(lexer, start) }; } /** * DirectiveLocations : * - `|`? DirectiveLocation * - DirectiveLocations | DirectiveLocation */ function parseDirectiveLocations(lexer) { // Optional leading pipe skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PIPE); var locations = []; do { locations.push(parseDirectiveLocation(lexer)); } while (skip(lexer, __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].PIPE)); return locations; } /* * DirectiveLocation : * - ExecutableDirectiveLocation * - TypeSystemDirectiveLocation * * ExecutableDirectiveLocation : one of * `QUERY` * `MUTATION` * `SUBSCRIPTION` * `FIELD` * `FRAGMENT_DEFINITION` * `FRAGMENT_SPREAD` * `INLINE_FRAGMENT` * * TypeSystemDirectiveLocation : one of * `SCHEMA` * `SCALAR` * `OBJECT` * `FIELD_DEFINITION` * `ARGUMENT_DEFINITION` * `INTERFACE` * `UNION` * `ENUM` * `ENUM_VALUE` * `INPUT_OBJECT` * `INPUT_FIELD_DEFINITION` */ function parseDirectiveLocation(lexer) { var start = lexer.token; var name = parseName(lexer); if (__WEBPACK_IMPORTED_MODULE_5__directiveLocation__["a" /* DirectiveLocation */].hasOwnProperty(name.value)) { return name; } throw unexpected(lexer, start); } // Core parsing utility functions /** * Returns a location object, used to identify the place in * the source that created a given parsed object. */ function loc(lexer, startToken) { if (!lexer.options.noLocation) { return new Loc(startToken, lexer.lastToken, lexer.source); } } function Loc(startToken, endToken, source) { this.start = startToken.start; this.end = endToken.end; this.startToken = startToken; this.endToken = endToken; this.source = source; } // Print a simplified form when appearing in JSON/util.inspect. Loc.prototype.toJSON = Loc.prototype.inspect = function toJSON() { return { start: this.start, end: this.end }; }; /** * Determines if the next token is of a given kind */ function peek(lexer, kind) { return lexer.token.kind === kind; } /** * If the next token is of the given kind, return true after advancing * the lexer. Otherwise, do not change the parser state and return false. */ function skip(lexer, kind) { var match = lexer.token.kind === kind; if (match) { lexer.advance(); } return match; } /** * If the next token is of the given kind, return that token after advancing * the lexer. Otherwise, do not change the parser state and throw an error. */ function expect(lexer, kind) { var token = lexer.token; if (token.kind === kind) { lexer.advance(); return token; } throw Object(__WEBPACK_IMPORTED_MODULE_2__error__["b" /* syntaxError */])(lexer.source, token.start, "Expected ".concat(kind, ", found ").concat(Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["c" /* getTokenDesc */])(token))); } /** * If the next token is a keyword with the given value, return that token after * advancing the lexer. Otherwise, do not change the parser state and return * false. */ function expectKeyword(lexer, value) { var token = lexer.token; if (token.kind === __WEBPACK_IMPORTED_MODULE_3__lexer__["a" /* TokenKind */].NAME && token.value === value) { lexer.advance(); return token; } throw Object(__WEBPACK_IMPORTED_MODULE_2__error__["b" /* syntaxError */])(lexer.source, token.start, "Expected \"".concat(value, "\", found ").concat(Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["c" /* getTokenDesc */])(token))); } /** * Helper function for creating an error when an unexpected lexed token * is encountered. */ function unexpected(lexer, atToken) { var token = atToken || lexer.token; return Object(__WEBPACK_IMPORTED_MODULE_2__error__["b" /* syntaxError */])(lexer.source, token.start, "Unexpected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__lexer__["c" /* getTokenDesc */])(token))); } /** * Returns a possibly empty list of parse nodes, determined by * the parseFn. This list begins with a lex token of openKind * and ends with a lex token of closeKind. Advances the parser * to the next lex token after the closing token. */ function any(lexer, openKind, parseFn, closeKind) { expect(lexer, openKind); var nodes = []; while (!skip(lexer, closeKind)) { nodes.push(parseFn(lexer)); } return nodes; } /** * Returns a non-empty list of parse nodes, determined by * the parseFn. This list begins with a lex token of openKind * and ends with a lex token of closeKind. Advances the parser * to the next lex token after the closing token. */ function many(lexer, openKind, parseFn, closeKind) { expect(lexer, openKind); var nodes = [parseFn(lexer)]; while (!skip(lexer, closeKind)) { nodes.push(parseFn(lexer)); } return nodes; } /***/ }), /***/ "./node_modules/graphql/language/predicates.mjs": /*!******************************************************!*\ !*** ./node_modules/graphql/language/predicates.mjs ***! \******************************************************/ /*! exports provided: isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode */ /*! exports used: isExecutableDefinitionNode, isTypeDefinitionNode, isTypeExtensionNode */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export isDefinitionNode */ /* harmony export (immutable) */ __webpack_exports__["a"] = isExecutableDefinitionNode; /* unused harmony export isSelectionNode */ /* unused harmony export isValueNode */ /* unused harmony export isTypeNode */ /* unused harmony export isTypeSystemDefinitionNode */ /* harmony export (immutable) */ __webpack_exports__["b"] = isTypeDefinitionNode; /* unused harmony export isTypeSystemExtensionNode */ /* harmony export (immutable) */ __webpack_exports__["c"] = isTypeExtensionNode; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__kinds__ = __webpack_require__(/*! ./kinds */ "./node_modules/graphql/language/kinds.mjs"); /** * Copyright (c) 2018-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function isDefinitionNode(node) { return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node); } function isExecutableDefinitionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].OPERATION_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].FRAGMENT_DEFINITION; } function isSelectionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].FIELD || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].FRAGMENT_SPREAD || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INLINE_FRAGMENT; } function isValueNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].VARIABLE || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INT || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].FLOAT || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].STRING || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].BOOLEAN || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].NULL || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].ENUM || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].LIST || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].OBJECT; } function isTypeNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].NAMED_TYPE || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].LIST_TYPE || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].NON_NULL_TYPE; } function isTypeSystemDefinitionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].DIRECTIVE_DEFINITION; } function isTypeDefinitionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].SCALAR_TYPE_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].OBJECT_TYPE_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INTERFACE_TYPE_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].UNION_TYPE_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].ENUM_TYPE_DEFINITION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_DEFINITION; } function isTypeSystemExtensionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].SCHEMA_EXTENSION || isTypeExtensionNode(node); } function isTypeExtensionNode(node) { return node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].SCALAR_TYPE_EXTENSION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].OBJECT_TYPE_EXTENSION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INTERFACE_TYPE_EXTENSION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].UNION_TYPE_EXTENSION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].ENUM_TYPE_EXTENSION || node.kind === __WEBPACK_IMPORTED_MODULE_0__kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_EXTENSION; } /***/ }), /***/ "./node_modules/graphql/language/printer.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/language/printer.mjs ***! \***************************************************/ /*! exports provided: print */ /*! exports used: print */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = print; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__visitor__ = __webpack_require__(/*! ./visitor */ "./node_modules/graphql/language/visitor.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** * Converts an AST into a string, using one set of reasonable * formatting rules. */ function print(ast) { return Object(__WEBPACK_IMPORTED_MODULE_0__visitor__["a" /* visit */])(ast, { leave: printDocASTReducer }); } var printDocASTReducer = { Name: function Name(node) { return node.value; }, Variable: function Variable(node) { return '$' + node.name; }, // Document Document: function Document(node) { return join(node.definitions, '\n\n') + '\n'; }, OperationDefinition: function OperationDefinition(node) { var op = node.operation; var name = node.name; var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')'); var directives = join(node.directives, ' '); var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use // the query short form. return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' '); }, VariableDefinition: function VariableDefinition(_ref) { var variable = _ref.variable, type = _ref.type, defaultValue = _ref.defaultValue, directives = _ref.directives; return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' ')); }, SelectionSet: function SelectionSet(_ref2) { var selections = _ref2.selections; return block(selections); }, Field: function Field(_ref3) { var alias = _ref3.alias, name = _ref3.name, args = _ref3.arguments, directives = _ref3.directives, selectionSet = _ref3.selectionSet; return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' '); }, Argument: function Argument(_ref4) { var name = _ref4.name, value = _ref4.value; return name + ': ' + value; }, // Fragments FragmentSpread: function FragmentSpread(_ref5) { var name = _ref5.name, directives = _ref5.directives; return '...' + name + wrap(' ', join(directives, ' ')); }, InlineFragment: function InlineFragment(_ref6) { var typeCondition = _ref6.typeCondition, directives = _ref6.directives, selectionSet = _ref6.selectionSet; return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' '); }, FragmentDefinition: function FragmentDefinition(_ref7) { var name = _ref7.name, typeCondition = _ref7.typeCondition, variableDefinitions = _ref7.variableDefinitions, directives = _ref7.directives, selectionSet = _ref7.selectionSet; return (// Note: fragment variable definitions are experimental and may be changed // or removed in the future. "fragment ".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), " ") + "on ".concat(typeCondition, " ").concat(wrap('', join(directives, ' '), ' ')) + selectionSet ); }, // Value IntValue: function IntValue(_ref8) { var value = _ref8.value; return value; }, FloatValue: function FloatValue(_ref9) { var value = _ref9.value; return value; }, StringValue: function StringValue(_ref10, key) { var value = _ref10.value, isBlockString = _ref10.block; return isBlockString ? printBlockString(value, key === 'description') : JSON.stringify(value); }, BooleanValue: function BooleanValue(_ref11) { var value = _ref11.value; return value ? 'true' : 'false'; }, NullValue: function NullValue() { return 'null'; }, EnumValue: function EnumValue(_ref12) { var value = _ref12.value; return value; }, ListValue: function ListValue(_ref13) { var values = _ref13.values; return '[' + join(values, ', ') + ']'; }, ObjectValue: function ObjectValue(_ref14) { var fields = _ref14.fields; return '{' + join(fields, ', ') + '}'; }, ObjectField: function ObjectField(_ref15) { var name = _ref15.name, value = _ref15.value; return name + ': ' + value; }, // Directive Directive: function Directive(_ref16) { var name = _ref16.name, args = _ref16.arguments; return '@' + name + wrap('(', join(args, ', '), ')'); }, // Type NamedType: function NamedType(_ref17) { var name = _ref17.name; return name; }, ListType: function ListType(_ref18) { var type = _ref18.type; return '[' + type + ']'; }, NonNullType: function NonNullType(_ref19) { var type = _ref19.type; return type + '!'; }, // Type System Definitions SchemaDefinition: function SchemaDefinition(_ref20) { var directives = _ref20.directives, operationTypes = _ref20.operationTypes; return join(['schema', join(directives, ' '), block(operationTypes)], ' '); }, OperationTypeDefinition: function OperationTypeDefinition(_ref21) { var operation = _ref21.operation, type = _ref21.type; return operation + ': ' + type; }, ScalarTypeDefinition: addDescription(function (_ref22) { var name = _ref22.name, directives = _ref22.directives; return join(['scalar', name, join(directives, ' ')], ' '); }), ObjectTypeDefinition: addDescription(function (_ref23) { var name = _ref23.name, interfaces = _ref23.interfaces, directives = _ref23.directives, fields = _ref23.fields; return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' '); }), FieldDefinition: addDescription(function (_ref24) { var name = _ref24.name, args = _ref24.arguments, type = _ref24.type, directives = _ref24.directives; return name + (args.every(function (arg) { return arg.indexOf('\n') === -1; }) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ': ' + type + wrap(' ', join(directives, ' ')); }), InputValueDefinition: addDescription(function (_ref25) { var name = _ref25.name, type = _ref25.type, defaultValue = _ref25.defaultValue, directives = _ref25.directives; return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' '); }), InterfaceTypeDefinition: addDescription(function (_ref26) { var name = _ref26.name, directives = _ref26.directives, fields = _ref26.fields; return join(['interface', name, join(directives, ' '), block(fields)], ' '); }), UnionTypeDefinition: addDescription(function (_ref27) { var name = _ref27.name, directives = _ref27.directives, types = _ref27.types; return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' '); }), EnumTypeDefinition: addDescription(function (_ref28) { var name = _ref28.name, directives = _ref28.directives, values = _ref28.values; return join(['enum', name, join(directives, ' '), block(values)], ' '); }), EnumValueDefinition: addDescription(function (_ref29) { var name = _ref29.name, directives = _ref29.directives; return join([name, join(directives, ' ')], ' '); }), InputObjectTypeDefinition: addDescription(function (_ref30) { var name = _ref30.name, directives = _ref30.directives, fields = _ref30.fields; return join(['input', name, join(directives, ' '), block(fields)], ' '); }), DirectiveDefinition: addDescription(function (_ref31) { var name = _ref31.name, args = _ref31.arguments, locations = _ref31.locations; return 'directive @' + name + (args.every(function (arg) { return arg.indexOf('\n') === -1; }) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ' on ' + join(locations, ' | '); }), SchemaExtension: function SchemaExtension(_ref32) { var directives = _ref32.directives, operationTypes = _ref32.operationTypes; return join(['extend schema', join(directives, ' '), block(operationTypes)], ' '); }, ScalarTypeExtension: function ScalarTypeExtension(_ref33) { var name = _ref33.name, directives = _ref33.directives; return join(['extend scalar', name, join(directives, ' ')], ' '); }, ObjectTypeExtension: function ObjectTypeExtension(_ref34) { var name = _ref34.name, interfaces = _ref34.interfaces, directives = _ref34.directives, fields = _ref34.fields; return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' '); }, InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) { var name = _ref35.name, directives = _ref35.directives, fields = _ref35.fields; return join(['extend interface', name, join(directives, ' '), block(fields)], ' '); }, UnionTypeExtension: function UnionTypeExtension(_ref36) { var name = _ref36.name, directives = _ref36.directives, types = _ref36.types; return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' '); }, EnumTypeExtension: function EnumTypeExtension(_ref37) { var name = _ref37.name, directives = _ref37.directives, values = _ref37.values; return join(['extend enum', name, join(directives, ' '), block(values)], ' '); }, InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) { var name = _ref38.name, directives = _ref38.directives, fields = _ref38.fields; return join(['extend input', name, join(directives, ' '), block(fields)], ' '); } }; function addDescription(cb) { return function (node) { return join([node.description, cb(node)], '\n'); }; } /** * Given maybeArray, print an empty string if it is null or empty, otherwise * print all items together separated by separator if provided */ function join(maybeArray, separator) { return maybeArray ? maybeArray.filter(function (x) { return x; }).join(separator || '') : ''; } /** * Given array, print each item on its own line, wrapped in an * indented "{ }" block. */ function block(array) { return array && array.length !== 0 ? '{\n' + indent(join(array, '\n')) + '\n}' : ''; } /** * If maybeString is not null or empty, then wrap with start and end, otherwise * print an empty string. */ function wrap(start, maybeString, end) { return maybeString ? start + maybeString + (end || '') : ''; } function indent(maybeString) { return maybeString && ' ' + maybeString.replace(/\n/g, '\n '); } /** * Print a block string in the indented block form by adding a leading and * trailing blank line. However, if a block string starts with whitespace and is * a single-line, adding a leading blank line would strip that whitespace. */ function printBlockString(value, isDescription) { var escaped = value.replace(/"""/g, '\\"""'); return (value[0] === ' ' || value[0] === '\t') && value.indexOf('\n') === -1 ? "\"\"\"".concat(escaped.replace(/"$/, '"\n'), "\"\"\"") : "\"\"\"\n".concat(isDescription ? escaped : indent(escaped), "\n\"\"\""); } /***/ }), /***/ "./node_modules/graphql/language/source.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/language/source.mjs ***! \**************************************************/ /*! exports provided: Source */ /*! exports used: Source */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Source; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__ = __webpack_require__(/*! ../jsutils/defineToStringTag */ "./node_modules/graphql/jsutils/defineToStringTag.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * A representation of source input to GraphQL. * `name` and `locationOffset` are optional. They are useful for clients who * store GraphQL documents in source files; for example, if the GraphQL input * starts at line 40 in a file named Foo.graphql, it might be useful for name to * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`. * line and column in locationOffset are 1-indexed */ var Source = function Source(body, name, locationOffset) { _defineProperty(this, "body", void 0); _defineProperty(this, "name", void 0); _defineProperty(this, "locationOffset", void 0); this.body = body; this.name = name || 'GraphQL request'; this.locationOffset = locationOffset || { line: 1, column: 1 }; !(this.locationOffset.line > 0) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'line in locationOffset is 1-indexed and must be positive') : void 0; !(this.locationOffset.column > 0) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'column in locationOffset is 1-indexed and must be positive') : void 0; }; // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(Source); /***/ }), /***/ "./node_modules/graphql/language/visitor.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/language/visitor.mjs ***! \***************************************************/ /*! exports provided: QueryDocumentKeys, BREAK, visit, visitInParallel, visitWithTypeInfo, getVisitFn */ /*! exports used: visit, visitInParallel, visitWithTypeInfo */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export QueryDocumentKeys */ /* unused harmony export BREAK */ /* harmony export (immutable) */ __webpack_exports__["a"] = visit; /* harmony export (immutable) */ __webpack_exports__["b"] = visitInParallel; /* harmony export (immutable) */ __webpack_exports__["c"] = visitWithTypeInfo; /* unused harmony export getVisitFn */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * A visitor is provided to visit, it contains the collection of * relevant functions to be called during the visitor's traversal. */ /** * A visitor is comprised of visit functions, which are called on each node * during the visitor's traversal. */ /** * A KeyMap describes each the traversable properties of each kind of node. */ var QueryDocumentKeys = { Name: [], Document: ['definitions'], OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'], VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'], Variable: ['name'], SelectionSet: ['selections'], Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'], Argument: ['name', 'value'], FragmentSpread: ['name', 'directives'], InlineFragment: ['typeCondition', 'directives', 'selectionSet'], FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed // or removed in the future. 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'], IntValue: [], FloatValue: [], StringValue: [], BooleanValue: [], NullValue: [], EnumValue: [], ListValue: ['values'], ObjectValue: ['fields'], ObjectField: ['name', 'value'], Directive: ['name', 'arguments'], NamedType: ['name'], ListType: ['type'], NonNullType: ['type'], SchemaDefinition: ['directives', 'operationTypes'], OperationTypeDefinition: ['type'], ScalarTypeDefinition: ['description', 'name', 'directives'], ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'], FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'], InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'], InterfaceTypeDefinition: ['description', 'name', 'directives', 'fields'], UnionTypeDefinition: ['description', 'name', 'directives', 'types'], EnumTypeDefinition: ['description', 'name', 'directives', 'values'], EnumValueDefinition: ['description', 'name', 'directives'], InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'], DirectiveDefinition: ['description', 'name', 'arguments', 'locations'], SchemaExtension: ['directives', 'operationTypes'], ScalarTypeExtension: ['name', 'directives'], ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'], InterfaceTypeExtension: ['name', 'directives', 'fields'], UnionTypeExtension: ['name', 'directives', 'types'], EnumTypeExtension: ['name', 'directives', 'values'], InputObjectTypeExtension: ['name', 'directives', 'fields'] }; var BREAK = {}; /** * visit() will walk through an AST using a depth first traversal, calling * the visitor's enter function at each node in the traversal, and calling the * leave function after visiting that node and all of its child nodes. * * By returning different values from the enter and leave functions, the * behavior of the visitor can be altered, including skipping over a sub-tree of * the AST (by returning false), editing the AST by returning a value or null * to remove the value, or to stop the whole traversal by returning BREAK. * * When using visit() to edit an AST, the original AST will not be modified, and * a new version of the AST with the changes applied will be returned from the * visit function. * * const editedAST = visit(ast, { * enter(node, key, parent, path, ancestors) { * // @return * // undefined: no action * // false: skip visiting this node * // visitor.BREAK: stop visiting altogether * // null: delete this node * // any value: replace this node with the returned value * }, * leave(node, key, parent, path, ancestors) { * // @return * // undefined: no action * // false: no action * // visitor.BREAK: stop visiting altogether * // null: delete this node * // any value: replace this node with the returned value * } * }); * * Alternatively to providing enter() and leave() functions, a visitor can * instead provide functions named the same as the kinds of AST nodes, or * enter/leave visitors at a named key, leading to four permutations of * visitor API: * * 1) Named visitors triggered when entering a node a specific kind. * * visit(ast, { * Kind(node) { * // enter the "Kind" node * } * }) * * 2) Named visitors that trigger upon entering and leaving a node of * a specific kind. * * visit(ast, { * Kind: { * enter(node) { * // enter the "Kind" node * } * leave(node) { * // leave the "Kind" node * } * } * }) * * 3) Generic visitors that trigger upon entering and leaving any node. * * visit(ast, { * enter(node) { * // enter any node * }, * leave(node) { * // leave any node * } * }) * * 4) Parallel visitors for entering and leaving nodes of a specific kind. * * visit(ast, { * enter: { * Kind(node) { * // enter the "Kind" node * } * }, * leave: { * Kind(node) { * // leave the "Kind" node * } * } * }) */ function visit(root, visitor) { var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys; /* eslint-disable no-undef-init */ var stack = undefined; var inArray = Array.isArray(root); var keys = [root]; var index = -1; var edits = []; var node = undefined; var key = undefined; var parent = undefined; var path = []; var ancestors = []; var newRoot = root; /* eslint-enable no-undef-init */ do { index++; var isLeaving = index === keys.length; var isEdited = isLeaving && edits.length !== 0; if (isLeaving) { key = ancestors.length === 0 ? undefined : path[path.length - 1]; node = parent; parent = ancestors.pop(); if (isEdited) { if (inArray) { node = node.slice(); } else { var clone = {}; for (var k in node) { if (node.hasOwnProperty(k)) { clone[k] = node[k]; } } node = clone; } var editOffset = 0; for (var ii = 0; ii < edits.length; ii++) { var editKey = edits[ii][0]; var editValue = edits[ii][1]; if (inArray) { editKey -= editOffset; } if (inArray && editValue === null) { node.splice(editKey, 1); editOffset++; } else { node[editKey] = editValue; } } } index = stack.index; keys = stack.keys; edits = stack.edits; inArray = stack.inArray; stack = stack.prev; } else { key = parent ? inArray ? index : keys[index] : undefined; node = parent ? parent[key] : newRoot; if (node === null || node === undefined) { continue; } if (parent) { path.push(key); } } var result = void 0; if (!Array.isArray(node)) { if (!isNode(node)) { throw new Error('Invalid AST Node: ' + JSON.stringify(node)); } var visitFn = getVisitFn(visitor, node.kind, isLeaving); if (visitFn) { result = visitFn.call(visitor, node, key, parent, path, ancestors); if (result === BREAK) { break; } if (result === false) { if (!isLeaving) { path.pop(); continue; } } else if (result !== undefined) { edits.push([key, result]); if (!isLeaving) { if (isNode(result)) { node = result; } else { path.pop(); continue; } } } } } if (result === undefined && isEdited) { edits.push([key, node]); } if (isLeaving) { path.pop(); } else { stack = { inArray: inArray, index: index, keys: keys, edits: edits, prev: stack }; inArray = Array.isArray(node); keys = inArray ? node : visitorKeys[node.kind] || []; index = -1; edits = []; if (parent) { ancestors.push(parent); } parent = node; } } while (stack !== undefined); if (edits.length !== 0) { newRoot = edits[edits.length - 1][1]; } return newRoot; } function isNode(maybeNode) { return Boolean(maybeNode && typeof maybeNode.kind === 'string'); } /** * Creates a new visitor instance which delegates to many visitors to run in * parallel. Each visitor will be visited for each node before moving on. * * If a prior visitor edits a node, no following visitors will see that node. */ function visitInParallel(visitors) { var skipping = new Array(visitors.length); return { enter: function enter(node) { for (var i = 0; i < visitors.length; i++) { if (!skipping[i]) { var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */ false); if (fn) { var result = fn.apply(visitors[i], arguments); if (result === false) { skipping[i] = node; } else if (result === BREAK) { skipping[i] = BREAK; } else if (result !== undefined) { return result; } } } } }, leave: function leave(node) { for (var i = 0; i < visitors.length; i++) { if (!skipping[i]) { var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */ true); if (fn) { var result = fn.apply(visitors[i], arguments); if (result === BREAK) { skipping[i] = BREAK; } else if (result !== undefined && result !== false) { return result; } } } else if (skipping[i] === node) { skipping[i] = null; } } } }; } /** * Creates a new visitor instance which maintains a provided TypeInfo instance * along with visiting visitor. */ function visitWithTypeInfo(typeInfo, visitor) { return { enter: function enter(node) { typeInfo.enter(node); var fn = getVisitFn(visitor, node.kind, /* isLeaving */ false); if (fn) { var result = fn.apply(visitor, arguments); if (result !== undefined) { typeInfo.leave(node); if (isNode(result)) { typeInfo.enter(result); } } return result; } }, leave: function leave(node) { var fn = getVisitFn(visitor, node.kind, /* isLeaving */ true); var result; if (fn) { result = fn.apply(visitor, arguments); } typeInfo.leave(node); return result; } }; } /** * Given a visitor instance, if it is leaving or not, and a node kind, return * the function the visitor runtime should call. */ function getVisitFn(visitor, kind, isLeaving) { var kindVisitor = visitor[kind]; if (kindVisitor) { if (!isLeaving && typeof kindVisitor === 'function') { // { Kind() {} } return kindVisitor; } var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter; if (typeof kindSpecificVisitor === 'function') { // { Kind: { enter() {}, leave() {} } } return kindSpecificVisitor; } } else { var specificVisitor = isLeaving ? visitor.leave : visitor.enter; if (specificVisitor) { if (typeof specificVisitor === 'function') { // { enter() {}, leave() {} } return specificVisitor; } var specificKindVisitor = specificVisitor[kind]; if (typeof specificKindVisitor === 'function') { // { enter: { Kind() {} }, leave: { Kind() {} } } return specificKindVisitor; } } } } /***/ }), /***/ "./node_modules/graphql/subscription/index.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/subscription/index.mjs ***! \*****************************************************/ /*! exports provided: subscribe, createSourceEventStream */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__subscribe__ = __webpack_require__(/*! ./subscribe */ "./node_modules/graphql/subscription/subscribe.mjs"); /* unused harmony reexport subscribe */ /* unused harmony reexport createSourceEventStream */ /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /***/ }), /***/ "./node_modules/graphql/subscription/mapAsyncIterator.mjs": /*!****************************************************************!*\ !*** ./node_modules/graphql/subscription/mapAsyncIterator.mjs ***! \****************************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = mapAsyncIterator; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_iterall__ = __webpack_require__(/*! iterall */ "./node_modules/iterall/index.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Given an AsyncIterable and a callback function, return an AsyncIterator * which produces values mapped via calling the callback function. */ function mapAsyncIterator(iterable, callback, rejectCallback) { var iterator = Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["c" /* getAsyncIterator */])(iterable); var $return; var abruptClose; // $FlowFixMe(>=0.68.0) if (typeof iterator.return === 'function') { $return = iterator.return; abruptClose = function abruptClose(error) { var rethrow = function rethrow() { return Promise.reject(error); }; return $return.call(iterator).then(rethrow, rethrow); }; } function mapResult(result) { return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose); } var mapReject; if (rejectCallback) { // Capture rejectCallback to ensure it cannot be null. var reject = rejectCallback; mapReject = function mapReject(error) { return asyncMapValue(error, reject).then(iteratorResult, abruptClose); }; } /* TODO: Flow doesn't support symbols as keys: https://github.com/facebook/flow/issues/3258 */ return _defineProperty({ next: function next() { return iterator.next().then(mapResult, mapReject); }, return: function _return() { return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({ value: undefined, done: true }); }, throw: function _throw(error) { // $FlowFixMe(>=0.68.0) if (typeof iterator.throw === 'function') { return iterator.throw(error).then(mapResult, mapReject); } return Promise.reject(error).catch(abruptClose); } }, __WEBPACK_IMPORTED_MODULE_0_iterall__["a" /* $$asyncIterator */], function () { return this; }); } function asyncMapValue(value, callback) { return new Promise(function (resolve) { return resolve(callback(value)); }); } function iteratorResult(value) { return { value: value, done: false }; } /***/ }), /***/ "./node_modules/graphql/subscription/subscribe.mjs": /*!*********************************************************!*\ !*** ./node_modules/graphql/subscription/subscribe.mjs ***! \*********************************************************/ /*! exports provided: subscribe, createSourceEventStream */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export subscribe */ /* unused harmony export createSourceEventStream */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_iterall__ = __webpack_require__(/*! iterall */ "./node_modules/iterall/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__error_locatedError__ = __webpack_require__(/*! ../error/locatedError */ "./node_modules/graphql/error/locatedError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__execution_execute__ = __webpack_require__(/*! ../execution/execute */ "./node_modules/graphql/execution/execute.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mapAsyncIterator__ = __webpack_require__(/*! ./mapAsyncIterator */ "./node_modules/graphql/subscription/mapAsyncIterator.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utilities_getOperationRootType__ = __webpack_require__(/*! ../utilities/getOperationRootType */ "./node_modules/graphql/utilities/getOperationRootType.mjs"); /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Implements the "Subscribe" algorithm described in the GraphQL specification. * * Returns a Promise which resolves to either an AsyncIterator (if successful) * or an ExecutionResult (client error). The promise will be rejected if a * server error occurs. * * If the client-provided arguments to this function do not result in a * compliant subscription, a GraphQL Response (ExecutionResult) with * descriptive errors and no data will be returned. * * If the the source stream could not be created due to faulty subscription * resolver logic or underlying systems, the promise will resolve to a single * ExecutionResult containing `errors` and no `data`. * * If the operation succeeded, the promise resolves to an AsyncIterator, which * yields a stream of ExecutionResults representing the response stream. * * Accepts either an object with named arguments, or individual arguments. */ function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) { /* eslint-enable no-redeclare */ // Extract arguments from object args if provided. return arguments.length === 1 ? subscribeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver, argsOrSchema.subscribeFieldResolver) : subscribeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver); } /** * This function checks if the error is a GraphQLError. If it is, report it as * an ExecutionResult, containing only errors and no data. Otherwise treat the * error as a system-class error and re-throw it. */ function reportGraphQLError(error) { if (error instanceof __WEBPACK_IMPORTED_MODULE_2__error_GraphQLError__["a" /* GraphQLError */]) { return { errors: [error] }; } throw error; } function subscribeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) { var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal // GraphQL `execute` function, with `payload` as the rootValue. // This implements the "MapSourceToResponseEvent" algorithm described in // the GraphQL specification. The `execute` function provides the // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the // "ExecuteQuery" algorithm, for which `execute` is also used. var mapSourceToResponse = function mapSourceToResponse(payload) { return Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["f" /* execute */])(schema, document, payload, contextValue, variableValues, operationName, fieldResolver); }; // Resolve the Source Stream, then map every source value to a // ExecutionResult value as described above. return sourcePromise.then(function (resultOrStream) { return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used. Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["d" /* isAsyncIterable */])(resultOrStream) ? Object(__WEBPACK_IMPORTED_MODULE_5__mapAsyncIterator__["a" /* default */])(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream ); }, reportGraphQLError); } /** * Implements the "CreateSourceEventStream" algorithm described in the * GraphQL specification, resolving the subscription source event stream. * * Returns a Promise. * * If the client-provided invalid arguments, the source stream could not be * created, or the resolver did not return an AsyncIterable, this function will * will throw an error, which should be caught and handled by the caller. * * A Source Event Stream represents a sequence of events, each of which triggers * a GraphQL execution for that event. * * This may be useful when hosting the stateful subscription service in a * different process or machine than the stateless GraphQL execution engine, * or otherwise separating these two steps. For more on this, see the * "Supporting Subscriptions at Scale" information in the GraphQL specification. */ function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) { // If arguments are missing or incorrectly typed, this is an internal // developer mistake which should throw an early error. Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["b" /* assertValidExecutionArguments */])(schema, document, variableValues); try { // If a valid context cannot be created due to incorrect arguments, // this will throw an error. var exeContext = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["c" /* buildExecutionContext */])(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed. if (Array.isArray(exeContext)) { return Promise.resolve({ errors: exeContext }); } var type = Object(__WEBPACK_IMPORTED_MODULE_6__utilities_getOperationRootType__["a" /* getOperationRootType */])(schema, exeContext.operation); var fields = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["e" /* collectFields */])(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null)); var responseNames = Object.keys(fields); var responseName = responseNames[0]; var fieldNodes = fields[responseName]; var fieldNode = fieldNodes[0]; var fieldName = fieldNode.name.value; var fieldDef = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["g" /* getFieldDef */])(schema, type, fieldName); if (!fieldDef) { throw new __WEBPACK_IMPORTED_MODULE_2__error_GraphQLError__["a" /* GraphQLError */]("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes); } // Call the `subscribe()` resolver or the default resolver to produce an // AsyncIterable yielding raw payloads. var resolveFn = fieldDef.subscribe || exeContext.fieldResolver; var path = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["a" /* addPath */])(undefined, responseName); var info = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["d" /* buildResolveInfo */])(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream" // algorithm from GraphQL specification. It differs from // "ResolveFieldValue" due to providing a different `resolveFn`. var result = Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["h" /* resolveFieldValueOrError */])(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type. return Promise.resolve(result).then(function (eventStream) { // If eventStream is an Error, rethrow a located error. if (eventStream instanceof Error) { throw Object(__WEBPACK_IMPORTED_MODULE_3__error_locatedError__["a" /* locatedError */])(eventStream, fieldNodes, Object(__WEBPACK_IMPORTED_MODULE_4__execution_execute__["i" /* responsePathAsArray */])(path)); } // Assert field returned an event stream, otherwise yield an error. if (Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["d" /* isAsyncIterable */])(eventStream)) { // Note: isAsyncIterable above ensures this will be correct. return eventStream; } throw new Error('Subscription field must return Async Iterable. Received: ' + Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(eventStream)); }); } catch (error) { return Promise.reject(error); } } /***/ }), /***/ "./node_modules/graphql/type/definition.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/type/definition.mjs ***! \**************************************************/ /*! exports provided: isType, assertType, isScalarType, assertScalarType, isObjectType, assertObjectType, isInterfaceType, assertInterfaceType, isUnionType, assertUnionType, isEnumType, assertEnumType, isInputObjectType, assertInputObjectType, isListType, assertListType, isNonNullType, assertNonNullType, isInputType, assertInputType, isOutputType, assertOutputType, isLeafType, assertLeafType, isCompositeType, assertCompositeType, isAbstractType, assertAbstractType, GraphQLList, GraphQLNonNull, isWrappingType, assertWrappingType, isNullableType, assertNullableType, getNullableType, isNamedType, assertNamedType, getNamedType, GraphQLScalarType, GraphQLObjectType, isRequiredArgument, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, isRequiredInputField */ /*! exports used: GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType, assertInterfaceType, assertNullableType, assertObjectType, getNamedType, getNullableType, isAbstractType, isCompositeType, isEnumType, isInputObjectType, isInputType, isInterfaceType, isLeafType, isListType, isNamedType, isNonNullType, isObjectType, isOutputType, isRequiredArgument, isRequiredInputField, isScalarType, isType, isUnionType, isWrappingType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["C"] = isType; /* unused harmony export assertType */ /* harmony export (immutable) */ __webpack_exports__["B"] = isScalarType; /* unused harmony export assertScalarType */ /* harmony export (immutable) */ __webpack_exports__["x"] = isObjectType; /* harmony export (immutable) */ __webpack_exports__["k"] = assertObjectType; /* harmony export (immutable) */ __webpack_exports__["s"] = isInterfaceType; /* harmony export (immutable) */ __webpack_exports__["i"] = assertInterfaceType; /* harmony export (immutable) */ __webpack_exports__["D"] = isUnionType; /* unused harmony export assertUnionType */ /* harmony export (immutable) */ __webpack_exports__["p"] = isEnumType; /* unused harmony export assertEnumType */ /* harmony export (immutable) */ __webpack_exports__["q"] = isInputObjectType; /* unused harmony export assertInputObjectType */ /* harmony export (immutable) */ __webpack_exports__["u"] = isListType; /* unused harmony export assertListType */ /* harmony export (immutable) */ __webpack_exports__["w"] = isNonNullType; /* unused harmony export assertNonNullType */ /* harmony export (immutable) */ __webpack_exports__["r"] = isInputType; /* unused harmony export assertInputType */ /* harmony export (immutable) */ __webpack_exports__["y"] = isOutputType; /* unused harmony export assertOutputType */ /* harmony export (immutable) */ __webpack_exports__["t"] = isLeafType; /* unused harmony export assertLeafType */ /* harmony export (immutable) */ __webpack_exports__["o"] = isCompositeType; /* unused harmony export assertCompositeType */ /* harmony export (immutable) */ __webpack_exports__["n"] = isAbstractType; /* unused harmony export assertAbstractType */ /* harmony export (immutable) */ __webpack_exports__["d"] = GraphQLList; /* harmony export (immutable) */ __webpack_exports__["e"] = GraphQLNonNull; /* harmony export (immutable) */ __webpack_exports__["E"] = isWrappingType; /* unused harmony export assertWrappingType */ /* unused harmony export isNullableType */ /* harmony export (immutable) */ __webpack_exports__["j"] = assertNullableType; /* harmony export (immutable) */ __webpack_exports__["m"] = getNullableType; /* harmony export (immutable) */ __webpack_exports__["v"] = isNamedType; /* unused harmony export assertNamedType */ /* harmony export (immutable) */ __webpack_exports__["l"] = getNamedType; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return GraphQLScalarType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return GraphQLObjectType; }); /* harmony export (immutable) */ __webpack_exports__["z"] = isRequiredArgument; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GraphQLInterfaceType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return GraphQLUnionType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GraphQLEnumType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return GraphQLInputObjectType; }); /* harmony export (immutable) */ __webpack_exports__["A"] = isRequiredInputField; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__ = __webpack_require__(/*! ../jsutils/defineToJSON */ "./node_modules/graphql/jsutils/defineToJSON.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__ = __webpack_require__(/*! ../jsutils/defineToStringTag */ "./node_modules/graphql/jsutils/defineToStringTag.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__ = __webpack_require__(/*! ../jsutils/instanceOf */ "./node_modules/graphql/jsutils/instanceOf.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utilities_valueFromASTUntyped__ = __webpack_require__(/*! ../utilities/valueFromASTUntyped */ "./node_modules/graphql/utilities/valueFromASTUntyped.mjs"); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function isType(type) { return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type); } function assertType(type) { !isType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL type.")) : void 0; return type; } /** * There are predicates for each kind of GraphQL type. */ // eslint-disable-next-line no-redeclare function isScalarType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLScalarType); } function assertScalarType(type) { !isScalarType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Scalar type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isObjectType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLObjectType); } function assertObjectType(type) { !isObjectType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Object type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isInterfaceType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLInterfaceType); } function assertInterfaceType(type) { !isInterfaceType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Interface type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isUnionType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLUnionType); } function assertUnionType(type) { !isUnionType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Union type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isEnumType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLEnumType); } function assertEnumType(type) { !isEnumType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Enum type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isInputObjectType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLInputObjectType); } function assertInputObjectType(type) { !isInputObjectType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Input Object type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isListType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLList); } function assertListType(type) { !isListType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL List type.")) : void 0; return type; } // eslint-disable-next-line no-redeclare function isNonNullType(type) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_instanceOf__["a" /* default */])(type, GraphQLNonNull); } function assertNonNullType(type) { !isNonNullType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL Non-Null type.")) : void 0; return type; } /** * These types may be used as input types for arguments and directives. */ function isInputType(type) { return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType); } function assertInputType(type) { !isInputType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL input type.")) : void 0; return type; } /** * These types may be used as output types as the result of fields. */ function isOutputType(type) { return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType); } function assertOutputType(type) { !isOutputType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL output type.")) : void 0; return type; } /** * These types may describe types which may be leaf values. */ function isLeafType(type) { return isScalarType(type) || isEnumType(type); } function assertLeafType(type) { !isLeafType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL leaf type.")) : void 0; return type; } /** * These types may describe the parent context of a selection set. */ function isCompositeType(type) { return isObjectType(type) || isInterfaceType(type) || isUnionType(type); } function assertCompositeType(type) { !isCompositeType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL composite type.")) : void 0; return type; } /** * These types may describe the parent context of a selection set. */ function isAbstractType(type) { return isInterfaceType(type) || isUnionType(type); } function assertAbstractType(type) { !isAbstractType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL abstract type.")) : void 0; return type; } /** * List Type Wrapper * * A list is a wrapping type which points to another type. * Lists are often created within the context of defining the fields of * an object type. * * Example: * * const PersonType = new GraphQLObjectType({ * name: 'Person', * fields: () => ({ * parents: { type: GraphQLList(PersonType) }, * children: { type: GraphQLList(PersonType) }, * }) * }) * */ // eslint-disable-next-line no-redeclare function GraphQLList(ofType) { if (this instanceof GraphQLList) { this.ofType = assertType(ofType); } else { return new GraphQLList(ofType); } } // Need to cast through any to alter the prototype. GraphQLList.prototype.toString = function toString() { return '[' + String(this.ofType) + ']'; }; Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLList); /** * Non-Null Type Wrapper * * A non-null is a wrapping type which points to another type. * Non-null types enforce that their values are never null and can ensure * an error is raised if this ever occurs during a request. It is useful for * fields which you can make a strong guarantee on non-nullability, for example * usually the id field of a database row will never be null. * * Example: * * const RowType = new GraphQLObjectType({ * name: 'Row', * fields: () => ({ * id: { type: GraphQLNonNull(GraphQLString) }, * }) * }) * * Note: the enforcement of non-nullability occurs within the executor. */ // eslint-disable-next-line no-redeclare function GraphQLNonNull(ofType) { if (this instanceof GraphQLNonNull) { this.ofType = assertNullableType(ofType); } else { return new GraphQLNonNull(ofType); } } // Need to cast through any to alter the prototype. GraphQLNonNull.prototype.toString = function toString() { return String(this.ofType) + '!'; }; Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLNonNull); /** * These types wrap and modify other types */ function isWrappingType(type) { return isListType(type) || isNonNullType(type); } function assertWrappingType(type) { !isWrappingType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL wrapping type.")) : void 0; return type; } /** * These types can all accept null as a value. */ function isNullableType(type) { return isType(type) && !isNonNullType(type); } function assertNullableType(type) { !isNullableType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL nullable type.")) : void 0; return type; } /* eslint-disable no-redeclare */ function getNullableType(type) { /* eslint-enable no-redeclare */ if (type) { return isNonNullType(type) ? type.ofType : type; } } /** * These named types do not include modifiers like List or NonNull. */ function isNamedType(type) { return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type); } function assertNamedType(type) { !isNamedType(type) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), " to be a GraphQL named type.")) : void 0; return type; } /* eslint-disable no-redeclare */ function getNamedType(type) { /* eslint-enable no-redeclare */ if (type) { var unwrappedType = type; while (isWrappingType(unwrappedType)) { unwrappedType = unwrappedType.ofType; } return unwrappedType; } } /** * Used while defining GraphQL types to allow for circular references in * otherwise immutable type definitions. */ function resolveThunk(thunk) { return typeof thunk === 'function' ? thunk() : thunk; } /** * Scalar Type Definition * * The leaf values of any request and input values to arguments are * Scalars (or Enums) and are defined with a name and a series of functions * used to parse input from ast or variables and to ensure validity. * * If a type's serialize function does not return a value (i.e. it returns * `undefined`) then an error will be raised and a `null` value will be returned * in the response. If the serialize function returns `null`, then no error will * be included in the response. * * Example: * * const OddType = new GraphQLScalarType({ * name: 'Odd', * serialize(value) { * if (value % 2 === 1) { * return value; * } * } * }); * */ var GraphQLScalarType = /*#__PURE__*/ function () { function GraphQLScalarType(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "serialize", void 0); _defineProperty(this, "parseValue", void 0); _defineProperty(this, "parseLiteral", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); this.name = config.name; this.description = config.description; this.serialize = config.serialize; this.parseValue = config.parseValue || function (value) { return value; }; this.parseLiteral = config.parseLiteral || __WEBPACK_IMPORTED_MODULE_7__utilities_valueFromASTUntyped__["a" /* valueFromASTUntyped */]; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; !(typeof config.serialize === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(this.name, " must provide \"serialize\" function. If this custom Scalar ") + 'is also used as an input type, ensure "parseValue" and "parseLiteral" ' + 'functions are also provided.') : void 0; if (config.parseValue || config.parseLiteral) { !(typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(this.name, " must provide both \"parseValue\" and \"parseLiteral\" ") + 'functions.') : void 0; } } var _proto = GraphQLScalarType.prototype; _proto.toString = function toString() { return this.name; }; return GraphQLScalarType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLScalarType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLScalarType); /** * Object Type Definition * * Almost all of the GraphQL types you define will be object types. Object types * have a name, but most importantly describe their fields. * * Example: * * const AddressType = new GraphQLObjectType({ * name: 'Address', * fields: { * street: { type: GraphQLString }, * number: { type: GraphQLInt }, * formatted: { * type: GraphQLString, * resolve(obj) { * return obj.number + ' ' + obj.street * } * } * } * }); * * When two types need to refer to each other, or a type needs to refer to * itself in a field, you can use a function expression (aka a closure or a * thunk) to supply the fields lazily. * * Example: * * const PersonType = new GraphQLObjectType({ * name: 'Person', * fields: () => ({ * name: { type: GraphQLString }, * bestFriend: { type: PersonType }, * }) * }); * */ var GraphQLObjectType = /*#__PURE__*/ function () { function GraphQLObjectType(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "isTypeOf", void 0); _defineProperty(this, "_fields", void 0); _defineProperty(this, "_interfaces", void 0); this.name = config.name; this.description = config.description; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; this.isTypeOf = config.isTypeOf; this._fields = defineFieldMap.bind(undefined, config); this._interfaces = defineInterfaces.bind(undefined, config); !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; !(config.isTypeOf == null || typeof config.isTypeOf === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(this.name, " must provide \"isTypeOf\" as a function, ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(config.isTypeOf), ".")) : void 0; } var _proto2 = GraphQLObjectType.prototype; _proto2.getFields = function getFields() { if (typeof this._fields === 'function') { this._fields = this._fields(); } return this._fields; }; _proto2.getInterfaces = function getInterfaces() { if (typeof this._interfaces === 'function') { this._interfaces = this._interfaces(); } return this._interfaces; }; _proto2.toString = function toString() { return this.name; }; return GraphQLObjectType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLObjectType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLObjectType); function defineInterfaces(config) { var interfaces = resolveThunk(config.interfaces) || []; !Array.isArray(interfaces) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, " interfaces must be an Array or a function which returns ") + 'an Array.') : void 0; return interfaces; } function defineFieldMap(config) { var fieldMap = resolveThunk(config.fields) || {}; !isPlainObj(fieldMap) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, " fields must be an object with field names as keys or a ") + 'function which returns such an object.') : void 0; var resultFieldMap = Object.create(null); var _arr = Object.keys(fieldMap); var _loop = function _loop() { var fieldName = _arr[_i]; var fieldConfig = fieldMap[fieldName]; !isPlainObj(fieldConfig) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, ".").concat(fieldName, " field config must be an object")) : void 0; !!fieldConfig.hasOwnProperty('isDeprecated') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, ".").concat(fieldName, " should provide \"deprecationReason\" ") + 'instead of "isDeprecated".') : void 0; var field = _objectSpread({}, fieldConfig, { isDeprecated: Boolean(fieldConfig.deprecationReason), name: fieldName }); !(field.resolve == null || typeof field.resolve === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, ".").concat(fieldName, " field resolver must be a function if ") + "provided, but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(field.resolve), ".")) : void 0; var argsConfig = fieldConfig.args; if (!argsConfig) { field.args = []; } else { !isPlainObj(argsConfig) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, ".").concat(fieldName, " args must be an object with argument ") + 'names as keys.') : void 0; field.args = Object.keys(argsConfig).map(function (argName) { var arg = argsConfig[argName]; return { name: argName, description: arg.description === undefined ? null : arg.description, type: arg.type, defaultValue: arg.defaultValue, astNode: arg.astNode }; }); } resultFieldMap[fieldName] = field; }; for (var _i = 0; _i < _arr.length; _i++) { _loop(); } return resultFieldMap; } function isPlainObj(obj) { return obj && _typeof(obj) === 'object' && !Array.isArray(obj); } function isRequiredArgument(arg) { return isNonNullType(arg.type) && arg.defaultValue === undefined; } /** * Interface Type Definition * * When a field can return one of a heterogeneous set of types, a Interface type * is used to describe what types are possible, what fields are in common across * all types, as well as a function to determine which type is actually used * when the field is resolved. * * Example: * * const EntityType = new GraphQLInterfaceType({ * name: 'Entity', * fields: { * name: { type: GraphQLString } * } * }); * */ var GraphQLInterfaceType = /*#__PURE__*/ function () { function GraphQLInterfaceType(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "resolveType", void 0); _defineProperty(this, "_fields", void 0); this.name = config.name; this.description = config.description; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; this.resolveType = config.resolveType; this._fields = defineFieldMap.bind(undefined, config); !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; !(config.resolveType == null || typeof config.resolveType === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(config.resolveType), ".")) : void 0; } var _proto3 = GraphQLInterfaceType.prototype; _proto3.getFields = function getFields() { if (typeof this._fields === 'function') { this._fields = this._fields(); } return this._fields; }; _proto3.toString = function toString() { return this.name; }; return GraphQLInterfaceType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLInterfaceType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLInterfaceType); /** * Union Type Definition * * When a field can return one of a heterogeneous set of types, a Union type * is used to describe what types are possible as well as providing a function * to determine which type is actually used when the field is resolved. * * Example: * * const PetType = new GraphQLUnionType({ * name: 'Pet', * types: [ DogType, CatType ], * resolveType(value) { * if (value instanceof Dog) { * return DogType; * } * if (value instanceof Cat) { * return CatType; * } * } * }); * */ var GraphQLUnionType = /*#__PURE__*/ function () { function GraphQLUnionType(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "resolveType", void 0); _defineProperty(this, "_types", void 0); this.name = config.name; this.description = config.description; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; this.resolveType = config.resolveType; this._types = defineTypes.bind(undefined, config); !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; !(config.resolveType == null || typeof config.resolveType === 'function') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(config.resolveType), ".")) : void 0; } var _proto4 = GraphQLUnionType.prototype; _proto4.getTypes = function getTypes() { if (typeof this._types === 'function') { this._types = this._types(); } return this._types; }; _proto4.toString = function toString() { return this.name; }; return GraphQLUnionType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLUnionType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLUnionType); function defineTypes(config) { var types = resolveThunk(config.types) || []; !Array.isArray(types) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide Array of types or a function which returns ' + "such an array for Union ".concat(config.name, ".")) : void 0; return types; } /** * Enum Type Definition * * Some leaf values of requests and input values are Enums. GraphQL serializes * Enum values as strings, however internally Enums can be represented by any * kind of type, often integers. * * Example: * * const RGBType = new GraphQLEnumType({ * name: 'RGB', * values: { * RED: { value: 0 }, * GREEN: { value: 1 }, * BLUE: { value: 2 } * } * }); * * Note: If a value is not provided in a definition, the name of the enum value * will be used as its internal value. */ var GraphQLEnumType /* */ = /*#__PURE__*/ function () { function GraphQLEnumType(config /* */ ) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "_values", void 0); _defineProperty(this, "_valueLookup", void 0); _defineProperty(this, "_nameLookup", void 0); this.name = config.name; this.description = config.description; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; this._values = defineEnumValues(this, config.values); this._valueLookup = new Map(this._values.map(function (enumValue) { return [enumValue.value, enumValue]; })); this._nameLookup = Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_keyMap__["a" /* default */])(this._values, function (value) { return value.name; }); !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; } var _proto5 = GraphQLEnumType.prototype; _proto5.getValues = function getValues() { return this._values; }; _proto5.getValue = function getValue(name) { return this._nameLookup[name]; }; _proto5.serialize = function serialize(value /* T */ ) { var enumValue = this._valueLookup.get(value); if (enumValue) { return enumValue.name; } }; _proto5.parseValue = function parseValue(value) /* T */ { if (typeof value === 'string') { var enumValue = this.getValue(value); if (enumValue) { return enumValue.value; } } }; _proto5.parseLiteral = function parseLiteral(valueNode, _variables) /* T */ { // Note: variables will be resolved to a value before calling this function. if (valueNode.kind === __WEBPACK_IMPORTED_MODULE_6__language_kinds__["a" /* Kind */].ENUM) { var enumValue = this.getValue(valueNode.value); if (enumValue) { return enumValue.value; } } }; _proto5.toString = function toString() { return this.name; }; return GraphQLEnumType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLEnumType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLEnumType); function defineEnumValues(type, valueMap /* */ ) { !isPlainObj(valueMap) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(type.name, " values must be an object with value names as keys.")) : void 0; return Object.keys(valueMap).map(function (valueName) { var value = valueMap[valueName]; !isPlainObj(value) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(type.name, ".").concat(valueName, " must refer to an object with a \"value\" key ") + "representing an internal value but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(value), ".")) : void 0; !!value.hasOwnProperty('isDeprecated') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(type.name, ".").concat(valueName, " should provide \"deprecationReason\" instead ") + 'of "isDeprecated".') : void 0; return { name: valueName, description: value.description, isDeprecated: Boolean(value.deprecationReason), deprecationReason: value.deprecationReason, astNode: value.astNode, value: value.hasOwnProperty('value') ? value.value : valueName }; }); } /** * Input Object Type Definition * * An input object defines a structured collection of fields which may be * supplied to a field argument. * * Using `NonNull` will ensure that a value must be provided by the query * * Example: * * const GeoPoint = new GraphQLInputObjectType({ * name: 'GeoPoint', * fields: { * lat: { type: GraphQLNonNull(GraphQLFloat) }, * lon: { type: GraphQLNonNull(GraphQLFloat) }, * alt: { type: GraphQLFloat, defaultValue: 0 }, * } * }); * */ var GraphQLInputObjectType = /*#__PURE__*/ function () { function GraphQLInputObjectType(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "_fields", void 0); this.name = config.name; this.description = config.description; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; this._fields = defineInputFieldMap.bind(undefined, config); !(typeof config.name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, 'Must provide name.') : void 0; } var _proto6 = GraphQLInputObjectType.prototype; _proto6.getFields = function getFields() { if (typeof this._fields === 'function') { this._fields = this._fields(); } return this._fields; }; _proto6.toString = function toString() { return this.name; }; return GraphQLInputObjectType; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_defineToStringTag__["a" /* default */])(GraphQLInputObjectType); Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_defineToJSON__["a" /* default */])(GraphQLInputObjectType); function defineInputFieldMap(config) { var fieldMap = resolveThunk(config.fields) || {}; !isPlainObj(fieldMap) ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, " fields must be an object with field names as keys or a ") + 'function which returns such an object.') : void 0; var resultFieldMap = Object.create(null); var _arr2 = Object.keys(fieldMap); for (var _i2 = 0; _i2 < _arr2.length; _i2++) { var fieldName = _arr2[_i2]; var field = _objectSpread({}, fieldMap[fieldName], { name: fieldName }); !!field.hasOwnProperty('resolve') ? Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_invariant__["a" /* default */])(0, "".concat(config.name, ".").concat(fieldName, " field has a resolve property, but ") + 'Input Types cannot define resolvers.') : void 0; resultFieldMap[fieldName] = field; } return resultFieldMap; } function isRequiredInputField(field) { return isNonNullType(field.type) && field.defaultValue === undefined; } /***/ }), /***/ "./node_modules/graphql/type/directives.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/type/directives.mjs ***! \**************************************************/ /*! exports provided: isDirective, GraphQLDirective, GraphQLIncludeDirective, GraphQLSkipDirective, DEFAULT_DEPRECATION_REASON, GraphQLDeprecatedDirective, specifiedDirectives, isSpecifiedDirective */ /*! exports used: DEFAULT_DEPRECATION_REASON, GraphQLDeprecatedDirective, GraphQLDirective, GraphQLIncludeDirective, GraphQLSkipDirective, isDirective, isSpecifiedDirective, specifiedDirectives */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["f"] = isDirective; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GraphQLDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return GraphQLIncludeDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return GraphQLSkipDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DEFAULT_DEPRECATION_REASON; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return GraphQLDeprecatedDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return specifiedDirectives; }); /* harmony export (immutable) */ __webpack_exports__["g"] = isSpecifiedDirective; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__scalars__ = __webpack_require__(/*! ./scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_defineToStringTag__ = __webpack_require__(/*! ../jsutils/defineToStringTag */ "./node_modules/graphql/jsutils/defineToStringTag.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_defineToJSON__ = __webpack_require__(/*! ../jsutils/defineToJSON */ "./node_modules/graphql/jsutils/defineToJSON.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_instanceOf__ = __webpack_require__(/*! ../jsutils/instanceOf */ "./node_modules/graphql/jsutils/instanceOf.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__ = __webpack_require__(/*! ../language/directiveLocation */ "./node_modules/graphql/language/directiveLocation.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Test if the given value is a GraphQL directive. */ // eslint-disable-next-line no-redeclare function isDirective(directive) { return Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_instanceOf__["a" /* default */])(directive, GraphQLDirective); } /** * Directives are used by the GraphQL runtime as a way of modifying execution * behavior. Type system creators will usually not create these directly. */ var GraphQLDirective = /*#__PURE__*/ function () { function GraphQLDirective(config) { _defineProperty(this, "name", void 0); _defineProperty(this, "description", void 0); _defineProperty(this, "locations", void 0); _defineProperty(this, "args", void 0); _defineProperty(this, "astNode", void 0); this.name = config.name; this.description = config.description; this.locations = config.locations; this.astNode = config.astNode; !config.name ? Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_invariant__["a" /* default */])(0, 'Directive must be named.') : void 0; !Array.isArray(config.locations) ? Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_invariant__["a" /* default */])(0, 'Must provide locations for directive.') : void 0; var args = config.args; if (!args) { this.args = []; } else { !!Array.isArray(args) ? Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_invariant__["a" /* default */])(0, "@".concat(config.name, " args must be an object with argument names as keys.")) : void 0; this.args = Object.keys(args).map(function (argName) { var arg = args[argName]; return { name: argName, description: arg.description === undefined ? null : arg.description, type: arg.type, defaultValue: arg.defaultValue, astNode: arg.astNode }; }); } } var _proto = GraphQLDirective.prototype; _proto.toString = function toString() { return '@' + this.name; }; return GraphQLDirective; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_defineToStringTag__["a" /* default */])(GraphQLDirective); Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_defineToJSON__["a" /* default */])(GraphQLDirective); /** * Used to conditionally include fields or fragments. */ var GraphQLIncludeDirective = new GraphQLDirective({ name: 'include', description: 'Directs the executor to include this field or fragment only when ' + 'the `if` argument is true.', locations: [__WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FIELD, __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_SPREAD, __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INLINE_FRAGMENT], args: { if: { type: Object(__WEBPACK_IMPORTED_MODULE_0__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_1__scalars__["a" /* GraphQLBoolean */]), description: 'Included when true.' } } }); /** * Used to conditionally skip (exclude) fields or fragments. */ var GraphQLSkipDirective = new GraphQLDirective({ name: 'skip', description: 'Directs the executor to skip this field or fragment when the `if` ' + 'argument is true.', locations: [__WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FIELD, __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_SPREAD, __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INLINE_FRAGMENT], args: { if: { type: Object(__WEBPACK_IMPORTED_MODULE_0__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_1__scalars__["a" /* GraphQLBoolean */]), description: 'Skipped when true.' } } }); /** * Constant string used for default reason for a deprecation. */ var DEFAULT_DEPRECATION_REASON = 'No longer supported'; /** * Used to declare element of a GraphQL schema as deprecated. */ var GraphQLDeprecatedDirective = new GraphQLDirective({ name: 'deprecated', description: 'Marks an element of a GraphQL schema as no longer supported.', locations: [__WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FIELD_DEFINITION, __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].ENUM_VALUE], args: { reason: { type: __WEBPACK_IMPORTED_MODULE_1__scalars__["c" /* GraphQLString */], description: 'Explains why this element was deprecated, usually also including a ' + 'suggestion for how to access supported similar data. Formatted using ' + 'the Markdown syntax (as specified by [CommonMark](https://commonmark.org/).', defaultValue: DEFAULT_DEPRECATION_REASON } } }); /** * The full list of specified directives. */ var specifiedDirectives = [GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective]; function isSpecifiedDirective(directive) { return specifiedDirectives.some(function (specifiedDirective) { return specifiedDirective.name === directive.name; }); } /***/ }), /***/ "./node_modules/graphql/type/index.mjs": /*!*********************************************!*\ !*** ./node_modules/graphql/type/index.mjs ***! \*********************************************/ /*! exports provided: isSchema, GraphQLSchema, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, getNullableType, getNamedType, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, isDirective, GraphQLDirective, isSpecifiedDirective, specifiedDirectives, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, DEFAULT_DEPRECATION_REASON, isSpecifiedScalarType, specifiedScalarTypes, GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID, TypeKind, isIntrospectionType, introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, validateSchema, assertValidSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__schema__ = __webpack_require__(/*! ./schema */ "./node_modules/graphql/type/schema.mjs"); /* unused harmony reexport isSchema */ /* unused harmony reexport GraphQLSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* unused harmony reexport isType */ /* unused harmony reexport isScalarType */ /* unused harmony reexport isObjectType */ /* unused harmony reexport isInterfaceType */ /* unused harmony reexport isUnionType */ /* unused harmony reexport isEnumType */ /* unused harmony reexport isInputObjectType */ /* unused harmony reexport isListType */ /* unused harmony reexport isNonNullType */ /* unused harmony reexport isInputType */ /* unused harmony reexport isOutputType */ /* unused harmony reexport isLeafType */ /* unused harmony reexport isCompositeType */ /* unused harmony reexport isAbstractType */ /* unused harmony reexport isWrappingType */ /* unused harmony reexport isNullableType */ /* unused harmony reexport isNamedType */ /* unused harmony reexport isRequiredArgument */ /* unused harmony reexport isRequiredInputField */ /* unused harmony reexport assertType */ /* unused harmony reexport assertScalarType */ /* unused harmony reexport assertObjectType */ /* unused harmony reexport assertInterfaceType */ /* unused harmony reexport assertUnionType */ /* unused harmony reexport assertEnumType */ /* unused harmony reexport assertInputObjectType */ /* unused harmony reexport assertListType */ /* unused harmony reexport assertNonNullType */ /* unused harmony reexport assertInputType */ /* unused harmony reexport assertOutputType */ /* unused harmony reexport assertLeafType */ /* unused harmony reexport assertCompositeType */ /* unused harmony reexport assertAbstractType */ /* unused harmony reexport assertWrappingType */ /* unused harmony reexport assertNullableType */ /* unused harmony reexport assertNamedType */ /* unused harmony reexport getNullableType */ /* unused harmony reexport getNamedType */ /* unused harmony reexport GraphQLScalarType */ /* unused harmony reexport GraphQLObjectType */ /* unused harmony reexport GraphQLInterfaceType */ /* unused harmony reexport GraphQLUnionType */ /* unused harmony reexport GraphQLEnumType */ /* unused harmony reexport GraphQLInputObjectType */ /* unused harmony reexport GraphQLList */ /* unused harmony reexport GraphQLNonNull */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives__ = __webpack_require__(/*! ./directives */ "./node_modules/graphql/type/directives.mjs"); /* unused harmony reexport isDirective */ /* unused harmony reexport GraphQLDirective */ /* unused harmony reexport isSpecifiedDirective */ /* unused harmony reexport specifiedDirectives */ /* unused harmony reexport GraphQLIncludeDirective */ /* unused harmony reexport GraphQLSkipDirective */ /* unused harmony reexport GraphQLDeprecatedDirective */ /* unused harmony reexport DEFAULT_DEPRECATION_REASON */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__scalars__ = __webpack_require__(/*! ./scalars */ "./node_modules/graphql/type/scalars.mjs"); /* unused harmony reexport isSpecifiedScalarType */ /* unused harmony reexport specifiedScalarTypes */ /* unused harmony reexport GraphQLInt */ /* unused harmony reexport GraphQLFloat */ /* unused harmony reexport GraphQLString */ /* unused harmony reexport GraphQLBoolean */ /* unused harmony reexport GraphQLID */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__introspection__ = __webpack_require__(/*! ./introspection */ "./node_modules/graphql/type/introspection.mjs"); /* unused harmony reexport TypeKind */ /* unused harmony reexport isIntrospectionType */ /* unused harmony reexport introspectionTypes */ /* unused harmony reexport __Schema */ /* unused harmony reexport __Directive */ /* unused harmony reexport __DirectiveLocation */ /* unused harmony reexport __Type */ /* unused harmony reexport __Field */ /* unused harmony reexport __InputValue */ /* unused harmony reexport __EnumValue */ /* unused harmony reexport __TypeKind */ /* unused harmony reexport SchemaMetaFieldDef */ /* unused harmony reexport TypeMetaFieldDef */ /* unused harmony reexport TypeNameMetaFieldDef */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__validate__ = __webpack_require__(/*! ./validate */ "./node_modules/graphql/type/validate.mjs"); /* unused harmony reexport validateSchema */ /* unused harmony reexport assertValidSchema */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // Common built-in scalar instances. /***/ }), /***/ "./node_modules/graphql/type/introspection.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/type/introspection.mjs ***! \*****************************************************/ /*! exports provided: __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, TypeKind, __TypeKind, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, introspectionTypes, isIntrospectionType */ /*! exports used: SchemaMetaFieldDef, TypeKind, TypeMetaFieldDef, TypeNameMetaFieldDef, __Schema, introspectionTypes, isIntrospectionType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __Schema; }); /* unused harmony export __Directive */ /* unused harmony export __DirectiveLocation */ /* unused harmony export __Type */ /* unused harmony export __Field */ /* unused harmony export __InputValue */ /* unused harmony export __EnumValue */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TypeKind; }); /* unused harmony export __TypeKind */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SchemaMetaFieldDef; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return TypeMetaFieldDef; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return TypeNameMetaFieldDef; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return introspectionTypes; }); /* harmony export (immutable) */ __webpack_exports__["g"] = isIntrospectionType; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utilities_astFromValue__ = __webpack_require__(/*! ../utilities/astFromValue */ "./node_modules/graphql/utilities/astFromValue.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__language_printer__ = __webpack_require__(/*! ../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__scalars__ = __webpack_require__(/*! ./scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__ = __webpack_require__(/*! ../language/directiveLocation */ "./node_modules/graphql/language/directiveLocation.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ var __Schema = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__Schema', description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It ' + 'exposes all available types and directives on the server, as well as ' + 'the entry points for query, mutation, and subscription operations.', fields: function fields() { return { types: { description: 'A list of all types supported by this server.', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type))), resolve: function resolve(schema) { return Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__["a" /* default */])(schema.getTypeMap()); } }, queryType: { description: 'The type that query operations will be rooted at.', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type), resolve: function resolve(schema) { return schema.getQueryType(); } }, mutationType: { description: 'If this server supports mutation, the type that ' + 'mutation operations will be rooted at.', type: __Type, resolve: function resolve(schema) { return schema.getMutationType(); } }, subscriptionType: { description: 'If this server support subscription, the type that ' + 'subscription operations will be rooted at.', type: __Type, resolve: function resolve(schema) { return schema.getSubscriptionType(); } }, directives: { description: 'A list of all directives supported by this server.', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Directive))), resolve: function resolve(schema) { return schema.getDirectives(); } } }; } }); var __Directive = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__Directive', description: 'A Directive provides a way to describe alternate runtime execution and ' + 'type validation behavior in a GraphQL document.' + "\n\nIn some cases, you need to provide options to alter GraphQL's " + 'execution behavior in ways field arguments will not suffice, such as ' + 'conditionally including or skipping a field. Directives provide this by ' + 'describing additional information to the executor.', fields: function fields() { return { name: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]), resolve: function resolve(obj) { return obj.name; } }, description: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.description; } }, locations: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__DirectiveLocation))), resolve: function resolve(obj) { return obj.locations; } }, args: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__InputValue))), resolve: function resolve(directive) { return directive.args || []; } } }; } }); var __DirectiveLocation = new __WEBPACK_IMPORTED_MODULE_4__definition__["a" /* GraphQLEnumType */]({ name: '__DirectiveLocation', description: 'A Directive can be adjacent to many parts of the GraphQL language, a ' + '__DirectiveLocation describes one such possible adjacencies.', values: { QUERY: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].QUERY, description: 'Location adjacent to a query operation.' }, MUTATION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].MUTATION, description: 'Location adjacent to a mutation operation.' }, SUBSCRIPTION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].SUBSCRIPTION, description: 'Location adjacent to a subscription operation.' }, FIELD: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FIELD, description: 'Location adjacent to a field.' }, FRAGMENT_DEFINITION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_DEFINITION, description: 'Location adjacent to a fragment definition.' }, FRAGMENT_SPREAD: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_SPREAD, description: 'Location adjacent to a fragment spread.' }, INLINE_FRAGMENT: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INLINE_FRAGMENT, description: 'Location adjacent to an inline fragment.' }, VARIABLE_DEFINITION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].VARIABLE_DEFINITION, description: 'Location adjacent to a variable definition.' }, SCHEMA: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].SCHEMA, description: 'Location adjacent to a schema definition.' }, SCALAR: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].SCALAR, description: 'Location adjacent to a scalar definition.' }, OBJECT: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].OBJECT, description: 'Location adjacent to an object type definition.' }, FIELD_DEFINITION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].FIELD_DEFINITION, description: 'Location adjacent to a field definition.' }, ARGUMENT_DEFINITION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].ARGUMENT_DEFINITION, description: 'Location adjacent to an argument definition.' }, INTERFACE: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INTERFACE, description: 'Location adjacent to an interface definition.' }, UNION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].UNION, description: 'Location adjacent to a union definition.' }, ENUM: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].ENUM, description: 'Location adjacent to an enum definition.' }, ENUM_VALUE: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].ENUM_VALUE, description: 'Location adjacent to an enum value definition.' }, INPUT_OBJECT: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INPUT_OBJECT, description: 'Location adjacent to an input object type definition.' }, INPUT_FIELD_DEFINITION: { value: __WEBPACK_IMPORTED_MODULE_6__language_directiveLocation__["a" /* DirectiveLocation */].INPUT_FIELD_DEFINITION, description: 'Location adjacent to an input object field definition.' } } }); var __Type = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__Type', description: 'The fundamental unit of any GraphQL Schema is the type. There are ' + 'many kinds of types in GraphQL as represented by the `__TypeKind` enum.' + '\n\nDepending on the kind of a type, certain fields describe ' + 'information about that type. Scalar types provide no information ' + 'beyond a name and description, while Enum types provide their values. ' + 'Object and Interface types provide the fields they describe. Abstract ' + 'types, Union and Interface, provide the Object types possible ' + 'at runtime. List and NonNull types compose other types.', fields: function fields() { return { kind: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__TypeKind), resolve: function resolve(type) { if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["B" /* isScalarType */])(type)) { return TypeKind.SCALAR; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["x" /* isObjectType */])(type)) { return TypeKind.OBJECT; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["s" /* isInterfaceType */])(type)) { return TypeKind.INTERFACE; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["D" /* isUnionType */])(type)) { return TypeKind.UNION; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["p" /* isEnumType */])(type)) { return TypeKind.ENUM; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["q" /* isInputObjectType */])(type)) { return TypeKind.INPUT_OBJECT; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["u" /* isListType */])(type)) { return TypeKind.LIST; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["w" /* isNonNullType */])(type)) { return TypeKind.NON_NULL; } throw new Error('Unknown kind of type: ' + type); } }, name: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.name; } }, description: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.description; } }, fields: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Field)), args: { includeDeprecated: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["a" /* GraphQLBoolean */], defaultValue: false } }, resolve: function resolve(type, _ref) { var includeDeprecated = _ref.includeDeprecated; if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["x" /* isObjectType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_4__definition__["s" /* isInterfaceType */])(type)) { var fields = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__["a" /* default */])(type.getFields()); if (!includeDeprecated) { fields = fields.filter(function (field) { return !field.deprecationReason; }); } return fields; } return null; } }, interfaces: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type)), resolve: function resolve(type) { if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["x" /* isObjectType */])(type)) { return type.getInterfaces(); } } }, possibleTypes: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type)), resolve: function resolve(type, args, context, _ref2) { var schema = _ref2.schema; if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["n" /* isAbstractType */])(type)) { return schema.getPossibleTypes(type); } } }, enumValues: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__EnumValue)), args: { includeDeprecated: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["a" /* GraphQLBoolean */], defaultValue: false } }, resolve: function resolve(type, _ref3) { var includeDeprecated = _ref3.includeDeprecated; if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["p" /* isEnumType */])(type)) { var values = type.getValues(); if (!includeDeprecated) { values = values.filter(function (value) { return !value.deprecationReason; }); } return values; } } }, inputFields: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__InputValue)), resolve: function resolve(type) { if (Object(__WEBPACK_IMPORTED_MODULE_4__definition__["q" /* isInputObjectType */])(type)) { return Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__["a" /* default */])(type.getFields()); } } }, ofType: { type: __Type, resolve: function resolve(obj) { return obj.ofType; } } }; } }); var __Field = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__Field', description: 'Object and Interface types are described by a list of Fields, each of ' + 'which has a name, potentially a list of arguments, and a return type.', fields: function fields() { return { name: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]), resolve: function resolve(obj) { return obj.name; } }, description: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.description; } }, args: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["d" /* GraphQLList */])(Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__InputValue))), resolve: function resolve(field) { return field.args || []; } }, type: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type), resolve: function resolve(obj) { return obj.type; } }, isDeprecated: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["a" /* GraphQLBoolean */]), resolve: function resolve(obj) { return obj.isDeprecated; } }, deprecationReason: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.deprecationReason; } } }; } }); var __InputValue = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__InputValue', description: 'Arguments provided to Fields or Directives and the input fields of an ' + 'InputObject are represented as Input Values which describe their type ' + 'and optionally a default value.', fields: function fields() { return { name: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]), resolve: function resolve(obj) { return obj.name; } }, description: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.description; } }, type: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Type), resolve: function resolve(obj) { return obj.type; } }, defaultValue: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], description: 'A GraphQL-formatted string representing the default value for this ' + 'input value.', resolve: function resolve(inputVal) { return Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_isInvalid__["a" /* default */])(inputVal.defaultValue) ? null : Object(__WEBPACK_IMPORTED_MODULE_3__language_printer__["a" /* print */])(Object(__WEBPACK_IMPORTED_MODULE_2__utilities_astFromValue__["a" /* astFromValue */])(inputVal.defaultValue, inputVal.type)); } } }; } }); var __EnumValue = new __WEBPACK_IMPORTED_MODULE_4__definition__["f" /* GraphQLObjectType */]({ name: '__EnumValue', description: 'One possible value for a given Enum. Enum values are unique values, not ' + 'a placeholder for a string or numeric value. However an Enum value is ' + 'returned in a JSON response as a string.', fields: function fields() { return { name: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]), resolve: function resolve(obj) { return obj.name; } }, description: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.description; } }, isDeprecated: { type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["a" /* GraphQLBoolean */]), resolve: function resolve(obj) { return obj.isDeprecated; } }, deprecationReason: { type: __WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */], resolve: function resolve(obj) { return obj.deprecationReason; } } }; } }); var TypeKind = { SCALAR: 'SCALAR', OBJECT: 'OBJECT', INTERFACE: 'INTERFACE', UNION: 'UNION', ENUM: 'ENUM', INPUT_OBJECT: 'INPUT_OBJECT', LIST: 'LIST', NON_NULL: 'NON_NULL' }; var __TypeKind = new __WEBPACK_IMPORTED_MODULE_4__definition__["a" /* GraphQLEnumType */]({ name: '__TypeKind', description: 'An enum describing what kind of type a given `__Type` is.', values: { SCALAR: { value: TypeKind.SCALAR, description: 'Indicates this type is a scalar.' }, OBJECT: { value: TypeKind.OBJECT, description: 'Indicates this type is an object. ' + '`fields` and `interfaces` are valid fields.' }, INTERFACE: { value: TypeKind.INTERFACE, description: 'Indicates this type is an interface. ' + '`fields` and `possibleTypes` are valid fields.' }, UNION: { value: TypeKind.UNION, description: 'Indicates this type is a union. `possibleTypes` is a valid field.' }, ENUM: { value: TypeKind.ENUM, description: 'Indicates this type is an enum. `enumValues` is a valid field.' }, INPUT_OBJECT: { value: TypeKind.INPUT_OBJECT, description: 'Indicates this type is an input object. ' + '`inputFields` is a valid field.' }, LIST: { value: TypeKind.LIST, description: 'Indicates this type is a list. `ofType` is a valid field.' }, NON_NULL: { value: TypeKind.NON_NULL, description: 'Indicates this type is a non-null. `ofType` is a valid field.' } } }); /** * Note that these are GraphQLField and not GraphQLFieldConfig, * so the format for args is different. */ var SchemaMetaFieldDef = { name: '__schema', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__Schema), description: 'Access the current type schema of this server.', args: [], resolve: function resolve(source, args, context, _ref4) { var schema = _ref4.schema; return schema; } }; var TypeMetaFieldDef = { name: '__type', type: __Type, description: 'Request the type information of a single type.', args: [{ name: 'name', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]) }], resolve: function resolve(source, _ref5, context, _ref6) { var name = _ref5.name; var schema = _ref6.schema; return schema.getType(name); } }; var TypeNameMetaFieldDef = { name: '__typename', type: Object(__WEBPACK_IMPORTED_MODULE_4__definition__["e" /* GraphQLNonNull */])(__WEBPACK_IMPORTED_MODULE_5__scalars__["c" /* GraphQLString */]), description: 'The name of the current Object type at runtime.', args: [], resolve: function resolve(source, args, context, _ref7) { var parentType = _ref7.parentType; return parentType.name; } }; var introspectionTypes = [__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]; function isIntrospectionType(type) { return Object(__WEBPACK_IMPORTED_MODULE_4__definition__["v" /* isNamedType */])(type) && ( // Would prefer to use introspectionTypes.some(), however %checks needs // a simple expression. type.name === __Schema.name || type.name === __Directive.name || type.name === __DirectiveLocation.name || type.name === __Type.name || type.name === __Field.name || type.name === __InputValue.name || type.name === __EnumValue.name || type.name === __TypeKind.name); } /***/ }), /***/ "./node_modules/graphql/type/scalars.mjs": /*!***********************************************!*\ !*** ./node_modules/graphql/type/scalars.mjs ***! \***********************************************/ /*! exports provided: GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID, specifiedScalarTypes, isSpecifiedScalarType */ /*! exports used: GraphQLBoolean, GraphQLID, GraphQLString, isSpecifiedScalarType, specifiedScalarTypes */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export GraphQLInt */ /* unused harmony export GraphQLFloat */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GraphQLString; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GraphQLBoolean; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return GraphQLID; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return specifiedScalarTypes; }); /* harmony export (immutable) */ __webpack_exports__["d"] = isSpecifiedScalarType; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_isFinite__ = __webpack_require__(/*! ../jsutils/isFinite */ "./node_modules/graphql/jsutils/isFinite.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_isInteger__ = __webpack_require__(/*! ../jsutils/isInteger */ "./node_modules/graphql/jsutils/isInteger.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // As per the GraphQL Spec, Integers are only treated as valid when a valid // 32-bit signed integer, providing the broadest support across platforms. // // n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because // they are internally represented as IEEE 754 doubles. var MAX_INT = 2147483647; var MIN_INT = -2147483648; function serializeInt(value) { if (typeof value === 'boolean') { return value ? 1 : 0; } var num = value; if (typeof value === 'string' && value !== '') { num = Number(value); } if (!Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInteger__["a" /* default */])(num)) { throw new TypeError("Int cannot represent non-integer value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } if (num > MAX_INT || num < MIN_INT) { throw new TypeError("Int cannot represent non 32-bit signed integer value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return num; } function coerceInt(value) { if (!Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInteger__["a" /* default */])(value)) { throw new TypeError("Int cannot represent non-integer value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } if (value > MAX_INT || value < MIN_INT) { throw new TypeError("Int cannot represent non 32-bit signed integer value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return value; } var GraphQLInt = new __WEBPACK_IMPORTED_MODULE_3__definition__["g" /* GraphQLScalarType */]({ name: 'Int', description: 'The `Int` scalar type represents non-fractional signed whole numeric ' + 'values. Int can represent values between -(2^31) and 2^31 - 1. ', serialize: serializeInt, parseValue: coerceInt, parseLiteral: function parseLiteral(ast) { if (ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].INT) { var num = parseInt(ast.value, 10); if (num <= MAX_INT && num >= MIN_INT) { return num; } } return undefined; } }); function serializeFloat(value) { if (typeof value === 'boolean') { return value ? 1 : 0; } var num = value; if (typeof value === 'string' && value !== '') { num = Number(value); } if (!Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isFinite__["a" /* default */])(num)) { throw new TypeError("Float cannot represent non numeric value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return num; } function coerceFloat(value) { if (!Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isFinite__["a" /* default */])(value)) { throw new TypeError("Float cannot represent non numeric value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return value; } var GraphQLFloat = new __WEBPACK_IMPORTED_MODULE_3__definition__["g" /* GraphQLScalarType */]({ name: 'Float', description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point). ', serialize: serializeFloat, parseValue: coerceFloat, parseLiteral: function parseLiteral(ast) { return ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].FLOAT || ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].INT ? parseFloat(ast.value) : undefined; } }); function serializeString(value) { // Support serializing objects with custom valueOf() functions - a common way // to represent an complex value which can be represented as a string // (ex: MongoDB id objects). var result = value && typeof value.valueOf === 'function' ? value.valueOf() : value; // Serialize string, boolean and number values to a string, but do not // attempt to coerce object, function, symbol, or other types as strings. if (typeof result === 'string') { return result; } if (typeof result === 'boolean') { return result ? 'true' : 'false'; } if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isFinite__["a" /* default */])(result)) { return result.toString(); } throw new TypeError("String cannot represent value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } function coerceString(value) { if (typeof value !== 'string') { throw new TypeError("String cannot represent a non string value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return value; } var GraphQLString = new __WEBPACK_IMPORTED_MODULE_3__definition__["g" /* GraphQLScalarType */]({ name: 'String', description: 'The `String` scalar type represents textual data, represented as UTF-8 ' + 'character sequences. The String type is most often used by GraphQL to ' + 'represent free-form human-readable text.', serialize: serializeString, parseValue: coerceString, parseLiteral: function parseLiteral(ast) { return ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].STRING ? ast.value : undefined; } }); function serializeBoolean(value) { if (typeof value === 'boolean') { return value; } if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isFinite__["a" /* default */])(value)) { return value !== 0; } throw new TypeError("Boolean cannot represent a non boolean value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } function coerceBoolean(value) { if (typeof value !== 'boolean') { throw new TypeError("Boolean cannot represent a non boolean value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } return value; } var GraphQLBoolean = new __WEBPACK_IMPORTED_MODULE_3__definition__["g" /* GraphQLScalarType */]({ name: 'Boolean', description: 'The `Boolean` scalar type represents `true` or `false`.', serialize: serializeBoolean, parseValue: coerceBoolean, parseLiteral: function parseLiteral(ast) { return ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].BOOLEAN ? ast.value : undefined; } }); function serializeID(value) { // Support serializing objects with custom valueOf() functions - a common way // to represent an object identifier (ex. MongoDB). var result = value && typeof value.valueOf === 'function' ? value.valueOf() : value; if (typeof result === 'string') { return result; } if (Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInteger__["a" /* default */])(result)) { return String(result); } throw new TypeError("ID cannot represent value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } function coerceID(value) { if (typeof value === 'string') { return value; } if (Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInteger__["a" /* default */])(value)) { return value.toString(); } throw new TypeError("ID cannot represent value: ".concat(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(value))); } var GraphQLID = new __WEBPACK_IMPORTED_MODULE_3__definition__["g" /* GraphQLScalarType */]({ name: 'ID', description: 'The `ID` scalar type represents a unique identifier, often used to ' + 'refetch an object or as key for a cache. The ID type appears in a JSON ' + 'response as a String; however, it is not intended to be human-readable. ' + 'When expected as an input type, any string (such as `"4"`) or integer ' + '(such as `4`) input value will be accepted as an ID.', serialize: serializeID, parseValue: coerceID, parseLiteral: function parseLiteral(ast) { return ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].STRING || ast.kind === __WEBPACK_IMPORTED_MODULE_4__language_kinds__["a" /* Kind */].INT ? ast.value : undefined; } }); var specifiedScalarTypes = [GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]; function isSpecifiedScalarType(type) { return Object(__WEBPACK_IMPORTED_MODULE_3__definition__["v" /* isNamedType */])(type) && ( // Would prefer to use specifiedScalarTypes.some(), however %checks needs // a simple expression. type.name === GraphQLString.name || type.name === GraphQLInt.name || type.name === GraphQLFloat.name || type.name === GraphQLBoolean.name || type.name === GraphQLID.name); } /***/ }), /***/ "./node_modules/graphql/type/schema.mjs": /*!**********************************************!*\ !*** ./node_modules/graphql/type/schema.mjs ***! \**********************************************/ /*! exports provided: isSchema, GraphQLSchema */ /*! exports used: GraphQLSchema, isSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = isSchema; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GraphQLSchema; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives__ = __webpack_require__(/*! ./directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__introspection__ = __webpack_require__(/*! ./introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_defineToStringTag__ = __webpack_require__(/*! ../jsutils/defineToStringTag */ "./node_modules/graphql/jsutils/defineToStringTag.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_find__ = __webpack_require__(/*! ../jsutils/find */ "./node_modules/graphql/jsutils/find.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__jsutils_instanceOf__ = __webpack_require__(/*! ../jsutils/instanceOf */ "./node_modules/graphql/jsutils/instanceOf.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // eslint-disable-next-line no-redeclare function isSchema(schema) { return Object(__WEBPACK_IMPORTED_MODULE_6__jsutils_instanceOf__["a" /* default */])(schema, GraphQLSchema); } /** * Schema Definition * * A Schema is created by supplying the root types of each type of operation, * query and mutation (optional). A schema definition is then supplied to the * validator and executor. * * Example: * * const MyAppSchema = new GraphQLSchema({ * query: MyAppQueryRootType, * mutation: MyAppMutationRootType, * }) * * Note: If an array of `directives` are provided to GraphQLSchema, that will be * the exact list of directives represented and allowed. If `directives` is not * provided then a default set of the specified directives (e.g. @include and * @skip) will be used. If you wish to provide *additional* directives to these * specified directives, you must explicitly declare them. Example: * * const MyAppSchema = new GraphQLSchema({ * ... * directives: specifiedDirectives.concat([ myCustomDirective ]), * }) * */ var GraphQLSchema = /*#__PURE__*/ function () { // Used as a cache for validateSchema(). // Referenced by validateSchema(). function GraphQLSchema(config) { _defineProperty(this, "astNode", void 0); _defineProperty(this, "extensionASTNodes", void 0); _defineProperty(this, "_queryType", void 0); _defineProperty(this, "_mutationType", void 0); _defineProperty(this, "_subscriptionType", void 0); _defineProperty(this, "_directives", void 0); _defineProperty(this, "_typeMap", void 0); _defineProperty(this, "_implementations", void 0); _defineProperty(this, "_possibleTypeMap", void 0); _defineProperty(this, "__validationErrors", void 0); _defineProperty(this, "__allowedLegacyNames", void 0); // If this schema was built from a source known to be valid, then it may be // marked with assumeValid to avoid an additional type system validation. if (config && config.assumeValid) { this.__validationErrors = []; } else { // Otherwise check for common mistakes during construction to produce // clear and early error messages. !(_typeof(config) === 'object') ? Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__["a" /* default */])(0, 'Must provide configuration object.') : void 0; !(!config.types || Array.isArray(config.types)) ? Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__["a" /* default */])(0, "\"types\" must be Array if provided but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(config.types), ".")) : void 0; !(!config.directives || Array.isArray(config.directives)) ? Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__["a" /* default */])(0, '"directives" must be Array if provided but got: ' + "".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(config.directives), ".")) : void 0; !(!config.allowedLegacyNames || Array.isArray(config.allowedLegacyNames)) ? Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__["a" /* default */])(0, '"allowedLegacyNames" must be Array if provided but got: ' + "".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(config.allowedLegacyNames), ".")) : void 0; } this.__allowedLegacyNames = config.allowedLegacyNames || []; this._queryType = config.query; this._mutationType = config.mutation; this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default. this._directives = config.directives || __WEBPACK_IMPORTED_MODULE_1__directives__["h" /* specifiedDirectives */]; this.astNode = config.astNode; this.extensionASTNodes = config.extensionASTNodes; // Build type map now to detect any errors within this schema. var initialTypes = [this.getQueryType(), this.getMutationType(), this.getSubscriptionType(), __WEBPACK_IMPORTED_MODULE_3__introspection__["e" /* __Schema */]]; var types = config.types; if (types) { initialTypes = initialTypes.concat(types); } // Keep track of all types referenced within the schema. var typeMap = Object.create(null); // First by deeply visiting all initial types. typeMap = initialTypes.reduce(typeMapReducer, typeMap); // Then by deeply visiting all directive types. typeMap = this._directives.reduce(typeMapDirectiveReducer, typeMap); // Storing the resulting map for reference by the schema. this._typeMap = typeMap; // Keep track of all implementations by interface name. this._implementations = Object.create(null); var _arr = Object.keys(this._typeMap); for (var _i = 0; _i < _arr.length; _i++) { var typeName = _arr[_i]; var type = this._typeMap[typeName]; if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(type)) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = type.getInterfaces()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var iface = _step.value; if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["s" /* isInterfaceType */])(iface)) { var impls = this._implementations[iface.name]; if (impls) { impls.push(type); } else { this._implementations[iface.name] = [type]; } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } else if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["n" /* isAbstractType */])(type) && !this._implementations[type.name]) { this._implementations[type.name] = []; } } } var _proto = GraphQLSchema.prototype; _proto.getQueryType = function getQueryType() { return this._queryType; }; _proto.getMutationType = function getMutationType() { return this._mutationType; }; _proto.getSubscriptionType = function getSubscriptionType() { return this._subscriptionType; }; _proto.getTypeMap = function getTypeMap() { return this._typeMap; }; _proto.getType = function getType(name) { return this.getTypeMap()[name]; }; _proto.getPossibleTypes = function getPossibleTypes(abstractType) { if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["D" /* isUnionType */])(abstractType)) { return abstractType.getTypes(); } return this._implementations[abstractType.name]; }; _proto.isPossibleType = function isPossibleType(abstractType, possibleType) { var possibleTypeMap = this._possibleTypeMap; if (!possibleTypeMap) { this._possibleTypeMap = possibleTypeMap = Object.create(null); } if (!possibleTypeMap[abstractType.name]) { var possibleTypes = this.getPossibleTypes(abstractType); possibleTypeMap[abstractType.name] = possibleTypes.reduce(function (map, type) { return map[type.name] = true, map; }, Object.create(null)); } return Boolean(possibleTypeMap[abstractType.name][possibleType.name]); }; _proto.getDirectives = function getDirectives() { return this._directives; }; _proto.getDirective = function getDirective(name) { return Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_find__["a" /* default */])(this.getDirectives(), function (directive) { return directive.name === name; }); }; return GraphQLSchema; }(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_defineToStringTag__["a" /* default */])(GraphQLSchema); function typeMapReducer(map, type) { if (!type) { return map; } if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["E" /* isWrappingType */])(type)) { return typeMapReducer(map, type.ofType); } if (map[type.name]) { !(map[type.name] === type) ? Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_invariant__["a" /* default */])(0, 'Schema must contain unique named types but contains multiple ' + "types named \"".concat(type.name, "\".")) : void 0; return map; } map[type.name] = type; var reducedMap = map; if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["D" /* isUnionType */])(type)) { reducedMap = type.getTypes().reduce(typeMapReducer, reducedMap); } if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(type)) { reducedMap = type.getInterfaces().reduce(typeMapReducer, reducedMap); } if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_0__definition__["s" /* isInterfaceType */])(type)) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = Object(__WEBPACK_IMPORTED_MODULE_8__jsutils_objectValues__["a" /* default */])(type.getFields())[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var field = _step2.value; if (field.args) { var fieldArgTypes = field.args.map(function (arg) { return arg.type; }); reducedMap = fieldArgTypes.reduce(typeMapReducer, reducedMap); } reducedMap = typeMapReducer(reducedMap, field.type); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["q" /* isInputObjectType */])(type)) { var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = Object(__WEBPACK_IMPORTED_MODULE_8__jsutils_objectValues__["a" /* default */])(type.getFields())[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var _field = _step3.value; reducedMap = typeMapReducer(reducedMap, _field.type); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } return reducedMap; } function typeMapDirectiveReducer(map, directive) { // Directives are not validated until validateSchema() is called. if (!Object(__WEBPACK_IMPORTED_MODULE_1__directives__["f" /* isDirective */])(directive)) { return map; } return directive.args.reduce(function (_map, arg) { return typeMapReducer(_map, arg.type); }, map); } /***/ }), /***/ "./node_modules/graphql/type/validate.mjs": /*!************************************************!*\ !*** ./node_modules/graphql/type/validate.mjs ***! \************************************************/ /*! exports provided: validateSchema, assertValidSchema */ /*! exports used: assertValidSchema, validateSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = validateSchema; /* harmony export (immutable) */ __webpack_exports__["a"] = assertValidSchema; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__definition__ = __webpack_require__(/*! ./definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives__ = __webpack_require__(/*! ./directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__introspection__ = __webpack_require__(/*! ./introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__schema__ = __webpack_require__(/*! ./schema */ "./node_modules/graphql/type/schema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_find__ = __webpack_require__(/*! ../jsutils/find */ "./node_modules/graphql/jsutils/find.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utilities_assertValidName__ = __webpack_require__(/*! ../utilities/assertValidName */ "./node_modules/graphql/utilities/assertValidName.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utilities_typeComparators__ = __webpack_require__(/*! ../utilities/typeComparators */ "./node_modules/graphql/utilities/typeComparators.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Implements the "Type Validation" sub-sections of the specification's * "Type System" section. * * Validation runs synchronously, returning an array of encountered errors, or * an empty array if no errors were encountered and the Schema is valid. */ function validateSchema(schema) { // First check to ensure the provided value is in fact a GraphQLSchema. !Object(__WEBPACK_IMPORTED_MODULE_3__schema__["b" /* isSchema */])(schema) ? Object(__WEBPACK_IMPORTED_MODULE_6__jsutils_invariant__["a" /* default */])(0, "Expected ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(schema), " to be a GraphQL schema.")) : void 0; // If this Schema has already been validated, return the previous results. if (schema.__validationErrors) { return schema.__validationErrors; } // Validate the schema, producing a list of errors. var context = new SchemaValidationContext(schema); validateRootTypes(context); validateDirectives(context); validateTypes(context); // Persist the results of validation before returning to ensure validation // does not run multiple times for this schema. var errors = context.getErrors(); schema.__validationErrors = errors; return errors; } /** * Utility function which asserts a schema is valid by throwing an error if * it is invalid. */ function assertValidSchema(schema) { var errors = validateSchema(schema); if (errors.length !== 0) { throw new Error(errors.map(function (error) { return error.message; }).join('\n\n')); } } var SchemaValidationContext = /*#__PURE__*/ function () { function SchemaValidationContext(schema) { _defineProperty(this, "_errors", void 0); _defineProperty(this, "schema", void 0); this._errors = []; this.schema = schema; } var _proto = SchemaValidationContext.prototype; _proto.reportError = function reportError(message, nodes) { var _nodes = (Array.isArray(nodes) ? nodes : [nodes]).filter(Boolean); this.addError(new __WEBPACK_IMPORTED_MODULE_8__error_GraphQLError__["a" /* GraphQLError */](message, _nodes)); }; _proto.addError = function addError(error) { this._errors.push(error); }; _proto.getErrors = function getErrors() { return this._errors; }; return SchemaValidationContext; }(); function validateRootTypes(context) { var schema = context.schema; var queryType = schema.getQueryType(); if (!queryType) { context.reportError("Query root type must be provided.", schema.astNode); } else if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(queryType)) { context.reportError("Query root type must be Object type, it cannot be ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(queryType), "."), getOperationTypeNode(schema, queryType, 'query')); } var mutationType = schema.getMutationType(); if (mutationType && !Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(mutationType)) { context.reportError('Mutation root type must be Object type if provided, it cannot be ' + "".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(mutationType), "."), getOperationTypeNode(schema, mutationType, 'mutation')); } var subscriptionType = schema.getSubscriptionType(); if (subscriptionType && !Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(subscriptionType)) { context.reportError('Subscription root type must be Object type if provided, it cannot be ' + "".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(subscriptionType), "."), getOperationTypeNode(schema, subscriptionType, 'subscription')); } } function getOperationTypeNode(schema, type, operation) { var operationNodes = getAllSubNodes(schema, function (node) { return node.operationTypes; }); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = operationNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var node = _step.value; if (node.operation === operation) { return node.type; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return type.astNode; } function validateDirectives(context) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = context.schema.getDirectives()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var directive = _step2.value; // Ensure all directives are in fact GraphQL directives. if (!Object(__WEBPACK_IMPORTED_MODULE_1__directives__["f" /* isDirective */])(directive)) { context.reportError("Expected directive but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(directive), "."), directive && directive.astNode); continue; } // Ensure they are named correctly. validateName(context, directive); // TODO: Ensure proper locations. // Ensure the arguments are valid. var argNames = Object.create(null); var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = directive.args[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var arg = _step3.value; var argName = arg.name; // Ensure they are named correctly. validateName(context, arg); // Ensure they are unique per directive. if (argNames[argName]) { context.reportError("Argument @".concat(directive.name, "(").concat(argName, ":) can only be defined once."), getAllDirectiveArgNodes(directive, argName)); continue; } argNames[argName] = true; // Ensure the type is an input type. if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["r" /* isInputType */])(arg.type)) { context.reportError("The type of @".concat(directive.name, "(").concat(argName, ":) must be Input Type ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(arg.type), "."), getDirectiveArgTypeNode(directive, argName)); } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } function validateName(context, node) { // If a schema explicitly allows some legacy name which is no longer valid, // allow it to be assumed valid. if (context.schema.__allowedLegacyNames.indexOf(node.name) !== -1) { return; } // Ensure names are valid, however introspection types opt out. var error = Object(__WEBPACK_IMPORTED_MODULE_9__utilities_assertValidName__["a" /* isValidNameError */])(node.name, node.astNode || undefined); if (error) { context.addError(error); } } function validateTypes(context) { var typeMap = context.schema.getTypeMap(); var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_objectValues__["a" /* default */])(typeMap)[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var type = _step4.value; // Ensure all provided types are in fact GraphQL type. if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["v" /* isNamedType */])(type)) { context.reportError("Expected GraphQL named type but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(type), "."), type && type.astNode); continue; } // Ensure it is named correctly (excluding introspection types). if (!Object(__WEBPACK_IMPORTED_MODULE_2__introspection__["g" /* isIntrospectionType */])(type)) { validateName(context, type); } if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(type)) { // Ensure fields are valid validateFields(context, type); // Ensure objects implement the interfaces they claim to. validateObjectInterfaces(context, type); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["s" /* isInterfaceType */])(type)) { // Ensure fields are valid. validateFields(context, type); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["D" /* isUnionType */])(type)) { // Ensure Unions include valid member types. validateUnionMembers(context, type); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["p" /* isEnumType */])(type)) { // Ensure Enums have valid values. validateEnumValues(context, type); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__definition__["q" /* isInputObjectType */])(type)) { // Ensure Input Object fields are valid. validateInputFields(context, type); } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return != null) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } } function validateFields(context, type) { var fields = Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_objectValues__["a" /* default */])(type.getFields()); // Objects and Interfaces both must define one or more fields. if (fields.length === 0) { context.reportError("Type ".concat(type.name, " must define one or more fields."), getAllNodes(type)); } var _iteratorNormalCompletion5 = true; var _didIteratorError5 = false; var _iteratorError5 = undefined; try { for (var _iterator5 = fields[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { var field = _step5.value; // Ensure they are named correctly. validateName(context, field); // Ensure they were defined at most once. var fieldNodes = getAllFieldNodes(type, field.name); if (fieldNodes.length > 1) { context.reportError("Field ".concat(type.name, ".").concat(field.name, " can only be defined once."), fieldNodes); continue; } // Ensure the type is an output type if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["y" /* isOutputType */])(field.type)) { context.reportError("The type of ".concat(type.name, ".").concat(field.name, " must be Output Type ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(field.type), "."), getFieldTypeNode(type, field.name)); } // Ensure the arguments are valid var argNames = Object.create(null); var _iteratorNormalCompletion6 = true; var _didIteratorError6 = false; var _iteratorError6 = undefined; try { for (var _iterator6 = field.args[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { var arg = _step6.value; var argName = arg.name; // Ensure they are named correctly. validateName(context, arg); // Ensure they are unique per field. if (argNames[argName]) { context.reportError("Field argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) can only ") + 'be defined once.', getAllFieldArgNodes(type, field.name, argName)); } argNames[argName] = true; // Ensure the type is an input type if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["r" /* isInputType */])(arg.type)) { context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(arg.type), "."), getFieldArgTypeNode(type, field.name, argName)); } } } catch (err) { _didIteratorError6 = true; _iteratorError6 = err; } finally { try { if (!_iteratorNormalCompletion6 && _iterator6.return != null) { _iterator6.return(); } } finally { if (_didIteratorError6) { throw _iteratorError6; } } } } } catch (err) { _didIteratorError5 = true; _iteratorError5 = err; } finally { try { if (!_iteratorNormalCompletion5 && _iterator5.return != null) { _iterator5.return(); } } finally { if (_didIteratorError5) { throw _iteratorError5; } } } } function validateObjectInterfaces(context, object) { var implementedTypeNames = Object.create(null); var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; try { for (var _iterator7 = object.getInterfaces()[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { var iface = _step7.value; if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["s" /* isInterfaceType */])(iface)) { context.reportError("Type ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(object), " must only implement Interface types, ") + "it cannot implement ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(iface), "."), getImplementsInterfaceNode(object, iface)); continue; } if (implementedTypeNames[iface.name]) { context.reportError("Type ".concat(object.name, " can only implement ").concat(iface.name, " once."), getAllImplementsInterfaceNodes(object, iface)); continue; } implementedTypeNames[iface.name] = true; validateObjectImplementsInterface(context, object, iface); } } catch (err) { _didIteratorError7 = true; _iteratorError7 = err; } finally { try { if (!_iteratorNormalCompletion7 && _iterator7.return != null) { _iterator7.return(); } } finally { if (_didIteratorError7) { throw _iteratorError7; } } } } function validateObjectImplementsInterface(context, object, iface) { var objectFieldMap = object.getFields(); var ifaceFieldMap = iface.getFields(); // Assert each interface field is implemented. var _arr = Object.keys(ifaceFieldMap); for (var _i = 0; _i < _arr.length; _i++) { var fieldName = _arr[_i]; var objectField = objectFieldMap[fieldName]; var ifaceField = ifaceFieldMap[fieldName]; // Assert interface field exists on object. if (!objectField) { context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expected but ") + "".concat(object.name, " does not provide it."), [getFieldNode(iface, fieldName)].concat(getAllNodes(object))); continue; } // Assert interface field type is satisfied by object field type, by being // a valid subtype. (covariant) if (!Object(__WEBPACK_IMPORTED_MODULE_10__utilities_typeComparators__["c" /* isTypeSubTypeOf */])(context.schema, objectField.type, ifaceField.type)) { context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expects type ") + "".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(ifaceField.type), " but ").concat(object.name, ".").concat(fieldName, " ") + "is type ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(objectField.type), "."), [getFieldTypeNode(iface, fieldName), getFieldTypeNode(object, fieldName)]); } // Assert each interface field arg is implemented. var _iteratorNormalCompletion8 = true; var _didIteratorError8 = false; var _iteratorError8 = undefined; try { var _loop = function _loop() { var ifaceArg = _step8.value; var argName = ifaceArg.name; var objectArg = Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_find__["a" /* default */])(objectField.args, function (arg) { return arg.name === argName; }); // Assert interface field arg exists on object field. if (!objectArg) { context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) ") + "expected but ".concat(object.name, ".").concat(fieldName, " does not provide it."), [getFieldArgNode(iface, fieldName, argName), getFieldNode(object, fieldName)]); return "continue"; } // Assert interface field arg type matches object field arg type. // (invariant) // TODO: change to contravariant? if (!Object(__WEBPACK_IMPORTED_MODULE_10__utilities_typeComparators__["b" /* isEqualType */])(ifaceArg.type, objectArg.type)) { context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) ") + "expects type ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(ifaceArg.type), " but ") + "".concat(object.name, ".").concat(fieldName, "(").concat(argName, ":) is type ") + "".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(objectArg.type), "."), [getFieldArgTypeNode(iface, fieldName, argName), getFieldArgTypeNode(object, fieldName, argName)]); } // TODO: validate default values? }; for (var _iterator8 = ifaceField.args[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { var _ret = _loop(); if (_ret === "continue") continue; } // Assert additional arguments must not be required. } catch (err) { _didIteratorError8 = true; _iteratorError8 = err; } finally { try { if (!_iteratorNormalCompletion8 && _iterator8.return != null) { _iterator8.return(); } } finally { if (_didIteratorError8) { throw _iteratorError8; } } } var _iteratorNormalCompletion9 = true; var _didIteratorError9 = false; var _iteratorError9 = undefined; try { var _loop2 = function _loop2() { var objectArg = _step9.value; var argName = objectArg.name; var ifaceArg = Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_find__["a" /* default */])(ifaceField.args, function (arg) { return arg.name === argName; }); if (!ifaceArg && Object(__WEBPACK_IMPORTED_MODULE_0__definition__["z" /* isRequiredArgument */])(objectArg)) { context.reportError("Object field ".concat(object.name, ".").concat(fieldName, " includes required ") + "argument ".concat(argName, " that is missing from the Interface field ") + "".concat(iface.name, ".").concat(fieldName, "."), [getFieldArgNode(object, fieldName, argName), getFieldNode(iface, fieldName)]); } }; for (var _iterator9 = objectField.args[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { _loop2(); } } catch (err) { _didIteratorError9 = true; _iteratorError9 = err; } finally { try { if (!_iteratorNormalCompletion9 && _iterator9.return != null) { _iterator9.return(); } } finally { if (_didIteratorError9) { throw _iteratorError9; } } } } } function validateUnionMembers(context, union) { var memberTypes = union.getTypes(); if (memberTypes.length === 0) { context.reportError("Union type ".concat(union.name, " must define one or more member types."), getAllNodes(union)); } var includedTypeNames = Object.create(null); var _iteratorNormalCompletion10 = true; var _didIteratorError10 = false; var _iteratorError10 = undefined; try { for (var _iterator10 = memberTypes[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { var memberType = _step10.value; if (includedTypeNames[memberType.name]) { context.reportError("Union type ".concat(union.name, " can only include type ") + "".concat(memberType.name, " once."), getUnionMemberTypeNodes(union, memberType.name)); continue; } includedTypeNames[memberType.name] = true; if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["x" /* isObjectType */])(memberType)) { context.reportError("Union type ".concat(union.name, " can only include Object types, ") + "it cannot include ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(memberType), "."), getUnionMemberTypeNodes(union, String(memberType))); } } } catch (err) { _didIteratorError10 = true; _iteratorError10 = err; } finally { try { if (!_iteratorNormalCompletion10 && _iterator10.return != null) { _iterator10.return(); } } finally { if (_didIteratorError10) { throw _iteratorError10; } } } } function validateEnumValues(context, enumType) { var enumValues = enumType.getValues(); if (enumValues.length === 0) { context.reportError("Enum type ".concat(enumType.name, " must define one or more values."), getAllNodes(enumType)); } var _iteratorNormalCompletion11 = true; var _didIteratorError11 = false; var _iteratorError11 = undefined; try { for (var _iterator11 = enumValues[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) { var enumValue = _step11.value; var valueName = enumValue.name; // Ensure no duplicates. var allNodes = getEnumValueNodes(enumType, valueName); if (allNodes && allNodes.length > 1) { context.reportError("Enum type ".concat(enumType.name, " can include value ").concat(valueName, " only once."), allNodes); } // Ensure valid name. validateName(context, enumValue); if (valueName === 'true' || valueName === 'false' || valueName === 'null') { context.reportError("Enum type ".concat(enumType.name, " cannot include value: ").concat(valueName, "."), enumValue.astNode); } } } catch (err) { _didIteratorError11 = true; _iteratorError11 = err; } finally { try { if (!_iteratorNormalCompletion11 && _iterator11.return != null) { _iterator11.return(); } } finally { if (_didIteratorError11) { throw _iteratorError11; } } } } function validateInputFields(context, inputObj) { var fields = Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_objectValues__["a" /* default */])(inputObj.getFields()); if (fields.length === 0) { context.reportError("Input Object type ".concat(inputObj.name, " must define one or more fields."), getAllNodes(inputObj)); } // Ensure the arguments are valid var _iteratorNormalCompletion12 = true; var _didIteratorError12 = false; var _iteratorError12 = undefined; try { for (var _iterator12 = fields[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) { var field = _step12.value; // Ensure they are named correctly. validateName(context, field); // TODO: Ensure they are unique per field. // Ensure the type is an input type if (!Object(__WEBPACK_IMPORTED_MODULE_0__definition__["r" /* isInputType */])(field.type)) { context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_inspect__["a" /* default */])(field.type), "."), field.astNode && field.astNode.type); } } } catch (err) { _didIteratorError12 = true; _iteratorError12 = err; } finally { try { if (!_iteratorNormalCompletion12 && _iterator12.return != null) { _iterator12.return(); } } finally { if (_didIteratorError12) { throw _iteratorError12; } } } } function getAllNodes(object) { var astNode = object.astNode, extensionASTNodes = object.extensionASTNodes; return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes || []; } function getAllSubNodes(object, getter) { var result = []; var _iteratorNormalCompletion13 = true; var _didIteratorError13 = false; var _iteratorError13 = undefined; try { for (var _iterator13 = getAllNodes(object)[Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) { var astNode = _step13.value; if (astNode) { var subNodes = getter(astNode); if (subNodes) { result = result.concat(subNodes); } } } } catch (err) { _didIteratorError13 = true; _iteratorError13 = err; } finally { try { if (!_iteratorNormalCompletion13 && _iterator13.return != null) { _iterator13.return(); } } finally { if (_didIteratorError13) { throw _iteratorError13; } } } return result; } function getImplementsInterfaceNode(type, iface) { return getAllImplementsInterfaceNodes(type, iface)[0]; } function getAllImplementsInterfaceNodes(type, iface) { return getAllSubNodes(type, function (typeNode) { return typeNode.interfaces; }).filter(function (ifaceNode) { return ifaceNode.name.value === iface.name; }); } function getFieldNode(type, fieldName) { return getAllFieldNodes(type, fieldName)[0]; } function getAllFieldNodes(type, fieldName) { return getAllSubNodes(type, function (typeNode) { return typeNode.fields; }).filter(function (fieldNode) { return fieldNode.name.value === fieldName; }); } function getFieldTypeNode(type, fieldName) { var fieldNode = getFieldNode(type, fieldName); return fieldNode && fieldNode.type; } function getFieldArgNode(type, fieldName, argName) { return getAllFieldArgNodes(type, fieldName, argName)[0]; } function getAllFieldArgNodes(type, fieldName, argName) { var argNodes = []; var fieldNode = getFieldNode(type, fieldName); if (fieldNode && fieldNode.arguments) { var _iteratorNormalCompletion14 = true; var _didIteratorError14 = false; var _iteratorError14 = undefined; try { for (var _iterator14 = fieldNode.arguments[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) { var node = _step14.value; if (node.name.value === argName) { argNodes.push(node); } } } catch (err) { _didIteratorError14 = true; _iteratorError14 = err; } finally { try { if (!_iteratorNormalCompletion14 && _iterator14.return != null) { _iterator14.return(); } } finally { if (_didIteratorError14) { throw _iteratorError14; } } } } return argNodes; } function getFieldArgTypeNode(type, fieldName, argName) { var fieldArgNode = getFieldArgNode(type, fieldName, argName); return fieldArgNode && fieldArgNode.type; } function getAllDirectiveArgNodes(directive, argName) { return getAllSubNodes(directive, function (directiveNode) { return directiveNode.arguments; }).filter(function (argNode) { return argNode.name.value === argName; }); } function getDirectiveArgTypeNode(directive, argName) { var argNode = getAllDirectiveArgNodes(directive, argName)[0]; return argNode && argNode.type; } function getUnionMemberTypeNodes(union, typeName) { return getAllSubNodes(union, function (unionNode) { return unionNode.types; }).filter(function (typeNode) { return typeNode.name.value === typeName; }); } function getEnumValueNodes(enumType, valueName) { return getAllSubNodes(enumType, function (enumNode) { return enumNode.values; }).filter(function (valueNode) { return valueNode.name.value === valueName; }); } /***/ }), /***/ "./node_modules/graphql/utilities/TypeInfo.mjs": /*!*****************************************************!*\ !*** ./node_modules/graphql/utilities/TypeInfo.mjs ***! \*****************************************************/ /*! exports provided: TypeInfo */ /*! exports used: TypeInfo */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TypeInfo; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__typeFromAST__ = __webpack_require__(/*! ./typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_find__ = __webpack_require__(/*! ../jsutils/find */ "./node_modules/graphql/jsutils/find.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * TypeInfo is a utility class which, given a GraphQL schema, can keep track * of the current field and type definitions at any point in a GraphQL document * AST during a recursive descent by calling `enter(node)` and `leave(node)`. */ var TypeInfo = /*#__PURE__*/ function () { function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order // to support non-spec-compliant codebases. You should never need to use it. getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals initialType) { _defineProperty(this, "_schema", void 0); _defineProperty(this, "_typeStack", void 0); _defineProperty(this, "_parentTypeStack", void 0); _defineProperty(this, "_inputTypeStack", void 0); _defineProperty(this, "_fieldDefStack", void 0); _defineProperty(this, "_defaultValueStack", void 0); _defineProperty(this, "_directive", void 0); _defineProperty(this, "_argument", void 0); _defineProperty(this, "_enumValue", void 0); _defineProperty(this, "_getFieldDef", void 0); this._schema = schema; this._typeStack = []; this._parentTypeStack = []; this._inputTypeStack = []; this._fieldDefStack = []; this._defaultValueStack = []; this._directive = null; this._argument = null; this._enumValue = null; this._getFieldDef = getFieldDefFn || getFieldDef; if (initialType) { if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["r" /* isInputType */])(initialType)) { this._inputTypeStack.push(initialType); } if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["o" /* isCompositeType */])(initialType)) { this._parentTypeStack.push(initialType); } if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["y" /* isOutputType */])(initialType)) { this._typeStack.push(initialType); } } } var _proto = TypeInfo.prototype; _proto.getType = function getType() { if (this._typeStack.length > 0) { return this._typeStack[this._typeStack.length - 1]; } }; _proto.getParentType = function getParentType() { if (this._parentTypeStack.length > 0) { return this._parentTypeStack[this._parentTypeStack.length - 1]; } }; _proto.getInputType = function getInputType() { if (this._inputTypeStack.length > 0) { return this._inputTypeStack[this._inputTypeStack.length - 1]; } }; _proto.getParentInputType = function getParentInputType() { if (this._inputTypeStack.length > 1) { return this._inputTypeStack[this._inputTypeStack.length - 2]; } }; _proto.getFieldDef = function getFieldDef() { if (this._fieldDefStack.length > 0) { return this._fieldDefStack[this._fieldDefStack.length - 1]; } }; _proto.getDefaultValue = function getDefaultValue() { if (this._defaultValueStack.length > 0) { return this._defaultValueStack[this._defaultValueStack.length - 1]; } }; _proto.getDirective = function getDirective() { return this._directive; }; _proto.getArgument = function getArgument() { return this._argument; }; _proto.getEnumValue = function getEnumValue() { return this._enumValue; }; _proto.enter = function enter(node) { var schema = this._schema; // Note: many of the types below are explicitly typed as "mixed" to drop // any assumptions of a valid schema to ensure runtime types are properly // checked before continuing since TypeInfo is used as part of validation // which occurs before guarantees of schema and document validity. switch (node.kind) { case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].SELECTION_SET: var namedType = Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["l" /* getNamedType */])(this.getType()); this._parentTypeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["o" /* isCompositeType */])(namedType) ? namedType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].FIELD: var parentType = this.getParentType(); var fieldDef; var fieldType; if (parentType) { fieldDef = this._getFieldDef(schema, parentType, node); if (fieldDef) { fieldType = fieldDef.type; } } this._fieldDefStack.push(fieldDef); this._typeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["y" /* isOutputType */])(fieldType) ? fieldType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].DIRECTIVE: this._directive = schema.getDirective(node.name.value); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].OPERATION_DEFINITION: var type; if (node.operation === 'query') { type = schema.getQueryType(); } else if (node.operation === 'mutation') { type = schema.getMutationType(); } else if (node.operation === 'subscription') { type = schema.getSubscriptionType(); } this._typeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["x" /* isObjectType */])(type) ? type : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].INLINE_FRAGMENT: case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].FRAGMENT_DEFINITION: var typeConditionAST = node.typeCondition; var outputType = typeConditionAST ? Object(__WEBPACK_IMPORTED_MODULE_3__typeFromAST__["a" /* typeFromAST */])(schema, typeConditionAST) : Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["l" /* getNamedType */])(this.getType()); this._typeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["y" /* isOutputType */])(outputType) ? outputType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].VARIABLE_DEFINITION: var inputType = Object(__WEBPACK_IMPORTED_MODULE_3__typeFromAST__["a" /* typeFromAST */])(schema, node.type); this._inputTypeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["r" /* isInputType */])(inputType) ? inputType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].ARGUMENT: var argDef; var argType; var fieldOrDirective = this.getDirective() || this.getFieldDef(); if (fieldOrDirective) { argDef = Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_find__["a" /* default */])(fieldOrDirective.args, function (arg) { return arg.name === node.name.value; }); if (argDef) { argType = argDef.type; } } this._argument = argDef; this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined); this._inputTypeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["r" /* isInputType */])(argType) ? argType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].LIST: var listType = Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["m" /* getNullableType */])(this.getInputType()); var itemType = Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["u" /* isListType */])(listType) ? listType.ofType : listType; // List positions never have a default value. this._defaultValueStack.push(undefined); this._inputTypeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["r" /* isInputType */])(itemType) ? itemType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].OBJECT_FIELD: var objectType = Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["l" /* getNamedType */])(this.getInputType()); var inputFieldType; var inputField; if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["q" /* isInputObjectType */])(objectType)) { inputField = objectType.getFields()[node.name.value]; if (inputField) { inputFieldType = inputField.type; } } this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined); this._inputTypeStack.push(Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["r" /* isInputType */])(inputFieldType) ? inputFieldType : undefined); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].ENUM: var enumType = Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["l" /* getNamedType */])(this.getInputType()); var enumValue; if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["p" /* isEnumType */])(enumType)) { enumValue = enumType.getValue(node.value); } this._enumValue = enumValue; break; } }; _proto.leave = function leave(node) { switch (node.kind) { case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].SELECTION_SET: this._parentTypeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].FIELD: this._fieldDefStack.pop(); this._typeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].DIRECTIVE: this._directive = null; break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].OPERATION_DEFINITION: case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].INLINE_FRAGMENT: case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].FRAGMENT_DEFINITION: this._typeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].VARIABLE_DEFINITION: this._inputTypeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].ARGUMENT: this._argument = null; this._defaultValueStack.pop(); this._inputTypeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].LIST: case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].OBJECT_FIELD: this._defaultValueStack.pop(); this._inputTypeStack.pop(); break; case __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].ENUM: this._enumValue = null; break; } }; return TypeInfo; }(); /** * Not exactly the same as the executor's definition of getFieldDef, in this * statically evaluated environment we do not always have an Object type, * and need to handle Interface and Union types. */ function getFieldDef(schema, parentType, fieldNode) { var name = fieldNode.name.value; if (name === __WEBPACK_IMPORTED_MODULE_2__type_introspection__["a" /* SchemaMetaFieldDef */].name && schema.getQueryType() === parentType) { return __WEBPACK_IMPORTED_MODULE_2__type_introspection__["a" /* SchemaMetaFieldDef */]; } if (name === __WEBPACK_IMPORTED_MODULE_2__type_introspection__["c" /* TypeMetaFieldDef */].name && schema.getQueryType() === parentType) { return __WEBPACK_IMPORTED_MODULE_2__type_introspection__["c" /* TypeMetaFieldDef */]; } if (name === __WEBPACK_IMPORTED_MODULE_2__type_introspection__["d" /* TypeNameMetaFieldDef */].name && Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["o" /* isCompositeType */])(parentType)) { return __WEBPACK_IMPORTED_MODULE_2__type_introspection__["d" /* TypeNameMetaFieldDef */]; } if (Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["x" /* isObjectType */])(parentType) || Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["s" /* isInterfaceType */])(parentType)) { return parentType.getFields()[name]; } } /***/ }), /***/ "./node_modules/graphql/utilities/assertValidName.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/utilities/assertValidName.mjs ***! \************************************************************/ /*! exports provided: assertValidName, isValidNameError */ /*! exports used: isValidNameError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export assertValidName */ /* harmony export (immutable) */ __webpack_exports__["a"] = isValidNameError; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ var NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/; /** * Upholds the spec rules about naming. */ function assertValidName(name) { var error = isValidNameError(name); if (error) { throw error; } return name; } /** * Returns an Error if a name is invalid. */ function isValidNameError(name, node) { !(typeof name === 'string') ? Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_invariant__["a" /* default */])(0, 'Expected string') : void 0; if (name.length > 1 && name[0] === '_' && name[1] === '_') { return new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Name \"".concat(name, "\" must not begin with \"__\", which is reserved by ") + 'GraphQL introspection.', node); } if (!NAME_RX.test(name)) { return new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \"".concat(name, "\" does not."), node); } } /***/ }), /***/ "./node_modules/graphql/utilities/astFromValue.mjs": /*!*********************************************************!*\ !*** ./node_modules/graphql/utilities/astFromValue.mjs ***! \*********************************************************/ /*! exports provided: astFromValue */ /*! exports used: astFromValue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = astFromValue; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_iterall__ = __webpack_require__(/*! iterall */ "./node_modules/iterall/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_isNullish__ = __webpack_require__(/*! ../jsutils/isNullish */ "./node_modules/graphql/jsutils/isNullish.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces a GraphQL Value AST given a JavaScript value. * * A GraphQL type must be provided, which will be used to interpret different * JavaScript values. * * | JSON Value | GraphQL Value | * | ------------- | -------------------- | * | Object | Input Object | * | Array | List | * | Boolean | Boolean | * | String | String / Enum Value | * | Number | Int / Float | * | Mixed | Enum Value | * | null | NullValue | * */ function astFromValue(value, type) { if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["w" /* isNonNullType */])(type)) { var astValue = astFromValue(value, type.ofType); if (astValue && astValue.kind === __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].NULL) { return null; } return astValue; } // only explicit null, not undefined, NaN if (value === null) { return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].NULL }; } // undefined, NaN if (Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_isInvalid__["a" /* default */])(value)) { return null; } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but // the value is not an array, convert the value using the list's item type. if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["u" /* isListType */])(type)) { var itemType = type.ofType; if (Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["e" /* isCollection */])(value)) { var valuesNodes = []; Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["b" /* forEach */])(value, function (item) { var itemNode = astFromValue(item, itemType); if (itemNode) { valuesNodes.push(itemNode); } }); return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].LIST, values: valuesNodes }; } return astFromValue(value, itemType); } // Populate the fields of the input object by creating ASTs from each value // in the JavaScript object according to the fields in the input type. if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["q" /* isInputObjectType */])(type)) { if (value === null || _typeof(value) !== 'object') { return null; } var fields = Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_objectValues__["a" /* default */])(type.getFields()); var fieldNodes = []; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var field = _step.value; var fieldValue = astFromValue(value[field.name], field.type); if (fieldValue) { fieldNodes.push({ kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].OBJECT_FIELD, name: { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].NAME, value: field.name }, value: fieldValue }); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].OBJECT, fields: fieldNodes }; } if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["B" /* isScalarType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["p" /* isEnumType */])(type)) { // Since value is an internally represented value, it must be serialized // to an externally represented value before converting into an AST. var serialized = type.serialize(value); if (Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isNullish__["a" /* default */])(serialized)) { return null; } // Others serialize based on their corresponding JavaScript scalar types. if (typeof serialized === 'boolean') { return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].BOOLEAN, value: serialized }; } // JavaScript numbers can be Int or Float values. if (typeof serialized === 'number') { var stringNum = String(serialized); return integerStringRegExp.test(stringNum) ? { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].INT, value: stringNum } : { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].FLOAT, value: stringNum }; } if (typeof serialized === 'string') { // Enum types use Enum literals. if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["p" /* isEnumType */])(type)) { return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].ENUM, value: serialized }; } // ID types can use Int literals. if (type === __WEBPACK_IMPORTED_MODULE_7__type_scalars__["b" /* GraphQLID */] && integerStringRegExp.test(serialized)) { return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].INT, value: serialized }; } return { kind: __WEBPACK_IMPORTED_MODULE_5__language_kinds__["a" /* Kind */].STRING, value: serialized }; } throw new TypeError("Cannot convert value to AST: ".concat(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(serialized))); } /* istanbul ignore next */ throw new Error("Unknown type: ".concat(type, ".")); } /** * IntValue: * - NegativeSign? 0 * - NegativeSign? NonZeroDigit ( Digit+ )? */ var integerStringRegExp = /^-?(0|[1-9][0-9]*)$/; /***/ }), /***/ "./node_modules/graphql/utilities/buildASTSchema.mjs": /*!***********************************************************!*\ !*** ./node_modules/graphql/utilities/buildASTSchema.mjs ***! \***********************************************************/ /*! exports provided: buildASTSchema, ASTDefinitionBuilder, getDescription, buildSchema */ /*! exports used: ASTDefinitionBuilder */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export buildASTSchema */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ASTDefinitionBuilder; }); /* unused harmony export getDescription */ /* unused harmony export buildSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__ = __webpack_require__(/*! ../jsutils/keyValMap */ "./node_modules/graphql/jsutils/keyValMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__valueFromAST__ = __webpack_require__(/*! ./valueFromAST */ "./node_modules/graphql/utilities/valueFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__validation_validate__ = __webpack_require__(/*! ../validation/validate */ "./node_modules/graphql/validation/validate.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__language_blockStringValue__ = __webpack_require__(/*! ../language/blockStringValue */ "./node_modules/graphql/language/blockStringValue.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__language_lexer__ = __webpack_require__(/*! ../language/lexer */ "./node_modules/graphql/language/lexer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__language_parser__ = __webpack_require__(/*! ../language/parser */ "./node_modules/graphql/language/parser.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__execution_values__ = __webpack_require__(/*! ../execution/values */ "./node_modules/graphql/execution/values.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__language_predicates__ = __webpack_require__(/*! ../language/predicates */ "./node_modules/graphql/language/predicates.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__type_schema__ = __webpack_require__(/*! ../type/schema */ "./node_modules/graphql/type/schema.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * This takes the ast of a schema document produced by the parse function in * src/language/parser.js. * * If no schema definition is provided, then it will look for types named Query * and Mutation. * * Given that AST it constructs a GraphQLSchema. The resulting schema * has no resolve methods, so execution will use default resolvers. * * Accepts options as a second argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ function buildASTSchema(documentAST, options) { !(documentAST && documentAST.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].DOCUMENT) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Must provide valid Document AST') : void 0; if (!options || !(options.assumeValid || options.assumeValidSDL)) { Object(__WEBPACK_IMPORTED_MODULE_4__validation_validate__["a" /* assertValidSDL */])(documentAST); } var schemaDef; var typeDefs = []; var nodeMap = Object.create(null); var directiveDefs = []; for (var i = 0; i < documentAST.definitions.length; i++) { var def = documentAST.definitions[i]; if (def.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].SCHEMA_DEFINITION) { schemaDef = def; } else if (Object(__WEBPACK_IMPORTED_MODULE_10__language_predicates__["b" /* isTypeDefinitionNode */])(def)) { var typeName = def.name.value; if (nodeMap[typeName]) { throw new Error("Type \"".concat(typeName, "\" was defined more than once.")); } typeDefs.push(def); nodeMap[typeName] = def; } else if (def.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].DIRECTIVE_DEFINITION) { directiveDefs.push(def); } } var operationTypes = schemaDef ? getOperationTypes(schemaDef) : { query: nodeMap.Query, mutation: nodeMap.Mutation, subscription: nodeMap.Subscription }; var definitionBuilder = new ASTDefinitionBuilder(nodeMap, options, function (typeRef) { throw new Error("Type \"".concat(typeRef.name.value, "\" not found in document.")); }); var directives = directiveDefs.map(function (def) { return definitionBuilder.buildDirective(def); }); // If specified directives were not explicitly declared, add them. if (!directives.some(function (directive) { return directive.name === 'skip'; })) { directives.push(__WEBPACK_IMPORTED_MODULE_12__type_directives__["e" /* GraphQLSkipDirective */]); } if (!directives.some(function (directive) { return directive.name === 'include'; })) { directives.push(__WEBPACK_IMPORTED_MODULE_12__type_directives__["d" /* GraphQLIncludeDirective */]); } if (!directives.some(function (directive) { return directive.name === 'deprecated'; })) { directives.push(__WEBPACK_IMPORTED_MODULE_12__type_directives__["b" /* GraphQLDeprecatedDirective */]); } // Note: While this could make early assertions to get the correctly // typed values below, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. return new __WEBPACK_IMPORTED_MODULE_15__type_schema__["a" /* GraphQLSchema */]({ query: operationTypes.query ? definitionBuilder.buildType(operationTypes.query) : null, mutation: operationTypes.mutation ? definitionBuilder.buildType(operationTypes.mutation) : null, subscription: operationTypes.subscription ? definitionBuilder.buildType(operationTypes.subscription) : null, types: typeDefs.map(function (node) { return definitionBuilder.buildType(node); }), directives: directives, astNode: schemaDef, assumeValid: options && options.assumeValid, allowedLegacyNames: options && options.allowedLegacyNames }); function getOperationTypes(schema) { var opTypes = {}; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = schema.operationTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var operationType = _step.value; var _typeName = operationType.type.name.value; var operation = operationType.operation; if (opTypes[operation]) { throw new Error("Must provide only one ".concat(operation, " type in schema.")); } if (!nodeMap[_typeName]) { throw new Error("Specified ".concat(operation, " type \"").concat(_typeName, "\" not found in document.")); } opTypes[operation] = operationType.type; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return opTypes; } } var ASTDefinitionBuilder = /*#__PURE__*/ function () { function ASTDefinitionBuilder(typeDefinitionsMap, options, resolveType) { _defineProperty(this, "_typeDefinitionsMap", void 0); _defineProperty(this, "_options", void 0); _defineProperty(this, "_resolveType", void 0); _defineProperty(this, "_cache", void 0); this._typeDefinitionsMap = typeDefinitionsMap; this._options = options; this._resolveType = resolveType; // Initialize to the GraphQL built in scalars and introspection types. this._cache = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_14__type_scalars__["e" /* specifiedScalarTypes */].concat(__WEBPACK_IMPORTED_MODULE_13__type_introspection__["f" /* introspectionTypes */]), function (type) { return type.name; }); } var _proto = ASTDefinitionBuilder.prototype; _proto.buildType = function buildType(node) { var typeName = node.name.value; if (!this._cache[typeName]) { if (node.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].NAMED_TYPE) { var defNode = this._typeDefinitionsMap[typeName]; this._cache[typeName] = defNode ? this._makeSchemaDef(defNode) : this._resolveType(node); } else { this._cache[typeName] = this._makeSchemaDef(node); } } return this._cache[typeName]; }; _proto._buildWrappedType = function _buildWrappedType(typeNode) { if (typeNode.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].LIST_TYPE) { return Object(__WEBPACK_IMPORTED_MODULE_11__type_definition__["d" /* GraphQLList */])(this._buildWrappedType(typeNode.type)); } if (typeNode.kind === __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].NON_NULL_TYPE) { return Object(__WEBPACK_IMPORTED_MODULE_11__type_definition__["e" /* GraphQLNonNull */])( // Note: GraphQLNonNull constructor validates this type this._buildWrappedType(typeNode.type)); } return this.buildType(typeNode); }; _proto.buildDirective = function buildDirective(directiveNode) { return new __WEBPACK_IMPORTED_MODULE_12__type_directives__["c" /* GraphQLDirective */]({ name: directiveNode.name.value, description: getDescription(directiveNode, this._options), locations: directiveNode.locations.map(function (node) { return node.value; }), args: directiveNode.arguments && this._makeInputValues(directiveNode.arguments), astNode: directiveNode }); }; _proto.buildField = function buildField(field) { return { // Note: While this could make assertions to get the correctly typed // value, that would throw immediately while type system validation // with validateSchema() will produce more actionable results. type: this._buildWrappedType(field.type), description: getDescription(field, this._options), args: field.arguments && this._makeInputValues(field.arguments), deprecationReason: getDeprecationReason(field), astNode: field }; }; _proto.buildInputField = function buildInputField(value) { // Note: While this could make assertions to get the correctly typed // value, that would throw immediately while type system validation var type = this._buildWrappedType(value.type); return { name: value.name.value, type: type, description: getDescription(value, this._options), defaultValue: Object(__WEBPACK_IMPORTED_MODULE_3__valueFromAST__["a" /* valueFromAST */])(value.defaultValue, type), astNode: value }; }; _proto.buildEnumValue = function buildEnumValue(value) { return { description: getDescription(value, this._options), deprecationReason: getDeprecationReason(value), astNode: value }; }; _proto._makeSchemaDef = function _makeSchemaDef(def) { switch (def.kind) { case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].OBJECT_TYPE_DEFINITION: return this._makeTypeDef(def); case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].INTERFACE_TYPE_DEFINITION: return this._makeInterfaceDef(def); case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].ENUM_TYPE_DEFINITION: return this._makeEnumDef(def); case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].UNION_TYPE_DEFINITION: return this._makeUnionDef(def); case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].SCALAR_TYPE_DEFINITION: return this._makeScalarDef(def); case __WEBPACK_IMPORTED_MODULE_9__language_kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_DEFINITION: return this._makeInputObjectDef(def); default: throw new Error("Type kind \"".concat(def.kind, "\" not supported.")); } }; _proto._makeTypeDef = function _makeTypeDef(def) { var _this = this; var interfaces = def.interfaces; return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["f" /* GraphQLObjectType */]({ name: def.name.value, description: getDescription(def, this._options), fields: function fields() { return _this._makeFieldDefMap(def); }, // Note: While this could make early assertions to get the correctly // typed values, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. interfaces: interfaces ? function () { return interfaces.map(function (ref) { return _this.buildType(ref); }); } : [], astNode: def }); }; _proto._makeFieldDefMap = function _makeFieldDefMap(def) { var _this2 = this; return def.fields ? Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(def.fields, function (field) { return field.name.value; }, function (field) { return _this2.buildField(field); }) : {}; }; _proto._makeInputValues = function _makeInputValues(values) { var _this3 = this; return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(values, function (value) { return value.name.value; }, function (value) { return _this3.buildInputField(value); }); }; _proto._makeInterfaceDef = function _makeInterfaceDef(def) { var _this4 = this; return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["c" /* GraphQLInterfaceType */]({ name: def.name.value, description: getDescription(def, this._options), fields: function fields() { return _this4._makeFieldDefMap(def); }, astNode: def }); }; _proto._makeEnumDef = function _makeEnumDef(def) { return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["a" /* GraphQLEnumType */]({ name: def.name.value, description: getDescription(def, this._options), values: this._makeValueDefMap(def), astNode: def }); }; _proto._makeValueDefMap = function _makeValueDefMap(def) { var _this5 = this; return def.values ? Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(def.values, function (enumValue) { return enumValue.name.value; }, function (enumValue) { return _this5.buildEnumValue(enumValue); }) : {}; }; _proto._makeUnionDef = function _makeUnionDef(def) { var _this6 = this; var types = def.types; return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["h" /* GraphQLUnionType */]({ name: def.name.value, description: getDescription(def, this._options), // Note: While this could make assertions to get the correctly typed // values below, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. types: types ? function () { return types.map(function (ref) { return _this6.buildType(ref); }); } : [], astNode: def }); }; _proto._makeScalarDef = function _makeScalarDef(def) { return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["g" /* GraphQLScalarType */]({ name: def.name.value, description: getDescription(def, this._options), astNode: def, serialize: function serialize(value) { return value; } }); }; _proto._makeInputObjectDef = function _makeInputObjectDef(def) { var _this7 = this; return new __WEBPACK_IMPORTED_MODULE_11__type_definition__["b" /* GraphQLInputObjectType */]({ name: def.name.value, description: getDescription(def, this._options), fields: function fields() { return def.fields ? _this7._makeInputValues(def.fields) : {}; }, astNode: def }); }; return ASTDefinitionBuilder; }(); /** * Given a field or enum value node, returns the string value for the * deprecation reason. */ function getDeprecationReason(node) { var deprecated = Object(__WEBPACK_IMPORTED_MODULE_8__execution_values__["b" /* getDirectiveValues */])(__WEBPACK_IMPORTED_MODULE_12__type_directives__["b" /* GraphQLDeprecatedDirective */], node); return deprecated && deprecated.reason; } /** * Given an ast node, returns its string description. * @deprecated: provided to ease adoption and will be removed in v16. * * Accepts options as a second argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ function getDescription(node, options) { if (node.description) { return node.description.value; } if (options && options.commentDescriptions) { var rawValue = getLeadingCommentBlock(node); if (rawValue !== undefined) { return Object(__WEBPACK_IMPORTED_MODULE_5__language_blockStringValue__["a" /* default */])('\n' + rawValue); } } } function getLeadingCommentBlock(node) { var loc = node.loc; if (!loc) { return; } var comments = []; var token = loc.startToken.prev; while (token && token.kind === __WEBPACK_IMPORTED_MODULE_6__language_lexer__["a" /* TokenKind */].COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) { var value = String(token.value); comments.push(value); token = token.prev; } return comments.reverse().join('\n'); } /** * A helper function to build a GraphQLSchema directly from a source * document. */ function buildSchema(source, options) { return buildASTSchema(Object(__WEBPACK_IMPORTED_MODULE_7__language_parser__["a" /* parse */])(source, options), options); } /***/ }), /***/ "./node_modules/graphql/utilities/buildClientSchema.mjs": /*!**************************************************************!*\ !*** ./node_modules/graphql/utilities/buildClientSchema.mjs ***! \**************************************************************/ /*! exports provided: buildClientSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export buildClientSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__ = __webpack_require__(/*! ../jsutils/keyValMap */ "./node_modules/graphql/jsutils/keyValMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__valueFromAST__ = __webpack_require__(/*! ./valueFromAST */ "./node_modules/graphql/utilities/valueFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__language_parser__ = __webpack_require__(/*! ../language/parser */ "./node_modules/graphql/language/parser.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__type_schema__ = __webpack_require__(/*! ../type/schema */ "./node_modules/graphql/type/schema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Build a GraphQLSchema for use by client tools. * * Given the result of a client running the introspection query, creates and * returns a GraphQLSchema instance which can be then used with all graphql-js * tools, but cannot be used to execute a query, as introspection does not * represent the "resolver", "parse" or "serialize" functions or any other * server-internal mechanisms. * * This function expects a complete introspection result. Don't forget to check * the "errors" field of a server response before calling this function. */ function buildClientSchema(introspection, options) { // Get the schema from the introspection result. var schemaIntrospection = introspection.__schema; // Converts the list of types into a keyMap based on the type names. var typeIntrospectionMap = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(schemaIntrospection.types, function (type) { return type.name; }); // A cache to use to store the actual GraphQLType definition objects by name. // Initialize to the GraphQL built in scalars. All functions below are inline // so that this type def cache is within the scope of the closure. var typeDefCache = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_9__type_scalars__["e" /* specifiedScalarTypes */].concat(__WEBPACK_IMPORTED_MODULE_8__type_introspection__["f" /* introspectionTypes */]), function (type) { return type.name; }); // Given a type reference in introspection, return the GraphQLType instance. // preferring cached instances before building new instances. function getType(typeRef) { if (typeRef.kind === __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].LIST) { var itemRef = typeRef.ofType; if (!itemRef) { throw new Error('Decorated type deeper than introspection query.'); } return Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["d" /* GraphQLList */])(getType(itemRef)); } if (typeRef.kind === __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].NON_NULL) { var nullableRef = typeRef.ofType; if (!nullableRef) { throw new Error('Decorated type deeper than introspection query.'); } var nullableType = getType(nullableRef); return Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["e" /* GraphQLNonNull */])(Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["j" /* assertNullableType */])(nullableType)); } if (!typeRef.name) { throw new Error('Unknown type reference: ' + JSON.stringify(typeRef)); } return getNamedType(typeRef.name); } function getNamedType(typeName) { if (typeDefCache[typeName]) { return typeDefCache[typeName]; } var typeIntrospection = typeIntrospectionMap[typeName]; if (!typeIntrospection) { throw new Error("Invalid or incomplete schema, unknown type: ".concat(typeName, ". Ensure ") + 'that a full introspection query is used in order to build a ' + 'client schema.'); } var typeDef = buildType(typeIntrospection); typeDefCache[typeName] = typeDef; return typeDef; } function getInputType(typeRef) { var type = getType(typeRef); !Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["r" /* isInputType */])(type) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Introspection must provide input type for arguments.') : void 0; return type; } function getOutputType(typeRef) { var type = getType(typeRef); !Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["y" /* isOutputType */])(type) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Introspection must provide output type for fields.') : void 0; return type; } function getObjectType(typeRef) { var type = getType(typeRef); return Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["k" /* assertObjectType */])(type); } function getInterfaceType(typeRef) { var type = getType(typeRef); return Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["i" /* assertInterfaceType */])(type); } // Given a type's introspection result, construct the correct // GraphQLType instance. function buildType(type) { if (type && type.name && type.kind) { switch (type.kind) { case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].SCALAR: return buildScalarDef(type); case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].OBJECT: return buildObjectDef(type); case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].INTERFACE: return buildInterfaceDef(type); case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].UNION: return buildUnionDef(type); case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].ENUM: return buildEnumDef(type); case __WEBPACK_IMPORTED_MODULE_8__type_introspection__["b" /* TypeKind */].INPUT_OBJECT: return buildInputObjectDef(type); } } throw new Error('Invalid or incomplete introspection result. Ensure that a full ' + 'introspection query is used in order to build a client schema:' + JSON.stringify(type)); } function buildScalarDef(scalarIntrospection) { return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["g" /* GraphQLScalarType */]({ name: scalarIntrospection.name, description: scalarIntrospection.description, serialize: function serialize(value) { return value; } }); } function buildObjectDef(objectIntrospection) { if (!objectIntrospection.interfaces) { throw new Error('Introspection result missing interfaces: ' + JSON.stringify(objectIntrospection)); } return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["f" /* GraphQLObjectType */]({ name: objectIntrospection.name, description: objectIntrospection.description, interfaces: objectIntrospection.interfaces.map(getInterfaceType), fields: function fields() { return buildFieldDefMap(objectIntrospection); } }); } function buildInterfaceDef(interfaceIntrospection) { return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["c" /* GraphQLInterfaceType */]({ name: interfaceIntrospection.name, description: interfaceIntrospection.description, fields: function fields() { return buildFieldDefMap(interfaceIntrospection); } }); } function buildUnionDef(unionIntrospection) { if (!unionIntrospection.possibleTypes) { throw new Error('Introspection result missing possibleTypes: ' + JSON.stringify(unionIntrospection)); } return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["h" /* GraphQLUnionType */]({ name: unionIntrospection.name, description: unionIntrospection.description, types: unionIntrospection.possibleTypes.map(getObjectType) }); } function buildEnumDef(enumIntrospection) { if (!enumIntrospection.enumValues) { throw new Error('Introspection result missing enumValues: ' + JSON.stringify(enumIntrospection)); } return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["a" /* GraphQLEnumType */]({ name: enumIntrospection.name, description: enumIntrospection.description, values: Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(enumIntrospection.enumValues, function (valueIntrospection) { return valueIntrospection.name; }, function (valueIntrospection) { return { description: valueIntrospection.description, deprecationReason: valueIntrospection.deprecationReason }; }) }); } function buildInputObjectDef(inputObjectIntrospection) { if (!inputObjectIntrospection.inputFields) { throw new Error('Introspection result missing inputFields: ' + JSON.stringify(inputObjectIntrospection)); } return new __WEBPACK_IMPORTED_MODULE_6__type_definition__["b" /* GraphQLInputObjectType */]({ name: inputObjectIntrospection.name, description: inputObjectIntrospection.description, fields: function fields() { return buildInputValueDefMap(inputObjectIntrospection.inputFields); } }); } function buildFieldDefMap(typeIntrospection) { if (!typeIntrospection.fields) { throw new Error('Introspection result missing fields: ' + JSON.stringify(typeIntrospection)); } return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(typeIntrospection.fields, function (fieldIntrospection) { return fieldIntrospection.name; }, function (fieldIntrospection) { if (!fieldIntrospection.args) { throw new Error('Introspection result missing field args: ' + JSON.stringify(fieldIntrospection)); } return { description: fieldIntrospection.description, deprecationReason: fieldIntrospection.deprecationReason, type: getOutputType(fieldIntrospection.type), args: buildInputValueDefMap(fieldIntrospection.args) }; }); } function buildInputValueDefMap(inputValueIntrospections) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(inputValueIntrospections, function (inputValue) { return inputValue.name; }, buildInputValue); } function buildInputValue(inputValueIntrospection) { var type = getInputType(inputValueIntrospection.type); var defaultValue = inputValueIntrospection.defaultValue ? Object(__WEBPACK_IMPORTED_MODULE_3__valueFromAST__["a" /* valueFromAST */])(Object(__WEBPACK_IMPORTED_MODULE_4__language_parser__["b" /* parseValue */])(inputValueIntrospection.defaultValue), type) : undefined; return { description: inputValueIntrospection.description, type: type, defaultValue: defaultValue }; } function buildDirective(directiveIntrospection) { if (!directiveIntrospection.args) { throw new Error('Introspection result missing directive args: ' + JSON.stringify(directiveIntrospection)); } return new __WEBPACK_IMPORTED_MODULE_7__type_directives__["c" /* GraphQLDirective */]({ name: directiveIntrospection.name, description: directiveIntrospection.description, locations: directiveIntrospection.locations.slice(), args: buildInputValueDefMap(directiveIntrospection.args) }); } // Iterate through all types, getting the type definition for each, ensuring // that any type not directly referenced by a field will get created. var types = schemaIntrospection.types.map(function (typeIntrospection) { return getNamedType(typeIntrospection.name); }); // Get the root Query, Mutation, and Subscription types. var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null; var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null; var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if // directives were not queried for. var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types. return new __WEBPACK_IMPORTED_MODULE_5__type_schema__["a" /* GraphQLSchema */]({ query: queryType, mutation: mutationType, subscription: subscriptionType, types: types, directives: directives, assumeValid: options && options.assumeValid, allowedLegacyNames: options && options.allowedLegacyNames }); } /***/ }), /***/ "./node_modules/graphql/utilities/coerceValue.mjs": /*!********************************************************!*\ !*** ./node_modules/graphql/utilities/coerceValue.mjs ***! \********************************************************/ /*! exports provided: coerceValue */ /*! exports used: coerceValue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = coerceValue; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_iterall__ = __webpack_require__(/*! iterall */ "./node_modules/iterall/index.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__ = __webpack_require__(/*! ../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_orList__ = __webpack_require__(/*! ../jsutils/orList */ "./node_modules/graphql/jsutils/orList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_suggestionList__ = __webpack_require__(/*! ../jsutils/suggestionList */ "./node_modules/graphql/jsutils/suggestionList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Coerces a JavaScript value given a GraphQL Type. * * Returns either a value which is valid for the provided type or a list of * encountered coercion errors. * */ function coerceValue(value, type, blameNode, path) { // A value must be provided if the type is non-null. if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["w" /* isNonNullType */])(type)) { if (value == null) { return ofErrors([coercionError("Expected non-nullable type ".concat(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(type), " not to be null"), blameNode, path)]); } return coerceValue(value, type.ofType, blameNode, path); } if (value == null) { // Explicitly return the value null. return ofValue(null); } if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["B" /* isScalarType */])(type)) { // Scalars determine if a value is valid via parseValue(), which can // throw to indicate failure. If it throws, maintain a reference to // the original error. try { var parseResult = type.parseValue(value); if (Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInvalid__["a" /* default */])(parseResult)) { return ofErrors([coercionError("Expected type ".concat(type.name), blameNode, path)]); } return ofValue(parseResult); } catch (error) { return ofErrors([coercionError("Expected type ".concat(type.name), blameNode, path, error.message, error)]); } } if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["p" /* isEnumType */])(type)) { if (typeof value === 'string') { var enumValue = type.getValue(value); if (enumValue) { return ofValue(enumValue.value); } } var suggestions = Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_suggestionList__["a" /* default */])(String(value), type.getValues().map(function (enumValue) { return enumValue.name; })); var didYouMean = suggestions.length !== 0 ? "did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_orList__["a" /* default */])(suggestions), "?") : undefined; return ofErrors([coercionError("Expected type ".concat(type.name), blameNode, path, didYouMean)]); } if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["u" /* isListType */])(type)) { var itemType = type.ofType; if (Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["e" /* isCollection */])(value)) { var errors; var coercedValue = []; Object(__WEBPACK_IMPORTED_MODULE_0_iterall__["b" /* forEach */])(value, function (itemValue, index) { var coercedItem = coerceValue(itemValue, itemType, blameNode, atPath(path, index)); if (coercedItem.errors) { errors = add(errors, coercedItem.errors); } else if (!errors) { coercedValue.push(coercedItem.value); } }); return errors ? ofErrors(errors) : ofValue(coercedValue); } // Lists accept a non-list value as a list of one. var coercedItem = coerceValue(value, itemType, blameNode); return coercedItem.errors ? coercedItem : ofValue([coercedItem.value]); } if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["q" /* isInputObjectType */])(type)) { if (_typeof(value) !== 'object') { return ofErrors([coercionError("Expected type ".concat(type.name, " to be an object"), blameNode, path)]); } var _errors; var _coercedValue = {}; var fields = type.getFields(); // Ensure every defined field is valid. for (var fieldName in fields) { if (hasOwnProperty.call(fields, fieldName)) { var field = fields[fieldName]; var fieldValue = value[fieldName]; if (Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInvalid__["a" /* default */])(fieldValue)) { if (!Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_isInvalid__["a" /* default */])(field.defaultValue)) { _coercedValue[fieldName] = field.defaultValue; } else if (Object(__WEBPACK_IMPORTED_MODULE_6__type_definition__["w" /* isNonNullType */])(field.type)) { _errors = add(_errors, coercionError("Field ".concat(printPath(atPath(path, fieldName)), " of required ") + "type ".concat(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(field.type), " was not provided"), blameNode)); } } else { var coercedField = coerceValue(fieldValue, field.type, blameNode, atPath(path, fieldName)); if (coercedField.errors) { _errors = add(_errors, coercedField.errors); } else if (!_errors) { _coercedValue[fieldName] = coercedField.value; } } } } // Ensure every provided field is defined. for (var _fieldName in value) { if (hasOwnProperty.call(value, _fieldName)) { if (!fields[_fieldName]) { var _suggestions = Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_suggestionList__["a" /* default */])(_fieldName, Object.keys(fields)); var _didYouMean = _suggestions.length !== 0 ? "did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_orList__["a" /* default */])(_suggestions), "?") : undefined; _errors = add(_errors, coercionError("Field \"".concat(_fieldName, "\" is not defined by type ").concat(type.name), blameNode, path, _didYouMean)); } } } return _errors ? ofErrors(_errors) : ofValue(_coercedValue); } /* istanbul ignore next */ throw new Error("Unexpected type: ".concat(type, ".")); } function ofValue(value) { return { errors: undefined, value: value }; } function ofErrors(errors) { return { errors: errors, value: undefined }; } function add(errors, moreErrors) { return (errors || []).concat(moreErrors); } function atPath(prev, key) { return { prev: prev, key: key }; } function coercionError(message, blameNode, path, subMessage, originalError) { var pathStr = printPath(path); // Return a GraphQLError instance return new __WEBPACK_IMPORTED_MODULE_5__error_GraphQLError__["a" /* GraphQLError */](message + (pathStr ? ' at ' + pathStr : '') + (subMessage ? '; ' + subMessage : '.'), blameNode, undefined, undefined, undefined, originalError); } // Build a string describing the path into the value where the error was found function printPath(path) { var pathStr = ''; var currentPath = path; while (currentPath) { pathStr = (typeof currentPath.key === 'string' ? '.' + currentPath.key : '[' + String(currentPath.key) + ']') + pathStr; currentPath = currentPath.prev; } return pathStr ? 'value' + pathStr : ''; } var hasOwnProperty = Object.prototype.hasOwnProperty; /***/ }), /***/ "./node_modules/graphql/utilities/concatAST.mjs": /*!******************************************************!*\ !*** ./node_modules/graphql/utilities/concatAST.mjs ***! \******************************************************/ /*! exports provided: concatAST */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export concatAST */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Provided a collection of ASTs, presumably each from different files, * concatenate the ASTs together into batched AST, useful for validating many * GraphQL source files which together represent one conceptual application. */ function concatAST(asts) { var batchDefinitions = []; for (var i = 0; i < asts.length; i++) { var definitions = asts[i].definitions; for (var j = 0; j < definitions.length; j++) { batchDefinitions.push(definitions[j]); } } return { kind: 'Document', definitions: batchDefinitions }; } /***/ }), /***/ "./node_modules/graphql/utilities/extendSchema.mjs": /*!*********************************************************!*\ !*** ./node_modules/graphql/utilities/extendSchema.mjs ***! \*********************************************************/ /*! exports provided: extendSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export extendSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__ = __webpack_require__(/*! ../jsutils/keyValMap */ "./node_modules/graphql/jsutils/keyValMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildASTSchema__ = __webpack_require__(/*! ./buildASTSchema */ "./node_modules/graphql/utilities/buildASTSchema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__validation_validate__ = __webpack_require__(/*! ../validation/validate */ "./node_modules/graphql/validation/validate.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__type_schema__ = __webpack_require__(/*! ../type/schema */ "./node_modules/graphql/type/schema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__language_predicates__ = __webpack_require__(/*! ../language/predicates */ "./node_modules/graphql/language/predicates.mjs"); function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces a new schema given an existing schema and a document which may * contain GraphQL type extensions and definitions. The original schema will * remain unaltered. * * Because a schema represents a graph of references, a schema cannot be * extended without effectively making an entire copy. We do not know until it's * too late if subgraphs remain unchanged. * * This algorithm copies the provided schema, applying extensions while * producing the copy. The original schema remains unaltered. * * Accepts options as a third argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ function extendSchema(schema, documentAST, options) { !Object(__WEBPACK_IMPORTED_MODULE_7__type_schema__["b" /* isSchema */])(schema) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Must provide valid GraphQLSchema') : void 0; !(documentAST && documentAST.kind === __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].DOCUMENT) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Must provide valid Document AST') : void 0; if (!options || !(options.assumeValid || options.assumeValidSDL)) { Object(__WEBPACK_IMPORTED_MODULE_5__validation_validate__["b" /* assertValidSDLExtension */])(documentAST, schema); } // Collect the type definitions and extensions found in the document. var typeDefinitionMap = Object.create(null); var typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can // have the same name. For example, a type named "skip". var directiveDefinitions = []; var schemaDef; // Schema extensions are collected which may add additional operation types. var schemaExtensions = []; for (var i = 0; i < documentAST.definitions.length; i++) { var def = documentAST.definitions[i]; if (def.kind === __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].SCHEMA_DEFINITION) { schemaDef = def; } else if (def.kind === __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].SCHEMA_EXTENSION) { schemaExtensions.push(def); } else if (Object(__WEBPACK_IMPORTED_MODULE_13__language_predicates__["b" /* isTypeDefinitionNode */])(def)) { // Sanity check that none of the defined types conflict with the // schema's existing types. var typeName = def.name.value; if (schema.getType(typeName)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Type \"".concat(typeName, "\" already exists in the schema. It cannot also ") + 'be defined in this type definition.', [def]); } typeDefinitionMap[typeName] = def; } else if (Object(__WEBPACK_IMPORTED_MODULE_13__language_predicates__["c" /* isTypeExtensionNode */])(def)) { // Sanity check that this type extension exists within the // schema's existing types. var extendedTypeName = def.name.value; var existingType = schema.getType(extendedTypeName); if (!existingType) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend type \"".concat(extendedTypeName, "\" because it does not ") + 'exist in the existing schema.', [def]); } checkExtensionNode(existingType, def); var existingTypeExtensions = typeExtensionsMap[extendedTypeName]; typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def]; } else if (def.kind === __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].DIRECTIVE_DEFINITION) { var directiveName = def.name.value; var existingDirective = schema.getDirective(directiveName); if (existingDirective) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Directive \"".concat(directiveName, "\" already exists in the schema. It ") + 'cannot be redefined.', [def]); } directiveDefinitions.push(def); } } // If this document contains no new types, extensions, or directives then // return the same unmodified GraphQLSchema instance. if (Object.keys(typeExtensionsMap).length === 0 && Object.keys(typeDefinitionMap).length === 0 && directiveDefinitions.length === 0 && schemaExtensions.length === 0 && !schemaDef) { return schema; } var astBuilder = new __WEBPACK_IMPORTED_MODULE_4__buildASTSchema__["a" /* ASTDefinitionBuilder */](typeDefinitionMap, options, function (typeRef) { var typeName = typeRef.name.value; var existingType = schema.getType(typeName); if (existingType) { return extendNamedType(existingType); } throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Unknown type: \"".concat(typeName, "\". Ensure that this type exists ") + 'either in the original schema, or is added in a type definition.', [typeRef]); }); var extendTypeCache = Object.create(null); // Get the extended root operation types. var operationTypes = { query: extendMaybeNamedType(schema.getQueryType()), mutation: extendMaybeNamedType(schema.getMutationType()), subscription: extendMaybeNamedType(schema.getSubscriptionType()) }; if (schemaDef) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = schemaDef.operationTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref2 = _step.value; var operation = _ref2.operation, type = _ref2.type; if (operationTypes[operation]) { throw new Error("Must provide only one ".concat(operation, " type in schema.")); } // Note: While this could make early assertions to get the correctly // typed values, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. operationTypes[operation] = astBuilder.buildType(type); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } // Then, incorporate schema definition and all schema extensions. for (var _i = 0; _i < schemaExtensions.length; _i++) { var schemaExtension = schemaExtensions[_i]; if (schemaExtension.operationTypes) { var _iteratorNormalCompletion12 = true; var _didIteratorError12 = false; var _iteratorError12 = undefined; try { for (var _iterator12 = schemaExtension.operationTypes[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) { var _ref4 = _step12.value; var operation = _ref4.operation, type = _ref4.type; if (operationTypes[operation]) { throw new Error("Must provide only one ".concat(operation, " type in schema.")); } // Note: While this could make early assertions to get the correctly // typed values, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. operationTypes[operation] = astBuilder.buildType(type); } } catch (err) { _didIteratorError12 = true; _iteratorError12 = err; } finally { try { if (!_iteratorNormalCompletion12 && _iterator12.return != null) { _iterator12.return(); } } finally { if (_didIteratorError12) { throw _iteratorError12; } } } } } var schemaExtensionASTNodes = schemaExtensions ? schema.extensionASTNodes ? schema.extensionASTNodes.concat(schemaExtensions) : schemaExtensions : schema.extensionASTNodes; var types = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_objectValues__["a" /* default */])(schema.getTypeMap()).map(function (type) { return extendNamedType(type); }).concat(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_objectValues__["a" /* default */])(typeDefinitionMap).map(function (type) { return astBuilder.buildType(type); })); // Support both original legacy names and extended legacy names. var allowedLegacyNames = schema.__allowedLegacyNames.concat(options && options.allowedLegacyNames || []); // Then produce and return a Schema with these types. return new __WEBPACK_IMPORTED_MODULE_7__type_schema__["a" /* GraphQLSchema */](_objectSpread({}, operationTypes, { types: types, directives: getMergedDirectives(), astNode: schema.astNode, extensionASTNodes: schemaExtensionASTNodes, allowedLegacyNames: allowedLegacyNames })); // Below are functions used for producing this schema that have closed over // this scope and have access to the schema, cache, and newly defined types. function getMergedDirectives() { var existingDirectives = schema.getDirectives().map(extendDirective); !existingDirectives ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'schema must have default directives') : void 0; return existingDirectives.concat(directiveDefinitions.map(function (node) { return astBuilder.buildDirective(node); })); } function extendMaybeNamedType(type) { return type ? extendNamedType(type) : null; } function extendNamedType(type) { if (Object(__WEBPACK_IMPORTED_MODULE_8__type_introspection__["g" /* isIntrospectionType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_9__type_scalars__["d" /* isSpecifiedScalarType */])(type)) { // Builtin types are not extended. return type; } var name = type.name; if (!extendTypeCache[name]) { if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["B" /* isScalarType */])(type)) { extendTypeCache[name] = extendScalarType(type); } else if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["x" /* isObjectType */])(type)) { extendTypeCache[name] = extendObjectType(type); } else if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["s" /* isInterfaceType */])(type)) { extendTypeCache[name] = extendInterfaceType(type); } else if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["D" /* isUnionType */])(type)) { extendTypeCache[name] = extendUnionType(type); } else if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["p" /* isEnumType */])(type)) { extendTypeCache[name] = extendEnumType(type); } else if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["q" /* isInputObjectType */])(type)) { extendTypeCache[name] = extendInputObjectType(type); } } return extendTypeCache[name]; } function extendDirective(directive) { return new __WEBPACK_IMPORTED_MODULE_11__type_directives__["c" /* GraphQLDirective */]({ name: directive.name, description: directive.description, locations: directive.locations, args: extendArgs(directive.args), astNode: directive.astNode }); } function extendInputObjectType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["b" /* GraphQLInputObjectType */]({ name: name, description: type.description, fields: function fields() { return extendInputFieldMap(type); }, astNode: type.astNode, extensionASTNodes: extensionASTNodes }); } function extendInputFieldMap(type) { var newFieldMap = Object.create(null); var oldFieldMap = type.getFields(); var _arr = Object.keys(oldFieldMap); for (var _i2 = 0; _i2 < _arr.length; _i2++) { var _fieldName = _arr[_i2]; var _field = oldFieldMap[_fieldName]; newFieldMap[_fieldName] = { description: _field.description, type: extendType(_field.type), defaultValue: _field.defaultValue, astNode: _field.astNode }; } // If there are any extensions to the fields, apply those here. var extensions = typeExtensionsMap[type.name]; if (extensions) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = extensions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var extension = _step2.value; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = extension.fields[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var field = _step3.value; var fieldName = field.name.value; if (oldFieldMap[fieldName]) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Field \"".concat(type.name, ".").concat(fieldName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [field]); } newFieldMap[fieldName] = astBuilder.buildInputField(field); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } return newFieldMap; } function extendEnumType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["a" /* GraphQLEnumType */]({ name: name, description: type.description, values: extendValueMap(type), astNode: type.astNode, extensionASTNodes: extensionASTNodes }); } function extendValueMap(type) { var newValueMap = Object.create(null); var oldValueMap = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(type.getValues(), function (value) { return value.name; }); var _arr2 = Object.keys(oldValueMap); for (var _i3 = 0; _i3 < _arr2.length; _i3++) { var _valueName = _arr2[_i3]; var _value = oldValueMap[_valueName]; newValueMap[_valueName] = { name: _value.name, description: _value.description, value: _value.value, deprecationReason: _value.deprecationReason, astNode: _value.astNode }; } // If there are any extensions to the values, apply those here. var extensions = typeExtensionsMap[type.name]; if (extensions) { var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = extensions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var extension = _step4.value; var _iteratorNormalCompletion5 = true; var _didIteratorError5 = false; var _iteratorError5 = undefined; try { for (var _iterator5 = extension.values[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { var value = _step5.value; var valueName = value.name.value; if (oldValueMap[valueName]) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Enum value \"".concat(type.name, ".").concat(valueName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [value]); } newValueMap[valueName] = astBuilder.buildEnumValue(value); } } catch (err) { _didIteratorError5 = true; _iteratorError5 = err; } finally { try { if (!_iteratorNormalCompletion5 && _iterator5.return != null) { _iterator5.return(); } } finally { if (_didIteratorError5) { throw _iteratorError5; } } } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return != null) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } } return newValueMap; } function extendScalarType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["g" /* GraphQLScalarType */]({ name: name, description: type.description, astNode: type.astNode, extensionASTNodes: extensionASTNodes, serialize: type.serialize, parseValue: type.parseValue, parseLiteral: type.parseLiteral }); } function extendObjectType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["f" /* GraphQLObjectType */]({ name: name, description: type.description, interfaces: function interfaces() { return extendImplementedInterfaces(type); }, fields: function fields() { return extendFieldMap(type); }, astNode: type.astNode, extensionASTNodes: extensionASTNodes, isTypeOf: type.isTypeOf }); } function extendArgs(args) { return Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_keyValMap__["a" /* default */])(args, function (arg) { return arg.name; }, function (arg) { return { type: extendType(arg.type), defaultValue: arg.defaultValue, description: arg.description, astNode: arg.astNode }; }); } function extendInterfaceType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["c" /* GraphQLInterfaceType */]({ name: type.name, description: type.description, fields: function fields() { return extendFieldMap(type); }, astNode: type.astNode, extensionASTNodes: extensionASTNodes, resolveType: type.resolveType }); } function extendUnionType(type) { var name = type.name; var extensionASTNodes = typeExtensionsMap[name] ? type.extensionASTNodes ? type.extensionASTNodes.concat(typeExtensionsMap[name]) : typeExtensionsMap[name] : type.extensionASTNodes; return new __WEBPACK_IMPORTED_MODULE_10__type_definition__["h" /* GraphQLUnionType */]({ name: name, description: type.description, types: function types() { return extendPossibleTypes(type); }, astNode: type.astNode, resolveType: type.resolveType, extensionASTNodes: extensionASTNodes }); } function extendPossibleTypes(type) { var possibleTypes = type.getTypes().map(extendNamedType); // If there are any extensions to the union, apply those here. var extensions = typeExtensionsMap[type.name]; if (extensions) { var _iteratorNormalCompletion6 = true; var _didIteratorError6 = false; var _iteratorError6 = undefined; try { for (var _iterator6 = extensions[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { var extension = _step6.value; var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; try { for (var _iterator7 = extension.types[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { var namedType = _step7.value; // Note: While this could make early assertions to get the correctly // typed values, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. possibleTypes.push(astBuilder.buildType(namedType)); } } catch (err) { _didIteratorError7 = true; _iteratorError7 = err; } finally { try { if (!_iteratorNormalCompletion7 && _iterator7.return != null) { _iterator7.return(); } } finally { if (_didIteratorError7) { throw _iteratorError7; } } } } } catch (err) { _didIteratorError6 = true; _iteratorError6 = err; } finally { try { if (!_iteratorNormalCompletion6 && _iterator6.return != null) { _iterator6.return(); } } finally { if (_didIteratorError6) { throw _iteratorError6; } } } } return possibleTypes; } function extendImplementedInterfaces(type) { var interfaces = type.getInterfaces().map(extendNamedType); // If there are any extensions to the interfaces, apply those here. var extensions = typeExtensionsMap[type.name]; if (extensions) { var _iteratorNormalCompletion8 = true; var _didIteratorError8 = false; var _iteratorError8 = undefined; try { for (var _iterator8 = extensions[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { var extension = _step8.value; var _iteratorNormalCompletion9 = true; var _didIteratorError9 = false; var _iteratorError9 = undefined; try { for (var _iterator9 = extension.interfaces[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { var namedType = _step9.value; // Note: While this could make early assertions to get the correctly // typed values, that would throw immediately while type system // validation with validateSchema() will produce more actionable results. interfaces.push(astBuilder.buildType(namedType)); } } catch (err) { _didIteratorError9 = true; _iteratorError9 = err; } finally { try { if (!_iteratorNormalCompletion9 && _iterator9.return != null) { _iterator9.return(); } } finally { if (_didIteratorError9) { throw _iteratorError9; } } } } } catch (err) { _didIteratorError8 = true; _iteratorError8 = err; } finally { try { if (!_iteratorNormalCompletion8 && _iterator8.return != null) { _iterator8.return(); } } finally { if (_didIteratorError8) { throw _iteratorError8; } } } } return interfaces; } function extendFieldMap(type) { var newFieldMap = Object.create(null); var oldFieldMap = type.getFields(); var _arr3 = Object.keys(oldFieldMap); for (var _i4 = 0; _i4 < _arr3.length; _i4++) { var _fieldName2 = _arr3[_i4]; var _field2 = oldFieldMap[_fieldName2]; newFieldMap[_fieldName2] = { description: _field2.description, deprecationReason: _field2.deprecationReason, type: extendType(_field2.type), args: extendArgs(_field2.args), astNode: _field2.astNode, resolve: _field2.resolve }; } // If there are any extensions to the fields, apply those here. var extensions = typeExtensionsMap[type.name]; if (extensions) { var _iteratorNormalCompletion10 = true; var _didIteratorError10 = false; var _iteratorError10 = undefined; try { for (var _iterator10 = extensions[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { var extension = _step10.value; var _iteratorNormalCompletion11 = true; var _didIteratorError11 = false; var _iteratorError11 = undefined; try { for (var _iterator11 = extension.fields[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) { var field = _step11.value; var fieldName = field.name.value; if (oldFieldMap[fieldName]) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Field \"".concat(type.name, ".").concat(fieldName, "\" already exists in the ") + 'schema. It cannot also be defined in this type extension.', [field]); } newFieldMap[fieldName] = astBuilder.buildField(field); } } catch (err) { _didIteratorError11 = true; _iteratorError11 = err; } finally { try { if (!_iteratorNormalCompletion11 && _iterator11.return != null) { _iterator11.return(); } } finally { if (_didIteratorError11) { throw _iteratorError11; } } } } } catch (err) { _didIteratorError10 = true; _iteratorError10 = err; } finally { try { if (!_iteratorNormalCompletion10 && _iterator10.return != null) { _iterator10.return(); } } finally { if (_didIteratorError10) { throw _iteratorError10; } } } } return newFieldMap; } function extendType(typeDef) { if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["u" /* isListType */])(typeDef)) { return Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["d" /* GraphQLList */])(extendType(typeDef.ofType)); } if (Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["w" /* isNonNullType */])(typeDef)) { return Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["e" /* GraphQLNonNull */])(extendType(typeDef.ofType)); } return extendNamedType(typeDef); } } function checkExtensionNode(type, node) { switch (node.kind) { case __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].OBJECT_TYPE_EXTENSION: if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["x" /* isObjectType */])(type)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend non-object type \"".concat(type.name, "\"."), [node]); } break; case __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].INTERFACE_TYPE_EXTENSION: if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["s" /* isInterfaceType */])(type)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend non-interface type \"".concat(type.name, "\"."), [node]); } break; case __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].ENUM_TYPE_EXTENSION: if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["p" /* isEnumType */])(type)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend non-enum type \"".concat(type.name, "\"."), [node]); } break; case __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].UNION_TYPE_EXTENSION: if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["D" /* isUnionType */])(type)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend non-union type \"".concat(type.name, "\"."), [node]); } break; case __WEBPACK_IMPORTED_MODULE_12__language_kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_EXTENSION: if (!Object(__WEBPACK_IMPORTED_MODULE_10__type_definition__["q" /* isInputObjectType */])(type)) { throw new __WEBPACK_IMPORTED_MODULE_6__error_GraphQLError__["a" /* GraphQLError */]("Cannot extend non-input object type \"".concat(type.name, "\"."), [node]); } break; } } /***/ }), /***/ "./node_modules/graphql/utilities/findBreakingChanges.mjs": /*!****************************************************************!*\ !*** ./node_modules/graphql/utilities/findBreakingChanges.mjs ***! \****************************************************************/ /*! exports provided: BreakingChangeType, DangerousChangeType, findBreakingChanges, findDangerousChanges, findRemovedTypes, findTypesThatChangedKind, findArgChanges, findFieldsThatChangedTypeOnObjectOrInterfaceTypes, findFieldsThatChangedTypeOnInputObjectTypes, findTypesRemovedFromUnions, findTypesAddedToUnions, findValuesRemovedFromEnums, findValuesAddedToEnums, findInterfacesRemovedFromObjectTypes, findInterfacesAddedToObjectTypes, findRemovedDirectives, findRemovedDirectiveArgs, findAddedNonNullDirectiveArgs, findRemovedLocationsForDirective, findRemovedDirectiveLocations */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export BreakingChangeType */ /* unused harmony export DangerousChangeType */ /* unused harmony export findBreakingChanges */ /* unused harmony export findDangerousChanges */ /* unused harmony export findRemovedTypes */ /* unused harmony export findTypesThatChangedKind */ /* unused harmony export findArgChanges */ /* unused harmony export findFieldsThatChangedTypeOnObjectOrInterfaceTypes */ /* unused harmony export findFieldsThatChangedTypeOnInputObjectTypes */ /* unused harmony export findTypesRemovedFromUnions */ /* unused harmony export findTypesAddedToUnions */ /* unused harmony export findValuesRemovedFromEnums */ /* unused harmony export findValuesAddedToEnums */ /* unused harmony export findInterfacesRemovedFromObjectTypes */ /* unused harmony export findInterfacesAddedToObjectTypes */ /* unused harmony export findRemovedDirectives */ /* unused harmony export findRemovedDirectiveArgs */ /* unused harmony export findAddedNonNullDirectiveArgs */ /* unused harmony export findRemovedLocationsForDirective */ /* unused harmony export findRemovedDirectiveLocations */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /** * Copyright (c) 2016-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ var BreakingChangeType = { FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND', FIELD_REMOVED: 'FIELD_REMOVED', TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND', TYPE_REMOVED: 'TYPE_REMOVED', TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION', VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM', ARG_REMOVED: 'ARG_REMOVED', ARG_CHANGED_KIND: 'ARG_CHANGED_KIND', REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED', REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED', INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT', DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED', DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED', DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED', REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED' }; var DangerousChangeType = { ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE', VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM', INTERFACE_ADDED_TO_OBJECT: 'INTERFACE_ADDED_TO_OBJECT', TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION', OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED', OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED' }; /** * Given two schemas, returns an Array containing descriptions of all the types * of breaking changes covered by the other functions down below. */ function findBreakingChanges(oldSchema, newSchema) { return findRemovedTypes(oldSchema, newSchema).concat(findTypesThatChangedKind(oldSchema, newSchema), findFieldsThatChangedTypeOnObjectOrInterfaceTypes(oldSchema, newSchema), findFieldsThatChangedTypeOnInputObjectTypes(oldSchema, newSchema).breakingChanges, findTypesRemovedFromUnions(oldSchema, newSchema), findValuesRemovedFromEnums(oldSchema, newSchema), findArgChanges(oldSchema, newSchema).breakingChanges, findInterfacesRemovedFromObjectTypes(oldSchema, newSchema), findRemovedDirectives(oldSchema, newSchema), findRemovedDirectiveArgs(oldSchema, newSchema), findAddedNonNullDirectiveArgs(oldSchema, newSchema), findRemovedDirectiveLocations(oldSchema, newSchema)); } /** * Given two schemas, returns an Array containing descriptions of all the types * of potentially dangerous changes covered by the other functions down below. */ function findDangerousChanges(oldSchema, newSchema) { return findArgChanges(oldSchema, newSchema).dangerousChanges.concat(findValuesAddedToEnums(oldSchema, newSchema), findInterfacesAddedToObjectTypes(oldSchema, newSchema), findTypesAddedToUnions(oldSchema, newSchema), findFieldsThatChangedTypeOnInputObjectTypes(oldSchema, newSchema).dangerousChanges); } /** * Given two schemas, returns an Array containing descriptions of any breaking * changes in the newSchema related to removing an entire type. */ function findRemovedTypes(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var _arr = Object.keys(oldTypeMap); for (var _i = 0; _i < _arr.length; _i++) { var typeName = _arr[_i]; if (!newTypeMap[typeName]) { breakingChanges.push({ type: BreakingChangeType.TYPE_REMOVED, description: "".concat(typeName, " was removed.") }); } } return breakingChanges; } /** * Given two schemas, returns an Array containing descriptions of any breaking * changes in the newSchema related to changing the type of a type. */ function findTypesThatChangedKind(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var _arr2 = Object.keys(oldTypeMap); for (var _i2 = 0; _i2 < _arr2.length; _i2++) { var typeName = _arr2[_i2]; if (!newTypeMap[typeName]) { continue; } var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (oldType.constructor !== newType.constructor) { breakingChanges.push({ type: BreakingChangeType.TYPE_CHANGED_KIND, description: "".concat(typeName, " changed from ") + "".concat(typeKindName(oldType), " to ").concat(typeKindName(newType), ".") }); } } return breakingChanges; } /** * Given two schemas, returns an Array containing descriptions of any * breaking or dangerous changes in the newSchema related to arguments * (such as removal or change of type of an argument, or a change in an * argument's default value). */ function findArgChanges(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var dangerousChanges = []; var _arr3 = Object.keys(oldTypeMap); for (var _i3 = 0; _i3 < _arr3.length; _i3++) { var typeName = _arr3[_i3]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!(Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(oldType) || Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["s" /* isInterfaceType */])(oldType)) || !(Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(newType) || Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["s" /* isInterfaceType */])(newType)) || newType.constructor !== oldType.constructor) { continue; } var oldTypeFields = oldType.getFields(); var newTypeFields = newType.getFields(); var _arr4 = Object.keys(oldTypeFields); for (var _i4 = 0; _i4 < _arr4.length; _i4++) { var fieldName = _arr4[_i4]; if (!newTypeFields[fieldName]) { continue; } var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { var _loop = function _loop() { var oldArgDef = _step.value; var newArgs = newTypeFields[fieldName].args; var newArgDef = newArgs.find(function (arg) { return arg.name === oldArgDef.name; }); // Arg not present if (!newArgDef) { breakingChanges.push({ type: BreakingChangeType.ARG_REMOVED, description: "".concat(oldType.name, ".").concat(fieldName, " arg ") + "".concat(oldArgDef.name, " was removed") }); } else { var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(oldArgDef.type, newArgDef.type); if (!isSafe) { breakingChanges.push({ type: BreakingChangeType.ARG_CHANGED_KIND, description: "".concat(oldType.name, ".").concat(fieldName, " arg ") + "".concat(oldArgDef.name, " has changed type from ") + "".concat(oldArgDef.type.toString(), " to ").concat(newArgDef.type.toString()) }); } else if (oldArgDef.defaultValue !== undefined && oldArgDef.defaultValue !== newArgDef.defaultValue) { dangerousChanges.push({ type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE, description: "".concat(oldType.name, ".").concat(fieldName, " arg ") + "".concat(oldArgDef.name, " has changed defaultValue") }); } } }; for (var _iterator = oldTypeFields[fieldName].args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { _loop(); } // Check if arg was added to the field } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { var _loop2 = function _loop2() { var newArgDef = _step2.value; var oldArgs = oldTypeFields[fieldName].args; var oldArgDef = oldArgs.find(function (arg) { return arg.name === newArgDef.name; }); if (!oldArgDef) { var argName = newArgDef.name; if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["z" /* isRequiredArgument */])(newArgDef)) { breakingChanges.push({ type: BreakingChangeType.REQUIRED_ARG_ADDED, description: "A required arg ".concat(argName, " on ") + "".concat(typeName, ".").concat(fieldName, " was added") }); } else { dangerousChanges.push({ type: DangerousChangeType.OPTIONAL_ARG_ADDED, description: "An optional arg ".concat(argName, " on ") + "".concat(typeName, ".").concat(fieldName, " was added") }); } } }; for (var _iterator2 = newTypeFields[fieldName].args[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { _loop2(); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } } return { breakingChanges: breakingChanges, dangerousChanges: dangerousChanges }; } function typeKindName(type) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["B" /* isScalarType */])(type)) { return 'a Scalar type'; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(type)) { return 'an Object type'; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["s" /* isInterfaceType */])(type)) { return 'an Interface type'; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["D" /* isUnionType */])(type)) { return 'a Union type'; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["p" /* isEnumType */])(type)) { return 'an Enum type'; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["q" /* isInputObjectType */])(type)) { return 'an Input type'; } throw new TypeError('Unknown type ' + type.constructor.name); } function findFieldsThatChangedTypeOnObjectOrInterfaceTypes(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var _arr5 = Object.keys(oldTypeMap); for (var _i5 = 0; _i5 < _arr5.length; _i5++) { var typeName = _arr5[_i5]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!(Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(oldType) || Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["s" /* isInterfaceType */])(oldType)) || !(Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(newType) || Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["s" /* isInterfaceType */])(newType)) || newType.constructor !== oldType.constructor) { continue; } var oldTypeFieldsDef = oldType.getFields(); var newTypeFieldsDef = newType.getFields(); var _arr6 = Object.keys(oldTypeFieldsDef); for (var _i6 = 0; _i6 < _arr6.length; _i6++) { var fieldName = _arr6[_i6]; // Check if the field is missing on the type in the new schema. if (!(fieldName in newTypeFieldsDef)) { breakingChanges.push({ type: BreakingChangeType.FIELD_REMOVED, description: "".concat(typeName, ".").concat(fieldName, " was removed.") }); } else { var oldFieldType = oldTypeFieldsDef[fieldName].type; var newFieldType = newTypeFieldsDef[fieldName].type; var isSafe = isChangeSafeForObjectOrInterfaceField(oldFieldType, newFieldType); if (!isSafe) { var oldFieldTypeString = Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(oldFieldType) ? oldFieldType.name : oldFieldType.toString(); var newFieldTypeString = Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(newFieldType) ? newFieldType.name : newFieldType.toString(); breakingChanges.push({ type: BreakingChangeType.FIELD_CHANGED_KIND, description: "".concat(typeName, ".").concat(fieldName, " changed type from ") + "".concat(oldFieldTypeString, " to ").concat(newFieldTypeString, ".") }); } } } } return breakingChanges; } function findFieldsThatChangedTypeOnInputObjectTypes(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var dangerousChanges = []; var _arr7 = Object.keys(oldTypeMap); for (var _i7 = 0; _i7 < _arr7.length; _i7++) { var typeName = _arr7[_i7]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["q" /* isInputObjectType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["q" /* isInputObjectType */])(newType)) { continue; } var oldTypeFieldsDef = oldType.getFields(); var newTypeFieldsDef = newType.getFields(); var _arr8 = Object.keys(oldTypeFieldsDef); for (var _i8 = 0; _i8 < _arr8.length; _i8++) { var fieldName = _arr8[_i8]; // Check if the field is missing on the type in the new schema. if (!(fieldName in newTypeFieldsDef)) { breakingChanges.push({ type: BreakingChangeType.FIELD_REMOVED, description: "".concat(typeName, ".").concat(fieldName, " was removed.") }); } else { var oldFieldType = oldTypeFieldsDef[fieldName].type; var newFieldType = newTypeFieldsDef[fieldName].type; var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(oldFieldType, newFieldType); if (!isSafe) { var oldFieldTypeString = Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(oldFieldType) ? oldFieldType.name : oldFieldType.toString(); var newFieldTypeString = Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(newFieldType) ? newFieldType.name : newFieldType.toString(); breakingChanges.push({ type: BreakingChangeType.FIELD_CHANGED_KIND, description: "".concat(typeName, ".").concat(fieldName, " changed type from ") + "".concat(oldFieldTypeString, " to ").concat(newFieldTypeString, ".") }); } } } // Check if a field was added to the input object type var _arr9 = Object.keys(newTypeFieldsDef); for (var _i9 = 0; _i9 < _arr9.length; _i9++) { var _fieldName = _arr9[_i9]; if (!(_fieldName in oldTypeFieldsDef)) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["A" /* isRequiredInputField */])(newTypeFieldsDef[_fieldName])) { breakingChanges.push({ type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED, description: "A required field ".concat(_fieldName, " on ") + "input type ".concat(typeName, " was added.") }); } else { dangerousChanges.push({ type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED, description: "An optional field ".concat(_fieldName, " on ") + "input type ".concat(typeName, " was added.") }); } } } } return { breakingChanges: breakingChanges, dangerousChanges: dangerousChanges }; } function isChangeSafeForObjectOrInterfaceField(oldType, newType) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(oldType)) { return (// if they're both named types, see if their names are equivalent Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType) ); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(oldType)) { return (// if they're both lists, make sure the underlying types are compatible Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType) ); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(oldType)) { // if they're both non-null, make sure the underlying types are compatible return Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType); } return false; } function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(oldType)) { // if they're both named types, see if their names are equivalent return Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["v" /* isNamedType */])(newType) && oldType.name === newType.name; } else if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(oldType)) { // if they're both lists, make sure the underlying types are compatible return Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType); } else if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(oldType)) { return (// if they're both non-null, make sure the underlying types are // compatible Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType) ); } return false; } /** * Given two schemas, returns an Array containing descriptions of any breaking * changes in the newSchema related to removing types from a union type. */ function findTypesRemovedFromUnions(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var typesRemovedFromUnion = []; var _arr10 = Object.keys(oldTypeMap); for (var _i10 = 0; _i10 < _arr10.length; _i10++) { var typeName = _arr10[_i10]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["D" /* isUnionType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["D" /* isUnionType */])(newType)) { continue; } var typeNamesInNewUnion = Object.create(null); var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = newType.getTypes()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var type = _step3.value; typeNamesInNewUnion[type.name] = true; } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = oldType.getTypes()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var _type = _step4.value; if (!typeNamesInNewUnion[_type.name]) { typesRemovedFromUnion.push({ type: BreakingChangeType.TYPE_REMOVED_FROM_UNION, description: "".concat(_type.name, " was removed from union type ").concat(typeName, ".") }); } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return != null) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } } return typesRemovedFromUnion; } /** * Given two schemas, returns an Array containing descriptions of any dangerous * changes in the newSchema related to adding types to a union type. */ function findTypesAddedToUnions(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var typesAddedToUnion = []; var _arr11 = Object.keys(newTypeMap); for (var _i11 = 0; _i11 < _arr11.length; _i11++) { var typeName = _arr11[_i11]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["D" /* isUnionType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["D" /* isUnionType */])(newType)) { continue; } var typeNamesInOldUnion = Object.create(null); var _iteratorNormalCompletion5 = true; var _didIteratorError5 = false; var _iteratorError5 = undefined; try { for (var _iterator5 = oldType.getTypes()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { var type = _step5.value; typeNamesInOldUnion[type.name] = true; } } catch (err) { _didIteratorError5 = true; _iteratorError5 = err; } finally { try { if (!_iteratorNormalCompletion5 && _iterator5.return != null) { _iterator5.return(); } } finally { if (_didIteratorError5) { throw _iteratorError5; } } } var _iteratorNormalCompletion6 = true; var _didIteratorError6 = false; var _iteratorError6 = undefined; try { for (var _iterator6 = newType.getTypes()[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { var _type2 = _step6.value; if (!typeNamesInOldUnion[_type2.name]) { typesAddedToUnion.push({ type: DangerousChangeType.TYPE_ADDED_TO_UNION, description: "".concat(_type2.name, " was added to union type ").concat(typeName, ".") }); } } } catch (err) { _didIteratorError6 = true; _iteratorError6 = err; } finally { try { if (!_iteratorNormalCompletion6 && _iterator6.return != null) { _iterator6.return(); } } finally { if (_didIteratorError6) { throw _iteratorError6; } } } } return typesAddedToUnion; } /** * Given two schemas, returns an Array containing descriptions of any breaking * changes in the newSchema related to removing values from an enum type. */ function findValuesRemovedFromEnums(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var valuesRemovedFromEnums = []; var _arr12 = Object.keys(oldTypeMap); for (var _i12 = 0; _i12 < _arr12.length; _i12++) { var typeName = _arr12[_i12]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["p" /* isEnumType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["p" /* isEnumType */])(newType)) { continue; } var valuesInNewEnum = Object.create(null); var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; try { for (var _iterator7 = newType.getValues()[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { var value = _step7.value; valuesInNewEnum[value.name] = true; } } catch (err) { _didIteratorError7 = true; _iteratorError7 = err; } finally { try { if (!_iteratorNormalCompletion7 && _iterator7.return != null) { _iterator7.return(); } } finally { if (_didIteratorError7) { throw _iteratorError7; } } } var _iteratorNormalCompletion8 = true; var _didIteratorError8 = false; var _iteratorError8 = undefined; try { for (var _iterator8 = oldType.getValues()[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { var _value = _step8.value; if (!valuesInNewEnum[_value.name]) { valuesRemovedFromEnums.push({ type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM, description: "".concat(_value.name, " was removed from enum type ").concat(typeName, ".") }); } } } catch (err) { _didIteratorError8 = true; _iteratorError8 = err; } finally { try { if (!_iteratorNormalCompletion8 && _iterator8.return != null) { _iterator8.return(); } } finally { if (_didIteratorError8) { throw _iteratorError8; } } } } return valuesRemovedFromEnums; } /** * Given two schemas, returns an Array containing descriptions of any dangerous * changes in the newSchema related to adding values to an enum type. */ function findValuesAddedToEnums(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var valuesAddedToEnums = []; var _arr13 = Object.keys(oldTypeMap); for (var _i13 = 0; _i13 < _arr13.length; _i13++) { var typeName = _arr13[_i13]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["p" /* isEnumType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["p" /* isEnumType */])(newType)) { continue; } var valuesInOldEnum = Object.create(null); var _iteratorNormalCompletion9 = true; var _didIteratorError9 = false; var _iteratorError9 = undefined; try { for (var _iterator9 = oldType.getValues()[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { var value = _step9.value; valuesInOldEnum[value.name] = true; } } catch (err) { _didIteratorError9 = true; _iteratorError9 = err; } finally { try { if (!_iteratorNormalCompletion9 && _iterator9.return != null) { _iterator9.return(); } } finally { if (_didIteratorError9) { throw _iteratorError9; } } } var _iteratorNormalCompletion10 = true; var _didIteratorError10 = false; var _iteratorError10 = undefined; try { for (var _iterator10 = newType.getValues()[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { var _value2 = _step10.value; if (!valuesInOldEnum[_value2.name]) { valuesAddedToEnums.push({ type: DangerousChangeType.VALUE_ADDED_TO_ENUM, description: "".concat(_value2.name, " was added to enum type ").concat(typeName, ".") }); } } } catch (err) { _didIteratorError10 = true; _iteratorError10 = err; } finally { try { if (!_iteratorNormalCompletion10 && _iterator10.return != null) { _iterator10.return(); } } finally { if (_didIteratorError10) { throw _iteratorError10; } } } } return valuesAddedToEnums; } function findInterfacesRemovedFromObjectTypes(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var breakingChanges = []; var _arr14 = Object.keys(oldTypeMap); for (var _i14 = 0; _i14 < _arr14.length; _i14++) { var typeName = _arr14[_i14]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(newType)) { continue; } var oldInterfaces = oldType.getInterfaces(); var newInterfaces = newType.getInterfaces(); var _iteratorNormalCompletion11 = true; var _didIteratorError11 = false; var _iteratorError11 = undefined; try { var _loop3 = function _loop3() { var oldInterface = _step11.value; if (!newInterfaces.some(function (int) { return int.name === oldInterface.name; })) { breakingChanges.push({ type: BreakingChangeType.INTERFACE_REMOVED_FROM_OBJECT, description: "".concat(typeName, " no longer implements interface ") + "".concat(oldInterface.name, ".") }); } }; for (var _iterator11 = oldInterfaces[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) { _loop3(); } } catch (err) { _didIteratorError11 = true; _iteratorError11 = err; } finally { try { if (!_iteratorNormalCompletion11 && _iterator11.return != null) { _iterator11.return(); } } finally { if (_didIteratorError11) { throw _iteratorError11; } } } } return breakingChanges; } function findInterfacesAddedToObjectTypes(oldSchema, newSchema) { var oldTypeMap = oldSchema.getTypeMap(); var newTypeMap = newSchema.getTypeMap(); var interfacesAddedToObjectTypes = []; var _arr15 = Object.keys(newTypeMap); for (var _i15 = 0; _i15 < _arr15.length; _i15++) { var typeName = _arr15[_i15]; var oldType = oldTypeMap[typeName]; var newType = newTypeMap[typeName]; if (!Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(oldType) || !Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(newType)) { continue; } var oldInterfaces = oldType.getInterfaces(); var newInterfaces = newType.getInterfaces(); var _iteratorNormalCompletion12 = true; var _didIteratorError12 = false; var _iteratorError12 = undefined; try { var _loop4 = function _loop4() { var newInterface = _step12.value; if (!oldInterfaces.some(function (int) { return int.name === newInterface.name; })) { interfacesAddedToObjectTypes.push({ type: DangerousChangeType.INTERFACE_ADDED_TO_OBJECT, description: "".concat(newInterface.name, " added to interfaces implemented ") + "by ".concat(typeName, ".") }); } }; for (var _iterator12 = newInterfaces[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) { _loop4(); } } catch (err) { _didIteratorError12 = true; _iteratorError12 = err; } finally { try { if (!_iteratorNormalCompletion12 && _iterator12.return != null) { _iterator12.return(); } } finally { if (_didIteratorError12) { throw _iteratorError12; } } } } return interfacesAddedToObjectTypes; } function findRemovedDirectives(oldSchema, newSchema) { var removedDirectives = []; var newSchemaDirectiveMap = getDirectiveMapForSchema(newSchema); var _iteratorNormalCompletion13 = true; var _didIteratorError13 = false; var _iteratorError13 = undefined; try { for (var _iterator13 = oldSchema.getDirectives()[Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) { var directive = _step13.value; if (!newSchemaDirectiveMap[directive.name]) { removedDirectives.push({ type: BreakingChangeType.DIRECTIVE_REMOVED, description: "".concat(directive.name, " was removed") }); } } } catch (err) { _didIteratorError13 = true; _iteratorError13 = err; } finally { try { if (!_iteratorNormalCompletion13 && _iterator13.return != null) { _iterator13.return(); } } finally { if (_didIteratorError13) { throw _iteratorError13; } } } return removedDirectives; } function findRemovedArgsForDirective(oldDirective, newDirective) { var removedArgs = []; var newArgMap = getArgumentMapForDirective(newDirective); var _iteratorNormalCompletion14 = true; var _didIteratorError14 = false; var _iteratorError14 = undefined; try { for (var _iterator14 = oldDirective.args[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) { var arg = _step14.value; if (!newArgMap[arg.name]) { removedArgs.push(arg); } } } catch (err) { _didIteratorError14 = true; _iteratorError14 = err; } finally { try { if (!_iteratorNormalCompletion14 && _iterator14.return != null) { _iterator14.return(); } } finally { if (_didIteratorError14) { throw _iteratorError14; } } } return removedArgs; } function findRemovedDirectiveArgs(oldSchema, newSchema) { var removedDirectiveArgs = []; var oldSchemaDirectiveMap = getDirectiveMapForSchema(oldSchema); var _iteratorNormalCompletion15 = true; var _didIteratorError15 = false; var _iteratorError15 = undefined; try { for (var _iterator15 = newSchema.getDirectives()[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) { var newDirective = _step15.value; var oldDirective = oldSchemaDirectiveMap[newDirective.name]; if (!oldDirective) { continue; } var _iteratorNormalCompletion16 = true; var _didIteratorError16 = false; var _iteratorError16 = undefined; try { for (var _iterator16 = findRemovedArgsForDirective(oldDirective, newDirective)[Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) { var arg = _step16.value; removedDirectiveArgs.push({ type: BreakingChangeType.DIRECTIVE_ARG_REMOVED, description: "".concat(arg.name, " was removed from ").concat(newDirective.name) }); } } catch (err) { _didIteratorError16 = true; _iteratorError16 = err; } finally { try { if (!_iteratorNormalCompletion16 && _iterator16.return != null) { _iterator16.return(); } } finally { if (_didIteratorError16) { throw _iteratorError16; } } } } } catch (err) { _didIteratorError15 = true; _iteratorError15 = err; } finally { try { if (!_iteratorNormalCompletion15 && _iterator15.return != null) { _iterator15.return(); } } finally { if (_didIteratorError15) { throw _iteratorError15; } } } return removedDirectiveArgs; } function findAddedArgsForDirective(oldDirective, newDirective) { var addedArgs = []; var oldArgMap = getArgumentMapForDirective(oldDirective); var _iteratorNormalCompletion17 = true; var _didIteratorError17 = false; var _iteratorError17 = undefined; try { for (var _iterator17 = newDirective.args[Symbol.iterator](), _step17; !(_iteratorNormalCompletion17 = (_step17 = _iterator17.next()).done); _iteratorNormalCompletion17 = true) { var arg = _step17.value; if (!oldArgMap[arg.name]) { addedArgs.push(arg); } } } catch (err) { _didIteratorError17 = true; _iteratorError17 = err; } finally { try { if (!_iteratorNormalCompletion17 && _iterator17.return != null) { _iterator17.return(); } } finally { if (_didIteratorError17) { throw _iteratorError17; } } } return addedArgs; } function findAddedNonNullDirectiveArgs(oldSchema, newSchema) { var addedNonNullableArgs = []; var oldSchemaDirectiveMap = getDirectiveMapForSchema(oldSchema); var _iteratorNormalCompletion18 = true; var _didIteratorError18 = false; var _iteratorError18 = undefined; try { for (var _iterator18 = newSchema.getDirectives()[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) { var newDirective = _step18.value; var oldDirective = oldSchemaDirectiveMap[newDirective.name]; if (!oldDirective) { continue; } var _iteratorNormalCompletion19 = true; var _didIteratorError19 = false; var _iteratorError19 = undefined; try { for (var _iterator19 = findAddedArgsForDirective(oldDirective, newDirective)[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) { var arg = _step19.value; if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["z" /* isRequiredArgument */])(arg)) { addedNonNullableArgs.push({ type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED, description: "A required arg ".concat(arg.name, " on directive ") + "".concat(newDirective.name, " was added") }); } } } catch (err) { _didIteratorError19 = true; _iteratorError19 = err; } finally { try { if (!_iteratorNormalCompletion19 && _iterator19.return != null) { _iterator19.return(); } } finally { if (_didIteratorError19) { throw _iteratorError19; } } } } } catch (err) { _didIteratorError18 = true; _iteratorError18 = err; } finally { try { if (!_iteratorNormalCompletion18 && _iterator18.return != null) { _iterator18.return(); } } finally { if (_didIteratorError18) { throw _iteratorError18; } } } return addedNonNullableArgs; } function findRemovedLocationsForDirective(oldDirective, newDirective) { var removedLocations = []; var newLocationSet = new Set(newDirective.locations); var _iteratorNormalCompletion20 = true; var _didIteratorError20 = false; var _iteratorError20 = undefined; try { for (var _iterator20 = oldDirective.locations[Symbol.iterator](), _step20; !(_iteratorNormalCompletion20 = (_step20 = _iterator20.next()).done); _iteratorNormalCompletion20 = true) { var oldLocation = _step20.value; if (!newLocationSet.has(oldLocation)) { removedLocations.push(oldLocation); } } } catch (err) { _didIteratorError20 = true; _iteratorError20 = err; } finally { try { if (!_iteratorNormalCompletion20 && _iterator20.return != null) { _iterator20.return(); } } finally { if (_didIteratorError20) { throw _iteratorError20; } } } return removedLocations; } function findRemovedDirectiveLocations(oldSchema, newSchema) { var removedLocations = []; var oldSchemaDirectiveMap = getDirectiveMapForSchema(oldSchema); var _iteratorNormalCompletion21 = true; var _didIteratorError21 = false; var _iteratorError21 = undefined; try { for (var _iterator21 = newSchema.getDirectives()[Symbol.iterator](), _step21; !(_iteratorNormalCompletion21 = (_step21 = _iterator21.next()).done); _iteratorNormalCompletion21 = true) { var newDirective = _step21.value; var oldDirective = oldSchemaDirectiveMap[newDirective.name]; if (!oldDirective) { continue; } var _iteratorNormalCompletion22 = true; var _didIteratorError22 = false; var _iteratorError22 = undefined; try { for (var _iterator22 = findRemovedLocationsForDirective(oldDirective, newDirective)[Symbol.iterator](), _step22; !(_iteratorNormalCompletion22 = (_step22 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) { var location = _step22.value; removedLocations.push({ type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED, description: "".concat(location, " was removed from ").concat(newDirective.name) }); } } catch (err) { _didIteratorError22 = true; _iteratorError22 = err; } finally { try { if (!_iteratorNormalCompletion22 && _iterator22.return != null) { _iterator22.return(); } } finally { if (_didIteratorError22) { throw _iteratorError22; } } } } } catch (err) { _didIteratorError21 = true; _iteratorError21 = err; } finally { try { if (!_iteratorNormalCompletion21 && _iterator21.return != null) { _iterator21.return(); } } finally { if (_didIteratorError21) { throw _iteratorError21; } } } return removedLocations; } function getDirectiveMapForSchema(schema) { return Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(schema.getDirectives(), function (dir) { return dir.name; }); } function getArgumentMapForDirective(directive) { return Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_keyMap__["a" /* default */])(directive.args, function (arg) { return arg.name; }); } /***/ }), /***/ "./node_modules/graphql/utilities/findDeprecatedUsages.mjs": /*!*****************************************************************!*\ !*** ./node_modules/graphql/utilities/findDeprecatedUsages.mjs ***! \*****************************************************************/ /*! exports provided: findDeprecatedUsages */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export findDeprecatedUsages */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_visitor__ = __webpack_require__(/*! ../language/visitor */ "./node_modules/graphql/language/visitor.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__TypeInfo__ = __webpack_require__(/*! ./TypeInfo */ "./node_modules/graphql/utilities/TypeInfo.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * A validation rule which reports deprecated usages. * * Returns a list of GraphQLError instances describing each deprecated use. */ function findDeprecatedUsages(schema, ast) { var errors = []; var typeInfo = new __WEBPACK_IMPORTED_MODULE_3__TypeInfo__["a" /* TypeInfo */](schema); Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["a" /* visit */])(ast, Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["c" /* visitWithTypeInfo */])(typeInfo, { Field: function Field(node) { var fieldDef = typeInfo.getFieldDef(); if (fieldDef && fieldDef.isDeprecated) { var parentType = typeInfo.getParentType(); if (parentType) { var reason = fieldDef.deprecationReason; errors.push(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("The field ".concat(parentType.name, ".").concat(fieldDef.name, " is deprecated.") + (reason ? ' ' + reason : ''), [node])); } } }, EnumValue: function EnumValue(node) { var enumVal = typeInfo.getEnumValue(); if (enumVal && enumVal.isDeprecated) { var type = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(typeInfo.getInputType()); if (type) { var reason = enumVal.deprecationReason; errors.push(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]("The enum value ".concat(type.name, ".").concat(enumVal.name, " is deprecated.") + (reason ? ' ' + reason : ''), [node])); } } } })); return errors; } /***/ }), /***/ "./node_modules/graphql/utilities/getOperationAST.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/utilities/getOperationAST.mjs ***! \************************************************************/ /*! exports provided: getOperationAST */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export getOperationAST */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Returns an operation AST given a document AST and optionally an operation * name. If a name is not provided, an operation is only returned if only one is * provided in the document. */ function getOperationAST(documentAST, operationName) { var operation = null; for (var i = 0; i < documentAST.definitions.length; i++) { var definition = documentAST.definitions[i]; if (definition.kind === __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].OPERATION_DEFINITION) { if (!operationName) { // If no operation name was provided, only return an Operation if there // is one defined in the document. Upon encountering the second, return // null. if (operation) { return null; } operation = definition; } else if (definition.name && definition.name.value === operationName) { return definition; } } } return operation; } /***/ }), /***/ "./node_modules/graphql/utilities/getOperationRootType.mjs": /*!*****************************************************************!*\ !*** ./node_modules/graphql/utilities/getOperationRootType.mjs ***! \*****************************************************************/ /*! exports provided: getOperationRootType */ /*! exports used: getOperationRootType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = getOperationRootType; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Extracts the root type of the operation from the schema. */ function getOperationRootType(schema, operation) { switch (operation.operation) { case 'query': var queryType = schema.getQueryType(); if (!queryType) { throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]('Schema does not define the required query root type.', [operation]); } return queryType; case 'mutation': var mutationType = schema.getMutationType(); if (!mutationType) { throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]('Schema is not configured for mutations.', [operation]); } return mutationType; case 'subscription': var subscriptionType = schema.getSubscriptionType(); if (!subscriptionType) { throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]('Schema is not configured for subscriptions.', [operation]); } return subscriptionType; default: throw new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */]('Can only have query, mutation and subscription operations.', [operation]); } } /***/ }), /***/ "./node_modules/graphql/utilities/index.mjs": /*!**************************************************!*\ !*** ./node_modules/graphql/utilities/index.mjs ***! \**************************************************/ /*! exports provided: getIntrospectionQuery, introspectionQuery, getOperationAST, getOperationRootType, introspectionFromSchema, buildClientSchema, buildASTSchema, buildSchema, getDescription, extendSchema, lexicographicSortSchema, printSchema, printType, printIntrospectionSchema, typeFromAST, valueFromAST, valueFromASTUntyped, astFromValue, TypeInfo, coerceValue, isValidJSValue, isValidLiteralValue, concatAST, separateOperations, isEqualType, isTypeSubTypeOf, doTypesOverlap, assertValidName, isValidNameError, BreakingChangeType, DangerousChangeType, findBreakingChanges, findDangerousChanges, findDeprecatedUsages */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__introspectionQuery__ = __webpack_require__(/*! ./introspectionQuery */ "./node_modules/graphql/utilities/introspectionQuery.mjs"); /* unused harmony reexport getIntrospectionQuery */ /* unused harmony reexport introspectionQuery */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getOperationAST__ = __webpack_require__(/*! ./getOperationAST */ "./node_modules/graphql/utilities/getOperationAST.mjs"); /* unused harmony reexport getOperationAST */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__getOperationRootType__ = __webpack_require__(/*! ./getOperationRootType */ "./node_modules/graphql/utilities/getOperationRootType.mjs"); /* unused harmony reexport getOperationRootType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__introspectionFromSchema__ = __webpack_require__(/*! ./introspectionFromSchema */ "./node_modules/graphql/utilities/introspectionFromSchema.mjs"); /* unused harmony reexport introspectionFromSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__buildClientSchema__ = __webpack_require__(/*! ./buildClientSchema */ "./node_modules/graphql/utilities/buildClientSchema.mjs"); /* unused harmony reexport buildClientSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__buildASTSchema__ = __webpack_require__(/*! ./buildASTSchema */ "./node_modules/graphql/utilities/buildASTSchema.mjs"); /* unused harmony reexport buildASTSchema */ /* unused harmony reexport buildSchema */ /* unused harmony reexport getDescription */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__extendSchema__ = __webpack_require__(/*! ./extendSchema */ "./node_modules/graphql/utilities/extendSchema.mjs"); /* unused harmony reexport extendSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__lexicographicSortSchema__ = __webpack_require__(/*! ./lexicographicSortSchema */ "./node_modules/graphql/utilities/lexicographicSortSchema.mjs"); /* unused harmony reexport lexicographicSortSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__schemaPrinter__ = __webpack_require__(/*! ./schemaPrinter */ "./node_modules/graphql/utilities/schemaPrinter.mjs"); /* unused harmony reexport printSchema */ /* unused harmony reexport printType */ /* unused harmony reexport printIntrospectionSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__typeFromAST__ = __webpack_require__(/*! ./typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /* unused harmony reexport typeFromAST */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__valueFromAST__ = __webpack_require__(/*! ./valueFromAST */ "./node_modules/graphql/utilities/valueFromAST.mjs"); /* unused harmony reexport valueFromAST */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__valueFromASTUntyped__ = __webpack_require__(/*! ./valueFromASTUntyped */ "./node_modules/graphql/utilities/valueFromASTUntyped.mjs"); /* unused harmony reexport valueFromASTUntyped */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__astFromValue__ = __webpack_require__(/*! ./astFromValue */ "./node_modules/graphql/utilities/astFromValue.mjs"); /* unused harmony reexport astFromValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__TypeInfo__ = __webpack_require__(/*! ./TypeInfo */ "./node_modules/graphql/utilities/TypeInfo.mjs"); /* unused harmony reexport TypeInfo */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__coerceValue__ = __webpack_require__(/*! ./coerceValue */ "./node_modules/graphql/utilities/coerceValue.mjs"); /* unused harmony reexport coerceValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__isValidJSValue__ = __webpack_require__(/*! ./isValidJSValue */ "./node_modules/graphql/utilities/isValidJSValue.mjs"); /* unused harmony reexport isValidJSValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__isValidLiteralValue__ = __webpack_require__(/*! ./isValidLiteralValue */ "./node_modules/graphql/utilities/isValidLiteralValue.mjs"); /* unused harmony reexport isValidLiteralValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__concatAST__ = __webpack_require__(/*! ./concatAST */ "./node_modules/graphql/utilities/concatAST.mjs"); /* unused harmony reexport concatAST */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__separateOperations__ = __webpack_require__(/*! ./separateOperations */ "./node_modules/graphql/utilities/separateOperations.mjs"); /* unused harmony reexport separateOperations */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__typeComparators__ = __webpack_require__(/*! ./typeComparators */ "./node_modules/graphql/utilities/typeComparators.mjs"); /* unused harmony reexport isEqualType */ /* unused harmony reexport isTypeSubTypeOf */ /* unused harmony reexport doTypesOverlap */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__assertValidName__ = __webpack_require__(/*! ./assertValidName */ "./node_modules/graphql/utilities/assertValidName.mjs"); /* unused harmony reexport assertValidName */ /* unused harmony reexport isValidNameError */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__findBreakingChanges__ = __webpack_require__(/*! ./findBreakingChanges */ "./node_modules/graphql/utilities/findBreakingChanges.mjs"); /* unused harmony reexport BreakingChangeType */ /* unused harmony reexport DangerousChangeType */ /* unused harmony reexport findBreakingChanges */ /* unused harmony reexport findDangerousChanges */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__findDeprecatedUsages__ = __webpack_require__(/*! ./findDeprecatedUsages */ "./node_modules/graphql/utilities/findDeprecatedUsages.mjs"); /* unused harmony reexport findDeprecatedUsages */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // The GraphQL query recommended for a full schema introspection. // Gets the target Operation from a Document // Gets the Type for the target Operation AST. // Convert a GraphQLSchema to an IntrospectionQuery // Build a GraphQLSchema from an introspection result. // Build a GraphQLSchema from GraphQL Schema language. // Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST. // Sort a GraphQLSchema. // Print a GraphQLSchema to GraphQL Schema language. // Create a GraphQLType from a GraphQL language AST. // Create a JavaScript value from a GraphQL language AST with a type. // Create a JavaScript value from a GraphQL language AST without a type. // Create a GraphQL language AST from a JavaScript value. // A helper to use within recursive-descent visitors which need to be aware of // the GraphQL type system. // Coerces a JavaScript value to a GraphQL type, or produces errors. // @deprecated use coerceValue - will be removed in v15 // @deprecated use validation - will be removed in v15 // Concatenates multiple AST together. // Separates an AST into an AST per Operation. // Comparators for types // Asserts that a string is a valid GraphQL name // Compares two GraphQLSchemas and detects breaking changes. // Report all deprecated usage within a GraphQL document. /***/ }), /***/ "./node_modules/graphql/utilities/introspectionFromSchema.mjs": /*!********************************************************************!*\ !*** ./node_modules/graphql/utilities/introspectionFromSchema.mjs ***! \********************************************************************/ /*! exports provided: introspectionFromSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export introspectionFromSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__introspectionQuery__ = __webpack_require__(/*! ./introspectionQuery */ "./node_modules/graphql/utilities/introspectionQuery.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__execution_execute__ = __webpack_require__(/*! ../execution/execute */ "./node_modules/graphql/execution/execute.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__language_parser__ = __webpack_require__(/*! ../language/parser */ "./node_modules/graphql/language/parser.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Build an IntrospectionQuery from a GraphQLSchema * * IntrospectionQuery is useful for utilities that care about type and field * relationships, but do not need to traverse through those relationships. * * This is the inverse of buildClientSchema. The primary use case is outside * of the server context, for instance when doing schema comparisons. */ function introspectionFromSchema(schema, options) { var queryAST = Object(__WEBPACK_IMPORTED_MODULE_3__language_parser__["a" /* parse */])(Object(__WEBPACK_IMPORTED_MODULE_1__introspectionQuery__["a" /* getIntrospectionQuery */])(options)); var result = Object(__WEBPACK_IMPORTED_MODULE_2__execution_execute__["f" /* execute */])(schema, queryAST); !(!result.then && !result.errors && result.data) ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0) : void 0; return result.data; } /***/ }), /***/ "./node_modules/graphql/utilities/introspectionQuery.mjs": /*!***************************************************************!*\ !*** ./node_modules/graphql/utilities/introspectionQuery.mjs ***! \***************************************************************/ /*! exports provided: getIntrospectionQuery, introspectionQuery */ /*! exports used: getIntrospectionQuery */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = getIntrospectionQuery; /* unused harmony export introspectionQuery */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function getIntrospectionQuery(options) { var descriptions = !(options && options.descriptions === false); return "\n query IntrospectionQuery {\n __schema {\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n ".concat(descriptions ? 'description' : '', "\n locations\n args {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n ").concat(descriptions ? 'description' : '', "\n fields(includeDeprecated: true) {\n name\n ").concat(descriptions ? 'description' : '', "\n args {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n ").concat(descriptions ? 'description' : '', "\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n ").concat(descriptions ? 'description' : '', "\n type { ...TypeRef }\n defaultValue\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n "); } /** * Deprecated, call getIntrospectionQuery directly. * * This function will be removed in v15 */ var introspectionQuery = getIntrospectionQuery(); /***/ }), /***/ "./node_modules/graphql/utilities/isValidJSValue.mjs": /*!***********************************************************!*\ !*** ./node_modules/graphql/utilities/isValidJSValue.mjs ***! \***********************************************************/ /*! exports provided: isValidJSValue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export isValidJSValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__coerceValue__ = __webpack_require__(/*! ./coerceValue */ "./node_modules/graphql/utilities/coerceValue.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Deprecated. Use coerceValue() directly for richer information. * * This function will be removed in v15 */ function isValidJSValue(value, type) { var errors = Object(__WEBPACK_IMPORTED_MODULE_0__coerceValue__["a" /* coerceValue */])(value, type).errors; return errors ? errors.map(function (error) { return error.message; }) : []; } /***/ }), /***/ "./node_modules/graphql/utilities/isValidLiteralValue.mjs": /*!****************************************************************!*\ !*** ./node_modules/graphql/utilities/isValidLiteralValue.mjs ***! \****************************************************************/ /*! exports provided: isValidLiteralValue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export isValidLiteralValue */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__TypeInfo__ = __webpack_require__(/*! ./TypeInfo */ "./node_modules/graphql/utilities/TypeInfo.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language_visitor__ = __webpack_require__(/*! ../language/visitor */ "./node_modules/graphql/language/visitor.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__type_schema__ = __webpack_require__(/*! ../type/schema */ "./node_modules/graphql/type/schema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__validation_rules_ValuesOfCorrectType__ = __webpack_require__(/*! ../validation/rules/ValuesOfCorrectType */ "./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__validation_ValidationContext__ = __webpack_require__(/*! ../validation/ValidationContext */ "./node_modules/graphql/validation/ValidationContext.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Utility which determines if a value literal node is valid for an input type. * * Deprecated. Rely on validation for documents containing literal values. * * This function will be removed in v15 */ function isValidLiteralValue(type, valueNode) { var emptySchema = new __WEBPACK_IMPORTED_MODULE_3__type_schema__["a" /* GraphQLSchema */]({}); var emptyDoc = { kind: __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].DOCUMENT, definitions: [] }; var typeInfo = new __WEBPACK_IMPORTED_MODULE_0__TypeInfo__["a" /* TypeInfo */](emptySchema, undefined, type); var context = new __WEBPACK_IMPORTED_MODULE_5__validation_ValidationContext__["b" /* ValidationContext */](emptySchema, emptyDoc, typeInfo); var visitor = Object(__WEBPACK_IMPORTED_MODULE_4__validation_rules_ValuesOfCorrectType__["a" /* ValuesOfCorrectType */])(context); Object(__WEBPACK_IMPORTED_MODULE_2__language_visitor__["a" /* visit */])(valueNode, Object(__WEBPACK_IMPORTED_MODULE_2__language_visitor__["c" /* visitWithTypeInfo */])(typeInfo, visitor)); return context.getErrors(); } /***/ }), /***/ "./node_modules/graphql/utilities/lexicographicSortSchema.mjs": /*!********************************************************************!*\ !*** ./node_modules/graphql/utilities/lexicographicSortSchema.mjs ***! \********************************************************************/ /*! exports provided: lexicographicSortSchema */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export lexicographicSortSchema */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_keyValMap__ = __webpack_require__(/*! ../jsutils/keyValMap */ "./node_modules/graphql/jsutils/keyValMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_schema__ = __webpack_require__(/*! ../type/schema */ "./node_modules/graphql/type/schema.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Sort GraphQLSchema. */ function lexicographicSortSchema(schema) { var cache = Object.create(null); var sortMaybeType = function sortMaybeType(maybeType) { return maybeType && sortNamedType(maybeType); }; return new __WEBPACK_IMPORTED_MODULE_2__type_schema__["a" /* GraphQLSchema */]({ types: sortTypes(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_objectValues__["a" /* default */])(schema.getTypeMap())), directives: sortByName(schema.getDirectives()).map(sortDirective), query: sortMaybeType(schema.getQueryType()), mutation: sortMaybeType(schema.getMutationType()), subscription: sortMaybeType(schema.getSubscriptionType()), astNode: schema.astNode }); function sortDirective(directive) { return new __WEBPACK_IMPORTED_MODULE_3__type_directives__["c" /* GraphQLDirective */]({ name: directive.name, description: directive.description, locations: sortBy(directive.locations, function (x) { return x; }), args: sortArgs(directive.args), astNode: directive.astNode }); } function sortArgs(args) { return Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_keyValMap__["a" /* default */])(sortByName(args), function (arg) { return arg.name; }, function (arg) { return _objectSpread({}, arg, { type: sortType(arg.type) }); }); } function sortFields(fieldsMap) { return sortObjMap(fieldsMap, function (field) { return { type: sortType(field.type), args: sortArgs(field.args), resolve: field.resolve, subscribe: field.subscribe, deprecationReason: field.deprecationReason, description: field.description, astNode: field.astNode }; }); } function sortInputFields(fieldsMap) { return sortObjMap(fieldsMap, function (field) { return { type: sortType(field.type), defaultValue: field.defaultValue, description: field.description, astNode: field.astNode }; }); } function sortType(type) { if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["u" /* isListType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["d" /* GraphQLList */](sortType(type.ofType)); } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["w" /* isNonNullType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["e" /* GraphQLNonNull */](sortType(type.ofType)); } return sortNamedType(type); } function sortTypes(arr) { return sortByName(arr).map(sortNamedType); } function sortNamedType(type) { if (Object(__WEBPACK_IMPORTED_MODULE_5__type_scalars__["d" /* isSpecifiedScalarType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_6__type_introspection__["g" /* isIntrospectionType */])(type)) { return type; } var sortedType = cache[type.name]; if (!sortedType) { sortedType = sortNamedTypeImpl(type); cache[type.name] = sortedType; } return sortedType; } function sortNamedTypeImpl(type) { if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["B" /* isScalarType */])(type)) { return type; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["x" /* isObjectType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["f" /* GraphQLObjectType */]({ name: type.name, interfaces: function interfaces() { return sortTypes(type.getInterfaces()); }, fields: function fields() { return sortFields(type.getFields()); }, isTypeOf: type.isTypeOf, description: type.description, astNode: type.astNode, extensionASTNodes: type.extensionASTNodes }); } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["s" /* isInterfaceType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["c" /* GraphQLInterfaceType */]({ name: type.name, fields: function fields() { return sortFields(type.getFields()); }, resolveType: type.resolveType, description: type.description, astNode: type.astNode, extensionASTNodes: type.extensionASTNodes }); } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["D" /* isUnionType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["h" /* GraphQLUnionType */]({ name: type.name, types: function types() { return sortTypes(type.getTypes()); }, resolveType: type.resolveType, description: type.description, astNode: type.astNode }); } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["p" /* isEnumType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["a" /* GraphQLEnumType */]({ name: type.name, values: Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_keyValMap__["a" /* default */])(sortByName(type.getValues()), function (val) { return val.name; }, function (val) { return { value: val.value, deprecationReason: val.deprecationReason, description: val.description, astNode: val.astNode }; }), description: type.description, astNode: type.astNode }); } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["q" /* isInputObjectType */])(type)) { return new __WEBPACK_IMPORTED_MODULE_4__type_definition__["b" /* GraphQLInputObjectType */]({ name: type.name, fields: function fields() { return sortInputFields(type.getFields()); }, description: type.description, astNode: type.astNode }); } throw new Error("Unknown type: \"".concat(type, "\"")); } } function sortObjMap(map, sortValueFn) { var sortedMap = Object.create(null); var sortedKeys = sortBy(Object.keys(map), function (x) { return x; }); for (var _i = 0; _i < sortedKeys.length; _i++) { var key = sortedKeys[_i]; var value = map[key]; sortedMap[key] = sortValueFn ? sortValueFn(value) : value; } return sortedMap; } function sortByName(array) { return sortBy(array, function (obj) { return obj.name; }); } function sortBy(array, mapToKey) { return array.slice().sort(function (obj1, obj2) { var key1 = mapToKey(obj1); var key2 = mapToKey(obj2); return key1.localeCompare(key2); }); } /***/ }), /***/ "./node_modules/graphql/utilities/schemaPrinter.mjs": /*!**********************************************************!*\ !*** ./node_modules/graphql/utilities/schemaPrinter.mjs ***! \**********************************************************/ /*! exports provided: printSchema, printIntrospectionSchema, printType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export printSchema */ /* unused harmony export printIntrospectionSchema */ /* unused harmony export printType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_isNullish__ = __webpack_require__(/*! ../jsutils/isNullish */ "./node_modules/graphql/jsutils/isNullish.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utilities_astFromValue__ = __webpack_require__(/*! ../utilities/astFromValue */ "./node_modules/graphql/utilities/astFromValue.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__language_printer__ = __webpack_require__(/*! ../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_scalars__ = __webpack_require__(/*! ../type/scalars */ "./node_modules/graphql/type/scalars.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__type_directives__ = __webpack_require__(/*! ../type/directives */ "./node_modules/graphql/type/directives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__type_introspection__ = __webpack_require__(/*! ../type/introspection */ "./node_modules/graphql/type/introspection.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Accepts options as a second argument: * * - commentDescriptions: * Provide true to use preceding comments as the description. * */ function printSchema(schema, options) { return printFilteredSchema(schema, function (n) { return !Object(__WEBPACK_IMPORTED_MODULE_7__type_directives__["g" /* isSpecifiedDirective */])(n); }, isDefinedType, options); } function printIntrospectionSchema(schema, options) { return printFilteredSchema(schema, __WEBPACK_IMPORTED_MODULE_7__type_directives__["g" /* isSpecifiedDirective */], __WEBPACK_IMPORTED_MODULE_8__type_introspection__["g" /* isIntrospectionType */], options); } function isDefinedType(type) { return !Object(__WEBPACK_IMPORTED_MODULE_6__type_scalars__["d" /* isSpecifiedScalarType */])(type) && !Object(__WEBPACK_IMPORTED_MODULE_8__type_introspection__["g" /* isIntrospectionType */])(type); } function printFilteredSchema(schema, directiveFilter, typeFilter, options) { var directives = schema.getDirectives().filter(directiveFilter); var typeMap = schema.getTypeMap(); var types = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__["a" /* default */])(typeMap).sort(function (type1, type2) { return type1.name.localeCompare(type2.name); }).filter(typeFilter); return [printSchemaDefinition(schema)].concat(directives.map(function (directive) { return printDirective(directive, options); }), types.map(function (type) { return printType(type, options); })).filter(Boolean).join('\n\n') + '\n'; } function printSchemaDefinition(schema) { if (isSchemaOfCommonNames(schema)) { return; } var operationTypes = []; var queryType = schema.getQueryType(); if (queryType) { operationTypes.push(" query: ".concat(queryType.name)); } var mutationType = schema.getMutationType(); if (mutationType) { operationTypes.push(" mutation: ".concat(mutationType.name)); } var subscriptionType = schema.getSubscriptionType(); if (subscriptionType) { operationTypes.push(" subscription: ".concat(subscriptionType.name)); } return "schema {\n".concat(operationTypes.join('\n'), "\n}"); } /** * GraphQL schema define root types for each type of operation. These types are * the same as any other type and can be named in any manner, however there is * a common naming convention: * * schema { * query: Query * mutation: Mutation * } * * When using this naming convention, the schema description can be omitted. */ function isSchemaOfCommonNames(schema) { var queryType = schema.getQueryType(); if (queryType && queryType.name !== 'Query') { return false; } var mutationType = schema.getMutationType(); if (mutationType && mutationType.name !== 'Mutation') { return false; } var subscriptionType = schema.getSubscriptionType(); if (subscriptionType && subscriptionType.name !== 'Subscription') { return false; } return true; } function printType(type, options) { if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["B" /* isScalarType */])(type)) { return printScalar(type, options); } else if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["x" /* isObjectType */])(type)) { return printObject(type, options); } else if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["s" /* isInterfaceType */])(type)) { return printInterface(type, options); } else if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["D" /* isUnionType */])(type)) { return printUnion(type, options); } else if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["p" /* isEnumType */])(type)) { return printEnum(type, options); } else if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["q" /* isInputObjectType */])(type)) { return printInputObject(type, options); } /* istanbul ignore next */ throw new Error("Unknown type: ".concat(type, ".")); } function printScalar(type, options) { return printDescription(options, type) + "scalar ".concat(type.name); } function printObject(type, options) { var interfaces = type.getInterfaces(); var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) { return i.name; }).join(' & ') : ''; return printDescription(options, type) + "type ".concat(type.name).concat(implementedInterfaces, " {\n") + printFields(options, type) + '\n' + '}'; } function printInterface(type, options) { return printDescription(options, type) + "interface ".concat(type.name, " {\n") + printFields(options, type) + '\n' + '}'; } function printUnion(type, options) { return printDescription(options, type) + "union ".concat(type.name, " = ").concat(type.getTypes().join(' | ')); } function printEnum(type, options) { return printDescription(options, type) + "enum ".concat(type.name, " {\n") + printEnumValues(type.getValues(), options) + '\n' + '}'; } function printEnumValues(values, options) { return values.map(function (value, i) { return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value); }).join('\n'); } function printInputObject(type, options) { var fields = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__["a" /* default */])(type.getFields()); return printDescription(options, type) + "input ".concat(type.name, " {\n") + fields.map(function (f, i) { return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f); }).join('\n') + '\n' + '}'; } function printFields(options, type) { var fields = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__["a" /* default */])(type.getFields()); return fields.map(function (f, i) { return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f); }).join('\n'); } function printArgs(options, args) { var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (args.length === 0) { return ''; } // If every arg does not have a description, print them on one line. if (args.every(function (arg) { return !arg.description; })) { return '(' + args.map(printInputValue).join(', ') + ')'; } return '(\n' + args.map(function (arg, i) { return printDescription(options, arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg); }).join('\n') + '\n' + indentation + ')'; } function printInputValue(arg) { var argDecl = arg.name + ': ' + String(arg.type); if (!Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(arg.defaultValue)) { argDecl += " = ".concat(Object(__WEBPACK_IMPORTED_MODULE_4__language_printer__["a" /* print */])(Object(__WEBPACK_IMPORTED_MODULE_3__utilities_astFromValue__["a" /* astFromValue */])(arg.defaultValue, arg.type))); } return argDecl; } function printDirective(directive, options) { return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + ' on ' + directive.locations.join(' | '); } function printDeprecated(fieldOrEnumVal) { if (!fieldOrEnumVal.isDeprecated) { return ''; } var reason = fieldOrEnumVal.deprecationReason; if (Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_isNullish__["a" /* default */])(reason) || reason === '' || reason === __WEBPACK_IMPORTED_MODULE_7__type_directives__["a" /* DEFAULT_DEPRECATION_REASON */]) { return ' @deprecated'; } return ' @deprecated(reason: ' + Object(__WEBPACK_IMPORTED_MODULE_4__language_printer__["a" /* print */])(Object(__WEBPACK_IMPORTED_MODULE_3__utilities_astFromValue__["a" /* astFromValue */])(reason, __WEBPACK_IMPORTED_MODULE_6__type_scalars__["c" /* GraphQLString */])) + ')'; } function printDescription(options, def) { var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; if (!def.description) { return ''; } var lines = descriptionLines(def.description, 120 - indentation.length); if (options && options.commentDescriptions) { return printDescriptionWithComments(lines, indentation, firstInBlock); } var description = indentation && !firstInBlock ? '\n' + indentation + '"""' : indentation + '"""'; // In some circumstances, a single line can be used for the description. if (lines.length === 1 && lines[0].length < 70 && lines[0][lines[0].length - 1] !== '"') { return description + escapeQuote(lines[0]) + '"""\n'; } // Format a multi-line block quote to account for leading space. var hasLeadingSpace = lines[0][0] === ' ' || lines[0][0] === '\t'; if (!hasLeadingSpace) { description += '\n'; } for (var i = 0; i < lines.length; i++) { if (i !== 0 || !hasLeadingSpace) { description += indentation; } description += escapeQuote(lines[i]) + '\n'; } description += indentation + '"""\n'; return description; } function escapeQuote(line) { return line.replace(/"""/g, '\\"""'); } function printDescriptionWithComments(lines, indentation, firstInBlock) { var description = indentation && !firstInBlock ? '\n' : ''; for (var i = 0; i < lines.length; i++) { if (lines[i] === '') { description += indentation + '#\n'; } else { description += indentation + '# ' + lines[i] + '\n'; } } return description; } function descriptionLines(description, maxLen) { var lines = []; var rawLines = description.split('\n'); for (var i = 0; i < rawLines.length; i++) { if (rawLines[i] === '') { lines.push(rawLines[i]); } else { // For > 120 character long lines, cut at space boundaries into sublines // of ~80 chars. var sublines = breakLine(rawLines[i], maxLen); for (var j = 0; j < sublines.length; j++) { lines.push(sublines[j]); } } } return lines; } function breakLine(line, maxLen) { if (line.length < maxLen + 5) { return [line]; } var parts = line.split(new RegExp("((?: |^).{15,".concat(maxLen - 40, "}(?= |$))"))); if (parts.length < 4) { return [line]; } var sublines = [parts[0] + parts[1] + parts[2]]; for (var i = 3; i < parts.length; i += 2) { sublines.push(parts[i].slice(1) + parts[i + 1]); } return sublines; } /***/ }), /***/ "./node_modules/graphql/utilities/separateOperations.mjs": /*!***************************************************************!*\ !*** ./node_modules/graphql/utilities/separateOperations.mjs ***! \***************************************************************/ /*! exports provided: separateOperations */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export separateOperations */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_visitor__ = __webpack_require__(/*! ../language/visitor */ "./node_modules/graphql/language/visitor.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * separateOperations accepts a single AST document which may contain many * operations and fragments and returns a collection of AST documents each of * which contains a single operation as well the fragment definitions it * refers to. */ function separateOperations(documentAST) { var operations = []; var fragments = Object.create(null); var positions = new Map(); var depGraph = Object.create(null); var fromName; var idx = 0; // Populate metadata and build a dependency graph. Object(__WEBPACK_IMPORTED_MODULE_0__language_visitor__["a" /* visit */])(documentAST, { OperationDefinition: function OperationDefinition(node) { fromName = opName(node); operations.push(node); positions.set(node, idx++); }, FragmentDefinition: function FragmentDefinition(node) { fromName = node.name.value; fragments[fromName] = node; positions.set(node, idx++); }, FragmentSpread: function FragmentSpread(node) { var toName = node.name.value; (depGraph[fromName] || (depGraph[fromName] = Object.create(null)))[toName] = true; } }); // For each operation, produce a new synthesized AST which includes only what // is necessary for completing that operation. var separatedDocumentASTs = Object.create(null); for (var _i = 0; _i < operations.length; _i++) { var operation = operations[_i]; var operationName = opName(operation); var dependencies = Object.create(null); collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted // to retain the same order as the original document. var definitions = [operation]; var _arr = Object.keys(dependencies); for (var _i2 = 0; _i2 < _arr.length; _i2++) { var name = _arr[_i2]; definitions.push(fragments[name]); } definitions.sort(function (n1, n2) { return (positions.get(n1) || 0) - (positions.get(n2) || 0); }); separatedDocumentASTs[operationName] = { kind: 'Document', definitions: definitions }; } return separatedDocumentASTs; } // Provides the empty string for anonymous operations. function opName(operation) { return operation.name ? operation.name.value : ''; } // From a dependency graph, collects a list of transitive dependencies by // recursing through a dependency graph. function collectTransitiveDependencies(collected, depGraph, fromName) { var immediateDeps = depGraph[fromName]; if (immediateDeps) { var _arr2 = Object.keys(immediateDeps); for (var _i3 = 0; _i3 < _arr2.length; _i3++) { var toName = _arr2[_i3]; if (!collected[toName]) { collected[toName] = true; collectTransitiveDependencies(collected, depGraph, toName); } } } } /***/ }), /***/ "./node_modules/graphql/utilities/typeComparators.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/utilities/typeComparators.mjs ***! \************************************************************/ /*! exports provided: isEqualType, isTypeSubTypeOf, doTypesOverlap */ /*! exports used: doTypesOverlap, isEqualType, isTypeSubTypeOf */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = isEqualType; /* harmony export (immutable) */ __webpack_exports__["c"] = isTypeSubTypeOf; /* harmony export (immutable) */ __webpack_exports__["a"] = doTypesOverlap; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Provided two types, return true if the types are equal (invariant). */ function isEqualType(typeA, typeB) { // Equivalent types are equal. if (typeA === typeB) { return true; } // If either type is non-null, the other must also be non-null. if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(typeA) && Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(typeB)) { return isEqualType(typeA.ofType, typeB.ofType); } // If either type is a list, the other must also be a list. if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(typeA) && Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(typeB)) { return isEqualType(typeA.ofType, typeB.ofType); } // Otherwise the types are not equal. return false; } /** * Provided a type and a super type, return true if the first type is either * equal or a subset of the second super type (covariant). */ function isTypeSubTypeOf(schema, maybeSubType, superType) { // Equivalent type is a valid subtype if (maybeSubType === superType) { return true; } // If superType is non-null, maybeSubType must also be non-null. if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(superType)) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(maybeSubType)) { return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); } return false; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["w" /* isNonNullType */])(maybeSubType)) { // If superType is nullable, maybeSubType may be non-null or nullable. return isTypeSubTypeOf(schema, maybeSubType.ofType, superType); } // If superType type is a list, maybeSubType type must also be a list. if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(superType)) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(maybeSubType)) { return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); } return false; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["u" /* isListType */])(maybeSubType)) { // If superType is not a list, maybeSubType must also be not a list. return false; } // If superType type is an abstract type, maybeSubType type may be a currently // possible object type. if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["n" /* isAbstractType */])(superType) && Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["x" /* isObjectType */])(maybeSubType) && schema.isPossibleType(superType, maybeSubType)) { return true; } // Otherwise, the child type is not a valid subtype of the parent type. return false; } /** * Provided two composite types, determine if they "overlap". Two composite * types overlap when the Sets of possible concrete types for each intersect. * * This is often used to determine if a fragment of a given type could possibly * be visited in a context of another type. * * This function is commutative. */ function doTypesOverlap(schema, typeA, typeB) { // Equivalent types overlap if (typeA === typeB) { return true; } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["n" /* isAbstractType */])(typeA)) { if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["n" /* isAbstractType */])(typeB)) { // If both types are abstract, then determine if there is any intersection // between possible concrete types of each. return schema.getPossibleTypes(typeA).some(function (type) { return schema.isPossibleType(typeB, type); }); } // Determine if the latter type is a possible concrete type of the former. return schema.isPossibleType(typeA, typeB); } if (Object(__WEBPACK_IMPORTED_MODULE_0__type_definition__["n" /* isAbstractType */])(typeB)) { // Determine if the former type is a possible concrete type of the latter. return schema.isPossibleType(typeB, typeA); } // Otherwise the types do not overlap. return false; } /***/ }), /***/ "./node_modules/graphql/utilities/typeFromAST.mjs": /*!********************************************************!*\ !*** ./node_modules/graphql/utilities/typeFromAST.mjs ***! \********************************************************/ /*! exports provided: typeFromAST */ /*! exports used: typeFromAST */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = typeFromAST; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function typeFromAST(schema, typeNode) { /* eslint-enable no-redeclare */ var innerType; if (typeNode.kind === __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].LIST_TYPE) { innerType = typeFromAST(schema, typeNode.type); return innerType && Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["d" /* GraphQLList */])(innerType); } if (typeNode.kind === __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].NON_NULL_TYPE) { innerType = typeFromAST(schema, typeNode.type); return innerType && Object(__WEBPACK_IMPORTED_MODULE_1__type_definition__["e" /* GraphQLNonNull */])(innerType); } if (typeNode.kind === __WEBPACK_IMPORTED_MODULE_0__language_kinds__["a" /* Kind */].NAMED_TYPE) { return schema.getType(typeNode.name.value); } /* istanbul ignore next */ throw new Error("Unexpected type kind: ".concat(typeNode.kind, ".")); } /***/ }), /***/ "./node_modules/graphql/utilities/valueFromAST.mjs": /*!*********************************************************!*\ !*** ./node_modules/graphql/utilities/valueFromAST.mjs ***! \*********************************************************/ /*! exports provided: valueFromAST */ /*! exports used: valueFromAST */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = valueFromAST; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_keyMap__ = __webpack_require__(/*! ../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__ = __webpack_require__(/*! ../jsutils/objectValues */ "./node_modules/graphql/jsutils/objectValues.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__type_definition__ = __webpack_require__(/*! ../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces a JavaScript value given a GraphQL Value AST. * * A GraphQL type must be provided, which will be used to interpret different * GraphQL Value literals. * * Returns `undefined` when the value could not be validly coerced according to * the provided type. * * | GraphQL Value | JSON Value | * | -------------------- | ------------- | * | Input Object | Object | * | List | Array | * | Boolean | Boolean | * | String | String | * | Int / Float | Number | * | Enum Value | Mixed | * | NullValue | null | * */ function valueFromAST(valueNode, type, variables) { if (!valueNode) { // When there is no node, then there is also no value. // Importantly, this is different from returning the value null. return; } if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["w" /* isNonNullType */])(type)) { if (valueNode.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].NULL) { return; // Invalid: intentionally return no value. } return valueFromAST(valueNode, type.ofType, variables); } if (valueNode.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].NULL) { // This is explicitly returning the value null. return null; } if (valueNode.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].VARIABLE) { var variableName = valueNode.name.value; if (!variables || Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(variables[variableName])) { // No valid return value. return; } var variableValue = variables[variableName]; if (variableValue === null && Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["w" /* isNonNullType */])(type)) { return; // Invalid: intentionally return no value. } // Note: This does no further checking that this variable is correct. // This assumes that this query has been validated and the variable // usage here is of the correct type. return variableValue; } if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["u" /* isListType */])(type)) { var itemType = type.ofType; if (valueNode.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].LIST) { var coercedValues = []; var itemNodes = valueNode.values; for (var i = 0; i < itemNodes.length; i++) { if (isMissingVariable(itemNodes[i], variables)) { // If an array contains a missing variable, it is either coerced to // null or if the item type is non-null, it considered invalid. if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["w" /* isNonNullType */])(itemType)) { return; // Invalid: intentionally return no value. } coercedValues.push(null); } else { var itemValue = valueFromAST(itemNodes[i], itemType, variables); if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(itemValue)) { return; // Invalid: intentionally return no value. } coercedValues.push(itemValue); } } return coercedValues; } var coercedValue = valueFromAST(valueNode, itemType, variables); if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(coercedValue)) { return; // Invalid: intentionally return no value. } return [coercedValue]; } if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["q" /* isInputObjectType */])(type)) { if (valueNode.kind !== __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].OBJECT) { return; // Invalid: intentionally return no value. } var coercedObj = Object.create(null); var fieldNodes = Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_keyMap__["a" /* default */])(valueNode.fields, function (field) { return field.name.value; }); var fields = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_objectValues__["a" /* default */])(type.getFields()); for (var _i = 0; _i < fields.length; _i++) { var field = fields[_i]; var fieldNode = fieldNodes[field.name]; if (!fieldNode || isMissingVariable(fieldNode.value, variables)) { if (field.defaultValue !== undefined) { coercedObj[field.name] = field.defaultValue; } else if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["w" /* isNonNullType */])(field.type)) { return; // Invalid: intentionally return no value. } continue; } var fieldValue = valueFromAST(fieldNode.value, field.type, variables); if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(fieldValue)) { return; // Invalid: intentionally return no value. } coercedObj[field.name] = fieldValue; } return coercedObj; } if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["p" /* isEnumType */])(type)) { if (valueNode.kind !== __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].ENUM) { return; // Invalid: intentionally return no value. } var enumValue = type.getValue(valueNode.value); if (!enumValue) { return; // Invalid: intentionally return no value. } return enumValue.value; } if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["B" /* isScalarType */])(type)) { // Scalars fulfill parsing a literal value via parseLiteral(). // Invalid values represent a failure to parse correctly, in which case // no value is returned. var result; try { result = type.parseLiteral(valueNode, variables); } catch (_error) { return; // Invalid: intentionally return no value. } if (Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(result)) { return; // Invalid: intentionally return no value. } return result; } /* istanbul ignore next */ throw new Error("Unknown type: ".concat(type, ".")); } // Returns true if the provided valueNode is a variable which is not defined // in the set of variables. function isMissingVariable(valueNode, variables) { return valueNode.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].VARIABLE && (!variables || Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(variables[valueNode.name.value])); } /***/ }), /***/ "./node_modules/graphql/utilities/valueFromASTUntyped.mjs": /*!****************************************************************!*\ !*** ./node_modules/graphql/utilities/valueFromASTUntyped.mjs ***! \****************************************************************/ /*! exports provided: valueFromASTUntyped */ /*! exports used: valueFromASTUntyped */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = valueFromASTUntyped; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_keyValMap__ = __webpack_require__(/*! ../jsutils/keyValMap */ "./node_modules/graphql/jsutils/keyValMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__ = __webpack_require__(/*! ../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces a JavaScript value given a GraphQL Value AST. * * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value * will reflect the provided GraphQL value AST. * * | GraphQL Value | JavaScript Value | * | -------------------- | ---------------- | * | Input Object | Object | * | List | Array | * | Boolean | Boolean | * | String / Enum | String | * | Int / Float | Number | * | Null | null | * */ function valueFromASTUntyped(valueNode, variables) { switch (valueNode.kind) { case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].NULL: return null; case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].INT: return parseInt(valueNode.value, 10); case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].FLOAT: return parseFloat(valueNode.value); case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].STRING: case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].ENUM: case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].BOOLEAN: return valueNode.value; case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].LIST: return valueNode.values.map(function (node) { return valueFromASTUntyped(node, variables); }); case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].OBJECT: return Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_keyValMap__["a" /* default */])(valueNode.fields, function (field) { return field.name.value; }, function (field) { return valueFromASTUntyped(field.value, variables); }); case __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].VARIABLE: var variableName = valueNode.name.value; return variables && !Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_isInvalid__["a" /* default */])(variables[variableName]) ? variables[variableName] : undefined; } /* istanbul ignore next */ throw new Error('Unexpected value kind: ' + valueNode.kind); } /***/ }), /***/ "./node_modules/graphql/validation/ValidationContext.mjs": /*!***************************************************************!*\ !*** ./node_modules/graphql/validation/ValidationContext.mjs ***! \***************************************************************/ /*! exports provided: ASTValidationContext, SDLValidationContext, ValidationContext */ /*! exports used: SDLValidationContext, ValidationContext */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export ASTValidationContext */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SDLValidationContext; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ValidationContext; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__language_visitor__ = __webpack_require__(/*! ../language/visitor */ "./node_modules/graphql/language/visitor.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utilities_TypeInfo__ = __webpack_require__(/*! ../utilities/TypeInfo */ "./node_modules/graphql/utilities/TypeInfo.mjs"); function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * An instance of this class is passed as the "this" context to all validators, * allowing access to commonly useful contextual information from within a * validation rule. */ var ASTValidationContext = /*#__PURE__*/ function () { function ASTValidationContext(ast) { _defineProperty(this, "_ast", void 0); _defineProperty(this, "_errors", void 0); this._ast = ast; this._errors = []; } var _proto = ASTValidationContext.prototype; _proto.reportError = function reportError(error) { this._errors.push(error); }; _proto.getErrors = function getErrors() { return this._errors; }; _proto.getDocument = function getDocument() { return this._ast; }; return ASTValidationContext; }(); var SDLValidationContext = /*#__PURE__*/ function (_ASTValidationContext) { _inheritsLoose(SDLValidationContext, _ASTValidationContext); function SDLValidationContext(ast, schema) { var _this; _this = _ASTValidationContext.call(this, ast) || this; _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "_schema", void 0); _this._schema = schema; return _this; } var _proto2 = SDLValidationContext.prototype; _proto2.getSchema = function getSchema() { return this._schema; }; return SDLValidationContext; }(ASTValidationContext); var ValidationContext = /*#__PURE__*/ function (_ASTValidationContext2) { _inheritsLoose(ValidationContext, _ASTValidationContext2); function ValidationContext(schema, ast, typeInfo) { var _this2; _this2 = _ASTValidationContext2.call(this, ast) || this; _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_schema", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_typeInfo", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragments", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragmentSpreads", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursivelyReferencedFragments", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_variableUsages", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursiveVariableUsages", void 0); _this2._schema = schema; _this2._typeInfo = typeInfo; _this2._fragmentSpreads = new Map(); _this2._recursivelyReferencedFragments = new Map(); _this2._variableUsages = new Map(); _this2._recursiveVariableUsages = new Map(); return _this2; } var _proto3 = ValidationContext.prototype; _proto3.getSchema = function getSchema() { return this._schema; }; _proto3.getFragment = function getFragment(name) { var fragments = this._fragments; if (!fragments) { this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) { if (statement.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FRAGMENT_DEFINITION) { frags[statement.name.value] = statement; } return frags; }, Object.create(null)); } return fragments[name]; }; _proto3.getFragmentSpreads = function getFragmentSpreads(node) { var spreads = this._fragmentSpreads.get(node); if (!spreads) { spreads = []; var setsToVisit = [node]; while (setsToVisit.length !== 0) { var set = setsToVisit.pop(); for (var i = 0; i < set.selections.length; i++) { var selection = set.selections[i]; if (selection.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FRAGMENT_SPREAD) { spreads.push(selection); } else if (selection.selectionSet) { setsToVisit.push(selection.selectionSet); } } } this._fragmentSpreads.set(node, spreads); } return spreads; }; _proto3.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) { var fragments = this._recursivelyReferencedFragments.get(operation); if (!fragments) { fragments = []; var collectedNames = Object.create(null); var nodesToVisit = [operation.selectionSet]; while (nodesToVisit.length !== 0) { var node = nodesToVisit.pop(); var spreads = this.getFragmentSpreads(node); for (var i = 0; i < spreads.length; i++) { var fragName = spreads[i].name.value; if (collectedNames[fragName] !== true) { collectedNames[fragName] = true; var fragment = this.getFragment(fragName); if (fragment) { fragments.push(fragment); nodesToVisit.push(fragment.selectionSet); } } } } this._recursivelyReferencedFragments.set(operation, fragments); } return fragments; }; _proto3.getVariableUsages = function getVariableUsages(node) { var usages = this._variableUsages.get(node); if (!usages) { var newUsages = []; var typeInfo = new __WEBPACK_IMPORTED_MODULE_2__utilities_TypeInfo__["a" /* TypeInfo */](this._schema); Object(__WEBPACK_IMPORTED_MODULE_0__language_visitor__["a" /* visit */])(node, Object(__WEBPACK_IMPORTED_MODULE_0__language_visitor__["c" /* visitWithTypeInfo */])(typeInfo, { VariableDefinition: function VariableDefinition() { return false; }, Variable: function Variable(variable) { newUsages.push({ node: variable, type: typeInfo.getInputType(), defaultValue: typeInfo.getDefaultValue() }); } })); usages = newUsages; this._variableUsages.set(node, usages); } return usages; }; _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) { var usages = this._recursiveVariableUsages.get(operation); if (!usages) { usages = this.getVariableUsages(operation); var fragments = this.getRecursivelyReferencedFragments(operation); for (var i = 0; i < fragments.length; i++) { Array.prototype.push.apply(usages, this.getVariableUsages(fragments[i])); } this._recursiveVariableUsages.set(operation, usages); } return usages; }; _proto3.getType = function getType() { return this._typeInfo.getType(); }; _proto3.getParentType = function getParentType() { return this._typeInfo.getParentType(); }; _proto3.getInputType = function getInputType() { return this._typeInfo.getInputType(); }; _proto3.getParentInputType = function getParentInputType() { return this._typeInfo.getParentInputType(); }; _proto3.getFieldDef = function getFieldDef() { return this._typeInfo.getFieldDef(); }; _proto3.getDirective = function getDirective() { return this._typeInfo.getDirective(); }; _proto3.getArgument = function getArgument() { return this._typeInfo.getArgument(); }; return ValidationContext; }(ASTValidationContext); /***/ }), /***/ "./node_modules/graphql/validation/index.mjs": /*!***************************************************!*\ !*** ./node_modules/graphql/validation/index.mjs ***! \***************************************************/ /*! exports provided: validate, ValidationContext, specifiedRules, FieldsOnCorrectTypeRule, FragmentsOnCompositeTypesRule, KnownArgumentNamesRule, KnownDirectivesRule, KnownFragmentNamesRule, KnownTypeNamesRule, LoneAnonymousOperationRule, NoFragmentCyclesRule, NoUndefinedVariablesRule, NoUnusedFragmentsRule, NoUnusedVariablesRule, OverlappingFieldsCanBeMergedRule, PossibleFragmentSpreadsRule, ProvidedRequiredArgumentsRule, ScalarLeafsRule, SingleFieldSubscriptionsRule, UniqueArgumentNamesRule, UniqueDirectivesPerLocationRule, UniqueFragmentNamesRule, UniqueInputFieldNamesRule, UniqueOperationNamesRule, UniqueVariableNamesRule, ValuesOfCorrectTypeRule, VariablesAreInputTypesRule, VariablesInAllowedPositionRule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__validate__ = __webpack_require__(/*! ./validate */ "./node_modules/graphql/validation/validate.mjs"); /* unused harmony reexport validate */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ValidationContext__ = __webpack_require__(/*! ./ValidationContext */ "./node_modules/graphql/validation/ValidationContext.mjs"); /* unused harmony reexport ValidationContext */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__specifiedRules__ = __webpack_require__(/*! ./specifiedRules */ "./node_modules/graphql/validation/specifiedRules.mjs"); /* unused harmony reexport specifiedRules */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__rules_FieldsOnCorrectType__ = __webpack_require__(/*! ./rules/FieldsOnCorrectType */ "./node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs"); /* unused harmony reexport FieldsOnCorrectTypeRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rules_FragmentsOnCompositeTypes__ = __webpack_require__(/*! ./rules/FragmentsOnCompositeTypes */ "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs"); /* unused harmony reexport FragmentsOnCompositeTypesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__rules_KnownArgumentNames__ = __webpack_require__(/*! ./rules/KnownArgumentNames */ "./node_modules/graphql/validation/rules/KnownArgumentNames.mjs"); /* unused harmony reexport KnownArgumentNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__rules_KnownDirectives__ = __webpack_require__(/*! ./rules/KnownDirectives */ "./node_modules/graphql/validation/rules/KnownDirectives.mjs"); /* unused harmony reexport KnownDirectivesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__rules_KnownFragmentNames__ = __webpack_require__(/*! ./rules/KnownFragmentNames */ "./node_modules/graphql/validation/rules/KnownFragmentNames.mjs"); /* unused harmony reexport KnownFragmentNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__rules_KnownTypeNames__ = __webpack_require__(/*! ./rules/KnownTypeNames */ "./node_modules/graphql/validation/rules/KnownTypeNames.mjs"); /* unused harmony reexport KnownTypeNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__rules_LoneAnonymousOperation__ = __webpack_require__(/*! ./rules/LoneAnonymousOperation */ "./node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs"); /* unused harmony reexport LoneAnonymousOperationRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__rules_NoFragmentCycles__ = __webpack_require__(/*! ./rules/NoFragmentCycles */ "./node_modules/graphql/validation/rules/NoFragmentCycles.mjs"); /* unused harmony reexport NoFragmentCyclesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__rules_NoUndefinedVariables__ = __webpack_require__(/*! ./rules/NoUndefinedVariables */ "./node_modules/graphql/validation/rules/NoUndefinedVariables.mjs"); /* unused harmony reexport NoUndefinedVariablesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__rules_NoUnusedFragments__ = __webpack_require__(/*! ./rules/NoUnusedFragments */ "./node_modules/graphql/validation/rules/NoUnusedFragments.mjs"); /* unused harmony reexport NoUnusedFragmentsRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__rules_NoUnusedVariables__ = __webpack_require__(/*! ./rules/NoUnusedVariables */ "./node_modules/graphql/validation/rules/NoUnusedVariables.mjs"); /* unused harmony reexport NoUnusedVariablesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__rules_OverlappingFieldsCanBeMerged__ = __webpack_require__(/*! ./rules/OverlappingFieldsCanBeMerged */ "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs"); /* unused harmony reexport OverlappingFieldsCanBeMergedRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__rules_PossibleFragmentSpreads__ = __webpack_require__(/*! ./rules/PossibleFragmentSpreads */ "./node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs"); /* unused harmony reexport PossibleFragmentSpreadsRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__rules_ProvidedRequiredArguments__ = __webpack_require__(/*! ./rules/ProvidedRequiredArguments */ "./node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs"); /* unused harmony reexport ProvidedRequiredArgumentsRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__rules_ScalarLeafs__ = __webpack_require__(/*! ./rules/ScalarLeafs */ "./node_modules/graphql/validation/rules/ScalarLeafs.mjs"); /* unused harmony reexport ScalarLeafsRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__rules_SingleFieldSubscriptions__ = __webpack_require__(/*! ./rules/SingleFieldSubscriptions */ "./node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs"); /* unused harmony reexport SingleFieldSubscriptionsRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__rules_UniqueArgumentNames__ = __webpack_require__(/*! ./rules/UniqueArgumentNames */ "./node_modules/graphql/validation/rules/UniqueArgumentNames.mjs"); /* unused harmony reexport UniqueArgumentNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__rules_UniqueDirectivesPerLocation__ = __webpack_require__(/*! ./rules/UniqueDirectivesPerLocation */ "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs"); /* unused harmony reexport UniqueDirectivesPerLocationRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__rules_UniqueFragmentNames__ = __webpack_require__(/*! ./rules/UniqueFragmentNames */ "./node_modules/graphql/validation/rules/UniqueFragmentNames.mjs"); /* unused harmony reexport UniqueFragmentNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__rules_UniqueInputFieldNames__ = __webpack_require__(/*! ./rules/UniqueInputFieldNames */ "./node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs"); /* unused harmony reexport UniqueInputFieldNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__rules_UniqueOperationNames__ = __webpack_require__(/*! ./rules/UniqueOperationNames */ "./node_modules/graphql/validation/rules/UniqueOperationNames.mjs"); /* unused harmony reexport UniqueOperationNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__rules_UniqueVariableNames__ = __webpack_require__(/*! ./rules/UniqueVariableNames */ "./node_modules/graphql/validation/rules/UniqueVariableNames.mjs"); /* unused harmony reexport UniqueVariableNamesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__rules_ValuesOfCorrectType__ = __webpack_require__(/*! ./rules/ValuesOfCorrectType */ "./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs"); /* unused harmony reexport ValuesOfCorrectTypeRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__rules_VariablesAreInputTypes__ = __webpack_require__(/*! ./rules/VariablesAreInputTypes */ "./node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs"); /* unused harmony reexport VariablesAreInputTypesRule */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__rules_VariablesInAllowedPosition__ = __webpack_require__(/*! ./rules/VariablesInAllowedPosition */ "./node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs"); /* unused harmony reexport VariablesInAllowedPositionRule */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // Spec Section: "Field Selections on Objects, Interfaces, and Unions Types" // Spec Section: "Fragments on Composite Types" // Spec Section: "Argument Names" // Spec Section: "Directives Are Defined" // Spec Section: "Fragment spread target defined" // Spec Section: "Fragment Spread Type Existence" // Spec Section: "Lone Anonymous Operation" // Spec Section: "Fragments must not form cycles" // Spec Section: "All Variable Used Defined" // Spec Section: "Fragments must be used" // Spec Section: "All Variables Used" // Spec Section: "Field Selection Merging" // Spec Section: "Fragment spread is possible" // Spec Section: "Argument Optionality" // Spec Section: "Leaf Field Selections" // Spec Section: "Subscriptions with Single Root Field" // Spec Section: "Argument Uniqueness" // Spec Section: "Directives Are Unique Per Location" // Spec Section: "Fragment Name Uniqueness" // Spec Section: "Input Object Field Uniqueness" // Spec Section: "Operation Name Uniqueness" // Spec Section: "Variable Uniqueness" // Spec Section: "Values Type Correctness" // Spec Section: "Variables are Input Types" // Spec Section: "All Variable Usages Are Allowed" /***/ }), /***/ "./node_modules/graphql/validation/rules/ExecutableDefinitions.mjs": /*!*************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/ExecutableDefinitions.mjs ***! \*************************************************************************/ /*! exports provided: nonExecutableDefinitionMessage, ExecutableDefinitions */ /*! exports used: ExecutableDefinitions */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export nonExecutableDefinitionMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = ExecutableDefinitions; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language_predicates__ = __webpack_require__(/*! ../../language/predicates */ "./node_modules/graphql/language/predicates.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function nonExecutableDefinitionMessage(defName) { return "The ".concat(defName, " definition is not executable."); } /** * Executable definitions * * A GraphQL document is only valid for execution if all definitions are either * operation or fragment definitions. */ function ExecutableDefinitions(context) { return { Document: function Document(node) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = node.definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var definition = _step.value; if (!Object(__WEBPACK_IMPORTED_MODULE_2__language_predicates__["a" /* isExecutableDefinitionNode */])(definition)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](nonExecutableDefinitionMessage(definition.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCHEMA_DEFINITION || definition.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCHEMA_EXTENSION ? 'schema' : definition.name.value), [definition])); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs": /*!***********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs ***! \***********************************************************************/ /*! exports provided: undefinedFieldMessage, FieldsOnCorrectType */ /*! exports used: FieldsOnCorrectType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export undefinedFieldMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = FieldsOnCorrectType; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__ = __webpack_require__(/*! ../../jsutils/suggestionList */ "./node_modules/graphql/jsutils/suggestionList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__ = __webpack_require__(/*! ../../jsutils/quotedOrList */ "./node_modules/graphql/jsutils/quotedOrList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function undefinedFieldMessage(fieldName, type, suggestedTypeNames, suggestedFieldNames) { var message = "Cannot query field \"".concat(fieldName, "\" on type \"").concat(type, "\"."); if (suggestedTypeNames.length !== 0) { var suggestions = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__["a" /* default */])(suggestedTypeNames); message += " Did you mean to use an inline fragment on ".concat(suggestions, "?"); } else if (suggestedFieldNames.length !== 0) { message += " Did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__["a" /* default */])(suggestedFieldNames), "?"); } return message; } /** * Fields on correct type * * A GraphQL document is only valid if all fields selected are defined by the * parent type, or are an allowed meta field such as __typename. */ function FieldsOnCorrectType(context) { return { Field: function Field(node) { var type = context.getParentType(); if (type) { var fieldDef = context.getFieldDef(); if (!fieldDef) { // This field doesn't exist, lets look for suggestions. var schema = context.getSchema(); var fieldName = node.name.value; // First determine if there are any suggested types to condition on. var suggestedTypeNames = getSuggestedTypeNames(schema, type, fieldName); // If there are no suggested types, then perhaps this was a typo? var suggestedFieldNames = suggestedTypeNames.length !== 0 ? [] : getSuggestedFieldNames(schema, type, fieldName); // Report an error, including helpful suggestions. context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](undefinedFieldMessage(fieldName, type.name, suggestedTypeNames, suggestedFieldNames), [node])); } } } }; } /** * Go through all of the implementations of type, as well as the interfaces that * they implement. If any of those types include the provided field, suggest * them, sorted by how often the type is referenced, starting with Interfaces. */ function getSuggestedTypeNames(schema, type, fieldName) { if (Object(__WEBPACK_IMPORTED_MODULE_3__type_definition__["n" /* isAbstractType */])(type)) { var suggestedObjectTypes = []; var interfaceUsageCount = Object.create(null); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = schema.getPossibleTypes(type)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var possibleType = _step.value; if (!possibleType.getFields()[fieldName]) { continue; } // This object type defines this field. suggestedObjectTypes.push(possibleType.name); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = possibleType.getInterfaces()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var possibleInterface = _step2.value; if (!possibleInterface.getFields()[fieldName]) { continue; } // This interface type defines this field. interfaceUsageCount[possibleInterface.name] = (interfaceUsageCount[possibleInterface.name] || 0) + 1; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } // Suggest interface types based on how common they are. } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var suggestedInterfaceTypes = Object.keys(interfaceUsageCount).sort(function (a, b) { return interfaceUsageCount[b] - interfaceUsageCount[a]; }); // Suggest both interface and object types. return suggestedInterfaceTypes.concat(suggestedObjectTypes); } // Otherwise, must be an Object type, which does not have possible fields. return []; } /** * For the field name provided, determine if there are any similar field names * that may be the result of a typo. */ function getSuggestedFieldNames(schema, type, fieldName) { if (Object(__WEBPACK_IMPORTED_MODULE_3__type_definition__["x" /* isObjectType */])(type) || Object(__WEBPACK_IMPORTED_MODULE_3__type_definition__["s" /* isInterfaceType */])(type)) { var possibleFieldNames = Object.keys(type.getFields()); return Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__["a" /* default */])(fieldName, possibleFieldNames); } // Otherwise, must be a Union type, which does not define fields. return []; } /***/ }), /***/ "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs": /*!*****************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs ***! \*****************************************************************************/ /*! exports provided: inlineFragmentOnNonCompositeErrorMessage, fragmentOnNonCompositeErrorMessage, FragmentsOnCompositeTypes */ /*! exports used: FragmentsOnCompositeTypes */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export inlineFragmentOnNonCompositeErrorMessage */ /* unused harmony export fragmentOnNonCompositeErrorMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = FragmentsOnCompositeTypes; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_printer__ = __webpack_require__(/*! ../../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__ = __webpack_require__(/*! ../../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function inlineFragmentOnNonCompositeErrorMessage(type) { return "Fragment cannot condition on non composite type \"".concat(type, "\"."); } function fragmentOnNonCompositeErrorMessage(fragName, type) { return "Fragment \"".concat(fragName, "\" cannot condition on non composite ") + "type \"".concat(type, "\"."); } /** * Fragments on composite type * * Fragments use a type condition to determine if they apply, since fragments * can only be spread into a composite type (object, interface, or union), the * type condition must also be a composite type. */ function FragmentsOnCompositeTypes(context) { return { InlineFragment: function InlineFragment(node) { var typeCondition = node.typeCondition; if (typeCondition) { var type = Object(__WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), typeCondition); if (type && !Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["o" /* isCompositeType */])(type)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](inlineFragmentOnNonCompositeErrorMessage(Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(typeCondition)), [typeCondition])); } } }, FragmentDefinition: function FragmentDefinition(node) { var type = Object(__WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), node.typeCondition); if (type && !Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["o" /* isCompositeType */])(type)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](fragmentOnNonCompositeErrorMessage(node.name.value, Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node.typeCondition)), [node.typeCondition])); } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/KnownArgumentNames.mjs": /*!**********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/KnownArgumentNames.mjs ***! \**********************************************************************/ /*! exports provided: unknownArgMessage, unknownDirectiveArgMessage, KnownArgumentNames, KnownArgumentNamesOnDirectives */ /*! exports used: KnownArgumentNames, KnownArgumentNamesOnDirectives */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unknownArgMessage */ /* unused harmony export unknownDirectiveArgMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = KnownArgumentNames; /* harmony export (immutable) */ __webpack_exports__["b"] = KnownArgumentNamesOnDirectives; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__ = __webpack_require__(/*! ../../jsutils/suggestionList */ "./node_modules/graphql/jsutils/suggestionList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__ = __webpack_require__(/*! ../../jsutils/quotedOrList */ "./node_modules/graphql/jsutils/quotedOrList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__type_directives__ = __webpack_require__(/*! ../../type/directives */ "./node_modules/graphql/type/directives.mjs"); function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unknownArgMessage(argName, fieldName, typeName, suggestedArgs) { var message = "Unknown argument \"".concat(argName, "\" on field \"").concat(fieldName, "\" of ") + "type \"".concat(typeName, "\"."); if (suggestedArgs.length) { message += " Did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__["a" /* default */])(suggestedArgs), "?"); } return message; } function unknownDirectiveArgMessage(argName, directiveName, suggestedArgs) { var message = "Unknown argument \"".concat(argName, "\" on directive \"@").concat(directiveName, "\"."); if (suggestedArgs.length) { message += " Did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__["a" /* default */])(suggestedArgs), "?"); } return message; } /** * Known argument names * * A GraphQL field is only valid if all supplied arguments are defined by * that field. */ function KnownArgumentNames(context) { return _objectSpread({}, KnownArgumentNamesOnDirectives(context), { Argument: function Argument(argNode) { var argDef = context.getArgument(); var fieldDef = context.getFieldDef(); var parentType = context.getParentType(); if (!argDef && fieldDef && parentType) { var argName = argNode.name.value; var knownArgsNames = fieldDef.args.map(function (arg) { return arg.name; }); context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownArgMessage(argName, fieldDef.name, parentType.name, Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__["a" /* default */])(argName, knownArgsNames)), argNode)); } } }); } // @internal function KnownArgumentNamesOnDirectives(context) { var directiveArgs = Object.create(null); var schema = context.getSchema(); var definedDirectives = schema ? schema.getDirectives() : __WEBPACK_IMPORTED_MODULE_4__type_directives__["h" /* specifiedDirectives */]; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = definedDirectives[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var directive = _step.value; directiveArgs[directive.name] = directive.args.map(function (arg) { return arg.name; }); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var astDefinitions = context.getDocument().definitions; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = astDefinitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var def = _step2.value; if (def.kind === __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].DIRECTIVE_DEFINITION) { directiveArgs[def.name.value] = def.arguments ? def.arguments.map(function (arg) { return arg.name.value; }) : []; } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return { Directive: function Directive(directiveNode) { var directiveName = directiveNode.name.value; var knownArgs = directiveArgs[directiveName]; if (directiveNode.arguments && knownArgs) { var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = directiveNode.arguments[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var argNode = _step3.value; var argName = argNode.name.value; if (knownArgs.indexOf(argName) === -1) { var suggestions = Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__["a" /* default */])(argName, knownArgs); context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownDirectiveArgMessage(argName, directiveName, suggestions), argNode)); } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/KnownDirectives.mjs": /*!*******************************************************************!*\ !*** ./node_modules/graphql/validation/rules/KnownDirectives.mjs ***! \*******************************************************************/ /*! exports provided: unknownDirectiveMessage, misplacedDirectiveMessage, KnownDirectives */ /*! exports used: KnownDirectives */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unknownDirectiveMessage */ /* unused harmony export misplacedDirectiveMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = KnownDirectives; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__ = __webpack_require__(/*! ../../language/directiveLocation */ "./node_modules/graphql/language/directiveLocation.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__type_directives__ = __webpack_require__(/*! ../../type/directives */ "./node_modules/graphql/type/directives.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unknownDirectiveMessage(directiveName) { return "Unknown directive \"".concat(directiveName, "\"."); } function misplacedDirectiveMessage(directiveName, location) { return "Directive \"".concat(directiveName, "\" may not be used on ").concat(location, "."); } /** * Known directives * * A GraphQL document is only valid if all `@directives` are known by the * schema and legally positioned. */ function KnownDirectives(context) { var locationsMap = Object.create(null); var schema = context.getSchema(); var definedDirectives = schema ? schema.getDirectives() : __WEBPACK_IMPORTED_MODULE_3__type_directives__["h" /* specifiedDirectives */]; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = definedDirectives[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var directive = _step.value; locationsMap[directive.name] = directive.locations; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var astDefinitions = context.getDocument().definitions; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = astDefinitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var def = _step2.value; if (def.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].DIRECTIVE_DEFINITION) { locationsMap[def.name.value] = def.locations.map(function (name) { return name.value; }); } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return { Directive: function Directive(node, key, parent, path, ancestors) { var name = node.name.value; var locations = locationsMap[name]; if (!locations) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownDirectiveMessage(name), [node])); return; } var candidateLocation = getDirectiveLocationForASTPath(ancestors); if (candidateLocation && locations.indexOf(candidateLocation) === -1) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](misplacedDirectiveMessage(name, candidateLocation), [node])); } } }; } function getDirectiveLocationForASTPath(ancestors) { var appliedTo = ancestors[ancestors.length - 1]; if (!Array.isArray(appliedTo)) { switch (appliedTo.kind) { case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].OPERATION_DEFINITION: switch (appliedTo.operation) { case 'query': return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].QUERY; case 'mutation': return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].MUTATION; case 'subscription': return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].SUBSCRIPTION; } break; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FIELD: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].FIELD; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FRAGMENT_SPREAD: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_SPREAD; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INLINE_FRAGMENT: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].INLINE_FRAGMENT; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FRAGMENT_DEFINITION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].FRAGMENT_DEFINITION; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].VARIABLE_DEFINITION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].VARIABLE_DEFINITION; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCHEMA_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCHEMA_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].SCHEMA; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCALAR_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].SCALAR_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].SCALAR; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].OBJECT_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].OBJECT_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].OBJECT; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].FIELD_DEFINITION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].FIELD_DEFINITION; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INTERFACE_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INTERFACE_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].INTERFACE; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].UNION_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].UNION_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].UNION; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].ENUM_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].ENUM_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].ENUM; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].ENUM_VALUE_DEFINITION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].ENUM_VALUE; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_DEFINITION: case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_EXTENSION: return __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].INPUT_OBJECT; case __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INPUT_VALUE_DEFINITION: var parentNode = ancestors[ancestors.length - 3]; return parentNode.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].INPUT_OBJECT_TYPE_DEFINITION ? __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].INPUT_FIELD_DEFINITION : __WEBPACK_IMPORTED_MODULE_2__language_directiveLocation__["a" /* DirectiveLocation */].ARGUMENT_DEFINITION; } } } /***/ }), /***/ "./node_modules/graphql/validation/rules/KnownFragmentNames.mjs": /*!**********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/KnownFragmentNames.mjs ***! \**********************************************************************/ /*! exports provided: unknownFragmentMessage, KnownFragmentNames */ /*! exports used: KnownFragmentNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unknownFragmentMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = KnownFragmentNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unknownFragmentMessage(fragName) { return "Unknown fragment \"".concat(fragName, "\"."); } /** * Known fragment names * * A GraphQL document is only valid if all `...Fragment` fragment spreads refer * to fragments defined in the same document. */ function KnownFragmentNames(context) { return { FragmentSpread: function FragmentSpread(node) { var fragmentName = node.name.value; var fragment = context.getFragment(fragmentName); if (!fragment) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownFragmentMessage(fragmentName), [node.name])); } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/KnownTypeNames.mjs": /*!******************************************************************!*\ !*** ./node_modules/graphql/validation/rules/KnownTypeNames.mjs ***! \******************************************************************/ /*! exports provided: unknownTypeMessage, KnownTypeNames */ /*! exports used: KnownTypeNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unknownTypeMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = KnownTypeNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__ = __webpack_require__(/*! ../../jsutils/suggestionList */ "./node_modules/graphql/jsutils/suggestionList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__ = __webpack_require__(/*! ../../jsutils/quotedOrList */ "./node_modules/graphql/jsutils/quotedOrList.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unknownTypeMessage(typeName, suggestedTypes) { var message = "Unknown type \"".concat(typeName, "\"."); if (suggestedTypes.length) { message += " Did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_quotedOrList__["a" /* default */])(suggestedTypes), "?"); } return message; } /** * Known type names * * A GraphQL document is only valid if referenced types (specifically * variable definitions and fragment conditions) are defined by the type schema. */ function KnownTypeNames(context) { return { // TODO: when validating IDL, re-enable these. Experimental version does not // add unreferenced types, resulting in false-positive errors. Squelched // errors for now. ObjectTypeDefinition: function ObjectTypeDefinition() { return false; }, InterfaceTypeDefinition: function InterfaceTypeDefinition() { return false; }, UnionTypeDefinition: function UnionTypeDefinition() { return false; }, InputObjectTypeDefinition: function InputObjectTypeDefinition() { return false; }, NamedType: function NamedType(node) { var schema = context.getSchema(); var typeName = node.name.value; var type = schema.getType(typeName); if (!type) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownTypeMessage(typeName, Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_suggestionList__["a" /* default */])(typeName, Object.keys(schema.getTypeMap()))), [node])); } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs": /*!**************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs ***! \**************************************************************************/ /*! exports provided: anonOperationNotAloneMessage, LoneAnonymousOperation */ /*! exports used: LoneAnonymousOperation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export anonOperationNotAloneMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = LoneAnonymousOperation; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function anonOperationNotAloneMessage() { return 'This anonymous operation must be the only defined operation.'; } /** * Lone anonymous operation * * A GraphQL document is only valid if when it contains an anonymous operation * (the query short-hand) that it contains only that one operation definition. */ function LoneAnonymousOperation(context) { var operationCount = 0; return { Document: function Document(node) { operationCount = node.definitions.filter(function (definition) { return definition.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].OPERATION_DEFINITION; }).length; }, OperationDefinition: function OperationDefinition(node) { if (!node.name && operationCount > 1) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](anonOperationNotAloneMessage(), [node])); } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs": /*!************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs ***! \************************************************************************/ /*! exports provided: schemaDefinitionNotAloneMessage, canNotDefineSchemaWithinExtensionMessage, LoneSchemaDefinition */ /*! exports used: LoneSchemaDefinition */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export schemaDefinitionNotAloneMessage */ /* unused harmony export canNotDefineSchemaWithinExtensionMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = LoneSchemaDefinition; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2018-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function schemaDefinitionNotAloneMessage() { return 'Must provide only one schema definition.'; } function canNotDefineSchemaWithinExtensionMessage() { return 'Cannot define a new schema within a schema extension.'; } /** * Lone Schema definition * * A GraphQL document is only valid if it contains only one schema definition. */ function LoneSchemaDefinition(context) { var oldSchema = context.getSchema(); var alreadyDefined = oldSchema && (oldSchema.astNode || oldSchema.getQueryType() || oldSchema.getMutationType() || oldSchema.getSubscriptionType()); var schemaDefinitionsCount = 0; return { SchemaDefinition: function SchemaDefinition(node) { if (alreadyDefined) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](canNotDefineSchemaWithinExtensionMessage(), node)); return; } if (schemaDefinitionsCount > 0) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](schemaDefinitionNotAloneMessage(), node)); } ++schemaDefinitionsCount; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/NoFragmentCycles.mjs": /*!********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/NoFragmentCycles.mjs ***! \********************************************************************/ /*! exports provided: cycleErrorMessage, NoFragmentCycles */ /*! exports used: NoFragmentCycles */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export cycleErrorMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = NoFragmentCycles; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function cycleErrorMessage(fragName, spreadNames) { var via = spreadNames.length ? ' via ' + spreadNames.join(', ') : ''; return "Cannot spread fragment \"".concat(fragName, "\" within itself").concat(via, "."); } function NoFragmentCycles(context) { // Tracks already visited fragments to maintain O(N) and to ensure that cycles // are not redundantly reported. var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors var spreadPath = []; // Position in the spread path var spreadPathIndexByName = Object.create(null); return { OperationDefinition: function OperationDefinition() { return false; }, FragmentDefinition: function FragmentDefinition(node) { detectCycleRecursive(node); return false; } }; // This does a straight-forward DFS to find cycles. // It does not terminate when a cycle was found but continues to explore // the graph to find all possible cycles. function detectCycleRecursive(fragment) { if (visitedFrags[fragment.name.value]) { return; } var fragmentName = fragment.name.value; visitedFrags[fragmentName] = true; var spreadNodes = context.getFragmentSpreads(fragment.selectionSet); if (spreadNodes.length === 0) { return; } spreadPathIndexByName[fragmentName] = spreadPath.length; for (var i = 0; i < spreadNodes.length; i++) { var spreadNode = spreadNodes[i]; var spreadName = spreadNode.name.value; var cycleIndex = spreadPathIndexByName[spreadName]; spreadPath.push(spreadNode); if (cycleIndex === undefined) { var spreadFragment = context.getFragment(spreadName); if (spreadFragment) { detectCycleRecursive(spreadFragment); } } else { var cyclePath = spreadPath.slice(cycleIndex); var fragmentNames = cyclePath.slice(0, -1).map(function (s) { return s.name.value; }); context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](cycleErrorMessage(spreadName, fragmentNames), cyclePath)); } spreadPath.pop(); } spreadPathIndexByName[fragmentName] = undefined; } } /***/ }), /***/ "./node_modules/graphql/validation/rules/NoUndefinedVariables.mjs": /*!************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/NoUndefinedVariables.mjs ***! \************************************************************************/ /*! exports provided: undefinedVarMessage, NoUndefinedVariables */ /*! exports used: NoUndefinedVariables */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export undefinedVarMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = NoUndefinedVariables; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function undefinedVarMessage(varName, opName) { return opName ? "Variable \"$".concat(varName, "\" is not defined by operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is not defined."); } /** * No undefined variables * * A GraphQL operation is only valid if all variables encountered, both directly * and via fragment spreads, are defined by that operation. */ function NoUndefinedVariables(context) { var variableNameDefined = Object.create(null); return { OperationDefinition: { enter: function enter() { variableNameDefined = Object.create(null); }, leave: function leave(operation) { var usages = context.getRecursiveVariableUsages(operation); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = usages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref2 = _step.value; var node = _ref2.node; var varName = node.name.value; if (variableNameDefined[varName] !== true) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](undefinedVarMessage(varName, operation.name && operation.name.value), [node, operation])); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, VariableDefinition: function VariableDefinition(node) { variableNameDefined[node.variable.name.value] = true; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/NoUnusedFragments.mjs": /*!*********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/NoUnusedFragments.mjs ***! \*********************************************************************/ /*! exports provided: unusedFragMessage, NoUnusedFragments */ /*! exports used: NoUnusedFragments */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unusedFragMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = NoUnusedFragments; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unusedFragMessage(fragName) { return "Fragment \"".concat(fragName, "\" is never used."); } /** * No unused fragments * * A GraphQL document is only valid if all fragment definitions are spread * within operations, or spread within other fragments spread within operations. */ function NoUnusedFragments(context) { var operationDefs = []; var fragmentDefs = []; return { OperationDefinition: function OperationDefinition(node) { operationDefs.push(node); return false; }, FragmentDefinition: function FragmentDefinition(node) { fragmentDefs.push(node); return false; }, Document: { leave: function leave() { var fragmentNameUsed = Object.create(null); for (var _i = 0; _i < operationDefs.length; _i++) { var operation = operationDefs[_i]; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = context.getRecursivelyReferencedFragments(operation)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var fragment = _step.value; fragmentNameUsed[fragment.name.value] = true; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } for (var _i2 = 0; _i2 < fragmentDefs.length; _i2++) { var fragmentDef = fragmentDefs[_i2]; var fragName = fragmentDef.name.value; if (fragmentNameUsed[fragName] !== true) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unusedFragMessage(fragName), [fragmentDef])); } } } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/NoUnusedVariables.mjs": /*!*********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/NoUnusedVariables.mjs ***! \*********************************************************************/ /*! exports provided: unusedVariableMessage, NoUnusedVariables */ /*! exports used: NoUnusedVariables */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export unusedVariableMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = NoUnusedVariables; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function unusedVariableMessage(varName, opName) { return opName ? "Variable \"$".concat(varName, "\" is never used in operation \"").concat(opName, "\".") : "Variable \"$".concat(varName, "\" is never used."); } /** * No unused variables * * A GraphQL operation is only valid if all variables defined by an operation * are used, either directly or within a spread fragment. */ function NoUnusedVariables(context) { var variableDefs = []; return { OperationDefinition: { enter: function enter() { variableDefs = []; }, leave: function leave(operation) { var variableNameUsed = Object.create(null); var usages = context.getRecursiveVariableUsages(operation); var opName = operation.name ? operation.name.value : null; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = usages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref2 = _step.value; var node = _ref2.node; variableNameUsed[node.name.value] = true; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } for (var _i = 0; _i < variableDefs.length; _i++) { var variableDef = variableDefs[_i]; var variableName = variableDef.variable.name.value; if (variableNameUsed[variableName] !== true) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unusedVariableMessage(variableName, opName), [variableDef])); } } } }, VariableDefinition: function VariableDefinition(def) { variableDefs.push(def); } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs": /*!********************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs ***! \********************************************************************************/ /*! exports provided: fieldsConflictMessage, OverlappingFieldsCanBeMerged */ /*! exports used: OverlappingFieldsCanBeMerged */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export fieldsConflictMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = OverlappingFieldsCanBeMerged; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_find__ = __webpack_require__(/*! ../../jsutils/find */ "./node_modules/graphql/jsutils/find.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__language_printer__ = __webpack_require__(/*! ../../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utilities_typeFromAST__ = __webpack_require__(/*! ../../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function fieldsConflictMessage(responseName, reason) { return "Fields \"".concat(responseName, "\" conflict because ").concat(reasonMessage(reason)) + '. Use different aliases on the fields to fetch both if this was ' + 'intentional.'; } function reasonMessage(reason) { if (Array.isArray(reason)) { return reason.map(function (_ref) { var responseName = _ref[0], subreason = _ref[1]; return "subfields \"".concat(responseName, "\" conflict because ").concat(reasonMessage(subreason)); }).join(' and '); } return reason; } /** * Overlapping fields can be merged * * A selection set is only valid if all fields (including spreading any * fragments) either correspond to distinct response names or can be merged * without ambiguity. */ function OverlappingFieldsCanBeMerged(context) { // A memoization for when two fragments are compared "between" each other for // conflicts. Two fragments may be compared many times, so memoizing this can // dramatically improve the performance of this validator. var comparedFragmentPairs = new PairSet(); // A cache for the "field map" and list of fragment names found in any given // selection set. Selection sets may be asked for this information multiple // times, so this improves the performance of this validator. var cachedFieldsAndFragmentNames = new Map(); return { SelectionSet: function SelectionSet(selectionSet) { var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet); for (var _i = 0; _i < conflicts.length; _i++) { var _ref3 = conflicts[_i]; var _ref2$ = _ref3[0]; var responseName = _ref2$[0]; var reason = _ref2$[1]; var fields1 = _ref3[1]; var fields2 = _ref3[2]; context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](fieldsConflictMessage(responseName, reason), fields1.concat(fields2))); } } }; } /** * Algorithm: * * Conflicts occur when two fields exist in a query which will produce the same * response name, but represent differing values, thus creating a conflict. * The algorithm below finds all conflicts via making a series of comparisons * between fields. In order to compare as few fields as possible, this makes * a series of comparisons "within" sets of fields and "between" sets of fields. * * Given any selection set, a collection produces both a set of fields by * also including all inline fragments, as well as a list of fragments * referenced by fragment spreads. * * A) Each selection set represented in the document first compares "within" its * collected set of fields, finding any conflicts between every pair of * overlapping fields. * Note: This is the *only time* that a the fields "within" a set are compared * to each other. After this only fields "between" sets are compared. * * B) Also, if any fragment is referenced in a selection set, then a * comparison is made "between" the original set of fields and the * referenced fragment. * * C) Also, if multiple fragments are referenced, then comparisons * are made "between" each referenced fragment. * * D) When comparing "between" a set of fields and a referenced fragment, first * a comparison is made between each field in the original set of fields and * each field in the the referenced set of fields. * * E) Also, if any fragment is referenced in the referenced selection set, * then a comparison is made "between" the original set of fields and the * referenced fragment (recursively referring to step D). * * F) When comparing "between" two fragments, first a comparison is made between * each field in the first referenced set of fields and each field in the the * second referenced set of fields. * * G) Also, any fragments referenced by the first must be compared to the * second, and any fragments referenced by the second must be compared to the * first (recursively referring to step F). * * H) When comparing two fields, if both have selection sets, then a comparison * is made "between" both selection sets, first comparing the set of fields in * the first selection set with the set of fields in the second. * * I) Also, if any fragment is referenced in either selection set, then a * comparison is made "between" the other set of fields and the * referenced fragment. * * J) Also, if two fragments are referenced in both selection sets, then a * comparison is made "between" the two fragments. * */ // Find all conflicts found "within" a selection set, including those found // via spreading in fragments. Called when visiting each SelectionSet in the // GraphQL Document. function findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) { var conflicts = []; var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet), fieldMap = _getFieldsAndFragment[0], fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts "within" the fields of this selection set. // Note: this is the *only place* `collectConflictsWithin` is called. collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap); if (fragmentNames.length !== 0) { // (B) Then collect conflicts between these fields and those represented by // each spread fragment name found. var comparedFragments = Object.create(null); for (var i = 0; i < fragmentNames.length; i++) { collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this // selection set to collect conflicts between fragments spread together. // This compares each item in the list of fragment names to every other // item in that same list (except for itself). for (var j = i + 1; j < fragmentNames.length; j++) { collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]); } } } return conflicts; } // Collect all conflicts found between a set of fields and a fragment reference // including via spreading in any nested fragments. function collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) { // Memoize so a fragment is not compared for conflicts more than once. if (comparedFragments[fragmentName]) { return; } comparedFragments[fragmentName] = true; var fragment = context.getFragment(fragmentName); if (!fragment) { return; } var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment), fieldMap2 = _getReferencedFieldsA[0], fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself. if (fieldMap === fieldMap2) { return; } // (D) First collect any conflicts between the provided collection of fields // and the collection of fields represented by the given fragment. collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields // and any fragment names found in the given fragment. for (var i = 0; i < fragmentNames2.length; i++) { collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]); } } // Collect all conflicts found between two fragments, including via spreading in // any nested fragments. function collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) { // No need to compare a fragment to itself. if (fragmentName1 === fragmentName2) { return; } // Memoize so two fragments are not compared for conflicts more than once. if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) { return; } comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive); var fragment1 = context.getFragment(fragmentName1); var fragment2 = context.getFragment(fragmentName2); if (!fragment1 || !fragment2) { return; } var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1), fieldMap1 = _getReferencedFieldsA2[0], fragmentNames1 = _getReferencedFieldsA2[1]; var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2), fieldMap2 = _getReferencedFieldsA3[0], fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields // (not including any nested fragments). collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested // fragments spread in the second fragment. for (var j = 0; j < fragmentNames2.length; j++) { collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]); } // (G) Then collect conflicts between the second fragment and any nested // fragments spread in the first fragment. for (var i = 0; i < fragmentNames1.length; i++) { collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2); } } // Find all conflicts found between two selection sets, including those found // via spreading in fragments. Called when determining if conflicts exist // between the sub-fields of two overlapping fields. function findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) { var conflicts = []; var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1), fieldMap1 = _getFieldsAndFragment2[0], fragmentNames1 = _getFieldsAndFragment2[1]; var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2), fieldMap2 = _getFieldsAndFragment3[0], fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field. collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and // those referenced by each fragment name associated with the second. if (fragmentNames2.length !== 0) { var comparedFragments = Object.create(null); for (var j = 0; j < fragmentNames2.length; j++) { collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]); } } // (I) Then collect conflicts between the second collection of fields and // those referenced by each fragment name associated with the first. if (fragmentNames1.length !== 0) { var _comparedFragments = Object.create(null); for (var i = 0; i < fragmentNames1.length; i++) { collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, _comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]); } } // (J) Also collect conflicts between any fragment names by the first and // fragment names by the second. This compares each item in the first set of // names to each item in the second set of names. for (var _i2 = 0; _i2 < fragmentNames1.length; _i2++) { for (var _j = 0; _j < fragmentNames2.length; _j++) { collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i2], fragmentNames2[_j]); } } return conflicts; } // Collect all Conflicts "within" one collection of fields. function collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) { // A field map is a keyed collection, where each key represents a response // name and the value at that key is a list of all fields which provide that // response name. For every response name, if there are multiple fields, they // must be compared to find a potential conflict. var _arr = Object.keys(fieldMap); for (var _i3 = 0; _i3 < _arr.length; _i3++) { var responseName = _arr[_i3]; var fields = fieldMap[responseName]; // This compares every field in the list to every other field in this list // (except to itself). If the list only has one item, nothing needs to // be compared. if (fields.length > 1) { for (var i = 0; i < fields.length; i++) { for (var j = i + 1; j < fields.length; j++) { var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive responseName, fields[i], fields[j]); if (conflict) { conflicts.push(conflict); } } } } } } // Collect all Conflicts between two collections of fields. This is similar to, // but different from the `collectConflictsWithin` function above. This check // assumes that `collectConflictsWithin` has already been called on each // provided collection of fields. This is true because this validator traverses // each individual selection set. function collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) { // A field map is a keyed collection, where each key represents a response // name and the value at that key is a list of all fields which provide that // response name. For any response name which appears in both provided field // maps, each field from the first field map must be compared to every field // in the second field map to find potential conflicts. var _arr2 = Object.keys(fieldMap1); for (var _i4 = 0; _i4 < _arr2.length; _i4++) { var responseName = _arr2[_i4]; var fields2 = fieldMap2[responseName]; if (fields2) { var fields1 = fieldMap1[responseName]; for (var i = 0; i < fields1.length; i++) { for (var j = 0; j < fields2.length; j++) { var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]); if (conflict) { conflicts.push(conflict); } } } } } } // Determines if there is a conflict between two particular fields, including // comparing their sub-fields. function findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) { var parentType1 = field1[0], node1 = field1[1], def1 = field1[2]; var parentType2 = field2[0], node2 = field2[1], def2 = field2[2]; // If it is known that two fields could not possibly apply at the same // time, due to the parent types, then it is safe to permit them to diverge // in aliased field or arguments used as they will not present any ambiguity // by differing. // It is known that two parent types could never overlap if they are // different Object types. Interface or Union types might overlap - if not // in the current state of the schema, then perhaps in some future version, // thus may not safely diverge. var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["x" /* isObjectType */])(parentType1) && Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["x" /* isObjectType */])(parentType2); // The return type for each field. var type1 = def1 && def1.type; var type2 = def2 && def2.type; if (!areMutuallyExclusive) { // Two aliases must refer to the same field. var name1 = node1.name.value; var name2 = node2.name.value; if (name1 !== name2) { return [[responseName, "".concat(name1, " and ").concat(name2, " are different fields")], [node1], [node2]]; } // Two field calls must have the same arguments. if (!sameArguments(node1.arguments || [], node2.arguments || [])) { return [[responseName, 'they have differing arguments'], [node1], [node2]]; } } if (type1 && type2 && doTypesConflict(type1, type2)) { return [[responseName, "they return conflicting types ".concat(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(type1), " and ").concat(Object(__WEBPACK_IMPORTED_MODULE_1__jsutils_inspect__["a" /* default */])(type2))], [node1], [node2]]; } // Collect and compare sub-fields. Use the same "visited fragment names" list // for both collections so fields in a fragment reference are never // compared to themselves. var selectionSet1 = node1.selectionSet; var selectionSet2 = node2.selectionSet; if (selectionSet1 && selectionSet2) { var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["l" /* getNamedType */])(type1), selectionSet1, Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["l" /* getNamedType */])(type2), selectionSet2); return subfieldConflicts(conflicts, responseName, node1, node2); } } function sameArguments(arguments1, arguments2) { if (arguments1.length !== arguments2.length) { return false; } return arguments1.every(function (argument1) { var argument2 = Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_find__["a" /* default */])(arguments2, function (argument) { return argument.name.value === argument1.name.value; }); if (!argument2) { return false; } return sameValue(argument1.value, argument2.value); }); } function sameValue(value1, value2) { return !value1 && !value2 || Object(__WEBPACK_IMPORTED_MODULE_4__language_printer__["a" /* print */])(value1) === Object(__WEBPACK_IMPORTED_MODULE_4__language_printer__["a" /* print */])(value2); } // Two types conflict if both types could not apply to a value simultaneously. // Composite types are ignored as their individual field types will be compared // later recursively. However List and Non-Null types must match. function doTypesConflict(type1, type2) { if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["u" /* isListType */])(type1)) { return Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["u" /* isListType */])(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true; } if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["u" /* isListType */])(type2)) { return true; } if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["w" /* isNonNullType */])(type1)) { return Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["w" /* isNonNullType */])(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true; } if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["w" /* isNonNullType */])(type2)) { return true; } if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["t" /* isLeafType */])(type1) || Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["t" /* isLeafType */])(type2)) { return type1 !== type2; } return false; } // Given a selection set, return the collection of fields (a mapping of response // name to field nodes and definitions) as well as a list of fragment names // referenced via fragment spreads. function getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) { var cached = cachedFieldsAndFragmentNames.get(selectionSet); if (!cached) { var nodeAndDefs = Object.create(null); var fragmentNames = Object.create(null); _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames); cached = [nodeAndDefs, Object.keys(fragmentNames)]; cachedFieldsAndFragmentNames.set(selectionSet, cached); } return cached; } // Given a reference to a fragment, return the represented collection of fields // as well as a list of nested fragment names referenced via fragment spreads. function getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) { // Short-circuit building a type from the node if possible. var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet); if (cached) { return cached; } var fragmentType = Object(__WEBPACK_IMPORTED_MODULE_6__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), fragment.typeCondition); return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet); } function _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) { for (var i = 0; i < selectionSet.selections.length; i++) { var selection = selectionSet.selections[i]; switch (selection.kind) { case __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].FIELD: var fieldName = selection.name.value; var fieldDef = void 0; if (Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["x" /* isObjectType */])(parentType) || Object(__WEBPACK_IMPORTED_MODULE_5__type_definition__["s" /* isInterfaceType */])(parentType)) { fieldDef = parentType.getFields()[fieldName]; } var responseName = selection.alias ? selection.alias.value : fieldName; if (!nodeAndDefs[responseName]) { nodeAndDefs[responseName] = []; } nodeAndDefs[responseName].push([parentType, selection, fieldDef]); break; case __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].FRAGMENT_SPREAD: fragmentNames[selection.name.value] = true; break; case __WEBPACK_IMPORTED_MODULE_3__language_kinds__["a" /* Kind */].INLINE_FRAGMENT: var typeCondition = selection.typeCondition; var inlineFragmentType = typeCondition ? Object(__WEBPACK_IMPORTED_MODULE_6__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), typeCondition) : parentType; _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames); break; } } } // Given a series of Conflicts which occurred between two sub-fields, generate // a single Conflict. function subfieldConflicts(conflicts, responseName, node1, node2) { if (conflicts.length > 0) { return [[responseName, conflicts.map(function (_ref4) { var reason = _ref4[0]; return reason; })], conflicts.reduce(function (allFields, _ref5) { var fields1 = _ref5[1]; return allFields.concat(fields1); }, [node1]), conflicts.reduce(function (allFields, _ref6) { var fields2 = _ref6[2]; return allFields.concat(fields2); }, [node2])]; } } /** * A way to keep track of pairs of things when the ordering of the pair does * not matter. We do this by maintaining a sort of double adjacency sets. */ var PairSet = /*#__PURE__*/ function () { function PairSet() { _defineProperty(this, "_data", void 0); this._data = Object.create(null); } var _proto = PairSet.prototype; _proto.has = function has(a, b, areMutuallyExclusive) { var first = this._data[a]; var result = first && first[b]; if (result === undefined) { return false; } // areMutuallyExclusive being false is a superset of being true, // hence if we want to know if this PairSet "has" these two with no // exclusivity, we have to ensure it was added as such. if (areMutuallyExclusive === false) { return result === false; } return true; }; _proto.add = function add(a, b, areMutuallyExclusive) { _pairSetAdd(this._data, a, b, areMutuallyExclusive); _pairSetAdd(this._data, b, a, areMutuallyExclusive); }; return PairSet; }(); function _pairSetAdd(data, a, b, areMutuallyExclusive) { var map = data[a]; if (!map) { map = Object.create(null); data[a] = map; } map[b] = areMutuallyExclusive; } /***/ }), /***/ "./node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs": /*!***************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs ***! \***************************************************************************/ /*! exports provided: typeIncompatibleSpreadMessage, typeIncompatibleAnonSpreadMessage, PossibleFragmentSpreads */ /*! exports used: PossibleFragmentSpreads */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export typeIncompatibleSpreadMessage */ /* unused harmony export typeIncompatibleAnonSpreadMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = PossibleFragmentSpreads; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utilities_typeComparators__ = __webpack_require__(/*! ../../utilities/typeComparators */ "./node_modules/graphql/utilities/typeComparators.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__ = __webpack_require__(/*! ../../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function typeIncompatibleSpreadMessage(fragName, parentType, fragType) { return "Fragment \"".concat(fragName, "\" cannot be spread here as objects of ") + "type \"".concat(parentType, "\" can never be of type \"").concat(fragType, "\"."); } function typeIncompatibleAnonSpreadMessage(parentType, fragType) { return 'Fragment cannot be spread here as objects of ' + "type \"".concat(parentType, "\" can never be of type \"").concat(fragType, "\"."); } /** * Possible fragment spread * * A fragment spread is only valid if the type condition could ever possibly * be true: if there is a non-empty intersection of the possible parent types, * and possible types which pass the type condition. */ function PossibleFragmentSpreads(context) { return { InlineFragment: function InlineFragment(node) { var fragType = context.getType(); var parentType = context.getParentType(); if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["o" /* isCompositeType */])(fragType) && Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["o" /* isCompositeType */])(parentType) && !Object(__WEBPACK_IMPORTED_MODULE_2__utilities_typeComparators__["a" /* doTypesOverlap */])(context.getSchema(), fragType, parentType)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */](typeIncompatibleAnonSpreadMessage(Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(parentType), Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(fragType)), [node])); } }, FragmentSpread: function FragmentSpread(node) { var fragName = node.name.value; var fragType = getFragmentType(context, fragName); var parentType = context.getParentType(); if (fragType && parentType && !Object(__WEBPACK_IMPORTED_MODULE_2__utilities_typeComparators__["a" /* doTypesOverlap */])(context.getSchema(), fragType, parentType)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */](typeIncompatibleSpreadMessage(fragName, Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(parentType), Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(fragType)), [node])); } } }; } function getFragmentType(context, name) { var frag = context.getFragment(name); if (frag) { var type = Object(__WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), frag.typeCondition); if (Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["o" /* isCompositeType */])(type)) { return type; } } } /***/ }), /***/ "./node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs": /*!*****************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs ***! \*****************************************************************************/ /*! exports provided: missingFieldArgMessage, missingDirectiveArgMessage, ProvidedRequiredArguments, ProvidedRequiredArgumentsOnDirectives */ /*! exports used: ProvidedRequiredArguments, ProvidedRequiredArgumentsOnDirectives */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export missingFieldArgMessage */ /* unused harmony export missingDirectiveArgMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = ProvidedRequiredArguments; /* harmony export (immutable) */ __webpack_exports__["b"] = ProvidedRequiredArgumentsOnDirectives; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_keyMap__ = __webpack_require__(/*! ../../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__language_printer__ = __webpack_require__(/*! ../../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__type_directives__ = __webpack_require__(/*! ../../type/directives */ "./node_modules/graphql/type/directives.mjs"); function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function missingFieldArgMessage(fieldName, argName, type) { return "Field \"".concat(fieldName, "\" argument \"").concat(argName, "\" of type ") + "\"".concat(type, "\" is required but not provided."); } function missingDirectiveArgMessage(directiveName, argName, type) { return "Directive \"@".concat(directiveName, "\" argument \"").concat(argName, "\" of type ") + "\"".concat(type, "\" is required but not provided."); } /** * Provided required arguments * * A field or directive is only valid if all required (non-null without a * default value) field arguments have been provided. */ function ProvidedRequiredArguments(context) { return _objectSpread({}, ProvidedRequiredArgumentsOnDirectives(context), { Field: { // Validate on leave to allow for deeper errors to appear first. leave: function leave(fieldNode) { var fieldDef = context.getFieldDef(); if (!fieldDef) { return false; } var argNodes = fieldNode.arguments || []; var argNodeMap = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_keyMap__["a" /* default */])(argNodes, function (arg) { return arg.name.value; }); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = fieldDef.args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var argDef = _step.value; var argNode = argNodeMap[argDef.name]; if (!argNode && Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["z" /* isRequiredArgument */])(argDef)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](missingFieldArgMessage(fieldDef.name, argDef.name, Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(argDef.type)), [fieldNode])); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } } }); } // @internal function ProvidedRequiredArgumentsOnDirectives(context) { var requiredArgsMap = Object.create(null); var schema = context.getSchema(); var definedDirectives = schema ? schema.getDirectives() : __WEBPACK_IMPORTED_MODULE_6__type_directives__["h" /* specifiedDirectives */]; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = definedDirectives[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var directive = _step2.value; requiredArgsMap[directive.name] = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_keyMap__["a" /* default */])(directive.args.filter(__WEBPACK_IMPORTED_MODULE_4__type_definition__["z" /* isRequiredArgument */]), function (arg) { return arg.name; }); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } var astDefinitions = context.getDocument().definitions; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = astDefinitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var def = _step3.value; if (def.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].DIRECTIVE_DEFINITION) { requiredArgsMap[def.name.value] = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_keyMap__["a" /* default */])(def.arguments ? def.arguments.filter(isRequiredArgumentNode) : [], function (arg) { return arg.name.value; }); } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } return { Directive: { // Validate on leave to allow for deeper errors to appear first. leave: function leave(directiveNode) { var directiveName = directiveNode.name.value; var requiredArgs = requiredArgsMap[directiveName]; if (requiredArgs) { var argNodes = directiveNode.arguments || []; var argNodeMap = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_keyMap__["a" /* default */])(argNodes, function (arg) { return arg.name.value; }); var _arr = Object.keys(requiredArgs); for (var _i = 0; _i < _arr.length; _i++) { var argName = _arr[_i]; if (!argNodeMap[argName]) { var argType = requiredArgs[argName].type; context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](missingDirectiveArgMessage(directiveName, argName, Object(__WEBPACK_IMPORTED_MODULE_4__type_definition__["C" /* isType */])(argType) ? Object(__WEBPACK_IMPORTED_MODULE_2__jsutils_inspect__["a" /* default */])(argType) : Object(__WEBPACK_IMPORTED_MODULE_5__language_printer__["a" /* print */])(argType)), directiveNode)); } } } } } }; } function isRequiredArgumentNode(arg) { return arg.type.kind === __WEBPACK_IMPORTED_MODULE_1__language_kinds__["a" /* Kind */].NON_NULL_TYPE && arg.defaultValue == null; } /***/ }), /***/ "./node_modules/graphql/validation/rules/ScalarLeafs.mjs": /*!***************************************************************!*\ !*** ./node_modules/graphql/validation/rules/ScalarLeafs.mjs ***! \***************************************************************/ /*! exports provided: noSubselectionAllowedMessage, requiredSubselectionMessage, ScalarLeafs */ /*! exports used: ScalarLeafs */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export noSubselectionAllowedMessage */ /* unused harmony export requiredSubselectionMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = ScalarLeafs; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function noSubselectionAllowedMessage(fieldName, type) { return "Field \"".concat(fieldName, "\" must not have a selection since ") + "type \"".concat(type, "\" has no subfields."); } function requiredSubselectionMessage(fieldName, type) { return "Field \"".concat(fieldName, "\" of type \"").concat(type, "\" must have a ") + "selection of subfields. Did you mean \"".concat(fieldName, " { ... }\"?"); } /** * Scalar leafs * * A GraphQL document is valid only if all leaf fields (fields without * sub selections) are of scalar or enum types. */ function ScalarLeafs(context) { return { Field: function Field(node) { var type = context.getType(); var selectionSet = node.selectionSet; if (type) { if (Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["t" /* isLeafType */])(Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(type))) { if (selectionSet) { context.reportError(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */](noSubselectionAllowedMessage(node.name.value, Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(type)), [selectionSet])); } } else if (!selectionSet) { context.reportError(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */](requiredSubselectionMessage(node.name.value, Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(type)), [node])); } } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs": /*!****************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs ***! \****************************************************************************/ /*! exports provided: singleFieldOnlyMessage, SingleFieldSubscriptions */ /*! exports used: SingleFieldSubscriptions */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export singleFieldOnlyMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = SingleFieldSubscriptions; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function singleFieldOnlyMessage(name) { return (name ? "Subscription \"".concat(name, "\" ") : 'Anonymous Subscription ') + 'must select only one top level field.'; } /** * Subscriptions must only include one field. * * A GraphQL subscription is valid only if it contains a single root field. */ function SingleFieldSubscriptions(context) { return { OperationDefinition: function OperationDefinition(node) { if (node.operation === 'subscription') { if (node.selectionSet.selections.length !== 1) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](singleFieldOnlyMessage(node.name && node.name.value), node.selectionSet.selections.slice(1))); } } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueArgumentNames.mjs": /*!***********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueArgumentNames.mjs ***! \***********************************************************************/ /*! exports provided: duplicateArgMessage, UniqueArgumentNames */ /*! exports used: UniqueArgumentNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateArgMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueArgumentNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateArgMessage(argName) { return "There can be only one argument named \"".concat(argName, "\"."); } /** * Unique argument names * * A GraphQL field or directive is only valid if all supplied arguments are * uniquely named. */ function UniqueArgumentNames(context) { var knownArgNames = Object.create(null); return { Field: function Field() { knownArgNames = Object.create(null); }, Directive: function Directive() { knownArgNames = Object.create(null); }, Argument: function Argument(node) { var argName = node.name.value; if (knownArgNames[argName]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateArgMessage(argName), [knownArgNames[argName], node.name])); } else { knownArgNames[argName] = node.name; } return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs": /*!*******************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs ***! \*******************************************************************************/ /*! exports provided: duplicateDirectiveMessage, UniqueDirectivesPerLocation */ /*! exports used: UniqueDirectivesPerLocation */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateDirectiveMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueDirectivesPerLocation; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateDirectiveMessage(directiveName) { return "The directive \"".concat(directiveName, "\" can only be used once at ") + 'this location.'; } /** * Unique directive names per location * * A GraphQL document is only valid if all directives at a given location * are uniquely named. */ function UniqueDirectivesPerLocation(context) { return { // Many different AST nodes may contain directives. Rather than listing // them all, just listen for entering any node, and check to see if it // defines any directives. enter: function enter(node) { // Flow can't refine that node.directives will only contain directives, var directives = node.directives; if (directives) { var knownDirectives = Object.create(null); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = directives[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var directive = _step.value; var directiveName = directive.name.value; if (knownDirectives[directiveName]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateDirectiveMessage(directiveName), [knownDirectives[directiveName], directive])); } else { knownDirectives[directiveName] = directive; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueFragmentNames.mjs": /*!***********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueFragmentNames.mjs ***! \***********************************************************************/ /*! exports provided: duplicateFragmentNameMessage, UniqueFragmentNames */ /*! exports used: UniqueFragmentNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateFragmentNameMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueFragmentNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateFragmentNameMessage(fragName) { return "There can be only one fragment named \"".concat(fragName, "\"."); } /** * Unique fragment names * * A GraphQL document is only valid if all defined fragments have unique names. */ function UniqueFragmentNames(context) { var knownFragmentNames = Object.create(null); return { OperationDefinition: function OperationDefinition() { return false; }, FragmentDefinition: function FragmentDefinition(node) { var fragmentName = node.name.value; if (knownFragmentNames[fragmentName]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateFragmentNameMessage(fragmentName), [knownFragmentNames[fragmentName], node.name])); } else { knownFragmentNames[fragmentName] = node.name; } return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs": /*!*************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs ***! \*************************************************************************/ /*! exports provided: duplicateInputFieldMessage, UniqueInputFieldNames */ /*! exports used: UniqueInputFieldNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateInputFieldMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueInputFieldNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateInputFieldMessage(fieldName) { return "There can be only one input field named \"".concat(fieldName, "\"."); } /** * Unique input field names * * A GraphQL input object value is only valid if all supplied fields are * uniquely named. */ function UniqueInputFieldNames(context) { var knownNameStack = []; var knownNames = Object.create(null); return { ObjectValue: { enter: function enter() { knownNameStack.push(knownNames); knownNames = Object.create(null); }, leave: function leave() { knownNames = knownNameStack.pop(); } }, ObjectField: function ObjectField(node) { var fieldName = node.name.value; if (knownNames[fieldName]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateInputFieldMessage(fieldName), [knownNames[fieldName], node.name])); } else { knownNames[fieldName] = node.name; } return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueOperationNames.mjs": /*!************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueOperationNames.mjs ***! \************************************************************************/ /*! exports provided: duplicateOperationNameMessage, UniqueOperationNames */ /*! exports used: UniqueOperationNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateOperationNameMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueOperationNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateOperationNameMessage(operationName) { return "There can be only one operation named \"".concat(operationName, "\"."); } /** * Unique operation names * * A GraphQL document is only valid if all defined operations have unique names. */ function UniqueOperationNames(context) { var knownOperationNames = Object.create(null); return { OperationDefinition: function OperationDefinition(node) { var operationName = node.name; if (operationName) { if (knownOperationNames[operationName.value]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateOperationNameMessage(operationName.value), [knownOperationNames[operationName.value], operationName])); } else { knownOperationNames[operationName.value] = operationName; } } return false; }, FragmentDefinition: function FragmentDefinition() { return false; } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/UniqueVariableNames.mjs": /*!***********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/UniqueVariableNames.mjs ***! \***********************************************************************/ /*! exports provided: duplicateVariableMessage, UniqueVariableNames */ /*! exports used: UniqueVariableNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export duplicateVariableMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = UniqueVariableNames; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function duplicateVariableMessage(variableName) { return "There can be only one variable named \"".concat(variableName, "\"."); } /** * Unique variable names * * A GraphQL operation is only valid if all its variables are uniquely named. */ function UniqueVariableNames(context) { var knownVariableNames = Object.create(null); return { OperationDefinition: function OperationDefinition() { knownVariableNames = Object.create(null); }, VariableDefinition: function VariableDefinition(node) { var variableName = node.variable.name.value; if (knownVariableNames[variableName]) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](duplicateVariableMessage(variableName), [knownVariableNames[variableName], node.variable.name])); } else { knownVariableNames[variableName] = node.variable.name; } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs": /*!***********************************************************************!*\ !*** ./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs ***! \***********************************************************************/ /*! exports provided: badValueMessage, requiredFieldMessage, unknownFieldMessage, ValuesOfCorrectType */ /*! exports used: ValuesOfCorrectType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export badValueMessage */ /* unused harmony export requiredFieldMessage */ /* unused harmony export unknownFieldMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = ValuesOfCorrectType; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_printer__ = __webpack_require__(/*! ../../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__jsutils_isInvalid__ = __webpack_require__(/*! ../../jsutils/isInvalid */ "./node_modules/graphql/jsutils/isInvalid.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__jsutils_keyMap__ = __webpack_require__(/*! ../../jsutils/keyMap */ "./node_modules/graphql/jsutils/keyMap.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__jsutils_orList__ = __webpack_require__(/*! ../../jsutils/orList */ "./node_modules/graphql/jsutils/orList.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__jsutils_suggestionList__ = __webpack_require__(/*! ../../jsutils/suggestionList */ "./node_modules/graphql/jsutils/suggestionList.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function badValueMessage(typeName, valueName, message) { return "Expected type ".concat(typeName, ", found ").concat(valueName) + (message ? "; ".concat(message) : '.'); } function requiredFieldMessage(typeName, fieldName, fieldTypeName) { return "Field ".concat(typeName, ".").concat(fieldName, " of required type ") + "".concat(fieldTypeName, " was not provided."); } function unknownFieldMessage(typeName, fieldName, message) { return "Field \"".concat(fieldName, "\" is not defined by type ").concat(typeName) + (message ? "; ".concat(message) : '.'); } /** * Value literals of correct type * * A GraphQL document is only valid if all value literals are of the type * expected at their position. */ function ValuesOfCorrectType(context) { return { NullValue: function NullValue(node) { var type = context.getInputType(); if (Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["w" /* isNonNullType */])(type)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](badValueMessage(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(type), Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node)), node)); } }, ListValue: function ListValue(node) { // Note: TypeInfo will traverse into a list's item type, so look to the // parent input type to check if it is a list. var type = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["m" /* getNullableType */])(context.getParentInputType()); if (!Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["u" /* isListType */])(type)) { isValidScalar(context, node); return false; // Don't traverse further. } }, ObjectValue: function ObjectValue(node) { var type = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(context.getInputType()); if (!Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["q" /* isInputObjectType */])(type)) { isValidScalar(context, node); return false; // Don't traverse further. } // Ensure every required field exists. var inputFields = type.getFields(); var fieldNodeMap = Object(__WEBPACK_IMPORTED_MODULE_5__jsutils_keyMap__["a" /* default */])(node.fields, function (field) { return field.name.value; }); var _arr = Object.keys(inputFields); for (var _i = 0; _i < _arr.length; _i++) { var fieldName = _arr[_i]; var fieldDef = inputFields[fieldName]; var fieldNode = fieldNodeMap[fieldName]; if (!fieldNode && Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["A" /* isRequiredInputField */])(fieldDef)) { var typeStr = Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(fieldDef.type); context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](requiredFieldMessage(type.name, fieldName, typeStr), node)); } } }, ObjectField: function ObjectField(node) { var parentType = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(context.getParentInputType()); var fieldType = context.getInputType(); if (!fieldType && Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["q" /* isInputObjectType */])(parentType)) { var suggestions = Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_suggestionList__["a" /* default */])(node.name.value, Object.keys(parentType.getFields())); var didYouMean = suggestions.length !== 0 ? "Did you mean ".concat(Object(__WEBPACK_IMPORTED_MODULE_6__jsutils_orList__["a" /* default */])(suggestions), "?") : undefined; context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](unknownFieldMessage(parentType.name, node.name.value, didYouMean), node)); } }, EnumValue: function EnumValue(node) { var type = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(context.getInputType()); if (!Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["p" /* isEnumType */])(type)) { isValidScalar(context, node); } else if (!type.getValue(node.value)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](badValueMessage(type.name, Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node), enumTypeSuggestion(type, node)), node)); } }, IntValue: function IntValue(node) { return isValidScalar(context, node); }, FloatValue: function FloatValue(node) { return isValidScalar(context, node); }, StringValue: function StringValue(node) { return isValidScalar(context, node); }, BooleanValue: function BooleanValue(node) { return isValidScalar(context, node); } }; } /** * Any value literal may be a valid representation of a Scalar, depending on * that scalar type. */ function isValidScalar(context, node) { // Report any error at the full type expected by the location. var locationType = context.getInputType(); if (!locationType) { return; } var type = Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["l" /* getNamedType */])(locationType); if (!Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["B" /* isScalarType */])(type)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](badValueMessage(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(locationType), Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node), enumTypeSuggestion(type, node)), node)); return; } // Scalars determine if a literal value is valid via parseLiteral() which // may throw or return an invalid value to indicate failure. try { var parseResult = type.parseLiteral(node, undefined /* variables */ ); if (Object(__WEBPACK_IMPORTED_MODULE_4__jsutils_isInvalid__["a" /* default */])(parseResult)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](badValueMessage(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(locationType), Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node)), node)); } } catch (error) { // Ensure a reference to the original error is maintained. context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](badValueMessage(Object(__WEBPACK_IMPORTED_MODULE_3__jsutils_inspect__["a" /* default */])(locationType), Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node), error.message), node, undefined, undefined, undefined, error)); } } function enumTypeSuggestion(type, node) { if (Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["p" /* isEnumType */])(type)) { var suggestions = Object(__WEBPACK_IMPORTED_MODULE_7__jsutils_suggestionList__["a" /* default */])(Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node), type.getValues().map(function (value) { return value.name; })); if (suggestions.length !== 0) { return "Did you mean the enum value ".concat(Object(__WEBPACK_IMPORTED_MODULE_6__jsutils_orList__["a" /* default */])(suggestions), "?"); } } } /***/ }), /***/ "./node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs": /*!**************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs ***! \**************************************************************************/ /*! exports provided: nonInputTypeOnVarMessage, VariablesAreInputTypes */ /*! exports used: VariablesAreInputTypes */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export nonInputTypeOnVarMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = VariablesAreInputTypes; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_printer__ = __webpack_require__(/*! ../../language/printer */ "./node_modules/graphql/language/printer.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__ = __webpack_require__(/*! ../../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function nonInputTypeOnVarMessage(variableName, typeName) { return "Variable \"$".concat(variableName, "\" cannot be non-input type \"").concat(typeName, "\"."); } /** * Variables are input types * * A GraphQL operation is only valid if all the variables it defines are of * input types (scalar, enum, or input object). */ function VariablesAreInputTypes(context) { return { VariableDefinition: function VariableDefinition(node) { var type = Object(__WEBPACK_IMPORTED_MODULE_3__utilities_typeFromAST__["a" /* typeFromAST */])(context.getSchema(), node.type); // If the variable type is not an input type, return an error. if (type && !Object(__WEBPACK_IMPORTED_MODULE_2__type_definition__["r" /* isInputType */])(type)) { var variableName = node.variable.name.value; context.reportError(new __WEBPACK_IMPORTED_MODULE_0__error_GraphQLError__["a" /* GraphQLError */](nonInputTypeOnVarMessage(variableName, Object(__WEBPACK_IMPORTED_MODULE_1__language_printer__["a" /* print */])(node.type)), [node.type])); } } }; } /***/ }), /***/ "./node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs": /*!******************************************************************************!*\ !*** ./node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs ***! \******************************************************************************/ /*! exports provided: badVarPosMessage, VariablesInAllowedPosition */ /*! exports used: VariablesInAllowedPosition */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export badVarPosMessage */ /* harmony export (immutable) */ __webpack_exports__["a"] = VariablesInAllowedPosition; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__ = __webpack_require__(/*! ../../jsutils/inspect */ "./node_modules/graphql/jsutils/inspect.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__ = __webpack_require__(/*! ../../error/GraphQLError */ "./node_modules/graphql/error/GraphQLError.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__language_kinds__ = __webpack_require__(/*! ../../language/kinds */ "./node_modules/graphql/language/kinds.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__type_definition__ = __webpack_require__(/*! ../../type/definition */ "./node_modules/graphql/type/definition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utilities_typeComparators__ = __webpack_require__(/*! ../../utilities/typeComparators */ "./node_modules/graphql/utilities/typeComparators.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utilities_typeFromAST__ = __webpack_require__(/*! ../../utilities/typeFromAST */ "./node_modules/graphql/utilities/typeFromAST.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function badVarPosMessage(varName, varType, expectedType) { return "Variable \"$".concat(varName, "\" of type \"").concat(varType, "\" used in ") + "position expecting type \"".concat(expectedType, "\"."); } /** * Variables passed to field arguments conform to type */ function VariablesInAllowedPosition(context) { var varDefMap = Object.create(null); return { OperationDefinition: { enter: function enter() { varDefMap = Object.create(null); }, leave: function leave(operation) { var usages = context.getRecursiveVariableUsages(operation); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = usages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref2 = _step.value; var node = _ref2.node, type = _ref2.type, defaultValue = _ref2.defaultValue; var varName = node.name.value; var varDef = varDefMap[varName]; if (varDef && type) { // A var type is allowed if it is the same or more strict (e.g. is // a subtype of) than the expected type. It can be more strict if // the variable type is non-null when the expected type is nullable. // If both are list types, the variable item type can be more strict // than the expected item type (contravariant). var schema = context.getSchema(); var varType = Object(__WEBPACK_IMPORTED_MODULE_5__utilities_typeFromAST__["a" /* typeFromAST */])(schema, varDef.type); if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) { context.reportError(new __WEBPACK_IMPORTED_MODULE_1__error_GraphQLError__["a" /* GraphQLError */](badVarPosMessage(varName, Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(varType), Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_inspect__["a" /* default */])(type)), [varDef, node])); } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, VariableDefinition: function VariableDefinition(node) { varDefMap[node.variable.name.value] = node; } }; } /** * Returns true if the variable is allowed in the location it was found, * which includes considering if default values exist for either the variable * or the location at which it is located. */ function allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) { if (Object(__WEBPACK_IMPORTED_MODULE_3__type_definition__["w" /* isNonNullType */])(locationType) && !Object(__WEBPACK_IMPORTED_MODULE_3__type_definition__["w" /* isNonNullType */])(varType)) { var hasNonNullVariableDefaultValue = varDefaultValue && varDefaultValue.kind !== __WEBPACK_IMPORTED_MODULE_2__language_kinds__["a" /* Kind */].NULL; var hasLocationDefaultValue = locationDefaultValue !== undefined; if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) { return false; } var nullableLocationType = locationType.ofType; return Object(__WEBPACK_IMPORTED_MODULE_4__utilities_typeComparators__["c" /* isTypeSubTypeOf */])(schema, varType, nullableLocationType); } return Object(__WEBPACK_IMPORTED_MODULE_4__utilities_typeComparators__["c" /* isTypeSubTypeOf */])(schema, varType, locationType); } /***/ }), /***/ "./node_modules/graphql/validation/specifiedRules.mjs": /*!************************************************************!*\ !*** ./node_modules/graphql/validation/specifiedRules.mjs ***! \************************************************************/ /*! exports provided: specifiedRules, specifiedSDLRules */ /*! exports used: specifiedRules, specifiedSDLRules */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return specifiedRules; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return specifiedSDLRules; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rules_ExecutableDefinitions__ = __webpack_require__(/*! ./rules/ExecutableDefinitions */ "./node_modules/graphql/validation/rules/ExecutableDefinitions.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rules_UniqueOperationNames__ = __webpack_require__(/*! ./rules/UniqueOperationNames */ "./node_modules/graphql/validation/rules/UniqueOperationNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__rules_LoneAnonymousOperation__ = __webpack_require__(/*! ./rules/LoneAnonymousOperation */ "./node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__rules_SingleFieldSubscriptions__ = __webpack_require__(/*! ./rules/SingleFieldSubscriptions */ "./node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rules_KnownTypeNames__ = __webpack_require__(/*! ./rules/KnownTypeNames */ "./node_modules/graphql/validation/rules/KnownTypeNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__rules_FragmentsOnCompositeTypes__ = __webpack_require__(/*! ./rules/FragmentsOnCompositeTypes */ "./node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__rules_VariablesAreInputTypes__ = __webpack_require__(/*! ./rules/VariablesAreInputTypes */ "./node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__rules_ScalarLeafs__ = __webpack_require__(/*! ./rules/ScalarLeafs */ "./node_modules/graphql/validation/rules/ScalarLeafs.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__rules_FieldsOnCorrectType__ = __webpack_require__(/*! ./rules/FieldsOnCorrectType */ "./node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__rules_UniqueFragmentNames__ = __webpack_require__(/*! ./rules/UniqueFragmentNames */ "./node_modules/graphql/validation/rules/UniqueFragmentNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__rules_KnownFragmentNames__ = __webpack_require__(/*! ./rules/KnownFragmentNames */ "./node_modules/graphql/validation/rules/KnownFragmentNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__rules_NoUnusedFragments__ = __webpack_require__(/*! ./rules/NoUnusedFragments */ "./node_modules/graphql/validation/rules/NoUnusedFragments.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__rules_PossibleFragmentSpreads__ = __webpack_require__(/*! ./rules/PossibleFragmentSpreads */ "./node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__rules_NoFragmentCycles__ = __webpack_require__(/*! ./rules/NoFragmentCycles */ "./node_modules/graphql/validation/rules/NoFragmentCycles.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__rules_UniqueVariableNames__ = __webpack_require__(/*! ./rules/UniqueVariableNames */ "./node_modules/graphql/validation/rules/UniqueVariableNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__rules_NoUndefinedVariables__ = __webpack_require__(/*! ./rules/NoUndefinedVariables */ "./node_modules/graphql/validation/rules/NoUndefinedVariables.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__rules_NoUnusedVariables__ = __webpack_require__(/*! ./rules/NoUnusedVariables */ "./node_modules/graphql/validation/rules/NoUnusedVariables.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__rules_KnownDirectives__ = __webpack_require__(/*! ./rules/KnownDirectives */ "./node_modules/graphql/validation/rules/KnownDirectives.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__rules_UniqueDirectivesPerLocation__ = __webpack_require__(/*! ./rules/UniqueDirectivesPerLocation */ "./node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__rules_KnownArgumentNames__ = __webpack_require__(/*! ./rules/KnownArgumentNames */ "./node_modules/graphql/validation/rules/KnownArgumentNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__rules_UniqueArgumentNames__ = __webpack_require__(/*! ./rules/UniqueArgumentNames */ "./node_modules/graphql/validation/rules/UniqueArgumentNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__rules_ValuesOfCorrectType__ = __webpack_require__(/*! ./rules/ValuesOfCorrectType */ "./node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__rules_ProvidedRequiredArguments__ = __webpack_require__(/*! ./rules/ProvidedRequiredArguments */ "./node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__rules_VariablesInAllowedPosition__ = __webpack_require__(/*! ./rules/VariablesInAllowedPosition */ "./node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__rules_OverlappingFieldsCanBeMerged__ = __webpack_require__(/*! ./rules/OverlappingFieldsCanBeMerged */ "./node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__rules_UniqueInputFieldNames__ = __webpack_require__(/*! ./rules/UniqueInputFieldNames */ "./node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__rules_LoneSchemaDefinition__ = __webpack_require__(/*! ./rules/LoneSchemaDefinition */ "./node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ // Spec Section: "Executable Definitions" // Spec Section: "Operation Name Uniqueness" // Spec Section: "Lone Anonymous Operation" // Spec Section: "Subscriptions with Single Root Field" // Spec Section: "Fragment Spread Type Existence" // Spec Section: "Fragments on Composite Types" // Spec Section: "Variables are Input Types" // Spec Section: "Leaf Field Selections" // Spec Section: "Field Selections on Objects, Interfaces, and Unions Types" // Spec Section: "Fragment Name Uniqueness" // Spec Section: "Fragment spread target defined" // Spec Section: "Fragments must be used" // Spec Section: "Fragment spread is possible" // Spec Section: "Fragments must not form cycles" // Spec Section: "Variable Uniqueness" // Spec Section: "All Variable Used Defined" // Spec Section: "All Variables Used" // Spec Section: "Directives Are Defined" // Spec Section: "Directives Are Unique Per Location" // Spec Section: "Argument Names" // Spec Section: "Argument Uniqueness" // Spec Section: "Value Type Correctness" // Spec Section: "Argument Optionality" // Spec Section: "All Variable Usages Are Allowed" // Spec Section: "Field Selection Merging" // Spec Section: "Input Object Field Uniqueness" /** * This set includes all validation rules defined by the GraphQL spec. * * The order of the rules in this list has been adjusted to lead to the * most clear output when encountering multiple validation errors. */ var specifiedRules = [__WEBPACK_IMPORTED_MODULE_0__rules_ExecutableDefinitions__["a" /* ExecutableDefinitions */], __WEBPACK_IMPORTED_MODULE_1__rules_UniqueOperationNames__["a" /* UniqueOperationNames */], __WEBPACK_IMPORTED_MODULE_2__rules_LoneAnonymousOperation__["a" /* LoneAnonymousOperation */], __WEBPACK_IMPORTED_MODULE_3__rules_SingleFieldSubscriptions__["a" /* SingleFieldSubscriptions */], __WEBPACK_IMPORTED_MODULE_4__rules_KnownTypeNames__["a" /* KnownTypeNames */], __WEBPACK_IMPORTED_MODULE_5__rules_FragmentsOnCompositeTypes__["a" /* FragmentsOnCompositeTypes */], __WEBPACK_IMPORTED_MODULE_6__rules_VariablesAreInputTypes__["a" /* VariablesAreInputTypes */], __WEBPACK_IMPORTED_MODULE_7__rules_ScalarLeafs__["a" /* ScalarLeafs */], __WEBPACK_IMPORTED_MODULE_8__rules_FieldsOnCorrectType__["a" /* FieldsOnCorrectType */], __WEBPACK_IMPORTED_MODULE_9__rules_UniqueFragmentNames__["a" /* UniqueFragmentNames */], __WEBPACK_IMPORTED_MODULE_10__rules_KnownFragmentNames__["a" /* KnownFragmentNames */], __WEBPACK_IMPORTED_MODULE_11__rules_NoUnusedFragments__["a" /* NoUnusedFragments */], __WEBPACK_IMPORTED_MODULE_12__rules_PossibleFragmentSpreads__["a" /* PossibleFragmentSpreads */], __WEBPACK_IMPORTED_MODULE_13__rules_NoFragmentCycles__["a" /* NoFragmentCycles */], __WEBPACK_IMPORTED_MODULE_14__rules_UniqueVariableNames__["a" /* UniqueVariableNames */], __WEBPACK_IMPORTED_MODULE_15__rules_NoUndefinedVariables__["a" /* NoUndefinedVariables */], __WEBPACK_IMPORTED_MODULE_16__rules_NoUnusedVariables__["a" /* NoUnusedVariables */], __WEBPACK_IMPORTED_MODULE_17__rules_KnownDirectives__["a" /* KnownDirectives */], __WEBPACK_IMPORTED_MODULE_18__rules_UniqueDirectivesPerLocation__["a" /* UniqueDirectivesPerLocation */], __WEBPACK_IMPORTED_MODULE_19__rules_KnownArgumentNames__["a" /* KnownArgumentNames */], __WEBPACK_IMPORTED_MODULE_20__rules_UniqueArgumentNames__["a" /* UniqueArgumentNames */], __WEBPACK_IMPORTED_MODULE_21__rules_ValuesOfCorrectType__["a" /* ValuesOfCorrectType */], __WEBPACK_IMPORTED_MODULE_22__rules_ProvidedRequiredArguments__["a" /* ProvidedRequiredArguments */], __WEBPACK_IMPORTED_MODULE_23__rules_VariablesInAllowedPosition__["a" /* VariablesInAllowedPosition */], __WEBPACK_IMPORTED_MODULE_24__rules_OverlappingFieldsCanBeMerged__["a" /* OverlappingFieldsCanBeMerged */], __WEBPACK_IMPORTED_MODULE_25__rules_UniqueInputFieldNames__["a" /* UniqueInputFieldNames */]]; // @internal var specifiedSDLRules = [__WEBPACK_IMPORTED_MODULE_26__rules_LoneSchemaDefinition__["a" /* LoneSchemaDefinition */], __WEBPACK_IMPORTED_MODULE_17__rules_KnownDirectives__["a" /* KnownDirectives */], __WEBPACK_IMPORTED_MODULE_18__rules_UniqueDirectivesPerLocation__["a" /* UniqueDirectivesPerLocation */], __WEBPACK_IMPORTED_MODULE_19__rules_KnownArgumentNames__["b" /* KnownArgumentNamesOnDirectives */], __WEBPACK_IMPORTED_MODULE_20__rules_UniqueArgumentNames__["a" /* UniqueArgumentNames */], __WEBPACK_IMPORTED_MODULE_25__rules_UniqueInputFieldNames__["a" /* UniqueInputFieldNames */], __WEBPACK_IMPORTED_MODULE_22__rules_ProvidedRequiredArguments__["b" /* ProvidedRequiredArgumentsOnDirectives */]]; /***/ }), /***/ "./node_modules/graphql/validation/validate.mjs": /*!******************************************************!*\ !*** ./node_modules/graphql/validation/validate.mjs ***! \******************************************************/ /*! exports provided: validate, validateSDL, assertValidSDL, assertValidSDLExtension */ /*! exports used: assertValidSDL, assertValidSDLExtension, validate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["c"] = validate; /* unused harmony export validateSDL */ /* harmony export (immutable) */ __webpack_exports__["a"] = assertValidSDL; /* harmony export (immutable) */ __webpack_exports__["b"] = assertValidSDLExtension; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__ = __webpack_require__(/*! ../jsutils/invariant */ "./node_modules/graphql/jsutils/invariant.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__language_visitor__ = __webpack_require__(/*! ../language/visitor */ "./node_modules/graphql/language/visitor.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type_validate__ = __webpack_require__(/*! ../type/validate */ "./node_modules/graphql/type/validate.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utilities_TypeInfo__ = __webpack_require__(/*! ../utilities/TypeInfo */ "./node_modules/graphql/utilities/TypeInfo.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__specifiedRules__ = __webpack_require__(/*! ./specifiedRules */ "./node_modules/graphql/validation/specifiedRules.mjs"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ValidationContext__ = __webpack_require__(/*! ./ValidationContext */ "./node_modules/graphql/validation/ValidationContext.mjs"); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Implements the "Validation" section of the spec. * * Validation runs synchronously, returning an array of encountered errors, or * an empty array if no errors were encountered and the document is valid. * * A list of specific validation rules may be provided. If not provided, the * default list of rules defined by the GraphQL specification will be used. * * Each validation rules is a function which returns a visitor * (see the language/visitor API). Visitor methods are expected to return * GraphQLErrors, or Arrays of GraphQLErrors when invalid. * * Optionally a custom TypeInfo instance may be provided. If not provided, one * will be created from the provided schema. */ function validate(schema, documentAST) { var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_4__specifiedRules__["a" /* specifiedRules */]; var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new __WEBPACK_IMPORTED_MODULE_3__utilities_TypeInfo__["a" /* TypeInfo */](schema); !documentAST ? Object(__WEBPACK_IMPORTED_MODULE_0__jsutils_invariant__["a" /* default */])(0, 'Must provide document') : void 0; // If the schema used for validation is invalid, throw an error. Object(__WEBPACK_IMPORTED_MODULE_2__type_validate__["a" /* assertValidSchema */])(schema); var context = new __WEBPACK_IMPORTED_MODULE_5__ValidationContext__["b" /* ValidationContext */](schema, documentAST, typeInfo); // This uses a specialized visitor which runs multiple visitors in parallel, // while maintaining the visitor skip and break API. var visitor = Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["b" /* visitInParallel */])(rules.map(function (rule) { return rule(context); })); // Visit the whole document with each instance of all provided rules. Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["a" /* visit */])(documentAST, Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["c" /* visitWithTypeInfo */])(typeInfo, visitor)); return context.getErrors(); } // @internal function validateSDL(documentAST, schemaToExtend) { var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_4__specifiedRules__["b" /* specifiedSDLRules */]; var context = new __WEBPACK_IMPORTED_MODULE_5__ValidationContext__["a" /* SDLValidationContext */](documentAST, schemaToExtend); var visitors = rules.map(function (rule) { return rule(context); }); Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["a" /* visit */])(documentAST, Object(__WEBPACK_IMPORTED_MODULE_1__language_visitor__["b" /* visitInParallel */])(visitors)); return context.getErrors(); } /** * Utility function which asserts a SDL document is valid by throwing an error * if it is invalid. * * @internal */ function assertValidSDL(documentAST) { var errors = validateSDL(documentAST); if (errors.length !== 0) { throw new Error(errors.map(function (error) { return error.message; }).join('\n\n')); } } /** * Utility function which asserts a SDL document is valid by throwing an error * if it is invalid. * * @internal */ function assertValidSDLExtension(documentAST, schema) { var errors = validateSDL(documentAST, schema); if (errors.length !== 0) { throw new Error(errors.map(function (error) { return error.message; }).join('\n\n')); } } /***/ }), /***/ "./node_modules/has-ansi/index.js": /*!****************************************!*\ !*** ./node_modules/has-ansi/index.js ***! \****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var ansiRegex = __webpack_require__(/*! ansi-regex */ "./node_modules/ansi-regex/index.js"); var re = new RegExp(ansiRegex().source); // remove the `g` flag module.exports = re.test.bind(re); /***/ }), /***/ "./node_modules/hash-base/index.js": /*!*****************************************!*\ !*** ./node_modules/hash-base/index.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { var Transform = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") function HashBase (blockSize) { Transform.call(this) this._block = new Buffer(blockSize) this._blockSize = blockSize this._blockOffset = 0 this._length = [0, 0, 0, 0] this._finalized = false } inherits(HashBase, Transform) HashBase.prototype._transform = function (chunk, encoding, callback) { var error = null try { if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding) this.update(chunk) } catch (err) { error = err } callback(error) } HashBase.prototype._flush = function (callback) { var error = null try { this.push(this._digest()) } catch (err) { error = err } callback(error) } HashBase.prototype.update = function (data, encoding) { if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer') if (this._finalized) throw new Error('Digest already called') if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary') // consume data var block = this._block var offset = 0 while (this._blockOffset + data.length - offset >= this._blockSize) { for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++] this._update() this._blockOffset = 0 } while (offset < data.length) block[this._blockOffset++] = data[offset++] // update length for (var j = 0, carry = data.length * 8; carry > 0; ++j) { this._length[j] += carry carry = (this._length[j] / 0x0100000000) | 0 if (carry > 0) this._length[j] -= 0x0100000000 * carry } return this } HashBase.prototype._update = function (data) { throw new Error('_update is not implemented') } HashBase.prototype.digest = function (encoding) { if (this._finalized) throw new Error('Digest already called') this._finalized = true var digest = this._digest() if (encoding !== undefined) digest = digest.toString(encoding) return digest } HashBase.prototype._digest = function () { throw new Error('_digest is not implemented') } module.exports = HashBase /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/hash.js/lib/hash.js": /*!******************************************!*\ !*** ./node_modules/hash.js/lib/hash.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var hash = exports; hash.utils = __webpack_require__(/*! ./hash/utils */ "./node_modules/hash.js/lib/hash/utils.js"); hash.common = __webpack_require__(/*! ./hash/common */ "./node_modules/hash.js/lib/hash/common.js"); hash.sha = __webpack_require__(/*! ./hash/sha */ "./node_modules/hash.js/lib/hash/sha.js"); hash.ripemd = __webpack_require__(/*! ./hash/ripemd */ "./node_modules/hash.js/lib/hash/ripemd.js"); hash.hmac = __webpack_require__(/*! ./hash/hmac */ "./node_modules/hash.js/lib/hash/hmac.js"); // Proxy hash functions to the main object hash.sha1 = hash.sha.sha1; hash.sha256 = hash.sha.sha256; hash.sha224 = hash.sha.sha224; hash.sha384 = hash.sha.sha384; hash.sha512 = hash.sha.sha512; hash.ripemd160 = hash.ripemd.ripemd160; /***/ }), /***/ "./node_modules/hash.js/lib/hash/common.js": /*!*************************************************!*\ !*** ./node_modules/hash.js/lib/hash/common.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); function BlockHash() { this.pending = null; this.pendingTotal = 0; this.blockSize = this.constructor.blockSize; this.outSize = this.constructor.outSize; this.hmacStrength = this.constructor.hmacStrength; this.padLength = this.constructor.padLength / 8; this.endian = 'big'; this._delta8 = this.blockSize / 8; this._delta32 = this.blockSize / 32; } exports.BlockHash = BlockHash; BlockHash.prototype.update = function update(msg, enc) { // Convert message to array, pad it, and join into 32bit blocks msg = utils.toArray(msg, enc); if (!this.pending) this.pending = msg; else this.pending = this.pending.concat(msg); this.pendingTotal += msg.length; // Enough data, try updating if (this.pending.length >= this._delta8) { msg = this.pending; // Process pending data in blocks var r = msg.length % this._delta8; this.pending = msg.slice(msg.length - r, msg.length); if (this.pending.length === 0) this.pending = null; msg = utils.join32(msg, 0, msg.length - r, this.endian); for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32); } return this; }; BlockHash.prototype.digest = function digest(enc) { this.update(this._pad()); assert(this.pending === null); return this._digest(enc); }; BlockHash.prototype._pad = function pad() { var len = this.pendingTotal; var bytes = this._delta8; var k = bytes - ((len + this.padLength) % bytes); var res = new Array(k + this.padLength); res[0] = 0x80; for (var i = 1; i < k; i++) res[i] = 0; // Append length len <<= 3; if (this.endian === 'big') { for (var t = 8; t < this.padLength; t++) res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = (len >>> 24) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = len & 0xff; } else { res[i++] = len & 0xff; res[i++] = (len >>> 8) & 0xff; res[i++] = (len >>> 16) & 0xff; res[i++] = (len >>> 24) & 0xff; res[i++] = 0; res[i++] = 0; res[i++] = 0; res[i++] = 0; for (t = 8; t < this.padLength; t++) res[i++] = 0; } return res; }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/hmac.js": /*!***********************************************!*\ !*** ./node_modules/hash.js/lib/hash/hmac.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); function Hmac(hash, key, enc) { if (!(this instanceof Hmac)) return new Hmac(hash, key, enc); this.Hash = hash; this.blockSize = hash.blockSize / 8; this.outSize = hash.outSize / 8; this.inner = null; this.outer = null; this._init(utils.toArray(key, enc)); } module.exports = Hmac; Hmac.prototype._init = function init(key) { // Shorten key, if needed if (key.length > this.blockSize) key = new this.Hash().update(key).digest(); assert(key.length <= this.blockSize); // Add padding to key for (var i = key.length; i < this.blockSize; i++) key.push(0); for (i = 0; i < key.length; i++) key[i] ^= 0x36; this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a for (i = 0; i < key.length; i++) key[i] ^= 0x6a; this.outer = new this.Hash().update(key); }; Hmac.prototype.update = function update(msg, enc) { this.inner.update(msg, enc); return this; }; Hmac.prototype.digest = function digest(enc) { this.outer.update(this.inner.digest()); return this.outer.digest(enc); }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/ripemd.js": /*!*************************************************!*\ !*** ./node_modules/hash.js/lib/hash/ripemd.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ./utils */ "./node_modules/hash.js/lib/hash/utils.js"); var common = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/common.js"); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_3 = utils.sum32_3; var sum32_4 = utils.sum32_4; var BlockHash = common.BlockHash; function RIPEMD160() { if (!(this instanceof RIPEMD160)) return new RIPEMD160(); BlockHash.call(this); this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ]; this.endian = 'little'; } utils.inherits(RIPEMD160, BlockHash); exports.ripemd160 = RIPEMD160; RIPEMD160.blockSize = 512; RIPEMD160.outSize = 160; RIPEMD160.hmacStrength = 192; RIPEMD160.padLength = 64; RIPEMD160.prototype._update = function update(msg, start) { var A = this.h[0]; var B = this.h[1]; var C = this.h[2]; var D = this.h[3]; var E = this.h[4]; var Ah = A; var Bh = B; var Ch = C; var Dh = D; var Eh = E; for (var j = 0; j < 80; j++) { var T = sum32( rotl32( sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E); A = E; E = D; D = rotl32(C, 10); C = B; B = T; T = sum32( rotl32( sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh); Ah = Eh; Eh = Dh; Dh = rotl32(Ch, 10); Ch = Bh; Bh = T; } T = sum32_3(this.h[1], C, Dh); this.h[1] = sum32_3(this.h[2], D, Eh); this.h[2] = sum32_3(this.h[3], E, Ah); this.h[3] = sum32_3(this.h[4], A, Bh); this.h[4] = sum32_3(this.h[0], B, Ch); this.h[0] = T; }; RIPEMD160.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'little'); else return utils.split32(this.h, 'little'); }; function f(j, x, y, z) { if (j <= 15) return x ^ y ^ z; else if (j <= 31) return (x & y) | ((~x) & z); else if (j <= 47) return (x | (~y)) ^ z; else if (j <= 63) return (x & z) | (y & (~z)); else return x ^ (y | (~z)); } function K(j) { if (j <= 15) return 0x00000000; else if (j <= 31) return 0x5a827999; else if (j <= 47) return 0x6ed9eba1; else if (j <= 63) return 0x8f1bbcdc; else return 0xa953fd4e; } function Kh(j) { if (j <= 15) return 0x50a28be6; else if (j <= 31) return 0x5c4dd124; else if (j <= 47) return 0x6d703ef3; else if (j <= 63) return 0x7a6d76e9; else return 0x00000000; } var r = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 ]; var rh = [ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 ]; var s = [ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]; var sh = [ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]; /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha.js": /*!**********************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha.js ***! \**********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.sha1 = __webpack_require__(/*! ./sha/1 */ "./node_modules/hash.js/lib/hash/sha/1.js"); exports.sha224 = __webpack_require__(/*! ./sha/224 */ "./node_modules/hash.js/lib/hash/sha/224.js"); exports.sha256 = __webpack_require__(/*! ./sha/256 */ "./node_modules/hash.js/lib/hash/sha/256.js"); exports.sha384 = __webpack_require__(/*! ./sha/384 */ "./node_modules/hash.js/lib/hash/sha/384.js"); exports.sha512 = __webpack_require__(/*! ./sha/512 */ "./node_modules/hash.js/lib/hash/sha/512.js"); /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/1.js": /*!************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/1.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); var shaCommon = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/sha/common.js"); var rotl32 = utils.rotl32; var sum32 = utils.sum32; var sum32_5 = utils.sum32_5; var ft_1 = shaCommon.ft_1; var BlockHash = common.BlockHash; var sha1_K = [ 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6 ]; function SHA1() { if (!(this instanceof SHA1)) return new SHA1(); BlockHash.call(this); this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ]; this.W = new Array(80); } utils.inherits(SHA1, BlockHash); module.exports = SHA1; SHA1.blockSize = 512; SHA1.outSize = 160; SHA1.hmacStrength = 80; SHA1.padLength = 64; SHA1.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for(; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; for (i = 0; i < W.length; i++) { var s = ~~(i / 20); var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); e = d; d = c; c = rotl32(b, 30); b = a; a = t; } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); }; SHA1.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/224.js": /*!**************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/224.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var SHA256 = __webpack_require__(/*! ./256 */ "./node_modules/hash.js/lib/hash/sha/256.js"); function SHA224() { if (!(this instanceof SHA224)) return new SHA224(); SHA256.call(this); this.h = [ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ]; } utils.inherits(SHA224, SHA256); module.exports = SHA224; SHA224.blockSize = 512; SHA224.outSize = 224; SHA224.hmacStrength = 192; SHA224.padLength = 64; SHA224.prototype._digest = function digest(enc) { // Just truncate output if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big'); else return utils.split32(this.h.slice(0, 7), 'big'); }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/256.js": /*!**************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/256.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); var shaCommon = __webpack_require__(/*! ./common */ "./node_modules/hash.js/lib/hash/sha/common.js"); var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var sum32 = utils.sum32; var sum32_4 = utils.sum32_4; var sum32_5 = utils.sum32_5; var ch32 = shaCommon.ch32; var maj32 = shaCommon.maj32; var s0_256 = shaCommon.s0_256; var s1_256 = shaCommon.s1_256; var g0_256 = shaCommon.g0_256; var g1_256 = shaCommon.g1_256; var BlockHash = common.BlockHash; var sha256_K = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 ]; function SHA256() { if (!(this instanceof SHA256)) return new SHA256(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 ]; this.k = sha256_K; this.W = new Array(64); } utils.inherits(SHA256, BlockHash); module.exports = SHA256; SHA256.blockSize = 512; SHA256.outSize = 256; SHA256.hmacStrength = 192; SHA256.padLength = 64; SHA256.prototype._update = function _update(msg, start) { var W = this.W; for (var i = 0; i < 16; i++) W[i] = msg[start + i]; for (; i < W.length; i++) W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]); var a = this.h[0]; var b = this.h[1]; var c = this.h[2]; var d = this.h[3]; var e = this.h[4]; var f = this.h[5]; var g = this.h[6]; var h = this.h[7]; assert(this.k.length === W.length); for (i = 0; i < W.length; i++) { var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); var T2 = sum32(s0_256(a), maj32(a, b, c)); h = g; g = f; f = e; e = sum32(d, T1); d = c; c = b; b = a; a = sum32(T1, T2); } this.h[0] = sum32(this.h[0], a); this.h[1] = sum32(this.h[1], b); this.h[2] = sum32(this.h[2], c); this.h[3] = sum32(this.h[3], d); this.h[4] = sum32(this.h[4], e); this.h[5] = sum32(this.h[5], f); this.h[6] = sum32(this.h[6], g); this.h[7] = sum32(this.h[7], h); }; SHA256.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/384.js": /*!**************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/384.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var SHA512 = __webpack_require__(/*! ./512 */ "./node_modules/hash.js/lib/hash/sha/512.js"); function SHA384() { if (!(this instanceof SHA384)) return new SHA384(); SHA512.call(this); this.h = [ 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4 ]; } utils.inherits(SHA384, SHA512); module.exports = SHA384; SHA384.blockSize = 1024; SHA384.outSize = 384; SHA384.hmacStrength = 192; SHA384.padLength = 128; SHA384.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big'); else return utils.split32(this.h.slice(0, 12), 'big'); }; /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/512.js": /*!**************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/512.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var common = __webpack_require__(/*! ../common */ "./node_modules/hash.js/lib/hash/common.js"); var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var rotr64_hi = utils.rotr64_hi; var rotr64_lo = utils.rotr64_lo; var shr64_hi = utils.shr64_hi; var shr64_lo = utils.shr64_lo; var sum64 = utils.sum64; var sum64_hi = utils.sum64_hi; var sum64_lo = utils.sum64_lo; var sum64_4_hi = utils.sum64_4_hi; var sum64_4_lo = utils.sum64_4_lo; var sum64_5_hi = utils.sum64_5_hi; var sum64_5_lo = utils.sum64_5_lo; var BlockHash = common.BlockHash; var sha512_K = [ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 ]; function SHA512() { if (!(this instanceof SHA512)) return new SHA512(); BlockHash.call(this); this.h = [ 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179 ]; this.k = sha512_K; this.W = new Array(160); } utils.inherits(SHA512, BlockHash); module.exports = SHA512; SHA512.blockSize = 1024; SHA512.outSize = 512; SHA512.hmacStrength = 192; SHA512.padLength = 128; SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { var W = this.W; // 32 x 32bit words for (var i = 0; i < 32; i++) W[i] = msg[start + i]; for (; i < W.length; i += 2) { var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2 var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); var c1_hi = W[i - 14]; // i - 7 var c1_lo = W[i - 13]; var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15 var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); var c3_hi = W[i - 32]; // i - 16 var c3_lo = W[i - 31]; W[i] = sum64_4_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo); W[i + 1] = sum64_4_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo); } }; SHA512.prototype._update = function _update(msg, start) { this._prepareBlock(msg, start); var W = this.W; var ah = this.h[0]; var al = this.h[1]; var bh = this.h[2]; var bl = this.h[3]; var ch = this.h[4]; var cl = this.h[5]; var dh = this.h[6]; var dl = this.h[7]; var eh = this.h[8]; var el = this.h[9]; var fh = this.h[10]; var fl = this.h[11]; var gh = this.h[12]; var gl = this.h[13]; var hh = this.h[14]; var hl = this.h[15]; assert(this.k.length === W.length); for (var i = 0; i < W.length; i += 2) { var c0_hi = hh; var c0_lo = hl; var c1_hi = s1_512_hi(eh, el); var c1_lo = s1_512_lo(eh, el); var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); var c3_hi = this.k[i]; var c3_lo = this.k[i + 1]; var c4_hi = W[i]; var c4_lo = W[i + 1]; var T1_hi = sum64_5_hi( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo); var T1_lo = sum64_5_lo( c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo); c0_hi = s0_512_hi(ah, al); c0_lo = s0_512_lo(ah, al); c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); hh = gh; hl = gl; gh = fh; gl = fl; fh = eh; fl = el; eh = sum64_hi(dh, dl, T1_hi, T1_lo); el = sum64_lo(dl, dl, T1_hi, T1_lo); dh = ch; dl = cl; ch = bh; cl = bl; bh = ah; bl = al; ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); } sum64(this.h, 0, ah, al); sum64(this.h, 2, bh, bl); sum64(this.h, 4, ch, cl); sum64(this.h, 6, dh, dl); sum64(this.h, 8, eh, el); sum64(this.h, 10, fh, fl); sum64(this.h, 12, gh, gl); sum64(this.h, 14, hh, hl); }; SHA512.prototype._digest = function digest(enc) { if (enc === 'hex') return utils.toHex32(this.h, 'big'); else return utils.split32(this.h, 'big'); }; function ch64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ ((~xh) & zh); if (r < 0) r += 0x100000000; return r; } function ch64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ ((~xl) & zl); if (r < 0) r += 0x100000000; return r; } function maj64_hi(xh, xl, yh, yl, zh) { var r = (xh & yh) ^ (xh & zh) ^ (yh & zh); if (r < 0) r += 0x100000000; return r; } function maj64_lo(xh, xl, yh, yl, zh, zl) { var r = (xl & yl) ^ (xl & zl) ^ (yl & zl); if (r < 0) r += 0x100000000; return r; } function s0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 28); var c1_hi = rotr64_hi(xl, xh, 2); // 34 var c2_hi = rotr64_hi(xl, xh, 7); // 39 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 28); var c1_lo = rotr64_lo(xl, xh, 2); // 34 var c2_lo = rotr64_lo(xl, xh, 7); // 39 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function s1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 14); var c1_hi = rotr64_hi(xh, xl, 18); var c2_hi = rotr64_hi(xl, xh, 9); // 41 var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function s1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 14); var c1_lo = rotr64_lo(xh, xl, 18); var c2_lo = rotr64_lo(xl, xh, 9); // 41 var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g0_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 1); var c1_hi = rotr64_hi(xh, xl, 8); var c2_hi = shr64_hi(xh, xl, 7); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g0_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 1); var c1_lo = rotr64_lo(xh, xl, 8); var c2_lo = shr64_lo(xh, xl, 7); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } function g1_512_hi(xh, xl) { var c0_hi = rotr64_hi(xh, xl, 19); var c1_hi = rotr64_hi(xl, xh, 29); // 61 var c2_hi = shr64_hi(xh, xl, 6); var r = c0_hi ^ c1_hi ^ c2_hi; if (r < 0) r += 0x100000000; return r; } function g1_512_lo(xh, xl) { var c0_lo = rotr64_lo(xh, xl, 19); var c1_lo = rotr64_lo(xl, xh, 29); // 61 var c2_lo = shr64_lo(xh, xl, 6); var r = c0_lo ^ c1_lo ^ c2_lo; if (r < 0) r += 0x100000000; return r; } /***/ }), /***/ "./node_modules/hash.js/lib/hash/sha/common.js": /*!*****************************************************!*\ !*** ./node_modules/hash.js/lib/hash/sha/common.js ***! \*****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(/*! ../utils */ "./node_modules/hash.js/lib/hash/utils.js"); var rotr32 = utils.rotr32; function ft_1(s, x, y, z) { if (s === 0) return ch32(x, y, z); if (s === 1 || s === 3) return p32(x, y, z); if (s === 2) return maj32(x, y, z); } exports.ft_1 = ft_1; function ch32(x, y, z) { return (x & y) ^ ((~x) & z); } exports.ch32 = ch32; function maj32(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } exports.maj32 = maj32; function p32(x, y, z) { return x ^ y ^ z; } exports.p32 = p32; function s0_256(x) { return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); } exports.s0_256 = s0_256; function s1_256(x) { return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); } exports.s1_256 = s1_256; function g0_256(x) { return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3); } exports.g0_256 = g0_256; function g1_256(x) { return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10); } exports.g1_256 = g1_256; /***/ }), /***/ "./node_modules/hash.js/lib/hash/utils.js": /*!************************************************!*\ !*** ./node_modules/hash.js/lib/hash/utils.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); exports.inherits = inherits; function toArray(msg, enc) { if (Array.isArray(msg)) return msg.slice(); if (!msg) return []; var res = []; if (typeof msg === 'string') { if (!enc) { for (var i = 0; i < msg.length; i++) { var c = msg.charCodeAt(i); var hi = c >> 8; var lo = c & 0xff; if (hi) res.push(hi, lo); else res.push(lo); } } else if (enc === 'hex') { msg = msg.replace(/[^a-z0-9]+/ig, ''); if (msg.length % 2 !== 0) msg = '0' + msg; for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)); } } else { for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0; } return res; } exports.toArray = toArray; function toHex(msg) { var res = ''; for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)); return res; } exports.toHex = toHex; function htonl(w) { var res = (w >>> 24) | ((w >>> 8) & 0xff00) | ((w << 8) & 0xff0000) | ((w & 0xff) << 24); return res >>> 0; } exports.htonl = htonl; function toHex32(msg, endian) { var res = ''; for (var i = 0; i < msg.length; i++) { var w = msg[i]; if (endian === 'little') w = htonl(w); res += zero8(w.toString(16)); } return res; } exports.toHex32 = toHex32; function zero2(word) { if (word.length === 1) return '0' + word; else return word; } exports.zero2 = zero2; function zero8(word) { if (word.length === 7) return '0' + word; else if (word.length === 6) return '00' + word; else if (word.length === 5) return '000' + word; else if (word.length === 4) return '0000' + word; else if (word.length === 3) return '00000' + word; else if (word.length === 2) return '000000' + word; else if (word.length === 1) return '0000000' + word; else return word; } exports.zero8 = zero8; function join32(msg, start, end, endian) { var len = end - start; assert(len % 4 === 0); var res = new Array(len / 4); for (var i = 0, k = start; i < res.length; i++, k += 4) { var w; if (endian === 'big') w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3]; else w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]; res[i] = w >>> 0; } return res; } exports.join32 = join32; function split32(msg, endian) { var res = new Array(msg.length * 4); for (var i = 0, k = 0; i < msg.length; i++, k += 4) { var m = msg[i]; if (endian === 'big') { res[k] = m >>> 24; res[k + 1] = (m >>> 16) & 0xff; res[k + 2] = (m >>> 8) & 0xff; res[k + 3] = m & 0xff; } else { res[k + 3] = m >>> 24; res[k + 2] = (m >>> 16) & 0xff; res[k + 1] = (m >>> 8) & 0xff; res[k] = m & 0xff; } } return res; } exports.split32 = split32; function rotr32(w, b) { return (w >>> b) | (w << (32 - b)); } exports.rotr32 = rotr32; function rotl32(w, b) { return (w << b) | (w >>> (32 - b)); } exports.rotl32 = rotl32; function sum32(a, b) { return (a + b) >>> 0; } exports.sum32 = sum32; function sum32_3(a, b, c) { return (a + b + c) >>> 0; } exports.sum32_3 = sum32_3; function sum32_4(a, b, c, d) { return (a + b + c + d) >>> 0; } exports.sum32_4 = sum32_4; function sum32_5(a, b, c, d, e) { return (a + b + c + d + e) >>> 0; } exports.sum32_5 = sum32_5; function sum64(buf, pos, ah, al) { var bh = buf[pos]; var bl = buf[pos + 1]; var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; buf[pos] = hi >>> 0; buf[pos + 1] = lo; } exports.sum64 = sum64; function sum64_hi(ah, al, bh, bl) { var lo = (al + bl) >>> 0; var hi = (lo < al ? 1 : 0) + ah + bh; return hi >>> 0; } exports.sum64_hi = sum64_hi; function sum64_lo(ah, al, bh, bl) { var lo = al + bl; return lo >>> 0; } exports.sum64_lo = sum64_lo; function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; var hi = ah + bh + ch + dh + carry; return hi >>> 0; } exports.sum64_4_hi = sum64_4_hi; function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { var lo = al + bl + cl + dl; return lo >>> 0; } exports.sum64_4_lo = sum64_4_lo; function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var carry = 0; var lo = al; lo = (lo + bl) >>> 0; carry += lo < al ? 1 : 0; lo = (lo + cl) >>> 0; carry += lo < cl ? 1 : 0; lo = (lo + dl) >>> 0; carry += lo < dl ? 1 : 0; lo = (lo + el) >>> 0; carry += lo < el ? 1 : 0; var hi = ah + bh + ch + dh + eh + carry; return hi >>> 0; } exports.sum64_5_hi = sum64_5_hi; function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { var lo = al + bl + cl + dl + el; return lo >>> 0; } exports.sum64_5_lo = sum64_5_lo; function rotr64_hi(ah, al, num) { var r = (al << (32 - num)) | (ah >>> num); return r >>> 0; } exports.rotr64_hi = rotr64_hi; function rotr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.rotr64_lo = rotr64_lo; function shr64_hi(ah, al, num) { return ah >>> num; } exports.shr64_hi = shr64_hi; function shr64_lo(ah, al, num) { var r = (ah << (32 - num)) | (al >>> num); return r >>> 0; } exports.shr64_lo = shr64_lo; /***/ }), /***/ "./node_modules/history/esm/history.js": /*!*********************************************!*\ !*** ./node_modules/history/esm/history.js ***! \*********************************************/ /*! exports provided: createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath */ /*! exports used: createBrowserHistory, createHashHistory, createLocation, createMemoryHistory, createPath, locationsAreEqual */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createBrowserHistory; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return createHashHistory; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return createMemoryHistory; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createLocation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return locationsAreEqual; }); /* unused harmony export parsePath */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return createPath; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_resolve_pathname__ = __webpack_require__(/*! resolve-pathname */ "./node_modules/resolve-pathname/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_value_equal__ = __webpack_require__(/*! value-equal */ "./node_modules/value-equal/index.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_tiny_warning__ = __webpack_require__(/*! tiny-warning */ "./node_modules/tiny-warning/dist/tiny-warning.esm.js"); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_tiny_invariant__ = __webpack_require__(/*! tiny-invariant */ "./node_modules/tiny-invariant/dist/tiny-invariant.esm.js"); function addLeadingSlash(path) { return path.charAt(0) === '/' ? path : '/' + path; } function stripLeadingSlash(path) { return path.charAt(0) === '/' ? path.substr(1) : path; } function hasBasename(path, prefix) { return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path); } function stripBasename(path, prefix) { return hasBasename(path, prefix) ? path.substr(prefix.length) : path; } function stripTrailingSlash(path) { return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; } function parsePath(path) { var pathname = path || '/'; var search = ''; var hash = ''; var hashIndex = pathname.indexOf('#'); if (hashIndex !== -1) { hash = pathname.substr(hashIndex); pathname = pathname.substr(0, hashIndex); } var searchIndex = pathname.indexOf('?'); if (searchIndex !== -1) { search = pathname.substr(searchIndex); pathname = pathname.substr(0, searchIndex); } return { pathname: pathname, search: search === '?' ? '' : search, hash: hash === '#' ? '' : hash }; } function createPath(location) { var pathname = location.pathname, search = location.search, hash = location.hash; var path = pathname || '/'; if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; return path; } function createLocation(path, state, key, currentLocation) { var location; if (typeof path === 'string') { // Two-arg form: push(path, state) location = parsePath(path); location.state = state; } else { // One-arg form: push(location) location = Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__["a" /* default */])({}, path); if (location.pathname === undefined) location.pathname = ''; if (location.search) { if (location.search.charAt(0) !== '?') location.search = '?' + location.search; } else { location.search = ''; } if (location.hash) { if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; } else { location.hash = ''; } if (state !== undefined && location.state === undefined) location.state = state; } try { location.pathname = decodeURI(location.pathname); } catch (e) { if (e instanceof URIError) { throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); } else { throw e; } } if (key) location.key = key; if (currentLocation) { // Resolve incomplete/relative pathname relative to current location. if (!location.pathname) { location.pathname = currentLocation.pathname; } else if (location.pathname.charAt(0) !== '/') { location.pathname = Object(__WEBPACK_IMPORTED_MODULE_1_resolve_pathname__["a" /* default */])(location.pathname, currentLocation.pathname); } } else { // When there is no prior location and pathname is empty, set it to / if (!location.pathname) { location.pathname = '/'; } } return location; } function locationsAreEqual(a, b) { return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(__WEBPACK_IMPORTED_MODULE_2_value_equal__["a" /* default */])(a.state, b.state); } function createTransitionManager() { var prompt = null; function setPrompt(nextPrompt) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(prompt == null, 'A history supports only one prompt at a time') : void 0; prompt = nextPrompt; return function () { if (prompt === nextPrompt) prompt = null; }; } function confirmTransitionTo(location, action, getUserConfirmation, callback) { // TODO: If another transition starts while we're still confirming // the previous one, we may end up in a weird state. Figure out the // best way to handle this. if (prompt != null) { var result = typeof prompt === 'function' ? prompt(location, action) : prompt; if (typeof result === 'string') { if (typeof getUserConfirmation === 'function') { getUserConfirmation(result, callback); } else { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0; callback(true); } } else { // Return false from a transition hook to cancel the transition. callback(result !== false); } } else { callback(true); } } var listeners = []; function appendListener(fn) { var isActive = true; function listener() { if (isActive) fn.apply(void 0, arguments); } listeners.push(listener); return function () { isActive = false; listeners = listeners.filter(function (item) { return item !== listener; }); }; } function notifyListeners() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } listeners.forEach(function (listener) { return listener.apply(void 0, args); }); } return { setPrompt: setPrompt, confirmTransitionTo: confirmTransitionTo, appendListener: appendListener, notifyListeners: notifyListeners }; } var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); function getConfirmation(message, callback) { callback(window.confirm(message)); // eslint-disable-line no-alert } /** * Returns true if the HTML5 history API is supported. Taken from Modernizr. * * https://github.com/Modernizr/Modernizr/blob/master/LICENSE * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 */ function supportsHistory() { var ua = window.navigator.userAgent; if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; return window.history && 'pushState' in window.history; } /** * Returns true if browser fires popstate on hash change. * IE10 and IE11 do not. */ function supportsPopStateOnHashChange() { return window.navigator.userAgent.indexOf('Trident') === -1; } /** * Returns false if using go(n) with hash history causes a full page reload. */ function supportsGoWithoutReloadUsingHash() { return window.navigator.userAgent.indexOf('Firefox') === -1; } /** * Returns true if a given popstate event is an extraneous WebKit event. * Accounts for the fact that Chrome on iOS fires real popstate events * containing undefined state when pressing the back button. */ function isExtraneousPopstateEvent(event) { event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; } var PopStateEvent = 'popstate'; var HashChangeEvent = 'hashchange'; function getHistoryState() { try { return window.history.state || {}; } catch (e) { // IE 11 sometimes throws when accessing window.history.state // See https://github.com/ReactTraining/history/pull/289 return {}; } } /** * Creates a history object that uses the HTML5 history API including * pushState, replaceState, and the popstate event. */ function createBrowserHistory(props) { if (props === void 0) { props = {}; } !canUseDOM ? true ? Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__["a" /* default */])(false, 'Browser history needs a DOM') : invariant(false) : void 0; var globalHistory = window.history; var canUseHistory = supportsHistory(); var needsHashChangeListener = !supportsPopStateOnHashChange(); var _props = props, _props$forceRefresh = _props.forceRefresh, forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, _props$getUserConfirm = _props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, _props$keyLength = _props.keyLength, keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; function getDOMLocation(historyState) { var _ref = historyState || {}, key = _ref.key, state = _ref.state; var _window$location = window.location, pathname = _window$location.pathname, search = _window$location.search, hash = _window$location.hash; var path = pathname + search + hash; true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; if (basename) path = stripBasename(path, basename); return createLocation(path, state, key); } function createKey() { return Math.random().toString(36).substr(2, keyLength); } var transitionManager = createTransitionManager(); function setState(nextState) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__["a" /* default */])(history, nextState); history.length = globalHistory.length; transitionManager.notifyListeners(history.location, history.action); } function handlePopState(event) { // Ignore extraneous popstate events in WebKit. if (isExtraneousPopstateEvent(event)) return; handlePop(getDOMLocation(event.state)); } function handleHashChange() { handlePop(getDOMLocation(getHistoryState())); } var forceNextPop = false; function handlePop(location) { if (forceNextPop) { forceNextPop = false; setState(); } else { var action = 'POP'; transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (ok) { setState({ action: action, location: location }); } else { revertPop(location); } }); } } function revertPop(fromLocation) { var toLocation = history.location; // TODO: We could probably make this more reliable by // keeping a list of keys we've seen in sessionStorage. // Instead, we just default to 0 for keys we don't know. var toIndex = allKeys.indexOf(toLocation.key); if (toIndex === -1) toIndex = 0; var fromIndex = allKeys.indexOf(fromLocation.key); if (fromIndex === -1) fromIndex = 0; var delta = toIndex - fromIndex; if (delta) { forceNextPop = true; go(delta); } } var initialLocation = getDOMLocation(getHistoryState()); var allKeys = [initialLocation.key]; // Public interface function createHref(location) { return basename + createPath(location); } function push(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; var action = 'PUSH'; var location = createLocation(path, state, createKey(), history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; var href = createHref(location); var key = location.key, state = location.state; if (canUseHistory) { globalHistory.pushState({ key: key, state: state }, null, href); if (forceRefresh) { window.location.href = href; } else { var prevIndex = allKeys.indexOf(history.location.key); var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); nextKeys.push(location.key); allKeys = nextKeys; setState({ action: action, location: location }); } } else { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0; window.location.href = href; } }); } function replace(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; var action = 'REPLACE'; var location = createLocation(path, state, createKey(), history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; var href = createHref(location); var key = location.key, state = location.state; if (canUseHistory) { globalHistory.replaceState({ key: key, state: state }, null, href); if (forceRefresh) { window.location.replace(href); } else { var prevIndex = allKeys.indexOf(history.location.key); if (prevIndex !== -1) allKeys[prevIndex] = location.key; setState({ action: action, location: location }); } } else { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0; window.location.replace(href); } }); } function go(n) { globalHistory.go(n); } function goBack() { go(-1); } function goForward() { go(1); } var listenerCount = 0; function checkDOMListeners(delta) { listenerCount += delta; if (listenerCount === 1 && delta === 1) { window.addEventListener(PopStateEvent, handlePopState); if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); } else if (listenerCount === 0) { window.removeEventListener(PopStateEvent, handlePopState); if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); } } var isBlocked = false; function block(prompt) { if (prompt === void 0) { prompt = false; } var unblock = transitionManager.setPrompt(prompt); if (!isBlocked) { checkDOMListeners(1); isBlocked = true; } return function () { if (isBlocked) { isBlocked = false; checkDOMListeners(-1); } return unblock(); }; } function listen(listener) { var unlisten = transitionManager.appendListener(listener); checkDOMListeners(1); return function () { checkDOMListeners(-1); unlisten(); }; } var history = { length: globalHistory.length, action: 'POP', location: initialLocation, createHref: createHref, push: push, replace: replace, go: go, goBack: goBack, goForward: goForward, block: block, listen: listen }; return history; } var HashChangeEvent$1 = 'hashchange'; var HashPathCoders = { hashbang: { encodePath: function encodePath(path) { return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); }, decodePath: function decodePath(path) { return path.charAt(0) === '!' ? path.substr(1) : path; } }, noslash: { encodePath: stripLeadingSlash, decodePath: addLeadingSlash }, slash: { encodePath: addLeadingSlash, decodePath: addLeadingSlash } }; function getHashPath() { // We can't use window.location.hash here because it's not // consistent across browsers - Firefox will pre-decode it! var href = window.location.href; var hashIndex = href.indexOf('#'); return hashIndex === -1 ? '' : href.substring(hashIndex + 1); } function pushHashPath(path) { window.location.hash = path; } function replaceHashPath(path) { var hashIndex = window.location.href.indexOf('#'); window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path); } function createHashHistory(props) { if (props === void 0) { props = {}; } !canUseDOM ? true ? Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__["a" /* default */])(false, 'Hash history needs a DOM') : invariant(false) : void 0; var globalHistory = window.history; var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); var _props = props, _props$getUserConfirm = _props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, _props$hashType = _props.hashType, hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; var _HashPathCoders$hashT = HashPathCoders[hashType], encodePath = _HashPathCoders$hashT.encodePath, decodePath = _HashPathCoders$hashT.decodePath; function getDOMLocation() { var path = decodePath(getHashPath()); true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; if (basename) path = stripBasename(path, basename); return createLocation(path); } var transitionManager = createTransitionManager(); function setState(nextState) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__["a" /* default */])(history, nextState); history.length = globalHistory.length; transitionManager.notifyListeners(history.location, history.action); } var forceNextPop = false; var ignorePath = null; function handleHashChange() { var path = getHashPath(); var encodedPath = encodePath(path); if (path !== encodedPath) { // Ensure we always have a properly-encoded hash. replaceHashPath(encodedPath); } else { var location = getDOMLocation(); var prevLocation = history.location; if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change. if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. ignorePath = null; handlePop(location); } } function handlePop(location) { if (forceNextPop) { forceNextPop = false; setState(); } else { var action = 'POP'; transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (ok) { setState({ action: action, location: location }); } else { revertPop(location); } }); } } function revertPop(fromLocation) { var toLocation = history.location; // TODO: We could probably make this more reliable by // keeping a list of paths we've seen in sessionStorage. // Instead, we just default to 0 for paths we don't know. var toIndex = allPaths.lastIndexOf(createPath(toLocation)); if (toIndex === -1) toIndex = 0; var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); if (fromIndex === -1) fromIndex = 0; var delta = toIndex - fromIndex; if (delta) { forceNextPop = true; go(delta); } } // Ensure the hash is encoded properly before doing anything else. var path = getHashPath(); var encodedPath = encodePath(path); if (path !== encodedPath) replaceHashPath(encodedPath); var initialLocation = getDOMLocation(); var allPaths = [createPath(initialLocation)]; // Public interface function createHref(location) { return '#' + encodePath(basename + createPath(location)); } function push(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(state === undefined, 'Hash history cannot push state; it is ignored') : void 0; var action = 'PUSH'; var location = createLocation(path, undefined, undefined, history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; var path = createPath(location); var encodedPath = encodePath(basename + path); var hashChanged = getHashPath() !== encodedPath; if (hashChanged) { // We cannot tell if a hashchange was caused by a PUSH, so we'd // rather setState here and ignore the hashchange. The caveat here // is that other hash histories in the page will consider it a POP. ignorePath = path; pushHashPath(encodedPath); var prevIndex = allPaths.lastIndexOf(createPath(history.location)); var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); nextPaths.push(path); allPaths = nextPaths; setState({ action: action, location: location }); } else { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0; setState(); } }); } function replace(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0; var action = 'REPLACE'; var location = createLocation(path, undefined, undefined, history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; var path = createPath(location); var encodedPath = encodePath(basename + path); var hashChanged = getHashPath() !== encodedPath; if (hashChanged) { // We cannot tell if a hashchange was caused by a REPLACE, so we'd // rather setState here and ignore the hashchange. The caveat here // is that other hash histories in the page will consider it a POP. ignorePath = path; replaceHashPath(encodedPath); } var prevIndex = allPaths.indexOf(createPath(history.location)); if (prevIndex !== -1) allPaths[prevIndex] = path; setState({ action: action, location: location }); }); } function go(n) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0; globalHistory.go(n); } function goBack() { go(-1); } function goForward() { go(1); } var listenerCount = 0; function checkDOMListeners(delta) { listenerCount += delta; if (listenerCount === 1 && delta === 1) { window.addEventListener(HashChangeEvent$1, handleHashChange); } else if (listenerCount === 0) { window.removeEventListener(HashChangeEvent$1, handleHashChange); } } var isBlocked = false; function block(prompt) { if (prompt === void 0) { prompt = false; } var unblock = transitionManager.setPrompt(prompt); if (!isBlocked) { checkDOMListeners(1); isBlocked = true; } return function () { if (isBlocked) { isBlocked = false; checkDOMListeners(-1); } return unblock(); }; } function listen(listener) { var unlisten = transitionManager.appendListener(listener); checkDOMListeners(1); return function () { checkDOMListeners(-1); unlisten(); }; } var history = { length: globalHistory.length, action: 'POP', location: initialLocation, createHref: createHref, push: push, replace: replace, go: go, goBack: goBack, goForward: goForward, block: block, listen: listen }; return history; } function clamp(n, lowerBound, upperBound) { return Math.min(Math.max(n, lowerBound), upperBound); } /** * Creates a history object that stores locations in memory. */ function createMemoryHistory(props) { if (props === void 0) { props = {}; } var _props = props, getUserConfirmation = _props.getUserConfirmation, _props$initialEntries = _props.initialEntries, initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, _props$initialIndex = _props.initialIndex, initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, _props$keyLength = _props.keyLength, keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; var transitionManager = createTransitionManager(); function setState(nextState) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__["a" /* default */])(history, nextState); history.length = history.entries.length; transitionManager.notifyListeners(history.location, history.action); } function createKey() { return Math.random().toString(36).substr(2, keyLength); } var index = clamp(initialIndex, 0, initialEntries.length - 1); var entries = initialEntries.map(function (entry) { return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); }); // Public interface var createHref = createPath; function push(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; var action = 'PUSH'; var location = createLocation(path, state, createKey(), history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; var prevIndex = history.index; var nextIndex = prevIndex + 1; var nextEntries = history.entries.slice(0); if (nextEntries.length > nextIndex) { nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); } else { nextEntries.push(location); } setState({ action: action, location: location, index: nextIndex, entries: nextEntries }); }); } function replace(path, state) { true ? Object(__WEBPACK_IMPORTED_MODULE_3_tiny_warning__["a" /* default */])(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; var action = 'REPLACE'; var location = createLocation(path, state, createKey(), history.location); transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (!ok) return; history.entries[history.index] = location; setState({ action: action, location: location }); }); } function go(n) { var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); var action = 'POP'; var location = history.entries[nextIndex]; transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { if (ok) { setState({ action: action, location: location, index: nextIndex }); } else { // Mimic the behavior of DOM histories by // causing a render after a cancelled POP. setState(); } }); } function goBack() { go(-1); } function goForward() { go(1); } function canGo(n) { var nextIndex = history.index + n; return nextIndex >= 0 && nextIndex < history.entries.length; } function block(prompt) { if (prompt === void 0) { prompt = false; } return transitionManager.setPrompt(prompt); } function listen(listener) { return transitionManager.appendListener(listener); } var history = { length: entries.length, action: 'POP', location: entries[index], index: index, entries: entries, createHref: createHref, push: push, replace: replace, go: go, goBack: goBack, goForward: goForward, canGo: canGo, block: block, listen: listen }; return history; } /***/ }), /***/ "./node_modules/hmac-drbg/lib/hmac-drbg.js": /*!*************************************************!*\ !*** ./node_modules/hmac-drbg/lib/hmac-drbg.js ***! \*************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var hash = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); var utils = __webpack_require__(/*! minimalistic-crypto-utils */ "./node_modules/minimalistic-crypto-utils/lib/utils.js"); var assert = __webpack_require__(/*! minimalistic-assert */ "./node_modules/minimalistic-assert/index.js"); function HmacDRBG(options) { if (!(this instanceof HmacDRBG)) return new HmacDRBG(options); this.hash = options.hash; this.predResist = !!options.predResist; this.outLen = this.hash.outSize; this.minEntropy = options.minEntropy || this.hash.hmacStrength; this._reseed = null; this.reseedInterval = null; this.K = null; this.V = null; var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex'); var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex'); var pers = utils.toArray(options.pers, options.persEnc || 'hex'); assert(entropy.length >= (this.minEntropy / 8), 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); this._init(entropy, nonce, pers); } module.exports = HmacDRBG; HmacDRBG.prototype._init = function init(entropy, nonce, pers) { var seed = entropy.concat(nonce).concat(pers); this.K = new Array(this.outLen / 8); this.V = new Array(this.outLen / 8); for (var i = 0; i < this.V.length; i++) { this.K[i] = 0x00; this.V[i] = 0x01; } this._update(seed); this._reseed = 1; this.reseedInterval = 0x1000000000000; // 2^48 }; HmacDRBG.prototype._hmac = function hmac() { return new hash.hmac(this.hash, this.K); }; HmacDRBG.prototype._update = function update(seed) { var kmac = this._hmac() .update(this.V) .update([ 0x00 ]); if (seed) kmac = kmac.update(seed); this.K = kmac.digest(); this.V = this._hmac().update(this.V).digest(); if (!seed) return; this.K = this._hmac() .update(this.V) .update([ 0x01 ]) .update(seed) .digest(); this.V = this._hmac().update(this.V).digest(); }; HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { // Optional entropy enc if (typeof entropyEnc !== 'string') { addEnc = add; add = entropyEnc; entropyEnc = null; } entropy = utils.toArray(entropy, entropyEnc); add = utils.toArray(add, addEnc); assert(entropy.length >= (this.minEntropy / 8), 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); this._update(entropy.concat(add || [])); this._reseed = 1; }; HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding if (typeof enc !== 'string') { addEnc = add; add = enc; enc = null; } // Optional additional data if (add) { add = utils.toArray(add, addEnc || 'hex'); this._update(add); } var temp = []; while (temp.length < len) { this.V = this._hmac().update(this.V).digest(); temp = temp.concat(this.V); } var res = temp.slice(0, len); this._update(add); this._reseed++; return utils.encode(res, enc); }; /***/ }), /***/ "./node_modules/hoist-non-react-statics/index.js": /*!*******************************************************!*\ !*** ./node_modules/hoist-non-react-statics/index.js ***! \*******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ var REACT_STATICS = { childContextTypes: true, contextTypes: true, defaultProps: true, displayName: true, getDefaultProps: true, mixins: true, propTypes: true, type: true }; var KNOWN_STATICS = { name: true, length: true, prototype: true, caller: true, callee: true, arguments: true, arity: true }; var defineProperty = Object.defineProperty; var getOwnPropertyNames = Object.getOwnPropertyNames; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var getPrototypeOf = Object.getPrototypeOf; var objectPrototype = getPrototypeOf && getPrototypeOf(Object); module.exports = function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components if (objectPrototype) { var inheritedComponent = getPrototypeOf(sourceComponent); if (inheritedComponent && inheritedComponent !== objectPrototype) { hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); } } var keys = getOwnPropertyNames(sourceComponent); if (getOwnPropertySymbols) { keys = keys.concat(getOwnPropertySymbols(sourceComponent)); } for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) { var descriptor = getOwnPropertyDescriptor(sourceComponent, key); try { // Avoid failures from read-only properties defineProperty(targetComponent, key, descriptor); } catch (e) {} } } return targetComponent; } return targetComponent; }; /***/ }), /***/ "./node_modules/ieee754/index.js": /*!***************************************!*\ !*** ./node_modules/ieee754/index.js ***! \***************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = nBytes * 8 - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var nBits = -7 var i = isLE ? (nBytes - 1) : 0 var d = isLE ? -1 : 1 var s = buffer[offset + i] i += d e = s & ((1 << (-nBits)) - 1) s >>= (-nBits) nBits += eLen for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} m = e & ((1 << (-nBits)) - 1) e >>= (-nBits) nBits += mLen for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} if (e === 0) { e = 1 - eBias } else if (e === eMax) { return m ? NaN : ((s ? -1 : 1) * Infinity) } else { m = m + Math.pow(2, mLen) e = e - eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) } exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c var eLen = nBytes * 8 - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) var i = isLE ? 0 : (nBytes - 1) var d = isLE ? 1 : -1 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 value = Math.abs(value) if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0 e = eMax } else { e = Math.floor(Math.log(value) / Math.LN2) if (value * (c = Math.pow(2, -e)) < 1) { e-- c *= 2 } if (e + eBias >= 1) { value += rt / c } else { value += rt * Math.pow(2, 1 - eBias) } if (value * c >= 2) { e++ c /= 2 } if (e + eBias >= eMax) { m = 0 e = eMax } else if (e + eBias >= 1) { m = (value * c - 1) * Math.pow(2, mLen) e = e + eBias } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) e = 0 } } for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} e = (e << mLen) | m eLen += mLen for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} buffer[offset + i - d] |= s * 128 } /***/ }), /***/ "./node_modules/immutable/dist/immutable.js": /*!**************************************************!*\ !*** ./node_modules/immutable/dist/immutable.js ***! \**************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ (function (global, factory) { true ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.Immutable = factory()); }(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice; function createClass(ctor, superClass) { if (superClass) { ctor.prototype = Object.create(superClass.prototype); } ctor.prototype.constructor = ctor; } function Iterable(value) { return isIterable(value) ? value : Seq(value); } createClass(KeyedIterable, Iterable); function KeyedIterable(value) { return isKeyed(value) ? value : KeyedSeq(value); } createClass(IndexedIterable, Iterable); function IndexedIterable(value) { return isIndexed(value) ? value : IndexedSeq(value); } createClass(SetIterable, Iterable); function SetIterable(value) { return isIterable(value) && !isAssociative(value) ? value : SetSeq(value); } function isIterable(maybeIterable) { return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]); } function isKeyed(maybeKeyed) { return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]); } function isIndexed(maybeIndexed) { return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]); } function isAssociative(maybeAssociative) { return isKeyed(maybeAssociative) || isIndexed(maybeAssociative); } function isOrdered(maybeOrdered) { return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]); } Iterable.isIterable = isIterable; Iterable.isKeyed = isKeyed; Iterable.isIndexed = isIndexed; Iterable.isAssociative = isAssociative; Iterable.isOrdered = isOrdered; Iterable.Keyed = KeyedIterable; Iterable.Indexed = IndexedIterable; Iterable.Set = SetIterable; var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; // Used for setting prototype methods that IE8 chokes on. var DELETE = 'delete'; // Constants describing the size of trie nodes. var SHIFT = 5; // Resulted in best performance after ______? var SIZE = 1 << SHIFT; var MASK = SIZE - 1; // A consistent shared value representing "not set" which equals nothing other // than itself, and nothing that could be provided externally. var NOT_SET = {}; // Boolean references, Rough equivalent of `bool &`. var CHANGE_LENGTH = { value: false }; var DID_ALTER = { value: false }; function MakeRef(ref) { ref.value = false; return ref; } function SetRef(ref) { ref && (ref.value = true); } // A function which returns a value representing an "owner" for transient writes // to tries. The return value will only ever equal itself, and will not equal // the return of any subsequent call of this function. function OwnerID() {} // http://jsperf.com/copy-array-inline function arrCopy(arr, offset) { offset = offset || 0; var len = Math.max(0, arr.length - offset); var newArr = new Array(len); for (var ii = 0; ii < len; ii++) { newArr[ii] = arr[ii + offset]; } return newArr; } function ensureSize(iter) { if (iter.size === undefined) { iter.size = iter.__iterate(returnTrue); } return iter.size; } function wrapIndex(iter, index) { // This implements "is array index" which the ECMAString spec defines as: // // A String property name P is an array index if and only if // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal // to 2^32−1. // // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects if (typeof index !== 'number') { var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32 if ('' + uint32Index !== index || uint32Index === 4294967295) { return NaN; } index = uint32Index; } return index < 0 ? ensureSize(iter) + index : index; } function returnTrue() { return true; } function wholeSlice(begin, end, size) { return (begin === 0 || (size !== undefined && begin <= -size)) && (end === undefined || (size !== undefined && end >= size)); } function resolveBegin(begin, size) { return resolveIndex(begin, size, 0); } function resolveEnd(end, size) { return resolveIndex(end, size, size); } function resolveIndex(index, size, defaultIndex) { return index === undefined ? defaultIndex : index < 0 ? Math.max(0, size + index) : size === undefined ? index : Math.min(size, index); } /* global Symbol */ var ITERATE_KEYS = 0; var ITERATE_VALUES = 1; var ITERATE_ENTRIES = 2; var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL; function Iterator(next) { this.next = next; } Iterator.prototype.toString = function() { return '[Iterator]'; }; Iterator.KEYS = ITERATE_KEYS; Iterator.VALUES = ITERATE_VALUES; Iterator.ENTRIES = ITERATE_ENTRIES; Iterator.prototype.inspect = Iterator.prototype.toSource = function () { return this.toString(); } Iterator.prototype[ITERATOR_SYMBOL] = function () { return this; }; function iteratorValue(type, k, v, iteratorResult) { var value = type === 0 ? k : type === 1 ? v : [k, v]; iteratorResult ? (iteratorResult.value = value) : (iteratorResult = { value: value, done: false }); return iteratorResult; } function iteratorDone() { return { value: undefined, done: true }; } function hasIterator(maybeIterable) { return !!getIteratorFn(maybeIterable); } function isIterator(maybeIterator) { return maybeIterator && typeof maybeIterator.next === 'function'; } function getIterator(iterable) { var iteratorFn = getIteratorFn(iterable); return iteratorFn && iteratorFn.call(iterable); } function getIteratorFn(iterable) { var iteratorFn = iterable && ( (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) || iterable[FAUX_ITERATOR_SYMBOL] ); if (typeof iteratorFn === 'function') { return iteratorFn; } } function isArrayLike(value) { return value && typeof value.length === 'number'; } createClass(Seq, Iterable); function Seq(value) { return value === null || value === undefined ? emptySequence() : isIterable(value) ? value.toSeq() : seqFromValue(value); } Seq.of = function(/*...values*/) { return Seq(arguments); }; Seq.prototype.toSeq = function() { return this; }; Seq.prototype.toString = function() { return this.__toString('Seq {', '}'); }; Seq.prototype.cacheResult = function() { if (!this._cache && this.__iterateUncached) { this._cache = this.entrySeq().toArray(); this.size = this._cache.length; } return this; }; // abstract __iterateUncached(fn, reverse) Seq.prototype.__iterate = function(fn, reverse) { return seqIterate(this, fn, reverse, true); }; // abstract __iteratorUncached(type, reverse) Seq.prototype.__iterator = function(type, reverse) { return seqIterator(this, type, reverse, true); }; createClass(KeyedSeq, Seq); function KeyedSeq(value) { return value === null || value === undefined ? emptySequence().toKeyedSeq() : isIterable(value) ? (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) : keyedSeqFromValue(value); } KeyedSeq.prototype.toKeyedSeq = function() { return this; }; createClass(IndexedSeq, Seq); function IndexedSeq(value) { return value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value.toIndexedSeq(); } IndexedSeq.of = function(/*...values*/) { return IndexedSeq(arguments); }; IndexedSeq.prototype.toIndexedSeq = function() { return this; }; IndexedSeq.prototype.toString = function() { return this.__toString('Seq [', ']'); }; IndexedSeq.prototype.__iterate = function(fn, reverse) { return seqIterate(this, fn, reverse, false); }; IndexedSeq.prototype.__iterator = function(type, reverse) { return seqIterator(this, type, reverse, false); }; createClass(SetSeq, Seq); function SetSeq(value) { return ( value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value ).toSetSeq(); } SetSeq.of = function(/*...values*/) { return SetSeq(arguments); }; SetSeq.prototype.toSetSeq = function() { return this; }; Seq.isSeq = isSeq; Seq.Keyed = KeyedSeq; Seq.Set = SetSeq; Seq.Indexed = IndexedSeq; var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@'; Seq.prototype[IS_SEQ_SENTINEL] = true; createClass(ArraySeq, IndexedSeq); function ArraySeq(array) { this._array = array; this.size = array.length; } ArraySeq.prototype.get = function(index, notSetValue) { return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue; }; ArraySeq.prototype.__iterate = function(fn, reverse) { var array = this._array; var maxIndex = array.length - 1; for (var ii = 0; ii <= maxIndex; ii++) { if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) { return ii + 1; } } return ii; }; ArraySeq.prototype.__iterator = function(type, reverse) { var array = this._array; var maxIndex = array.length - 1; var ii = 0; return new Iterator(function() {return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])} ); }; createClass(ObjectSeq, KeyedSeq); function ObjectSeq(object) { var keys = Object.keys(object); this._object = object; this._keys = keys; this.size = keys.length; } ObjectSeq.prototype.get = function(key, notSetValue) { if (notSetValue !== undefined && !this.has(key)) { return notSetValue; } return this._object[key]; }; ObjectSeq.prototype.has = function(key) { return this._object.hasOwnProperty(key); }; ObjectSeq.prototype.__iterate = function(fn, reverse) { var object = this._object; var keys = this._keys; var maxIndex = keys.length - 1; for (var ii = 0; ii <= maxIndex; ii++) { var key = keys[reverse ? maxIndex - ii : ii]; if (fn(object[key], key, this) === false) { return ii + 1; } } return ii; }; ObjectSeq.prototype.__iterator = function(type, reverse) { var object = this._object; var keys = this._keys; var maxIndex = keys.length - 1; var ii = 0; return new Iterator(function() { var key = keys[reverse ? maxIndex - ii : ii]; return ii++ > maxIndex ? iteratorDone() : iteratorValue(type, key, object[key]); }); }; ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true; createClass(IterableSeq, IndexedSeq); function IterableSeq(iterable) { this._iterable = iterable; this.size = iterable.length || iterable.size; } IterableSeq.prototype.__iterateUncached = function(fn, reverse) { if (reverse) { return this.cacheResult().__iterate(fn, reverse); } var iterable = this._iterable; var iterator = getIterator(iterable); var iterations = 0; if (isIterator(iterator)) { var step; while (!(step = iterator.next()).done) { if (fn(step.value, iterations++, this) === false) { break; } } } return iterations; }; IterableSeq.prototype.__iteratorUncached = function(type, reverse) { if (reverse) { return this.cacheResult().__iterator(type, reverse); } var iterable = this._iterable; var iterator = getIterator(iterable); if (!isIterator(iterator)) { return new Iterator(iteratorDone); } var iterations = 0; return new Iterator(function() { var step = iterator.next(); return step.done ? step : iteratorValue(type, iterations++, step.value); }); }; createClass(IteratorSeq, IndexedSeq); function IteratorSeq(iterator) { this._iterator = iterator; this._iteratorCache = []; } IteratorSeq.prototype.__iterateUncached = function(fn, reverse) { if (reverse) { return this.cacheResult().__iterate(fn, reverse); } var iterator = this._iterator; var cache = this._iteratorCache; var iterations = 0; while (iterations < cache.length) { if (fn(cache[iterations], iterations++, this) === false) { return iterations; } } var step; while (!(step = iterator.next()).done) { var val = step.value; cache[iterations] = val; if (fn(val, iterations++, this) === false) { break; } } return iterations; }; IteratorSeq.prototype.__iteratorUncached = function(type, reverse) { if (reverse) { return this.cacheResult().__iterator(type, reverse); } var iterator = this._iterator; var cache = this._iteratorCache; var iterations = 0; return new Iterator(function() { if (iterations >= cache.length) { var step = iterator.next(); if (step.done) { return step; } cache[iterations] = step.value; } return iteratorValue(type, iterations, cache[iterations++]); }); }; // # pragma Helper functions function isSeq(maybeSeq) { return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]); } var EMPTY_SEQ; function emptySequence() { return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([])); } function keyedSeqFromValue(value) { var seq = Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : typeof value === 'object' ? new ObjectSeq(value) : undefined; if (!seq) { throw new TypeError( 'Expected Array or iterable object of [k, v] entries, '+ 'or keyed object: ' + value ); } return seq; } function indexedSeqFromValue(value) { var seq = maybeIndexedSeqFromValue(value); if (!seq) { throw new TypeError( 'Expected Array or iterable object of values: ' + value ); } return seq; } function seqFromValue(value) { var seq = maybeIndexedSeqFromValue(value) || (typeof value === 'object' && new ObjectSeq(value)); if (!seq) { throw new TypeError( 'Expected Array or iterable object of values, or keyed object: ' + value ); } return seq; } function maybeIndexedSeqFromValue(value) { return ( isArrayLike(value) ? new ArraySeq(value) : isIterator(value) ? new IteratorSeq(value) : hasIterator(value) ? new IterableSeq(value) : undefined ); } function seqIterate(seq, fn, reverse, useKeys) { var cache = seq._cache; if (cache) { var maxIndex = cache.length - 1; for (var ii = 0; ii <= maxIndex; ii++) { var entry = cache[reverse ? maxIndex - ii : ii]; if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) { return ii + 1; } } return ii; } return seq.__iterateUncached(fn, reverse); } function seqIterator(seq, type, reverse, useKeys) { var cache = seq._cache; if (cache) { var maxIndex = cache.length - 1; var ii = 0; return new Iterator(function() { var entry = cache[reverse ? maxIndex - ii : ii]; return ii++ > maxIndex ? iteratorDone() : iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]); }); } return seq.__iteratorUncached(type, reverse); } function fromJS(json, converter) { return converter ? fromJSWith(converter, json, '', {'': json}) : fromJSDefault(json); } function fromJSWith(converter, json, key, parentJSON) { if (Array.isArray(json)) { return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); } if (isPlainObj(json)) { return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); } return json; } function fromJSDefault(json) { if (Array.isArray(json)) { return IndexedSeq(json).map(fromJSDefault).toList(); } if (isPlainObj(json)) { return KeyedSeq(json).map(fromJSDefault).toMap(); } return json; } function isPlainObj(value) { return value && (value.constructor === Object || value.constructor === undefined); } /** * An extension of the "same-value" algorithm as [described for use by ES6 Map * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality) * * NaN is considered the same as NaN, however -0 and 0 are considered the same * value, which is different from the algorithm described by * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). * * This is extended further to allow Objects to describe the values they * represent, by way of `valueOf` or `equals` (and `hashCode`). * * Note: because of this extension, the key equality of Immutable.Map and the * value equality of Immutable.Set will differ from ES6 Map and Set. * * ### Defining custom values * * The easiest way to describe the value an object represents is by implementing * `valueOf`. For example, `Date` represents a value by returning a unix * timestamp for `valueOf`: * * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ... * var date2 = new Date(1234567890000); * date1.valueOf(); // 1234567890000 * assert( date1 !== date2 ); * assert( Immutable.is( date1, date2 ) ); * * Note: overriding `valueOf` may have other implications if you use this object * where JavaScript expects a primitive, such as implicit string coercion. * * For more complex types, especially collections, implementing `valueOf` may * not be performant. An alternative is to implement `equals` and `hashCode`. * * `equals` takes another object, presumably of similar type, and returns true * if the it is equal. Equality is symmetrical, so the same result should be * returned if this and the argument are flipped. * * assert( a.equals(b) === b.equals(a) ); * * `hashCode` returns a 32bit integer number representing the object which will * be used to determine how to store the value object in a Map or Set. You must * provide both or neither methods, one must not exist without the other. * * Also, an important relationship between these methods must be upheld: if two * values are equal, they *must* return the same hashCode. If the values are not * equal, they might have the same hashCode; this is called a hash collision, * and while undesirable for performance reasons, it is acceptable. * * if (a.equals(b)) { * assert( a.hashCode() === b.hashCode() ); * } * * All Immutable collections implement `equals` and `hashCode`. * */ function is(valueA, valueB) { if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { return true; } if (!valueA || !valueB) { return false; } if (typeof valueA.valueOf === 'function' && typeof valueB.valueOf === 'function') { valueA = valueA.valueOf(); valueB = valueB.valueOf(); if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { return true; } if (!valueA || !valueB) { return false; } } if (typeof valueA.equals === 'function' && typeof valueB.equals === 'function' && valueA.equals(valueB)) { return true; } return false; } function deepEqual(a, b) { if (a === b) { return true; } if ( !isIterable(b) || a.size !== undefined && b.size !== undefined && a.size !== b.size || a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || isKeyed(a) !== isKeyed(b) || isIndexed(a) !== isIndexed(b) || isOrdered(a) !== isOrdered(b) ) { return false; } if (a.size === 0 && b.size === 0) { return true; } var notAssociative = !isAssociative(a); if (isOrdered(a)) { var entries = a.entries(); return b.every(function(v, k) { var entry = entries.next().value; return entry && is(entry[1], v) && (notAssociative || is(entry[0], k)); }) && entries.next().done; } var flipped = false; if (a.size === undefined) { if (b.size === undefined) { if (typeof a.cacheResult === 'function') { a.cacheResult(); } } else { flipped = true; var _ = a; a = b; b = _; } } var allEqual = true; var bSize = b.__iterate(function(v, k) { if (notAssociative ? !a.has(v) : flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) { allEqual = false; return false; } }); return allEqual && a.size === bSize; } createClass(Repeat, IndexedSeq); function Repeat(value, times) { if (!(this instanceof Repeat)) { return new Repeat(value, times); } this._value = value; this.size = times === undefined ? Infinity : Math.max(0, times); if (this.size === 0) { if (EMPTY_REPEAT) { return EMPTY_REPEAT; } EMPTY_REPEAT = this; } } Repeat.prototype.toString = function() { if (this.size === 0) { return 'Repeat []'; } return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]'; }; Repeat.prototype.get = function(index, notSetValue) { return this.has(index) ? this._value : notSetValue; }; Repeat.prototype.includes = function(searchValue) { return is(this._value, searchValue); }; Repeat.prototype.slice = function(begin, end) { var size = this.size; return wholeSlice(begin, end, size) ? this : new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size)); }; Repeat.prototype.reverse = function() { return this; }; Repeat.prototype.indexOf = function(searchValue) { if (is(this._value, searchValue)) { return 0; } return -1; }; Repeat.prototype.lastIndexOf = function(searchValue) { if (is(this._value, searchValue)) { return this.size; } return -1; }; Repeat.prototype.__iterate = function(fn, reverse) { for (var ii = 0; ii < this.size; ii++) { if (fn(this._value, ii, this) === false) { return ii + 1; } } return ii; }; Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this; var ii = 0; return new Iterator(function() {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()} ); }; Repeat.prototype.equals = function(other) { return other instanceof Repeat ? is(this._value, other._value) : deepEqual(other); }; var EMPTY_REPEAT; function invariant(condition, error) { if (!condition) throw new Error(error); } createClass(Range, IndexedSeq); function Range(start, end, step) { if (!(this instanceof Range)) { return new Range(start, end, step); } invariant(step !== 0, 'Cannot step a Range by 0'); start = start || 0; if (end === undefined) { end = Infinity; } step = step === undefined ? 1 : Math.abs(step); if (end < start) { step = -step; } this._start = start; this._end = end; this._step = step; this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1); if (this.size === 0) { if (EMPTY_RANGE) { return EMPTY_RANGE; } EMPTY_RANGE = this; } } Range.prototype.toString = function() { if (this.size === 0) { return 'Range []'; } return 'Range [ ' + this._start + '...' + this._end + (this._step !== 1 ? ' by ' + this._step : '') + ' ]'; }; Range.prototype.get = function(index, notSetValue) { return this.has(index) ? this._start + wrapIndex(this, index) * this._step : notSetValue; }; Range.prototype.includes = function(searchValue) { var possibleIndex = (searchValue - this._start) / this._step; return possibleIndex >= 0 && possibleIndex < this.size && possibleIndex === Math.floor(possibleIndex); }; Range.prototype.slice = function(begin, end) { if (wholeSlice(begin, end, this.size)) { return this; } begin = resolveBegin(begin, this.size); end = resolveEnd(end, this.size); if (end <= begin) { return new Range(0, 0); } return new Range(this.get(begin, this._end), this.get(end, this._end), this._step); }; Range.prototype.indexOf = function(searchValue) { var offsetValue = searchValue - this._start; if (offsetValue % this._step === 0) { var index = offsetValue / this._step; if (index >= 0 && index < this.size) { return index } } return -1; }; Range.prototype.lastIndexOf = function(searchValue) { return this.indexOf(searchValue); }; Range.prototype.__iterate = function(fn, reverse) { var maxIndex = this.size - 1; var step = this._step; var value = reverse ? this._start + maxIndex * step : this._start; for (var ii = 0; ii <= maxIndex; ii++) { if (fn(value, ii, this) === false) { return ii + 1; } value += reverse ? -step : step; } return ii; }; Range.prototype.__iterator = function(type, reverse) { var maxIndex = this.size - 1; var step = this._step; var value = reverse ? this._start + maxIndex * step : this._start; var ii = 0; return new Iterator(function() { var v = value; value += reverse ? -step : step; return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v); }); }; Range.prototype.equals = function(other) { return other instanceof Range ? this._start === other._start && this._end === other._end && this._step === other._step : deepEqual(this, other); }; var EMPTY_RANGE; createClass(Collection, Iterable); function Collection() { throw TypeError('Abstract'); } createClass(KeyedCollection, Collection);function KeyedCollection() {} createClass(IndexedCollection, Collection);function IndexedCollection() {} createClass(SetCollection, Collection);function SetCollection() {} Collection.Keyed = KeyedCollection; Collection.Indexed = IndexedCollection; Collection.Set = SetCollection; var imul = typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? Math.imul : function imul(a, b) { a = a | 0; // int b = b | 0; // int var c = a & 0xffff; var d = b & 0xffff; // Shift by 0 fixes the sign on the high part. return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int }; // v8 has an optimization for storing 31-bit signed numbers. // Values which have either 00 or 11 as the high order bits qualify. // This function drops the highest order bit in a signed number, maintaining // the sign bit. function smi(i32) { return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF); } function hash(o) { if (o === false || o === null || o === undefined) { return 0; } if (typeof o.valueOf === 'function') { o = o.valueOf(); if (o === false || o === null || o === undefined) { return 0; } } if (o === true) { return 1; } var type = typeof o; if (type === 'number') { if (o !== o || o === Infinity) { return 0; } var h = o | 0; if (h !== o) { h ^= o * 0xFFFFFFFF; } while (o > 0xFFFFFFFF) { o /= 0xFFFFFFFF; h ^= o; } return smi(h); } if (type === 'string') { return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o); } if (typeof o.hashCode === 'function') { return o.hashCode(); } if (type === 'object') { return hashJSObj(o); } if (typeof o.toString === 'function') { return hashString(o.toString()); } throw new Error('Value type ' + type + ' cannot be hashed.'); } function cachedHashString(string) { var hash = stringHashCache[string]; if (hash === undefined) { hash = hashString(string); if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) { STRING_HASH_CACHE_SIZE = 0; stringHashCache = {}; } STRING_HASH_CACHE_SIZE++; stringHashCache[string] = hash; } return hash; } // http://jsperf.com/hashing-strings function hashString(string) { // This is the hash from JVM // The hash code for a string is computed as // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1], // where s[i] is the ith character of the string and n is the length of // the string. We "mod" the result to make it between 0 (inclusive) and 2^31 // (exclusive) by dropping high bits. var hash = 0; for (var ii = 0; ii < string.length; ii++) { hash = 31 * hash + string.charCodeAt(ii) | 0; } return smi(hash); } function hashJSObj(obj) { var hash; if (usingWeakMap) { hash = weakMap.get(obj); if (hash !== undefined) { return hash; } } hash = obj[UID_HASH_KEY]; if (hash !== undefined) { return hash; } if (!canDefineProperty) { hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY]; if (hash !== undefined) { return hash; } hash = getIENodeHash(obj); if (hash !== undefined) { return hash; } } hash = ++objHashUID; if (objHashUID & 0x40000000) { objHashUID = 0; } if (usingWeakMap) { weakMap.set(obj, hash); } else if (isExtensible !== undefined && isExtensible(obj) === false) { throw new Error('Non-extensible objects are not allowed as keys.'); } else if (canDefineProperty) { Object.defineProperty(obj, UID_HASH_KEY, { 'enumerable': false, 'configurable': false, 'writable': false, 'value': hash }); } else if (obj.propertyIsEnumerable !== undefined && obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) { // Since we can't define a non-enumerable property on the object // we'll hijack one of the less-used non-enumerable properties to // save our hash on it. Since this is a function it will not show up in // `JSON.stringify` which is what we want. obj.propertyIsEnumerable = function() { return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments); }; obj.propertyIsEnumerable[UID_HASH_KEY] = hash; } else if (obj.nodeType !== undefined) { // At this point we couldn't get the IE `uniqueID` to use as a hash // and we couldn't use a non-enumerable property to exploit the // dontEnum bug so we simply add the `UID_HASH_KEY` on the node // itself. obj[UID_HASH_KEY] = hash; } else { throw new Error('Unable to set a non-enumerable property on object.'); } return hash; } // Get references to ES5 object methods. var isExtensible = Object.isExtensible; // True if Object.defineProperty works as expected. IE8 fails this test. var canDefineProperty = (function() { try { Object.defineProperty({}, '@', {}); return true; } catch (e) { return false; } }()); // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it // and avoid memory leaks from the IE cloneNode bug. function getIENodeHash(node) { if (node && node.nodeType > 0) { switch (node.nodeType) { case 1: // Element return node.uniqueID; case 9: // Document return node.documentElement && node.documentElement.uniqueID; } } } // If possible, use a WeakMap. var usingWeakMap = typeof WeakMap === 'function'; var weakMap; if (usingWeakMap) { weakMap = new WeakMap(); } var objHashUID = 0; var UID_HASH_KEY = '__immutablehash__'; if (typeof Symbol === 'function') { UID_HASH_KEY = Symbol(UID_HASH_KEY); } var STRING_HASH_CACHE_MIN_STRLEN = 16; var STRING_HASH_CACHE_MAX_SIZE = 255; var STRING_HASH_CACHE_SIZE = 0; var stringHashCache = {}; function assertNotInfinite(size) { invariant( size !== Infinity, 'Cannot perform this action with an infinite size.' ); } createClass(Map, KeyedCollection); // @pragma Construction function Map(value) { return value === null || value === undefined ? emptyMap() : isMap(value) && !isOrdered(value) ? value : emptyMap().withMutations(function(map ) { var iter = KeyedIterable(value); assertNotInfinite(iter.size); iter.forEach(function(v, k) {return map.set(k, v)}); }); } Map.of = function() {var keyValues = SLICE$0.call(arguments, 0); return emptyMap().withMutations(function(map ) { for (var i = 0; i < keyValues.length; i += 2) { if (i + 1 >= keyValues.length) { throw new Error('Missing value for key: ' + keyValues[i]); } map.set(keyValues[i], keyValues[i + 1]); } }); }; Map.prototype.toString = function() { return this.__toString('Map {', '}'); }; // @pragma Access Map.prototype.get = function(k, notSetValue) { return this._root ? this._root.get(0, undefined, k, notSetValue) : notSetValue; }; // @pragma Modification Map.prototype.set = function(k, v) { return updateMap(this, k, v); }; Map.prototype.setIn = function(keyPath, v) { return this.updateIn(keyPath, NOT_SET, function() {return v}); }; Map.prototype.remove = function(k) { return updateMap(this, k, NOT_SET); }; Map.prototype.deleteIn = function(keyPath) { return this.updateIn(keyPath, function() {return NOT_SET}); }; Map.prototype.update = function(k, notSetValue, updater) { return arguments.length === 1 ? k(this) : this.updateIn([k], notSetValue, updater); }; Map.prototype.updateIn = function(keyPath, notSetValue, updater) { if (!updater) { updater = notSetValue; notSetValue = undefined; } var updatedValue = updateInDeepMap( this, forceIterator(keyPath), notSetValue, updater ); return updatedValue === NOT_SET ? undefined : updatedValue; }; Map.prototype.clear = function() { if (this.size === 0) { return this; } if (this.__ownerID) { this.size = 0; this._root = null; this.__hash = undefined; this.__altered = true; return this; } return emptyMap(); }; // @pragma Composition Map.prototype.merge = function(/*...iters*/) { return mergeIntoMapWith(this, undefined, arguments); }; Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); return mergeIntoMapWith(this, merger, iters); }; Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); return this.updateIn( keyPath, emptyMap(), function(m ) {return typeof m.merge === 'function' ? m.merge.apply(m, iters) : iters[iters.length - 1]} ); }; Map.prototype.mergeDeep = function(/*...iters*/) { return mergeIntoMapWith(this, deepMerger, arguments); }; Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); return mergeIntoMapWith(this, deepMergerWith(merger), iters); }; Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); return this.updateIn( keyPath, emptyMap(), function(m ) {return typeof m.mergeDeep === 'function' ? m.mergeDeep.apply(m, iters) : iters[iters.length - 1]} ); }; Map.prototype.sort = function(comparator) { // Late binding return OrderedMap(sortFactory(this, comparator)); }; Map.prototype.sortBy = function(mapper, comparator) { // Late binding return OrderedMap(sortFactory(this, comparator, mapper)); }; // @pragma Mutability Map.prototype.withMutations = function(fn) { var mutable = this.asMutable(); fn(mutable); return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this; }; Map.prototype.asMutable = function() { return this.__ownerID ? this : this.__ensureOwner(new OwnerID()); }; Map.prototype.asImmutable = function() { return this.__ensureOwner(); }; Map.prototype.wasAltered = function() { return this.__altered; }; Map.prototype.__iterator = function(type, reverse) { return new MapIterator(this, type, reverse); }; Map.prototype.__iterate = function(fn, reverse) {var this$0 = this; var iterations = 0; this._root && this._root.iterate(function(entry ) { iterations++; return fn(entry[1], entry[0], this$0); }, reverse); return iterations; }; Map.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } if (!ownerID) { this.__ownerID = ownerID; this.__altered = false; return this; } return makeMap(this.size, this._root, ownerID, this.__hash); }; function isMap(maybeMap) { return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]); } Map.isMap = isMap; var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@'; var MapPrototype = Map.prototype; MapPrototype[IS_MAP_SENTINEL] = true; MapPrototype[DELETE] = MapPrototype.remove; MapPrototype.removeIn = MapPrototype.deleteIn; // #pragma Trie Nodes function ArrayMapNode(ownerID, entries) { this.ownerID = ownerID; this.entries = entries; } ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { var entries = this.entries; for (var ii = 0, len = entries.length; ii < len; ii++) { if (is(key, entries[ii][0])) { return entries[ii][1]; } } return notSetValue; }; ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { var removed = value === NOT_SET; var entries = this.entries; var idx = 0; for (var len = entries.length; idx < len; idx++) { if (is(key, entries[idx][0])) { break; } } var exists = idx < len; if (exists ? entries[idx][1] === value : removed) { return this; } SetRef(didAlter); (removed || !exists) && SetRef(didChangeSize); if (removed && entries.length === 1) { return; // undefined } if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) { return createNodes(ownerID, entries, key, value); } var isEditable = ownerID && ownerID === this.ownerID; var newEntries = isEditable ? entries : arrCopy(entries); if (exists) { if (removed) { idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); } else { newEntries[idx] = [key, value]; } } else { newEntries.push([key, value]); } if (isEditable) { this.entries = newEntries; return this; } return new ArrayMapNode(ownerID, newEntries); }; function BitmapIndexedNode(ownerID, bitmap, nodes) { this.ownerID = ownerID; this.bitmap = bitmap; this.nodes = nodes; } BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) { if (keyHash === undefined) { keyHash = hash(key); } var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK)); var bitmap = this.bitmap; return (bitmap & bit) === 0 ? notSetValue : this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue); }; BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { if (keyHash === undefined) { keyHash = hash(key); } var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; var bit = 1 << keyHashFrag; var bitmap = this.bitmap; var exists = (bitmap & bit) !== 0; if (!exists && value === NOT_SET) { return this; } var idx = popCount(bitmap & (bit - 1)); var nodes = this.nodes; var node = exists ? nodes[idx] : undefined; var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); if (newNode === node) { return this; } if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) { return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode); } if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) { return nodes[idx ^ 1]; } if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) { return newNode; } var isEditable = ownerID && ownerID === this.ownerID; var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit; var newNodes = exists ? newNode ? setIn(nodes, idx, newNode, isEditable) : spliceOut(nodes, idx, isEditable) : spliceIn(nodes, idx, newNode, isEditable); if (isEditable) { this.bitmap = newBitmap; this.nodes = newNodes; return this; } return new BitmapIndexedNode(ownerID, newBitmap, newNodes); }; function HashArrayMapNode(ownerID, count, nodes) { this.ownerID = ownerID; this.count = count; this.nodes = nodes; } HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { if (keyHash === undefined) { keyHash = hash(key); } var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; var node = this.nodes[idx]; return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue; }; HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { if (keyHash === undefined) { keyHash = hash(key); } var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; var removed = value === NOT_SET; var nodes = this.nodes; var node = nodes[idx]; if (removed && !node) { return this; } var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); if (newNode === node) { return this; } var newCount = this.count; if (!node) { newCount++; } else if (!newNode) { newCount--; if (newCount < MIN_HASH_ARRAY_MAP_SIZE) { return packNodes(ownerID, nodes, newCount, idx); } } var isEditable = ownerID && ownerID === this.ownerID; var newNodes = setIn(nodes, idx, newNode, isEditable); if (isEditable) { this.count = newCount; this.nodes = newNodes; return this; } return new HashArrayMapNode(ownerID, newCount, newNodes); }; function HashCollisionNode(ownerID, keyHash, entries) { this.ownerID = ownerID; this.keyHash = keyHash; this.entries = entries; } HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) { var entries = this.entries; for (var ii = 0, len = entries.length; ii < len; ii++) { if (is(key, entries[ii][0])) { return entries[ii][1]; } } return notSetValue; }; HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { if (keyHash === undefined) { keyHash = hash(key); } var removed = value === NOT_SET; if (keyHash !== this.keyHash) { if (removed) { return this; } SetRef(didAlter); SetRef(didChangeSize); return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]); } var entries = this.entries; var idx = 0; for (var len = entries.length; idx < len; idx++) { if (is(key, entries[idx][0])) { break; } } var exists = idx < len; if (exists ? entries[idx][1] === value : removed) { return this; } SetRef(didAlter); (removed || !exists) && SetRef(didChangeSize); if (removed && len === 2) { return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]); } var isEditable = ownerID && ownerID === this.ownerID; var newEntries = isEditable ? entries : arrCopy(entries); if (exists) { if (removed) { idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); } else { newEntries[idx] = [key, value]; } } else { newEntries.push([key, value]); } if (isEditable) { this.entries = newEntries; return this; } return new HashCollisionNode(ownerID, this.keyHash, newEntries); }; function ValueNode(ownerID, keyHash, entry) { this.ownerID = ownerID; this.keyHash = keyHash; this.entry = entry; } ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) { return is(key, this.entry[0]) ? this.entry[1] : notSetValue; }; ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { var removed = value === NOT_SET; var keyMatch = is(key, this.entry[0]); if (keyMatch ? value === this.entry[1] : removed) { return this; } SetRef(didAlter); if (removed) { SetRef(didChangeSize); return; // undefined } if (keyMatch) { if (ownerID && ownerID === this.ownerID) { this.entry[1] = value; return this; } return new ValueNode(ownerID, this.keyHash, [key, value]); } SetRef(didChangeSize); return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]); }; // #pragma Iterators ArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate = function (fn, reverse) { var entries = this.entries; for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) { if (fn(entries[reverse ? maxIndex - ii : ii]) === false) { return false; } } } BitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate = function (fn, reverse) { var nodes = this.nodes; for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) { var node = nodes[reverse ? maxIndex - ii : ii]; if (node && node.iterate(fn, reverse) === false) { return false; } } } ValueNode.prototype.iterate = function (fn, reverse) { return fn(this.entry); } createClass(MapIterator, Iterator); function MapIterator(map, type, reverse) { this._type = type; this._reverse = reverse; this._stack = map._root && mapIteratorFrame(map._root); } MapIterator.prototype.next = function() { var type = this._type; var stack = this._stack; while (stack) { var node = stack.node; var index = stack.index++; var maxIndex; if (node.entry) { if (index === 0) { return mapIteratorValue(type, node.entry); } } else if (node.entries) { maxIndex = node.entries.length - 1; if (index <= maxIndex) { return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]); } } else { maxIndex = node.nodes.length - 1; if (index <= maxIndex) { var subNode = node.nodes[this._reverse ? maxIndex - index : index]; if (subNode) { if (subNode.entry) { return mapIteratorValue(type, subNode.entry); } stack = this._stack = mapIteratorFrame(subNode, stack); } continue; } } stack = this._stack = this._stack.__prev; } return iteratorDone(); }; function mapIteratorValue(type, entry) { return iteratorValue(type, entry[0], entry[1]); } function mapIteratorFrame(node, prev) { return { node: node, index: 0, __prev: prev }; } function makeMap(size, root, ownerID, hash) { var map = Object.create(MapPrototype); map.size = size; map._root = root; map.__ownerID = ownerID; map.__hash = hash; map.__altered = false; return map; } var EMPTY_MAP; function emptyMap() { return EMPTY_MAP || (EMPTY_MAP = makeMap(0)); } function updateMap(map, k, v) { var newRoot; var newSize; if (!map._root) { if (v === NOT_SET) { return map; } newSize = 1; newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]); } else { var didChangeSize = MakeRef(CHANGE_LENGTH); var didAlter = MakeRef(DID_ALTER); newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter); if (!didAlter.value) { return map; } newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0); } if (map.__ownerID) { map.size = newSize; map._root = newRoot; map.__hash = undefined; map.__altered = true; return map; } return newRoot ? makeMap(newSize, newRoot) : emptyMap(); } function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { if (!node) { if (value === NOT_SET) { return node; } SetRef(didAlter); SetRef(didChangeSize); return new ValueNode(ownerID, keyHash, [key, value]); } return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter); } function isLeafNode(node) { return node.constructor === ValueNode || node.constructor === HashCollisionNode; } function mergeIntoNode(node, ownerID, shift, keyHash, entry) { if (node.keyHash === keyHash) { return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]); } var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK; var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; var newNode; var nodes = idx1 === idx2 ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]); return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes); } function createNodes(ownerID, entries, key, value) { if (!ownerID) { ownerID = new OwnerID(); } var node = new ValueNode(ownerID, hash(key), [key, value]); for (var ii = 0; ii < entries.length; ii++) { var entry = entries[ii]; node = node.update(ownerID, 0, undefined, entry[0], entry[1]); } return node; } function packNodes(ownerID, nodes, count, excluding) { var bitmap = 0; var packedII = 0; var packedNodes = new Array(count); for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) { var node = nodes[ii]; if (node !== undefined && ii !== excluding) { bitmap |= bit; packedNodes[packedII++] = node; } } return new BitmapIndexedNode(ownerID, bitmap, packedNodes); } function expandNodes(ownerID, nodes, bitmap, including, node) { var count = 0; var expandedNodes = new Array(SIZE); for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) { expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined; } expandedNodes[including] = node; return new HashArrayMapNode(ownerID, count + 1, expandedNodes); } function mergeIntoMapWith(map, merger, iterables) { var iters = []; for (var ii = 0; ii < iterables.length; ii++) { var value = iterables[ii]; var iter = KeyedIterable(value); if (!isIterable(value)) { iter = iter.map(function(v ) {return fromJS(v)}); } iters.push(iter); } return mergeIntoCollectionWith(map, merger, iters); } function deepMerger(existing, value, key) { return existing && existing.mergeDeep && isIterable(value) ? existing.mergeDeep(value) : is(existing, value) ? existing : value; } function deepMergerWith(merger) { return function(existing, value, key) { if (existing && existing.mergeDeepWith && isIterable(value)) { return existing.mergeDeepWith(merger, value); } var nextValue = merger(existing, value, key); return is(existing, nextValue) ? existing : nextValue; }; } function mergeIntoCollectionWith(collection, merger, iters) { iters = iters.filter(function(x ) {return x.size !== 0}); if (iters.length === 0) { return collection; } if (collection.size === 0 && !collection.__ownerID && iters.length === 1) { return collection.constructor(iters[0]); } return collection.withMutations(function(collection ) { var mergeIntoMap = merger ? function(value, key) { collection.update(key, NOT_SET, function(existing ) {return existing === NOT_SET ? value : merger(existing, value, key)} ); } : function(value, key) { collection.set(key, value); } for (var ii = 0; ii < iters.length; ii++) { iters[ii].forEach(mergeIntoMap); } }); } function updateInDeepMap(existing, keyPathIter, notSetValue, updater) { var isNotSet = existing === NOT_SET; var step = keyPathIter.next(); if (step.done) { var existingValue = isNotSet ? notSetValue : existing; var newValue = updater(existingValue); return newValue === existingValue ? existing : newValue; } invariant( isNotSet || (existing && existing.set), 'invalid keyPath' ); var key = step.value; var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET); var nextUpdated = updateInDeepMap( nextExisting, keyPathIter, notSetValue, updater ); return nextUpdated === nextExisting ? existing : nextUpdated === NOT_SET ? existing.remove(key) : (isNotSet ? emptyMap() : existing).set(key, nextUpdated); } function popCount(x) { x = x - ((x >> 1) & 0x55555555); x = (x & 0x33333333) + ((x >> 2) & 0x33333333); x = (x + (x >> 4)) & 0x0f0f0f0f; x = x + (x >> 8); x = x + (x >> 16); return x & 0x7f; } function setIn(array, idx, val, canEdit) { var newArray = canEdit ? array : arrCopy(array); newArray[idx] = val; return newArray; } function spliceIn(array, idx, val, canEdit) { var newLen = array.length + 1; if (canEdit && idx + 1 === newLen) { array[idx] = val; return array; } var newArray = new Array(newLen); var after = 0; for (var ii = 0; ii < newLen; ii++) { if (ii === idx) { newArray[ii] = val; after = -1; } else { newArray[ii] = array[ii + after]; } } return newArray; } function spliceOut(array, idx, canEdit) { var newLen = array.length - 1; if (canEdit && idx === newLen) { array.pop(); return array; } var newArray = new Array(newLen); var after = 0; for (var ii = 0; ii < newLen; ii++) { if (ii === idx) { after = 1; } newArray[ii] = array[ii + after]; } return newArray; } var MAX_ARRAY_MAP_SIZE = SIZE / 4; var MAX_BITMAP_INDEXED_SIZE = SIZE / 2; var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4; createClass(List, IndexedCollection); // @pragma Construction function List(value) { var empty = emptyList(); if (value === null || value === undefined) { return empty; } if (isList(value)) { return value; } var iter = IndexedIterable(value); var size = iter.size; if (size === 0) { return empty; } assertNotInfinite(size); if (size > 0 && size < SIZE) { return makeList(0, size, SHIFT, null, new VNode(iter.toArray())); } return empty.withMutations(function(list ) { list.setSize(size); iter.forEach(function(v, i) {return list.set(i, v)}); }); } List.of = function(/*...values*/) { return this(arguments); }; List.prototype.toString = function() { return this.__toString('List [', ']'); }; // @pragma Access List.prototype.get = function(index, notSetValue) { index = wrapIndex(this, index); if (index >= 0 && index < this.size) { index += this._origin; var node = listNodeFor(this, index); return node && node.array[index & MASK]; } return notSetValue; }; // @pragma Modification List.prototype.set = function(index, value) { return updateList(this, index, value); }; List.prototype.remove = function(index) { return !this.has(index) ? this : index === 0 ? this.shift() : index === this.size - 1 ? this.pop() : this.splice(index, 1); }; List.prototype.insert = function(index, value) { return this.splice(index, 0, value); }; List.prototype.clear = function() { if (this.size === 0) { return this; } if (this.__ownerID) { this.size = this._origin = this._capacity = 0; this._level = SHIFT; this._root = this._tail = null; this.__hash = undefined; this.__altered = true; return this; } return emptyList(); }; List.prototype.push = function(/*...values*/) { var values = arguments; var oldSize = this.size; return this.withMutations(function(list ) { setListBounds(list, 0, oldSize + values.length); for (var ii = 0; ii < values.length; ii++) { list.set(oldSize + ii, values[ii]); } }); }; List.prototype.pop = function() { return setListBounds(this, 0, -1); }; List.prototype.unshift = function(/*...values*/) { var values = arguments; return this.withMutations(function(list ) { setListBounds(list, -values.length); for (var ii = 0; ii < values.length; ii++) { list.set(ii, values[ii]); } }); }; List.prototype.shift = function() { return setListBounds(this, 1); }; // @pragma Composition List.prototype.merge = function(/*...iters*/) { return mergeIntoListWith(this, undefined, arguments); }; List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); return mergeIntoListWith(this, merger, iters); }; List.prototype.mergeDeep = function(/*...iters*/) { return mergeIntoListWith(this, deepMerger, arguments); }; List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); return mergeIntoListWith(this, deepMergerWith(merger), iters); }; List.prototype.setSize = function(size) { return setListBounds(this, 0, size); }; // @pragma Iteration List.prototype.slice = function(begin, end) { var size = this.size; if (wholeSlice(begin, end, size)) { return this; } return setListBounds( this, resolveBegin(begin, size), resolveEnd(end, size) ); }; List.prototype.__iterator = function(type, reverse) { var index = 0; var values = iterateList(this, reverse); return new Iterator(function() { var value = values(); return value === DONE ? iteratorDone() : iteratorValue(type, index++, value); }); }; List.prototype.__iterate = function(fn, reverse) { var index = 0; var values = iterateList(this, reverse); var value; while ((value = values()) !== DONE) { if (fn(value, index++, this) === false) { break; } } return index; }; List.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } if (!ownerID) { this.__ownerID = ownerID; return this; } return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash); }; function isList(maybeList) { return !!(maybeList && maybeList[IS_LIST_SENTINEL]); } List.isList = isList; var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@'; var ListPrototype = List.prototype; ListPrototype[IS_LIST_SENTINEL] = true; ListPrototype[DELETE] = ListPrototype.remove; ListPrototype.setIn = MapPrototype.setIn; ListPrototype.deleteIn = ListPrototype.removeIn = MapPrototype.removeIn; ListPrototype.update = MapPrototype.update; ListPrototype.updateIn = MapPrototype.updateIn; ListPrototype.mergeIn = MapPrototype.mergeIn; ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; ListPrototype.withMutations = MapPrototype.withMutations; ListPrototype.asMutable = MapPrototype.asMutable; ListPrototype.asImmutable = MapPrototype.asImmutable; ListPrototype.wasAltered = MapPrototype.wasAltered; function VNode(array, ownerID) { this.array = array; this.ownerID = ownerID; } // TODO: seems like these methods are very similar VNode.prototype.removeBefore = function(ownerID, level, index) { if (index === level ? 1 << level : 0 || this.array.length === 0) { return this; } var originIndex = (index >>> level) & MASK; if (originIndex >= this.array.length) { return new VNode([], ownerID); } var removingFirst = originIndex === 0; var newChild; if (level > 0) { var oldChild = this.array[originIndex]; newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index); if (newChild === oldChild && removingFirst) { return this; } } if (removingFirst && !newChild) { return this; } var editable = editableVNode(this, ownerID); if (!removingFirst) { for (var ii = 0; ii < originIndex; ii++) { editable.array[ii] = undefined; } } if (newChild) { editable.array[originIndex] = newChild; } return editable; }; VNode.prototype.removeAfter = function(ownerID, level, index) { if (index === (level ? 1 << level : 0) || this.array.length === 0) { return this; } var sizeIndex = ((index - 1) >>> level) & MASK; if (sizeIndex >= this.array.length) { return this; } var newChild; if (level > 0) { var oldChild = this.array[sizeIndex]; newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index); if (newChild === oldChild && sizeIndex === this.array.length - 1) { return this; } } var editable = editableVNode(this, ownerID); editable.array.splice(sizeIndex + 1); if (newChild) { editable.array[sizeIndex] = newChild; } return editable; }; var DONE = {}; function iterateList(list, reverse) { var left = list._origin; var right = list._capacity; var tailPos = getTailOffset(right); var tail = list._tail; return iterateNodeOrLeaf(list._root, list._level, 0); function iterateNodeOrLeaf(node, level, offset) { return level === 0 ? iterateLeaf(node, offset) : iterateNode(node, level, offset); } function iterateLeaf(node, offset) { var array = offset === tailPos ? tail && tail.array : node && node.array; var from = offset > left ? 0 : left - offset; var to = right - offset; if (to > SIZE) { to = SIZE; } return function() { if (from === to) { return DONE; } var idx = reverse ? --to : from++; return array && array[idx]; }; } function iterateNode(node, level, offset) { var values; var array = node && node.array; var from = offset > left ? 0 : (left - offset) >> level; var to = ((right - offset) >> level) + 1; if (to > SIZE) { to = SIZE; } return function() { do { if (values) { var value = values(); if (value !== DONE) { return value; } values = null; } if (from === to) { return DONE; } var idx = reverse ? --to : from++; values = iterateNodeOrLeaf( array && array[idx], level - SHIFT, offset + (idx << level) ); } while (true); }; } } function makeList(origin, capacity, level, root, tail, ownerID, hash) { var list = Object.create(ListPrototype); list.size = capacity - origin; list._origin = origin; list._capacity = capacity; list._level = level; list._root = root; list._tail = tail; list.__ownerID = ownerID; list.__hash = hash; list.__altered = false; return list; } var EMPTY_LIST; function emptyList() { return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT)); } function updateList(list, index, value) { index = wrapIndex(list, index); if (index !== index) { return list; } if (index >= list.size || index < 0) { return list.withMutations(function(list ) { index < 0 ? setListBounds(list, index).set(0, value) : setListBounds(list, 0, index + 1).set(index, value) }); } index += list._origin; var newTail = list._tail; var newRoot = list._root; var didAlter = MakeRef(DID_ALTER); if (index >= getTailOffset(list._capacity)) { newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter); } else { newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter); } if (!didAlter.value) { return list; } if (list.__ownerID) { list._root = newRoot; list._tail = newTail; list.__hash = undefined; list.__altered = true; return list; } return makeList(list._origin, list._capacity, list._level, newRoot, newTail); } function updateVNode(node, ownerID, level, index, value, didAlter) { var idx = (index >>> level) & MASK; var nodeHas = node && idx < node.array.length; if (!nodeHas && value === undefined) { return node; } var newNode; if (level > 0) { var lowerNode = node && node.array[idx]; var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter); if (newLowerNode === lowerNode) { return node; } newNode = editableVNode(node, ownerID); newNode.array[idx] = newLowerNode; return newNode; } if (nodeHas && node.array[idx] === value) { return node; } SetRef(didAlter); newNode = editableVNode(node, ownerID); if (value === undefined && idx === newNode.array.length - 1) { newNode.array.pop(); } else { newNode.array[idx] = value; } return newNode; } function editableVNode(node, ownerID) { if (ownerID && node && ownerID === node.ownerID) { return node; } return new VNode(node ? node.array.slice() : [], ownerID); } function listNodeFor(list, rawIndex) { if (rawIndex >= getTailOffset(list._capacity)) { return list._tail; } if (rawIndex < 1 << (list._level + SHIFT)) { var node = list._root; var level = list._level; while (node && level > 0) { node = node.array[(rawIndex >>> level) & MASK]; level -= SHIFT; } return node; } } function setListBounds(list, begin, end) { // Sanitize begin & end using this shorthand for ToInt32(argument) // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 if (begin !== undefined) { begin = begin | 0; } if (end !== undefined) { end = end | 0; } var owner = list.__ownerID || new OwnerID(); var oldOrigin = list._origin; var oldCapacity = list._capacity; var newOrigin = oldOrigin + begin; var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end; if (newOrigin === oldOrigin && newCapacity === oldCapacity) { return list; } // If it's going to end after it starts, it's empty. if (newOrigin >= newCapacity) { return list.clear(); } var newLevel = list._level; var newRoot = list._root; // New origin might need creating a higher root. var offsetShift = 0; while (newOrigin + offsetShift < 0) { newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner); newLevel += SHIFT; offsetShift += 1 << newLevel; } if (offsetShift) { newOrigin += offsetShift; oldOrigin += offsetShift; newCapacity += offsetShift; oldCapacity += offsetShift; } var oldTailOffset = getTailOffset(oldCapacity); var newTailOffset = getTailOffset(newCapacity); // New size might need creating a higher root. while (newTailOffset >= 1 << (newLevel + SHIFT)) { newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner); newLevel += SHIFT; } // Locate or create the new tail. var oldTail = list._tail; var newTail = newTailOffset < oldTailOffset ? listNodeFor(list, newCapacity - 1) : newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; // Merge Tail into tree. if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) { newRoot = editableVNode(newRoot, owner); var node = newRoot; for (var level = newLevel; level > SHIFT; level -= SHIFT) { var idx = (oldTailOffset >>> level) & MASK; node = node.array[idx] = editableVNode(node.array[idx], owner); } node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail; } // If the size has been reduced, there's a chance the tail needs to be trimmed. if (newCapacity < oldCapacity) { newTail = newTail && newTail.removeAfter(owner, 0, newCapacity); } // If the new origin is within the tail, then we do not need a root. if (newOrigin >= newTailOffset) { newOrigin -= newTailOffset; newCapacity -= newTailOffset; newLevel = SHIFT; newRoot = null; newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); // Otherwise, if the root has been trimmed, garbage collect. } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) { offsetShift = 0; // Identify the new top root node of the subtree of the old root. while (newRoot) { var beginIndex = (newOrigin >>> newLevel) & MASK; if (beginIndex !== (newTailOffset >>> newLevel) & MASK) { break; } if (beginIndex) { offsetShift += (1 << newLevel) * beginIndex; } newLevel -= SHIFT; newRoot = newRoot.array[beginIndex]; } // Trim the new sides of the new root. if (newRoot && newOrigin > oldOrigin) { newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift); } if (newRoot && newTailOffset < oldTailOffset) { newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift); } if (offsetShift) { newOrigin -= offsetShift; newCapacity -= offsetShift; } } if (list.__ownerID) { list.size = newCapacity - newOrigin; list._origin = newOrigin; list._capacity = newCapacity; list._level = newLevel; list._root = newRoot; list._tail = newTail; list.__hash = undefined; list.__altered = true; return list; } return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail); } function mergeIntoListWith(list, merger, iterables) { var iters = []; var maxSize = 0; for (var ii = 0; ii < iterables.length; ii++) { var value = iterables[ii]; var iter = IndexedIterable(value); if (iter.size > maxSize) { maxSize = iter.size; } if (!isIterable(value)) { iter = iter.map(function(v ) {return fromJS(v)}); } iters.push(iter); } if (maxSize > list.size) { list = list.setSize(maxSize); } return mergeIntoCollectionWith(list, merger, iters); } function getTailOffset(size) { return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT); } createClass(OrderedMap, Map); // @pragma Construction function OrderedMap(value) { return value === null || value === undefined ? emptyOrderedMap() : isOrderedMap(value) ? value : emptyOrderedMap().withMutations(function(map ) { var iter = KeyedIterable(value); assertNotInfinite(iter.size); iter.forEach(function(v, k) {return map.set(k, v)}); }); } OrderedMap.of = function(/*...values*/) { return this(arguments); }; OrderedMap.prototype.toString = function() { return this.__toString('OrderedMap {', '}'); }; // @pragma Access OrderedMap.prototype.get = function(k, notSetValue) { var index = this._map.get(k); return index !== undefined ? this._list.get(index)[1] : notSetValue; }; // @pragma Modification OrderedMap.prototype.clear = function() { if (this.size === 0) { return this; } if (this.__ownerID) { this.size = 0; this._map.clear(); this._list.clear(); return this; } return emptyOrderedMap(); }; OrderedMap.prototype.set = function(k, v) { return updateOrderedMap(this, k, v); }; OrderedMap.prototype.remove = function(k) { return updateOrderedMap(this, k, NOT_SET); }; OrderedMap.prototype.wasAltered = function() { return this._map.wasAltered() || this._list.wasAltered(); }; OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this; return this._list.__iterate( function(entry ) {return entry && fn(entry[1], entry[0], this$0)}, reverse ); }; OrderedMap.prototype.__iterator = function(type, reverse) { return this._list.fromEntrySeq().__iterator(type, reverse); }; OrderedMap.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } var newMap = this._map.__ensureOwner(ownerID); var newList = this._list.__ensureOwner(ownerID); if (!ownerID) { this.__ownerID = ownerID; this._map = newMap; this._list = newList; return this; } return makeOrderedMap(newMap, newList, ownerID, this.__hash); }; function isOrderedMap(maybeOrderedMap) { return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap); } OrderedMap.isOrderedMap = isOrderedMap; OrderedMap.prototype[IS_ORDERED_SENTINEL] = true; OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove; function makeOrderedMap(map, list, ownerID, hash) { var omap = Object.create(OrderedMap.prototype); omap.size = map ? map.size : 0; omap._map = map; omap._list = list; omap.__ownerID = ownerID; omap.__hash = hash; return omap; } var EMPTY_ORDERED_MAP; function emptyOrderedMap() { return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList())); } function updateOrderedMap(omap, k, v) { var map = omap._map; var list = omap._list; var i = map.get(k); var has = i !== undefined; var newMap; var newList; if (v === NOT_SET) { // removed if (!has) { return omap; } if (list.size >= SIZE && list.size >= map.size * 2) { newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx}); newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap(); if (omap.__ownerID) { newMap.__ownerID = newList.__ownerID = omap.__ownerID; } } else { newMap = map.remove(k); newList = i === list.size - 1 ? list.pop() : list.set(i, undefined); } } else { if (has) { if (v === list.get(i)[1]) { return omap; } newMap = map; newList = list.set(i, [k, v]); } else { newMap = map.set(k, list.size); newList = list.set(list.size, [k, v]); } } if (omap.__ownerID) { omap.size = newMap.size; omap._map = newMap; omap._list = newList; omap.__hash = undefined; return omap; } return makeOrderedMap(newMap, newList); } createClass(ToKeyedSequence, KeyedSeq); function ToKeyedSequence(indexed, useKeys) { this._iter = indexed; this._useKeys = useKeys; this.size = indexed.size; } ToKeyedSequence.prototype.get = function(key, notSetValue) { return this._iter.get(key, notSetValue); }; ToKeyedSequence.prototype.has = function(key) { return this._iter.has(key); }; ToKeyedSequence.prototype.valueSeq = function() { return this._iter.valueSeq(); }; ToKeyedSequence.prototype.reverse = function() {var this$0 = this; var reversedSequence = reverseFactory(this, true); if (!this._useKeys) { reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()}; } return reversedSequence; }; ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this; var mappedSequence = mapFactory(this, mapper, context); if (!this._useKeys) { mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)}; } return mappedSequence; }; ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; var ii; return this._iter.__iterate( this._useKeys ? function(v, k) {return fn(v, k, this$0)} : ((ii = reverse ? resolveSize(this) : 0), function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}), reverse ); }; ToKeyedSequence.prototype.__iterator = function(type, reverse) { if (this._useKeys) { return this._iter.__iterator(type, reverse); } var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); var ii = reverse ? resolveSize(this) : 0; return new Iterator(function() { var step = iterator.next(); return step.done ? step : iteratorValue(type, reverse ? --ii : ii++, step.value, step); }); }; ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true; createClass(ToIndexedSequence, IndexedSeq); function ToIndexedSequence(iter) { this._iter = iter; this.size = iter.size; } ToIndexedSequence.prototype.includes = function(value) { return this._iter.includes(value); }; ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; var iterations = 0; return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse); }; ToIndexedSequence.prototype.__iterator = function(type, reverse) { var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); var iterations = 0; return new Iterator(function() { var step = iterator.next(); return step.done ? step : iteratorValue(type, iterations++, step.value, step) }); }; createClass(ToSetSequence, SetSeq); function ToSetSequence(iter) { this._iter = iter; this.size = iter.size; } ToSetSequence.prototype.has = function(key) { return this._iter.includes(key); }; ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse); }; ToSetSequence.prototype.__iterator = function(type, reverse) { var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); return new Iterator(function() { var step = iterator.next(); return step.done ? step : iteratorValue(type, step.value, step.value, step); }); }; createClass(FromEntriesSequence, KeyedSeq); function FromEntriesSequence(entries) { this._iter = entries; this.size = entries.size; } FromEntriesSequence.prototype.entrySeq = function() { return this._iter.toSeq(); }; FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; return this._iter.__iterate(function(entry ) { // Check if entry exists first so array access doesn't throw for holes // in the parent iteration. if (entry) { validateEntry(entry); var indexedIterable = isIterable(entry); return fn( indexedIterable ? entry.get(1) : entry[1], indexedIterable ? entry.get(0) : entry[0], this$0 ); } }, reverse); }; FromEntriesSequence.prototype.__iterator = function(type, reverse) { var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); return new Iterator(function() { while (true) { var step = iterator.next(); if (step.done) { return step; } var entry = step.value; // Check if entry exists first so array access doesn't throw for holes // in the parent iteration. if (entry) { validateEntry(entry); var indexedIterable = isIterable(entry); return iteratorValue( type, indexedIterable ? entry.get(0) : entry[0], indexedIterable ? entry.get(1) : entry[1], step ); } } }); }; ToIndexedSequence.prototype.cacheResult = ToKeyedSequence.prototype.cacheResult = ToSetSequence.prototype.cacheResult = FromEntriesSequence.prototype.cacheResult = cacheResultThrough; function flipFactory(iterable) { var flipSequence = makeSequence(iterable); flipSequence._iter = iterable; flipSequence.size = iterable.size; flipSequence.flip = function() {return iterable}; flipSequence.reverse = function () { var reversedSequence = iterable.reverse.apply(this); // super.reverse() reversedSequence.flip = function() {return iterable.reverse()}; return reversedSequence; }; flipSequence.has = function(key ) {return iterable.includes(key)}; flipSequence.includes = function(key ) {return iterable.has(key)}; flipSequence.cacheResult = cacheResultThrough; flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse); } flipSequence.__iteratorUncached = function(type, reverse) { if (type === ITERATE_ENTRIES) { var iterator = iterable.__iterator(type, reverse); return new Iterator(function() { var step = iterator.next(); if (!step.done) { var k = step.value[0]; step.value[0] = step.value[1]; step.value[1] = k; } return step; }); } return iterable.__iterator( type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, reverse ); } return flipSequence; } function mapFactory(iterable, mapper, context) { var mappedSequence = makeSequence(iterable); mappedSequence.size = iterable.size; mappedSequence.has = function(key ) {return iterable.has(key)}; mappedSequence.get = function(key, notSetValue) { var v = iterable.get(key, NOT_SET); return v === NOT_SET ? notSetValue : mapper.call(context, v, key, iterable); }; mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; return iterable.__iterate( function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false}, reverse ); } mappedSequence.__iteratorUncached = function (type, reverse) { var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); return new Iterator(function() { var step = iterator.next(); if (step.done) { return step; } var entry = step.value; var key = entry[0]; return iteratorValue( type, key, mapper.call(context, entry[1], key, iterable), step ); }); } return mappedSequence; } function reverseFactory(iterable, useKeys) { var reversedSequence = makeSequence(iterable); reversedSequence._iter = iterable; reversedSequence.size = iterable.size; reversedSequence.reverse = function() {return iterable}; if (iterable.flip) { reversedSequence.flip = function () { var flipSequence = flipFactory(iterable); flipSequence.reverse = function() {return iterable.flip()}; return flipSequence; }; } reversedSequence.get = function(key, notSetValue) {return iterable.get(useKeys ? key : -1 - key, notSetValue)}; reversedSequence.has = function(key ) {return iterable.has(useKeys ? key : -1 - key)}; reversedSequence.includes = function(value ) {return iterable.includes(value)}; reversedSequence.cacheResult = cacheResultThrough; reversedSequence.__iterate = function (fn, reverse) {var this$0 = this; return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse); }; reversedSequence.__iterator = function(type, reverse) {return iterable.__iterator(type, !reverse)}; return reversedSequence; } function filterFactory(iterable, predicate, context, useKeys) { var filterSequence = makeSequence(iterable); if (useKeys) { filterSequence.has = function(key ) { var v = iterable.get(key, NOT_SET); return v !== NOT_SET && !!predicate.call(context, v, key, iterable); }; filterSequence.get = function(key, notSetValue) { var v = iterable.get(key, NOT_SET); return v !== NOT_SET && predicate.call(context, v, key, iterable) ? v : notSetValue; }; } filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; var iterations = 0; iterable.__iterate(function(v, k, c) { if (predicate.call(context, v, k, c)) { iterations++; return fn(v, useKeys ? k : iterations - 1, this$0); } }, reverse); return iterations; }; filterSequence.__iteratorUncached = function (type, reverse) { var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); var iterations = 0; return new Iterator(function() { while (true) { var step = iterator.next(); if (step.done) { return step; } var entry = step.value; var key = entry[0]; var value = entry[1]; if (predicate.call(context, value, key, iterable)) { return iteratorValue(type, useKeys ? key : iterations++, value, step); } } }); } return filterSequence; } function countByFactory(iterable, grouper, context) { var groups = Map().asMutable(); iterable.__iterate(function(v, k) { groups.update( grouper.call(context, v, k, iterable), 0, function(a ) {return a + 1} ); }); return groups.asImmutable(); } function groupByFactory(iterable, grouper, context) { var isKeyedIter = isKeyed(iterable); var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable(); iterable.__iterate(function(v, k) { groups.update( grouper.call(context, v, k, iterable), function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)} ); }); var coerce = iterableClass(iterable); return groups.map(function(arr ) {return reify(iterable, coerce(arr))}); } function sliceFactory(iterable, begin, end, useKeys) { var originalSize = iterable.size; // Sanitize begin & end using this shorthand for ToInt32(argument) // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 if (begin !== undefined) { begin = begin | 0; } if (end !== undefined) { if (end === Infinity) { end = originalSize; } else { end = end | 0; } } if (wholeSlice(begin, end, originalSize)) { return iterable; } var resolvedBegin = resolveBegin(begin, originalSize); var resolvedEnd = resolveEnd(end, originalSize); // begin or end will be NaN if they were provided as negative numbers and // this iterable's size is unknown. In that case, cache first so there is // a known size and these do not resolve to NaN. if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) { return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys); } // Note: resolvedEnd is undefined when the original sequence's length is // unknown and this slice did not supply an end and should contain all // elements after resolvedBegin. // In that case, resolvedSize will be NaN and sliceSize will remain undefined. var resolvedSize = resolvedEnd - resolvedBegin; var sliceSize; if (resolvedSize === resolvedSize) { sliceSize = resolvedSize < 0 ? 0 : resolvedSize; } var sliceSeq = makeSequence(iterable); // If iterable.size is undefined, the size of the realized sliceSeq is // unknown at this point unless the number of items to slice is 0 sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined; if (!useKeys && isSeq(iterable) && sliceSize >= 0) { sliceSeq.get = function (index, notSetValue) { index = wrapIndex(this, index); return index >= 0 && index < sliceSize ? iterable.get(index + resolvedBegin, notSetValue) : notSetValue; } } sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this; if (sliceSize === 0) { return 0; } if (reverse) { return this.cacheResult().__iterate(fn, reverse); } var skipped = 0; var isSkipping = true; var iterations = 0; iterable.__iterate(function(v, k) { if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) { iterations++; return fn(v, useKeys ? k : iterations - 1, this$0) !== false && iterations !== sliceSize; } }); return iterations; }; sliceSeq.__iteratorUncached = function(type, reverse) { if (sliceSize !== 0 && reverse) { return this.cacheResult().__iterator(type, reverse); } // Don't bother instantiating parent iterator if taking 0. var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse); var skipped = 0; var iterations = 0; return new Iterator(function() { while (skipped++ < resolvedBegin) { iterator.next(); } if (++iterations > sliceSize) { return iteratorDone(); } var step = iterator.next(); if (useKeys || type === ITERATE_VALUES) { return step; } else if (type === ITERATE_KEYS) { return iteratorValue(type, iterations - 1, undefined, step); } else { return iteratorValue(type, iterations - 1, step.value[1], step); } }); } return sliceSeq; } function takeWhileFactory(iterable, predicate, context) { var takeSequence = makeSequence(iterable); takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; if (reverse) { return this.cacheResult().__iterate(fn, reverse); } var iterations = 0; iterable.__iterate(function(v, k, c) {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)} ); return iterations; }; takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; if (reverse) { return this.cacheResult().__iterator(type, reverse); } var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); var iterating = true; return new Iterator(function() { if (!iterating) { return iteratorDone(); } var step = iterator.next(); if (step.done) { return step; } var entry = step.value; var k = entry[0]; var v = entry[1]; if (!predicate.call(context, v, k, this$0)) { iterating = false; return iteratorDone(); } return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step); }); }; return takeSequence; } function skipWhileFactory(iterable, predicate, context, useKeys) { var skipSequence = makeSequence(iterable); skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; if (reverse) { return this.cacheResult().__iterate(fn, reverse); } var isSkipping = true; var iterations = 0; iterable.__iterate(function(v, k, c) { if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) { iterations++; return fn(v, useKeys ? k : iterations - 1, this$0); } }); return iterations; }; skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; if (reverse) { return this.cacheResult().__iterator(type, reverse); } var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); var skipping = true; var iterations = 0; return new Iterator(function() { var step, k, v; do { step = iterator.next(); if (step.done) { if (useKeys || type === ITERATE_VALUES) { return step; } else if (type === ITERATE_KEYS) { return iteratorValue(type, iterations++, undefined, step); } else { return iteratorValue(type, iterations++, step.value[1], step); } } var entry = step.value; k = entry[0]; v = entry[1]; skipping && (skipping = predicate.call(context, v, k, this$0)); } while (skipping); return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step); }); }; return skipSequence; } function concatFactory(iterable, values) { var isKeyedIterable = isKeyed(iterable); var iters = [iterable].concat(values).map(function(v ) { if (!isIterable(v)) { v = isKeyedIterable ? keyedSeqFromValue(v) : indexedSeqFromValue(Array.isArray(v) ? v : [v]); } else if (isKeyedIterable) { v = KeyedIterable(v); } return v; }).filter(function(v ) {return v.size !== 0}); if (iters.length === 0) { return iterable; } if (iters.length === 1) { var singleton = iters[0]; if (singleton === iterable || isKeyedIterable && isKeyed(singleton) || isIndexed(iterable) && isIndexed(singleton)) { return singleton; } } var concatSeq = new ArraySeq(iters); if (isKeyedIterable) { concatSeq = concatSeq.toKeyedSeq(); } else if (!isIndexed(iterable)) { concatSeq = concatSeq.toSetSeq(); } concatSeq = concatSeq.flatten(true); concatSeq.size = iters.reduce( function(sum, seq) { if (sum !== undefined) { var size = seq.size; if (size !== undefined) { return sum + size; } } }, 0 ); return concatSeq; } function flattenFactory(iterable, depth, useKeys) { var flatSequence = makeSequence(iterable); flatSequence.__iterateUncached = function(fn, reverse) { var iterations = 0; var stopped = false; function flatDeep(iter, currentDepth) {var this$0 = this; iter.__iterate(function(v, k) { if ((!depth || currentDepth < depth) && isIterable(v)) { flatDeep(v, currentDepth + 1); } else if (fn(v, useKeys ? k : iterations++, this$0) === false) { stopped = true; } return !stopped; }, reverse); } flatDeep(iterable, 0); return iterations; } flatSequence.__iteratorUncached = function(type, reverse) { var iterator = iterable.__iterator(type, reverse); var stack = []; var iterations = 0; return new Iterator(function() { while (iterator) { var step = iterator.next(); if (step.done !== false) { iterator = stack.pop(); continue; } var v = step.value; if (type === ITERATE_ENTRIES) { v = v[1]; } if ((!depth || stack.length < depth) && isIterable(v)) { stack.push(iterator); iterator = v.__iterator(type, reverse); } else { return useKeys ? step : iteratorValue(type, iterations++, v, step); } } return iteratorDone(); }); } return flatSequence; } function flatMapFactory(iterable, mapper, context) { var coerce = iterableClass(iterable); return iterable.toSeq().map( function(v, k) {return coerce(mapper.call(context, v, k, iterable))} ).flatten(true); } function interposeFactory(iterable, separator) { var interposedSequence = makeSequence(iterable); interposedSequence.size = iterable.size && iterable.size * 2 -1; interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; var iterations = 0; iterable.__iterate(function(v, k) {return (!iterations || fn(separator, iterations++, this$0) !== false) && fn(v, iterations++, this$0) !== false}, reverse ); return iterations; }; interposedSequence.__iteratorUncached = function(type, reverse) { var iterator = iterable.__iterator(ITERATE_VALUES, reverse); var iterations = 0; var step; return new Iterator(function() { if (!step || iterations % 2) { step = iterator.next(); if (step.done) { return step; } } return iterations % 2 ? iteratorValue(type, iterations++, separator) : iteratorValue(type, iterations++, step.value, step); }); }; return interposedSequence; } function sortFactory(iterable, comparator, mapper) { if (!comparator) { comparator = defaultComparator; } var isKeyedIterable = isKeyed(iterable); var index = 0; var entries = iterable.toSeq().map( function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]} ).toArray(); entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach( isKeyedIterable ? function(v, i) { entries[i].length = 2; } : function(v, i) { entries[i] = v[1]; } ); return isKeyedIterable ? KeyedSeq(entries) : isIndexed(iterable) ? IndexedSeq(entries) : SetSeq(entries); } function maxFactory(iterable, comparator, mapper) { if (!comparator) { comparator = defaultComparator; } if (mapper) { var entry = iterable.toSeq() .map(function(v, k) {return [v, mapper(v, k, iterable)]}) .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a}); return entry && entry[0]; } else { return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a}); } } function maxCompare(comparator, a, b) { var comp = comparator(b, a); // b is considered the new max if the comparator declares them equal, but // they are not equal and b is in fact a nullish value. return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0; } function zipWithFactory(keyIter, zipper, iters) { var zipSequence = makeSequence(keyIter); zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min(); // Note: this a generic base implementation of __iterate in terms of // __iterator which may be more generically useful in the future. zipSequence.__iterate = function(fn, reverse) { /* generic: var iterator = this.__iterator(ITERATE_ENTRIES, reverse); var step; var iterations = 0; while (!(step = iterator.next()).done) { iterations++; if (fn(step.value[1], step.value[0], this) === false) { break; } } return iterations; */ // indexed: var iterator = this.__iterator(ITERATE_VALUES, reverse); var step; var iterations = 0; while (!(step = iterator.next()).done) { if (fn(step.value, iterations++, this) === false) { break; } } return iterations; }; zipSequence.__iteratorUncached = function(type, reverse) { var iterators = iters.map(function(i ) {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))} ); var iterations = 0; var isDone = false; return new Iterator(function() { var steps; if (!isDone) { steps = iterators.map(function(i ) {return i.next()}); isDone = steps.some(function(s ) {return s.done}); } if (isDone) { return iteratorDone(); } return iteratorValue( type, iterations++, zipper.apply(null, steps.map(function(s ) {return s.value})) ); }); }; return zipSequence } // #pragma Helper Functions function reify(iter, seq) { return isSeq(iter) ? seq : iter.constructor(seq); } function validateEntry(entry) { if (entry !== Object(entry)) { throw new TypeError('Expected [K, V] tuple: ' + entry); } } function resolveSize(iter) { assertNotInfinite(iter.size); return ensureSize(iter); } function iterableClass(iterable) { return isKeyed(iterable) ? KeyedIterable : isIndexed(iterable) ? IndexedIterable : SetIterable; } function makeSequence(iterable) { return Object.create( ( isKeyed(iterable) ? KeyedSeq : isIndexed(iterable) ? IndexedSeq : SetSeq ).prototype ); } function cacheResultThrough() { if (this._iter.cacheResult) { this._iter.cacheResult(); this.size = this._iter.size; return this; } else { return Seq.prototype.cacheResult.call(this); } } function defaultComparator(a, b) { return a > b ? 1 : a < b ? -1 : 0; } function forceIterator(keyPath) { var iter = getIterator(keyPath); if (!iter) { // Array might not be iterable in this environment, so we need a fallback // to our wrapped type. if (!isArrayLike(keyPath)) { throw new TypeError('Expected iterable or array-like: ' + keyPath); } iter = getIterator(Iterable(keyPath)); } return iter; } createClass(Record, KeyedCollection); function Record(defaultValues, name) { var hasInitialized; var RecordType = function Record(values) { if (values instanceof RecordType) { return values; } if (!(this instanceof RecordType)) { return new RecordType(values); } if (!hasInitialized) { hasInitialized = true; var keys = Object.keys(defaultValues); setProps(RecordTypePrototype, keys); RecordTypePrototype.size = keys.length; RecordTypePrototype._name = name; RecordTypePrototype._keys = keys; RecordTypePrototype._defaultValues = defaultValues; } this._map = Map(values); }; var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype); RecordTypePrototype.constructor = RecordType; return RecordType; } Record.prototype.toString = function() { return this.__toString(recordName(this) + ' {', '}'); }; // @pragma Access Record.prototype.has = function(k) { return this._defaultValues.hasOwnProperty(k); }; Record.prototype.get = function(k, notSetValue) { if (!this.has(k)) { return notSetValue; } var defaultVal = this._defaultValues[k]; return this._map ? this._map.get(k, defaultVal) : defaultVal; }; // @pragma Modification Record.prototype.clear = function() { if (this.__ownerID) { this._map && this._map.clear(); return this; } var RecordType = this.constructor; return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap())); }; Record.prototype.set = function(k, v) { if (!this.has(k)) { throw new Error('Cannot set unknown key "' + k + '" on ' + recordName(this)); } if (this._map && !this._map.has(k)) { var defaultVal = this._defaultValues[k]; if (v === defaultVal) { return this; } } var newMap = this._map && this._map.set(k, v); if (this.__ownerID || newMap === this._map) { return this; } return makeRecord(this, newMap); }; Record.prototype.remove = function(k) { if (!this.has(k)) { return this; } var newMap = this._map && this._map.remove(k); if (this.__ownerID || newMap === this._map) { return this; } return makeRecord(this, newMap); }; Record.prototype.wasAltered = function() { return this._map.wasAltered(); }; Record.prototype.__iterator = function(type, reverse) {var this$0 = this; return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse); }; Record.prototype.__iterate = function(fn, reverse) {var this$0 = this; return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse); }; Record.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } var newMap = this._map && this._map.__ensureOwner(ownerID); if (!ownerID) { this.__ownerID = ownerID; this._map = newMap; return this; } return makeRecord(this, newMap, ownerID); }; var RecordPrototype = Record.prototype; RecordPrototype[DELETE] = RecordPrototype.remove; RecordPrototype.deleteIn = RecordPrototype.removeIn = MapPrototype.removeIn; RecordPrototype.merge = MapPrototype.merge; RecordPrototype.mergeWith = MapPrototype.mergeWith; RecordPrototype.mergeIn = MapPrototype.mergeIn; RecordPrototype.mergeDeep = MapPrototype.mergeDeep; RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith; RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; RecordPrototype.setIn = MapPrototype.setIn; RecordPrototype.update = MapPrototype.update; RecordPrototype.updateIn = MapPrototype.updateIn; RecordPrototype.withMutations = MapPrototype.withMutations; RecordPrototype.asMutable = MapPrototype.asMutable; RecordPrototype.asImmutable = MapPrototype.asImmutable; function makeRecord(likeRecord, map, ownerID) { var record = Object.create(Object.getPrototypeOf(likeRecord)); record._map = map; record.__ownerID = ownerID; return record; } function recordName(record) { return record._name || record.constructor.name || 'Record'; } function setProps(prototype, names) { try { names.forEach(setProp.bind(undefined, prototype)); } catch (error) { // Object.defineProperty failed. Probably IE8. } } function setProp(prototype, name) { Object.defineProperty(prototype, name, { get: function() { return this.get(name); }, set: function(value) { invariant(this.__ownerID, 'Cannot set on an immutable record.'); this.set(name, value); } }); } createClass(Set, SetCollection); // @pragma Construction function Set(value) { return value === null || value === undefined ? emptySet() : isSet(value) && !isOrdered(value) ? value : emptySet().withMutations(function(set ) { var iter = SetIterable(value); assertNotInfinite(iter.size); iter.forEach(function(v ) {return set.add(v)}); }); } Set.of = function(/*...values*/) { return this(arguments); }; Set.fromKeys = function(value) { return this(KeyedIterable(value).keySeq()); }; Set.prototype.toString = function() { return this.__toString('Set {', '}'); }; // @pragma Access Set.prototype.has = function(value) { return this._map.has(value); }; // @pragma Modification Set.prototype.add = function(value) { return updateSet(this, this._map.set(value, true)); }; Set.prototype.remove = function(value) { return updateSet(this, this._map.remove(value)); }; Set.prototype.clear = function() { return updateSet(this, this._map.clear()); }; // @pragma Composition Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0); iters = iters.filter(function(x ) {return x.size !== 0}); if (iters.length === 0) { return this; } if (this.size === 0 && !this.__ownerID && iters.length === 1) { return this.constructor(iters[0]); } return this.withMutations(function(set ) { for (var ii = 0; ii < iters.length; ii++) { SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)}); } }); }; Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0); if (iters.length === 0) { return this; } iters = iters.map(function(iter ) {return SetIterable(iter)}); var originalSet = this; return this.withMutations(function(set ) { originalSet.forEach(function(value ) { if (!iters.every(function(iter ) {return iter.includes(value)})) { set.remove(value); } }); }); }; Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0); if (iters.length === 0) { return this; } iters = iters.map(function(iter ) {return SetIterable(iter)}); var originalSet = this; return this.withMutations(function(set ) { originalSet.forEach(function(value ) { if (iters.some(function(iter ) {return iter.includes(value)})) { set.remove(value); } }); }); }; Set.prototype.merge = function() { return this.union.apply(this, arguments); }; Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); return this.union.apply(this, iters); }; Set.prototype.sort = function(comparator) { // Late binding return OrderedSet(sortFactory(this, comparator)); }; Set.prototype.sortBy = function(mapper, comparator) { // Late binding return OrderedSet(sortFactory(this, comparator, mapper)); }; Set.prototype.wasAltered = function() { return this._map.wasAltered(); }; Set.prototype.__iterate = function(fn, reverse) {var this$0 = this; return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse); }; Set.prototype.__iterator = function(type, reverse) { return this._map.map(function(_, k) {return k}).__iterator(type, reverse); }; Set.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } var newMap = this._map.__ensureOwner(ownerID); if (!ownerID) { this.__ownerID = ownerID; this._map = newMap; return this; } return this.__make(newMap, ownerID); }; function isSet(maybeSet) { return !!(maybeSet && maybeSet[IS_SET_SENTINEL]); } Set.isSet = isSet; var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@'; var SetPrototype = Set.prototype; SetPrototype[IS_SET_SENTINEL] = true; SetPrototype[DELETE] = SetPrototype.remove; SetPrototype.mergeDeep = SetPrototype.merge; SetPrototype.mergeDeepWith = SetPrototype.mergeWith; SetPrototype.withMutations = MapPrototype.withMutations; SetPrototype.asMutable = MapPrototype.asMutable; SetPrototype.asImmutable = MapPrototype.asImmutable; SetPrototype.__empty = emptySet; SetPrototype.__make = makeSet; function updateSet(set, newMap) { if (set.__ownerID) { set.size = newMap.size; set._map = newMap; return set; } return newMap === set._map ? set : newMap.size === 0 ? set.__empty() : set.__make(newMap); } function makeSet(map, ownerID) { var set = Object.create(SetPrototype); set.size = map ? map.size : 0; set._map = map; set.__ownerID = ownerID; return set; } var EMPTY_SET; function emptySet() { return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap())); } createClass(OrderedSet, Set); // @pragma Construction function OrderedSet(value) { return value === null || value === undefined ? emptyOrderedSet() : isOrderedSet(value) ? value : emptyOrderedSet().withMutations(function(set ) { var iter = SetIterable(value); assertNotInfinite(iter.size); iter.forEach(function(v ) {return set.add(v)}); }); } OrderedSet.of = function(/*...values*/) { return this(arguments); }; OrderedSet.fromKeys = function(value) { return this(KeyedIterable(value).keySeq()); }; OrderedSet.prototype.toString = function() { return this.__toString('OrderedSet {', '}'); }; function isOrderedSet(maybeOrderedSet) { return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet); } OrderedSet.isOrderedSet = isOrderedSet; var OrderedSetPrototype = OrderedSet.prototype; OrderedSetPrototype[IS_ORDERED_SENTINEL] = true; OrderedSetPrototype.__empty = emptyOrderedSet; OrderedSetPrototype.__make = makeOrderedSet; function makeOrderedSet(map, ownerID) { var set = Object.create(OrderedSetPrototype); set.size = map ? map.size : 0; set._map = map; set.__ownerID = ownerID; return set; } var EMPTY_ORDERED_SET; function emptyOrderedSet() { return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap())); } createClass(Stack, IndexedCollection); // @pragma Construction function Stack(value) { return value === null || value === undefined ? emptyStack() : isStack(value) ? value : emptyStack().unshiftAll(value); } Stack.of = function(/*...values*/) { return this(arguments); }; Stack.prototype.toString = function() { return this.__toString('Stack [', ']'); }; // @pragma Access Stack.prototype.get = function(index, notSetValue) { var head = this._head; index = wrapIndex(this, index); while (head && index--) { head = head.next; } return head ? head.value : notSetValue; }; Stack.prototype.peek = function() { return this._head && this._head.value; }; // @pragma Modification Stack.prototype.push = function(/*...values*/) { if (arguments.length === 0) { return this; } var newSize = this.size + arguments.length; var head = this._head; for (var ii = arguments.length - 1; ii >= 0; ii--) { head = { value: arguments[ii], next: head }; } if (this.__ownerID) { this.size = newSize; this._head = head; this.__hash = undefined; this.__altered = true; return this; } return makeStack(newSize, head); }; Stack.prototype.pushAll = function(iter) { iter = IndexedIterable(iter); if (iter.size === 0) { return this; } assertNotInfinite(iter.size); var newSize = this.size; var head = this._head; iter.reverse().forEach(function(value ) { newSize++; head = { value: value, next: head }; }); if (this.__ownerID) { this.size = newSize; this._head = head; this.__hash = undefined; this.__altered = true; return this; } return makeStack(newSize, head); }; Stack.prototype.pop = function() { return this.slice(1); }; Stack.prototype.unshift = function(/*...values*/) { return this.push.apply(this, arguments); }; Stack.prototype.unshiftAll = function(iter) { return this.pushAll(iter); }; Stack.prototype.shift = function() { return this.pop.apply(this, arguments); }; Stack.prototype.clear = function() { if (this.size === 0) { return this; } if (this.__ownerID) { this.size = 0; this._head = undefined; this.__hash = undefined; this.__altered = true; return this; } return emptyStack(); }; Stack.prototype.slice = function(begin, end) { if (wholeSlice(begin, end, this.size)) { return this; } var resolvedBegin = resolveBegin(begin, this.size); var resolvedEnd = resolveEnd(end, this.size); if (resolvedEnd !== this.size) { // super.slice(begin, end); return IndexedCollection.prototype.slice.call(this, begin, end); } var newSize = this.size - resolvedBegin; var head = this._head; while (resolvedBegin--) { head = head.next; } if (this.__ownerID) { this.size = newSize; this._head = head; this.__hash = undefined; this.__altered = true; return this; } return makeStack(newSize, head); }; // @pragma Mutability Stack.prototype.__ensureOwner = function(ownerID) { if (ownerID === this.__ownerID) { return this; } if (!ownerID) { this.__ownerID = ownerID; this.__altered = false; return this; } return makeStack(this.size, this._head, ownerID, this.__hash); }; // @pragma Iteration Stack.prototype.__iterate = function(fn, reverse) { if (reverse) { return this.reverse().__iterate(fn); } var iterations = 0; var node = this._head; while (node) { if (fn(node.value, iterations++, this) === false) { break; } node = node.next; } return iterations; }; Stack.prototype.__iterator = function(type, reverse) { if (reverse) { return this.reverse().__iterator(type); } var iterations = 0; var node = this._head; return new Iterator(function() { if (node) { var value = node.value; node = node.next; return iteratorValue(type, iterations++, value); } return iteratorDone(); }); }; function isStack(maybeStack) { return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]); } Stack.isStack = isStack; var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@'; var StackPrototype = Stack.prototype; StackPrototype[IS_STACK_SENTINEL] = true; StackPrototype.withMutations = MapPrototype.withMutations; StackPrototype.asMutable = MapPrototype.asMutable; StackPrototype.asImmutable = MapPrototype.asImmutable; StackPrototype.wasAltered = MapPrototype.wasAltered; function makeStack(size, head, ownerID, hash) { var map = Object.create(StackPrototype); map.size = size; map._head = head; map.__ownerID = ownerID; map.__hash = hash; map.__altered = false; return map; } var EMPTY_STACK; function emptyStack() { return EMPTY_STACK || (EMPTY_STACK = makeStack(0)); } /** * Contributes additional methods to a constructor */ function mixin(ctor, methods) { var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; }; Object.keys(methods).forEach(keyCopier); Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(methods).forEach(keyCopier); return ctor; } Iterable.Iterator = Iterator; mixin(Iterable, { // ### Conversion to other types toArray: function() { assertNotInfinite(this.size); var array = new Array(this.size || 0); this.valueSeq().__iterate(function(v, i) { array[i] = v; }); return array; }, toIndexedSeq: function() { return new ToIndexedSequence(this); }, toJS: function() { return this.toSeq().map( function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value} ).__toJS(); }, toJSON: function() { return this.toSeq().map( function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value} ).__toJS(); }, toKeyedSeq: function() { return new ToKeyedSequence(this, true); }, toMap: function() { // Use Late Binding here to solve the circular dependency. return Map(this.toKeyedSeq()); }, toObject: function() { assertNotInfinite(this.size); var object = {}; this.__iterate(function(v, k) { object[k] = v; }); return object; }, toOrderedMap: function() { // Use Late Binding here to solve the circular dependency. return OrderedMap(this.toKeyedSeq()); }, toOrderedSet: function() { // Use Late Binding here to solve the circular dependency. return OrderedSet(isKeyed(this) ? this.valueSeq() : this); }, toSet: function() { // Use Late Binding here to solve the circular dependency. return Set(isKeyed(this) ? this.valueSeq() : this); }, toSetSeq: function() { return new ToSetSequence(this); }, toSeq: function() { return isIndexed(this) ? this.toIndexedSeq() : isKeyed(this) ? this.toKeyedSeq() : this.toSetSeq(); }, toStack: function() { // Use Late Binding here to solve the circular dependency. return Stack(isKeyed(this) ? this.valueSeq() : this); }, toList: function() { // Use Late Binding here to solve the circular dependency. return List(isKeyed(this) ? this.valueSeq() : this); }, // ### Common JavaScript methods and properties toString: function() { return '[Iterable]'; }, __toString: function(head, tail) { if (this.size === 0) { return head + tail; } return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail; }, // ### ES6 Collection methods (ES6 Array and Map) concat: function() {var values = SLICE$0.call(arguments, 0); return reify(this, concatFactory(this, values)); }, includes: function(searchValue) { return this.some(function(value ) {return is(value, searchValue)}); }, entries: function() { return this.__iterator(ITERATE_ENTRIES); }, every: function(predicate, context) { assertNotInfinite(this.size); var returnValue = true; this.__iterate(function(v, k, c) { if (!predicate.call(context, v, k, c)) { returnValue = false; return false; } }); return returnValue; }, filter: function(predicate, context) { return reify(this, filterFactory(this, predicate, context, true)); }, find: function(predicate, context, notSetValue) { var entry = this.findEntry(predicate, context); return entry ? entry[1] : notSetValue; }, forEach: function(sideEffect, context) { assertNotInfinite(this.size); return this.__iterate(context ? sideEffect.bind(context) : sideEffect); }, join: function(separator) { assertNotInfinite(this.size); separator = separator !== undefined ? '' + separator : ','; var joined = ''; var isFirst = true; this.__iterate(function(v ) { isFirst ? (isFirst = false) : (joined += separator); joined += v !== null && v !== undefined ? v.toString() : ''; }); return joined; }, keys: function() { return this.__iterator(ITERATE_KEYS); }, map: function(mapper, context) { return reify(this, mapFactory(this, mapper, context)); }, reduce: function(reducer, initialReduction, context) { assertNotInfinite(this.size); var reduction; var useFirst; if (arguments.length < 2) { useFirst = true; } else { reduction = initialReduction; } this.__iterate(function(v, k, c) { if (useFirst) { useFirst = false; reduction = v; } else { reduction = reducer.call(context, reduction, v, k, c); } }); return reduction; }, reduceRight: function(reducer, initialReduction, context) { var reversed = this.toKeyedSeq().reverse(); return reversed.reduce.apply(reversed, arguments); }, reverse: function() { return reify(this, reverseFactory(this, true)); }, slice: function(begin, end) { return reify(this, sliceFactory(this, begin, end, true)); }, some: function(predicate, context) { return !this.every(not(predicate), context); }, sort: function(comparator) { return reify(this, sortFactory(this, comparator)); }, values: function() { return this.__iterator(ITERATE_VALUES); }, // ### More sequential methods butLast: function() { return this.slice(0, -1); }, isEmpty: function() { return this.size !== undefined ? this.size === 0 : !this.some(function() {return true}); }, count: function(predicate, context) { return ensureSize( predicate ? this.toSeq().filter(predicate, context) : this ); }, countBy: function(grouper, context) { return countByFactory(this, grouper, context); }, equals: function(other) { return deepEqual(this, other); }, entrySeq: function() { var iterable = this; if (iterable._cache) { // We cache as an entries array, so we can just return the cache! return new ArraySeq(iterable._cache); } var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq(); entriesSequence.fromEntrySeq = function() {return iterable.toSeq()}; return entriesSequence; }, filterNot: function(predicate, context) { return this.filter(not(predicate), context); }, findEntry: function(predicate, context, notSetValue) { var found = notSetValue; this.__iterate(function(v, k, c) { if (predicate.call(context, v, k, c)) { found = [k, v]; return false; } }); return found; }, findKey: function(predicate, context) { var entry = this.findEntry(predicate, context); return entry && entry[0]; }, findLast: function(predicate, context, notSetValue) { return this.toKeyedSeq().reverse().find(predicate, context, notSetValue); }, findLastEntry: function(predicate, context, notSetValue) { return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue); }, findLastKey: function(predicate, context) { return this.toKeyedSeq().reverse().findKey(predicate, context); }, first: function() { return this.find(returnTrue); }, flatMap: function(mapper, context) { return reify(this, flatMapFactory(this, mapper, context)); }, flatten: function(depth) { return reify(this, flattenFactory(this, depth, true)); }, fromEntrySeq: function() { return new FromEntriesSequence(this); }, get: function(searchKey, notSetValue) { return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue); }, getIn: function(searchKeyPath, notSetValue) { var nested = this; // Note: in an ES6 environment, we would prefer: // for (var key of searchKeyPath) { var iter = forceIterator(searchKeyPath); var step; while (!(step = iter.next()).done) { var key = step.value; nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET; if (nested === NOT_SET) { return notSetValue; } } return nested; }, groupBy: function(grouper, context) { return groupByFactory(this, grouper, context); }, has: function(searchKey) { return this.get(searchKey, NOT_SET) !== NOT_SET; }, hasIn: function(searchKeyPath) { return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET; }, isSubset: function(iter) { iter = typeof iter.includes === 'function' ? iter : Iterable(iter); return this.every(function(value ) {return iter.includes(value)}); }, isSuperset: function(iter) { iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter); return iter.isSubset(this); }, keyOf: function(searchValue) { return this.findKey(function(value ) {return is(value, searchValue)}); }, keySeq: function() { return this.toSeq().map(keyMapper).toIndexedSeq(); }, last: function() { return this.toSeq().reverse().first(); }, lastKeyOf: function(searchValue) { return this.toKeyedSeq().reverse().keyOf(searchValue); }, max: function(comparator) { return maxFactory(this, comparator); }, maxBy: function(mapper, comparator) { return maxFactory(this, comparator, mapper); }, min: function(comparator) { return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator); }, minBy: function(mapper, comparator) { return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper); }, rest: function() { return this.slice(1); }, skip: function(amount) { return this.slice(Math.max(0, amount)); }, skipLast: function(amount) { return reify(this, this.toSeq().reverse().skip(amount).reverse()); }, skipWhile: function(predicate, context) { return reify(this, skipWhileFactory(this, predicate, context, true)); }, skipUntil: function(predicate, context) { return this.skipWhile(not(predicate), context); }, sortBy: function(mapper, comparator) { return reify(this, sortFactory(this, comparator, mapper)); }, take: function(amount) { return this.slice(0, Math.max(0, amount)); }, takeLast: function(amount) { return reify(this, this.toSeq().reverse().take(amount).reverse()); }, takeWhile: function(predicate, context) { return reify(this, takeWhileFactory(this, predicate, context)); }, takeUntil: function(predicate, context) { return this.takeWhile(not(predicate), context); }, valueSeq: function() { return this.toIndexedSeq(); }, // ### Hashable Object hashCode: function() { return this.__hash || (this.__hash = hashIterable(this)); } // ### Internal // abstract __iterate(fn, reverse) // abstract __iterator(type, reverse) }); // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; var IterablePrototype = Iterable.prototype; IterablePrototype[IS_ITERABLE_SENTINEL] = true; IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values; IterablePrototype.__toJS = IterablePrototype.toArray; IterablePrototype.__toStringMapper = quoteString; IterablePrototype.inspect = IterablePrototype.toSource = function() { return this.toString(); }; IterablePrototype.chain = IterablePrototype.flatMap; IterablePrototype.contains = IterablePrototype.includes; mixin(KeyedIterable, { // ### More sequential methods flip: function() { return reify(this, flipFactory(this)); }, mapEntries: function(mapper, context) {var this$0 = this; var iterations = 0; return reify(this, this.toSeq().map( function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)} ).fromEntrySeq() ); }, mapKeys: function(mapper, context) {var this$0 = this; return reify(this, this.toSeq().flip().map( function(k, v) {return mapper.call(context, k, v, this$0)} ).flip() ); } }); var KeyedIterablePrototype = KeyedIterable.prototype; KeyedIterablePrototype[IS_KEYED_SENTINEL] = true; KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries; KeyedIterablePrototype.__toJS = IterablePrototype.toObject; KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)}; mixin(IndexedIterable, { // ### Conversion to other types toKeyedSeq: function() { return new ToKeyedSequence(this, false); }, // ### ES6 Collection methods (ES6 Array and Map) filter: function(predicate, context) { return reify(this, filterFactory(this, predicate, context, false)); }, findIndex: function(predicate, context) { var entry = this.findEntry(predicate, context); return entry ? entry[0] : -1; }, indexOf: function(searchValue) { var key = this.keyOf(searchValue); return key === undefined ? -1 : key; }, lastIndexOf: function(searchValue) { var key = this.lastKeyOf(searchValue); return key === undefined ? -1 : key; }, reverse: function() { return reify(this, reverseFactory(this, false)); }, slice: function(begin, end) { return reify(this, sliceFactory(this, begin, end, false)); }, splice: function(index, removeNum /*, ...values*/) { var numArgs = arguments.length; removeNum = Math.max(removeNum | 0, 0); if (numArgs === 0 || (numArgs === 2 && !removeNum)) { return this; } // If index is negative, it should resolve relative to the size of the // collection. However size may be expensive to compute if not cached, so // only call count() if the number is in fact negative. index = resolveBegin(index, index < 0 ? this.count() : this.size); var spliced = this.slice(0, index); return reify( this, numArgs === 1 ? spliced : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)) ); }, // ### More collection methods findLastIndex: function(predicate, context) { var entry = this.findLastEntry(predicate, context); return entry ? entry[0] : -1; }, first: function() { return this.get(0); }, flatten: function(depth) { return reify(this, flattenFactory(this, depth, false)); }, get: function(index, notSetValue) { index = wrapIndex(this, index); return (index < 0 || (this.size === Infinity || (this.size !== undefined && index > this.size))) ? notSetValue : this.find(function(_, key) {return key === index}, undefined, notSetValue); }, has: function(index) { index = wrapIndex(this, index); return index >= 0 && (this.size !== undefined ? this.size === Infinity || index < this.size : this.indexOf(index) !== -1 ); }, interpose: function(separator) { return reify(this, interposeFactory(this, separator)); }, interleave: function(/*...iterables*/) { var iterables = [this].concat(arrCopy(arguments)); var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables); var interleaved = zipped.flatten(true); if (zipped.size) { interleaved.size = zipped.size * iterables.length; } return reify(this, interleaved); }, keySeq: function() { return Range(0, this.size); }, last: function() { return this.get(-1); }, skipWhile: function(predicate, context) { return reify(this, skipWhileFactory(this, predicate, context, false)); }, zip: function(/*, ...iterables */) { var iterables = [this].concat(arrCopy(arguments)); return reify(this, zipWithFactory(this, defaultZipper, iterables)); }, zipWith: function(zipper/*, ...iterables */) { var iterables = arrCopy(arguments); iterables[0] = this; return reify(this, zipWithFactory(this, zipper, iterables)); } }); IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true; IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true; mixin(SetIterable, { // ### ES6 Collection methods (ES6 Array and Map) get: function(value, notSetValue) { return this.has(value) ? value : notSetValue; }, includes: function(value) { return this.has(value); }, // ### More sequential methods keySeq: function() { return this.valueSeq(); } }); SetIterable.prototype.has = IterablePrototype.includes; SetIterable.prototype.contains = SetIterable.prototype.includes; // Mixin subclasses mixin(KeyedSeq, KeyedIterable.prototype); mixin(IndexedSeq, IndexedIterable.prototype); mixin(SetSeq, SetIterable.prototype); mixin(KeyedCollection, KeyedIterable.prototype); mixin(IndexedCollection, IndexedIterable.prototype); mixin(SetCollection, SetIterable.prototype); // #pragma Helper functions function keyMapper(v, k) { return k; } function entryMapper(v, k) { return [k, v]; } function not(predicate) { return function() { return !predicate.apply(this, arguments); } } function neg(predicate) { return function() { return -predicate.apply(this, arguments); } } function quoteString(value) { return typeof value === 'string' ? JSON.stringify(value) : String(value); } function defaultZipper() { return arrCopy(arguments); } function defaultNegComparator(a, b) { return a < b ? 1 : a > b ? -1 : 0; } function hashIterable(iterable) { if (iterable.size === Infinity) { return 0; } var ordered = isOrdered(iterable); var keyed = isKeyed(iterable); var h = ordered ? 1 : 0; var size = iterable.__iterate( keyed ? ordered ? function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } : function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } : ordered ? function(v ) { h = 31 * h + hash(v) | 0; } : function(v ) { h = h + hash(v) | 0; } ); return murmurHashOfSize(size, h); } function murmurHashOfSize(size, h) { h = imul(h, 0xCC9E2D51); h = imul(h << 15 | h >>> -15, 0x1B873593); h = imul(h << 13 | h >>> -13, 5); h = (h + 0xE6546B64 | 0) ^ size; h = imul(h ^ h >>> 16, 0x85EBCA6B); h = imul(h ^ h >>> 13, 0xC2B2AE35); h = smi(h ^ h >>> 16); return h; } function hashMerge(a, b) { return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int } var Immutable = { Iterable: Iterable, Seq: Seq, Collection: Collection, Map: Map, OrderedMap: OrderedMap, List: List, Stack: Stack, Set: Set, OrderedSet: OrderedSet, Record: Record, Range: Range, Repeat: Repeat, is: is, fromJS: fromJS }; return Immutable; })); /***/ }), /***/ "./node_modules/indexof/index.js": /*!***************************************!*\ !*** ./node_modules/indexof/index.js ***! \***************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var indexOf = [].indexOf; module.exports = function(arr, obj){ if (indexOf) return arr.indexOf(obj); for (var i = 0; i < arr.length; ++i) { if (arr[i] === obj) return i; } return -1; }; /***/ }), /***/ "./node_modules/inherits/inherits_browser.js": /*!***************************************************!*\ !*** ./node_modules/inherits/inherits_browser.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }); }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor var TempCtor = function () {} TempCtor.prototype = superCtor.prototype ctor.prototype = new TempCtor() ctor.prototype.constructor = ctor } } /***/ }), /***/ "./node_modules/isarray/index.js": /*!***************************************!*\ !*** ./node_modules/isarray/index.js ***! \***************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { module.exports = Array.isArray || function (arr) { return Object.prototype.toString.call(arr) == '[object Array]'; }; /***/ }), /***/ "./node_modules/ismobilejs/dist/isMobile.min.js": /*!******************************************************!*\ !*** ./node_modules/ismobilejs/dist/isMobile.min.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(e){var n=/iPhone/i,t=/iPod/i,r=/iPad/i,a=/\bAndroid(?:.+)Mobile\b/i,p=/Android/i,l=/\bAndroid(?:.+)SD4930UR\b/i,b=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,f=/Windows Phone/i,u=/\bWindows(?:.+)ARM\b/i,c=/BlackBerry/i,s=/BB10/i,v=/Opera Mini/i,h=/\b(CriOS|Chrome)(?:.+)Mobile/i,w=/\Mobile(?:.+)Firefox\b/i;function m(e,i){return e.test(i)}function i(e){var i=e||("undefined"!=typeof navigator?navigator.userAgent:""),o=i.split("[FBAN");void 0!==o[1]&&(i=o[0]),void 0!==(o=i.split("Twitter"))[1]&&(i=o[0]);var d={apple:{phone:m(n,i)&&!m(f,i),ipod:m(t,i),tablet:!m(n,i)&&m(r,i)&&!m(f,i),device:(m(n,i)||m(t,i)||m(r,i))&&!m(f,i)},amazon:{phone:m(l,i),tablet:!m(l,i)&&m(b,i),device:m(l,i)||m(b,i)},android:{phone:!m(f,i)&&m(l,i)||!m(f,i)&&m(a,i),tablet:!m(f,i)&&!m(l,i)&&!m(a,i)&&(m(b,i)||m(p,i)),device:!m(f,i)&&(m(l,i)||m(b,i)||m(a,i)||m(p,i))},windows:{phone:m(f,i),tablet:m(u,i),device:m(f,i)||m(u,i)},other:{blackberry:m(c,i),blackberry10:m(s,i),opera:m(v,i),firefox:m(w,i),chrome:m(h,i),device:m(c,i)||m(s,i)||m(v,i)||m(w,i)||m(h,i)}};return d.any=d.apple.device||d.android.device||d.windows.device||d.other.device,d.phone=d.apple.phone||d.android.phone||d.windows.phone,d.tablet=d.apple.tablet||d.android.tablet||d.windows.tablet,d}"undefined"!=typeof module&&module.exports&&"undefined"==typeof window?module.exports=i:"undefined"!=typeof module&&module.exports&&"undefined"!=typeof window?module.exports=i(): true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (e.isMobile=i()), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):e.isMobile=i()}(this); /***/ }), /***/ "./node_modules/iterall/index.mjs": /*!****************************************!*\ !*** ./node_modules/iterall/index.mjs ***! \****************************************/ /*! exports provided: $$iterator, isIterable, isArrayLike, isCollection, getIterator, getIteratorMethod, createIterator, forEach, $$asyncIterator, isAsyncIterable, getAsyncIterator, getAsyncIteratorMethod, createAsyncIterator, forAwaitEach */ /*! exports used: $$asyncIterator, forEach, getAsyncIterator, isAsyncIterable, isCollection */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export $$iterator */ /* unused harmony export isIterable */ /* unused harmony export isArrayLike */ /* harmony export (immutable) */ __webpack_exports__["e"] = isCollection; /* unused harmony export getIterator */ /* unused harmony export getIteratorMethod */ /* unused harmony export createIterator */ /* harmony export (immutable) */ __webpack_exports__["b"] = forEach; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return $$asyncIterator; }); /* harmony export (immutable) */ __webpack_exports__["d"] = isAsyncIterable; /* harmony export (immutable) */ __webpack_exports__["c"] = getAsyncIterator; /* unused harmony export getAsyncIteratorMethod */ /* unused harmony export createAsyncIterator */ /* unused harmony export forAwaitEach */ /** * Copyright (c) 2016, Lee Byron * All rights reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @ignore */ /** * [Iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterator) * is a *protocol* which describes a standard way to produce a sequence of * values, typically the values of the Iterable represented by this Iterator. * * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterator-interface) * it can be utilized by any version of JavaScript. * * @external Iterator * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterator|MDN Iteration protocols} */ /** * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable) * is a *protocol* which when implemented allows a JavaScript object to define * their iteration behavior, such as what values are looped over in a * [`for...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) * loop or `iterall`'s `forEach` function. Many [built-in types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#Builtin_iterables) * implement the Iterable protocol, including `Array` and `Map`. * * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterable-interface) * it can be utilized by any version of JavaScript. * * @external Iterable * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable|MDN Iteration protocols} */ // In ES2015 environments, Symbol exists var SYMBOL /*: any */ = typeof Symbol === 'function' ? Symbol : void 0 // In ES2015 (or a polyfilled) environment, this will be Symbol.iterator var SYMBOL_ITERATOR = SYMBOL && SYMBOL.iterator /** * A property name to be used as the name of an Iterable's method responsible * for producing an Iterator, referred to as `@@iterator`. Typically represents * the value `Symbol.iterator` but falls back to the string `"@@iterator"` when * `Symbol.iterator` is not defined. * * Use `$$iterator` for defining new Iterables instead of `Symbol.iterator`, * but do not use it for accessing existing Iterables, instead use * {@link getIterator} or {@link isIterable}. * * @example * * var $$iterator = require('iterall').$$iterator * * function Counter (to) { * this.to = to * } * * Counter.prototype[$$iterator] = function () { * return { * to: this.to, * num: 0, * next () { * if (this.num >= this.to) { * return { value: undefined, done: true } * } * return { value: this.num++, done: false } * } * } * } * * var counter = new Counter(3) * for (var number of counter) { * console.log(number) // 0 ... 1 ... 2 * } * * @type {Symbol|string} */ /*:: declare export var $$iterator: '@@iterator'; */ var $$iterator = SYMBOL_ITERATOR || '@@iterator' /** * Returns true if the provided object implements the Iterator protocol via * either implementing a `Symbol.iterator` or `"@@iterator"` method. * * @example * * var isIterable = require('iterall').isIterable * isIterable([ 1, 2, 3 ]) // true * isIterable('ABC') // true * isIterable({ length: 1, 0: 'Alpha' }) // false * isIterable({ key: 'value' }) // false * isIterable(new Map()) // true * * @param obj * A value which might implement the Iterable protocol. * @return {boolean} true if Iterable. */ /*:: declare export function isIterable(obj: any): boolean; */ function isIterable(obj) { return !!getIteratorMethod(obj) } /** * Returns true if the provided object implements the Array-like protocol via * defining a positive-integer `length` property. * * @example * * var isArrayLike = require('iterall').isArrayLike * isArrayLike([ 1, 2, 3 ]) // true * isArrayLike('ABC') // true * isArrayLike({ length: 1, 0: 'Alpha' }) // true * isArrayLike({ key: 'value' }) // false * isArrayLike(new Map()) // false * * @param obj * A value which might implement the Array-like protocol. * @return {boolean} true if Array-like. */ /*:: declare export function isArrayLike(obj: any): boolean; */ function isArrayLike(obj) { var length = obj != null && obj.length return typeof length === 'number' && length >= 0 && length % 1 === 0 } /** * Returns true if the provided object is an Object (i.e. not a string literal) * and is either Iterable or Array-like. * * This may be used in place of [Array.isArray()][isArray] to determine if an * object should be iterated-over. It always excludes string literals and * includes Arrays (regardless of if it is Iterable). It also includes other * Array-like objects such as NodeList, TypedArray, and Buffer. * * @example * * var isCollection = require('iterall').isCollection * isCollection([ 1, 2, 3 ]) // true * isCollection('ABC') // false * isCollection({ length: 1, 0: 'Alpha' }) // true * isCollection({ key: 'value' }) // false * isCollection(new Map()) // true * * @example * * var forEach = require('iterall').forEach * if (isCollection(obj)) { * forEach(obj, function (value) { * console.log(value) * }) * } * * @param obj * An Object value which might implement the Iterable or Array-like protocols. * @return {boolean} true if Iterable or Array-like Object. */ /*:: declare export function isCollection(obj: any): boolean; */ function isCollection(obj) { return Object(obj) === obj && (isArrayLike(obj) || isIterable(obj)) } /** * If the provided object implements the Iterator protocol, its Iterator object * is returned. Otherwise returns undefined. * * @example * * var getIterator = require('iterall').getIterator * var iterator = getIterator([ 1, 2, 3 ]) * iterator.next() // { value: 1, done: false } * iterator.next() // { value: 2, done: false } * iterator.next() // { value: 3, done: false } * iterator.next() // { value: undefined, done: true } * * @template T the type of each iterated value * @param {Iterable} iterable * An Iterable object which is the source of an Iterator. * @return {Iterator} new Iterator instance. */ /*:: declare export var getIterator: & (<+TValue>(iterable: Iterable) => Iterator) & ((iterable: mixed) => void | Iterator); */ function getIterator(iterable) { var method = getIteratorMethod(iterable) if (method) { return method.call(iterable) } } /** * If the provided object implements the Iterator protocol, the method * responsible for producing its Iterator object is returned. * * This is used in rare cases for performance tuning. This method must be called * with obj as the contextual this-argument. * * @example * * var getIteratorMethod = require('iterall').getIteratorMethod * var myArray = [ 1, 2, 3 ] * var method = getIteratorMethod(myArray) * if (method) { * var iterator = method.call(myArray) * } * * @template T the type of each iterated value * @param {Iterable} iterable * An Iterable object which defines an `@@iterator` method. * @return {function(): Iterator} `@@iterator` method. */ /*:: declare export var getIteratorMethod: & (<+TValue>(iterable: Iterable) => (() => Iterator)) & ((iterable: mixed) => (void | (() => Iterator))); */ function getIteratorMethod(iterable) { if (iterable != null) { var method = (SYMBOL_ITERATOR && iterable[SYMBOL_ITERATOR]) || iterable['@@iterator'] if (typeof method === 'function') { return method } } } /** * Similar to {@link getIterator}, this method returns a new Iterator given an * Iterable. However it will also create an Iterator for a non-Iterable * Array-like collection, such as Array in a non-ES2015 environment. * * `createIterator` is complimentary to `forEach`, but allows a "pull"-based * iteration as opposed to `forEach`'s "push"-based iteration. * * `createIterator` produces an Iterator for Array-likes with the same behavior * as ArrayIteratorPrototype described in the ECMAScript specification, and * does *not* skip over "holes". * * @example * * var createIterator = require('iterall').createIterator * * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' } * var iterator = createIterator(myArraylike) * iterator.next() // { value: 'Alpha', done: false } * iterator.next() // { value: 'Bravo', done: false } * iterator.next() // { value: 'Charlie', done: false } * iterator.next() // { value: undefined, done: true } * * @template T the type of each iterated value * @param {Iterable|{ length: number }} collection * An Iterable or Array-like object to produce an Iterator. * @return {Iterator} new Iterator instance. */ /*:: declare export var createIterator: & (<+TValue>(collection: Iterable) => Iterator) & ((collection: {length: number}) => Iterator) & ((collection: mixed) => (void | Iterator)); */ function createIterator(collection) { if (collection != null) { var iterator = getIterator(collection) if (iterator) { return iterator } if (isArrayLike(collection)) { return new ArrayLikeIterator(collection) } } } // When the object provided to `createIterator` is not Iterable but is // Array-like, this simple Iterator is created. function ArrayLikeIterator(obj) { this._o = obj this._i = 0 } // Note: all Iterators are themselves Iterable. ArrayLikeIterator.prototype[$$iterator] = function() { return this } // A simple state-machine determines the IteratorResult returned, yielding // each value in the Array-like object in order of their indicies. ArrayLikeIterator.prototype.next = function() { if (this._o === void 0 || this._i >= this._o.length) { this._o = void 0 return { value: void 0, done: true } } return { value: this._o[this._i++], done: false } } /** * Given an object which either implements the Iterable protocol or is * Array-like, iterate over it, calling the `callback` at each iteration. * * Use `forEach` where you would expect to use a `for ... of` loop in ES6. * However `forEach` adheres to the behavior of [Array#forEach][] described in * the ECMAScript specification, skipping over "holes" in Array-likes. It will * also delegate to a `forEach` method on `collection` if one is defined, * ensuring native performance for `Arrays`. * * Similar to [Array#forEach][], the `callback` function accepts three * arguments, and is provided with `thisArg` as the calling context. * * Note: providing an infinite Iterator to forEach will produce an error. * * [Array#forEach]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach * * @example * * var forEach = require('iterall').forEach * * forEach(myIterable, function (value, index, iterable) { * console.log(value, index, iterable === myIterable) * }) * * @example * * // ES6: * for (let value of myIterable) { * console.log(value) * } * * // Any JavaScript environment: * forEach(myIterable, function (value) { * console.log(value) * }) * * @template T the type of each iterated value * @param {Iterable|{ length: number }} collection * The Iterable or array to iterate over. * @param {function(T, number, object)} callback * Function to execute for each iteration, taking up to three arguments * @param [thisArg] * Optional. Value to use as `this` when executing `callback`. */ /*:: declare export var forEach: & (<+TValue, TCollection: Iterable>( collection: TCollection, callbackFn: (value: TValue, index: number, collection: TCollection) => any, thisArg?: any ) => void) & (( collection: TCollection, callbackFn: (value: mixed, index: number, collection: TCollection) => any, thisArg?: any ) => void); */ function forEach(collection, callback, thisArg) { if (collection != null) { if (typeof collection.forEach === 'function') { return collection.forEach(callback, thisArg) } var i = 0 var iterator = getIterator(collection) if (iterator) { var step while (!(step = iterator.next()).done) { callback.call(thisArg, step.value, i++, collection) // Infinite Iterators could cause forEach to run forever. // After a very large number of iterations, produce an error. /* istanbul ignore if */ if (i > 9999999) { throw new TypeError('Near-infinite iteration.') } } } else if (isArrayLike(collection)) { for (; i < collection.length; i++) { if (collection.hasOwnProperty(i)) { callback.call(thisArg, collection[i], i, collection) } } } } } ///////////////////////////////////////////////////// // // // ASYNC ITERATORS // // // ///////////////////////////////////////////////////// /** * [AsyncIterable](https://tc39.github.io/proposal-async-iteration/#sec-asynciterable-interface) * is a *protocol* which when implemented allows a JavaScript object to define * an asynchronous iteration behavior, such as what values are looped over in * a [`for-await-of`](https://tc39.github.io/proposal-async-iteration/#sec-for-in-and-for-of-statements) * loop or `iterall`'s {@link forAwaitEach} function. * * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/) * it can be utilized by any version of JavaScript. * * @external AsyncIterable * @see {@link https://tc39.github.io/proposal-async-iteration/#sec-asynciterable-interface|Async Iteration Proposal} * @template T The type of each iterated value * @property {function (): AsyncIterator} Symbol.asyncIterator * A method which produces an AsyncIterator for this AsyncIterable. */ /** * [AsyncIterator](https://tc39.github.io/proposal-async-iteration/#sec-asynciterator-interface) * is a *protocol* which describes a standard way to produce and consume an * asynchronous sequence of values, typically the values of the * {@link AsyncIterable} represented by this {@link AsyncIterator}. * * AsyncIterator is similar to Observable or Stream. Like an {@link Iterator} it * also as a `next()` method, however instead of an IteratorResult, * calling this method returns a {@link Promise} for a IteratorResult. * * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/) * it can be utilized by any version of JavaScript. * * @external AsyncIterator * @see {@link https://tc39.github.io/proposal-async-iteration/#sec-asynciterator-interface|Async Iteration Proposal} */ // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator var SYMBOL_ASYNC_ITERATOR = SYMBOL && SYMBOL.asyncIterator /** * A property name to be used as the name of an AsyncIterable's method * responsible for producing an Iterator, referred to as `@@asyncIterator`. * Typically represents the value `Symbol.asyncIterator` but falls back to the * string `"@@asyncIterator"` when `Symbol.asyncIterator` is not defined. * * Use `$$asyncIterator` for defining new AsyncIterables instead of * `Symbol.asyncIterator`, but do not use it for accessing existing Iterables, * instead use {@link getAsyncIterator} or {@link isAsyncIterable}. * * @example * * var $$asyncIterator = require('iterall').$$asyncIterator * * function Chirper (to) { * this.to = to * } * * Chirper.prototype[$$asyncIterator] = function () { * return { * to: this.to, * num: 0, * next () { * return new Promise(resolve => { * if (this.num >= this.to) { * resolve({ value: undefined, done: true }) * } else { * setTimeout(() => { * resolve({ value: this.num++, done: false }) * }, 1000) * } * }) * } * } * } * * var chirper = new Chirper(3) * for await (var number of chirper) { * console.log(number) // 0 ...wait... 1 ...wait... 2 * } * * @type {Symbol|string} */ /*:: declare export var $$asyncIterator: '@@asyncIterator'; */ var $$asyncIterator = SYMBOL_ASYNC_ITERATOR || '@@asyncIterator' /** * Returns true if the provided object implements the AsyncIterator protocol via * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method. * * @example * * var isAsyncIterable = require('iterall').isAsyncIterable * isAsyncIterable(myStream) // true * isAsyncIterable('ABC') // false * * @param obj * A value which might implement the AsyncIterable protocol. * @return {boolean} true if AsyncIterable. */ /*:: declare export function isAsyncIterable(obj: any): boolean; */ function isAsyncIterable(obj) { return !!getAsyncIteratorMethod(obj) } /** * If the provided object implements the AsyncIterator protocol, its * AsyncIterator object is returned. Otherwise returns undefined. * * @example * * var getAsyncIterator = require('iterall').getAsyncIterator * var asyncIterator = getAsyncIterator(myStream) * asyncIterator.next().then(console.log) // { value: 1, done: false } * asyncIterator.next().then(console.log) // { value: 2, done: false } * asyncIterator.next().then(console.log) // { value: 3, done: false } * asyncIterator.next().then(console.log) // { value: undefined, done: true } * * @template T the type of each iterated value * @param {AsyncIterable} asyncIterable * An AsyncIterable object which is the source of an AsyncIterator. * @return {AsyncIterator} new AsyncIterator instance. */ /*:: declare export var getAsyncIterator: & (<+TValue>(asyncIterable: AsyncIterable) => AsyncIterator) & ((asyncIterable: mixed) => (void | AsyncIterator)); */ function getAsyncIterator(asyncIterable) { var method = getAsyncIteratorMethod(asyncIterable) if (method) { return method.call(asyncIterable) } } /** * If the provided object implements the AsyncIterator protocol, the method * responsible for producing its AsyncIterator object is returned. * * This is used in rare cases for performance tuning. This method must be called * with obj as the contextual this-argument. * * @example * * var getAsyncIteratorMethod = require('iterall').getAsyncIteratorMethod * var method = getAsyncIteratorMethod(myStream) * if (method) { * var asyncIterator = method.call(myStream) * } * * @template T the type of each iterated value * @param {AsyncIterable} asyncIterable * An AsyncIterable object which defines an `@@asyncIterator` method. * @return {function(): AsyncIterator} `@@asyncIterator` method. */ /*:: declare export var getAsyncIteratorMethod: & (<+TValue>(asyncIterable: AsyncIterable) => (() => AsyncIterator)) & ((asyncIterable: mixed) => (void | (() => AsyncIterator))); */ function getAsyncIteratorMethod(asyncIterable) { if (asyncIterable != null) { var method = (SYMBOL_ASYNC_ITERATOR && asyncIterable[SYMBOL_ASYNC_ITERATOR]) || asyncIterable['@@asyncIterator'] if (typeof method === 'function') { return method } } } /** * Similar to {@link getAsyncIterator}, this method returns a new AsyncIterator * given an AsyncIterable. However it will also create an AsyncIterator for a * non-async Iterable as well as non-Iterable Array-like collection, such as * Array in a pre-ES2015 environment. * * `createAsyncIterator` is complimentary to `forAwaitEach`, but allows a * buffering "pull"-based iteration as opposed to `forAwaitEach`'s * "push"-based iteration. * * `createAsyncIterator` produces an AsyncIterator for non-async Iterables as * described in the ECMAScript proposal [Async-from-Sync Iterator Objects](https://tc39.github.io/proposal-async-iteration/#sec-async-from-sync-iterator-objects). * * > Note: Creating `AsyncIterator`s requires the existence of `Promise`. * > While `Promise` has been available in modern browsers for a number of * > years, legacy browsers (like IE 11) may require a polyfill. * * @example * * var createAsyncIterator = require('iterall').createAsyncIterator * * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' } * var iterator = createAsyncIterator(myArraylike) * iterator.next().then(console.log) // { value: 'Alpha', done: false } * iterator.next().then(console.log) // { value: 'Bravo', done: false } * iterator.next().then(console.log) // { value: 'Charlie', done: false } * iterator.next().then(console.log) // { value: undefined, done: true } * * @template T the type of each iterated value * @param {AsyncIterable|Iterable|{ length: number }} source * An AsyncIterable, Iterable, or Array-like object to produce an Iterator. * @return {AsyncIterator} new AsyncIterator instance. */ /*:: declare export var createAsyncIterator: & (<+TValue>( collection: Iterable | TValue> | AsyncIterable ) => AsyncIterator) & ((collection: {length: number}) => AsyncIterator) & ((collection: mixed) => (void | AsyncIterator)); */ function createAsyncIterator(source) { if (source != null) { var asyncIterator = getAsyncIterator(source) if (asyncIterator) { return asyncIterator } var iterator = createIterator(source) if (iterator) { return new AsyncFromSyncIterator(iterator) } } } // When the object provided to `createAsyncIterator` is not AsyncIterable but is // sync Iterable, this simple wrapper is created. function AsyncFromSyncIterator(iterator) { this._i = iterator } // Note: all AsyncIterators are themselves AsyncIterable. AsyncFromSyncIterator.prototype[$$asyncIterator] = function() { return this } // A simple state-machine determines the IteratorResult returned, yielding // each value in the Array-like object in order of their indicies. AsyncFromSyncIterator.prototype.next = function(value) { return unwrapAsyncFromSync(this._i, 'next', value) } AsyncFromSyncIterator.prototype.return = function(value) { return this._i.return ? unwrapAsyncFromSync(this._i, 'return', value) : Promise.resolve({ value: value, done: true }) } AsyncFromSyncIterator.prototype.throw = function(value) { return this._i.throw ? unwrapAsyncFromSync(this._i, 'throw', value) : Promise.reject(value) } function unwrapAsyncFromSync(iterator, fn, value) { var step return new Promise(function(resolve) { step = iterator[fn](value) resolve(step.value) }).then(function(value) { return { value: value, done: step.done } }) } /** * Given an object which either implements the AsyncIterable protocol or is * Array-like, iterate over it, calling the `callback` at each iteration. * * Use `forAwaitEach` where you would expect to use a [for-await-of](https://tc39.github.io/proposal-async-iteration/#sec-for-in-and-for-of-statements) loop. * * Similar to [Array#forEach][], the `callback` function accepts three * arguments, and is provided with `thisArg` as the calling context. * * > Note: Using `forAwaitEach` requires the existence of `Promise`. * > While `Promise` has been available in modern browsers for a number of * > years, legacy browsers (like IE 11) may require a polyfill. * * @example * * var forAwaitEach = require('iterall').forAwaitEach * * forAwaitEach(myIterable, function (value, index, iterable) { * console.log(value, index, iterable === myIterable) * }) * * @example * * // ES2017: * for await (let value of myAsyncIterable) { * console.log(await doSomethingAsync(value)) * } * console.log('done') * * // Any JavaScript environment: * forAwaitEach(myAsyncIterable, function (value) { * return doSomethingAsync(value).then(console.log) * }).then(function () { * console.log('done') * }) * * @template T the type of each iterated value * @param {AsyncIterable|Iterable | T>|{ length: number }} source * The AsyncIterable or array to iterate over. * @param {function(T, number, object)} callback * Function to execute for each iteration, taking up to three arguments * @param [thisArg] * Optional. Value to use as `this` when executing `callback`. */ /*:: declare export var forAwaitEach: & (<+TValue, TCollection: Iterable | TValue> | AsyncIterable>( collection: TCollection, callbackFn: (value: TValue, index: number, collection: TCollection) => any, thisArg?: any ) => Promise) & (( collection: TCollection, callbackFn: (value: mixed, index: number, collection: TCollection) => any, thisArg?: any ) => Promise); */ function forAwaitEach(source, callback, thisArg) { var asyncIterator = createAsyncIterator(source) if (asyncIterator) { var i = 0 return new Promise(function(resolve, reject) { function next() { asyncIterator .next() .then(function(step) { if (!step.done) { Promise.resolve(callback.call(thisArg, step.value, i++, source)) .then(next) .catch(reject) } else { resolve() } // Explicitly return null, silencing bluebird-style warnings. return null }) .catch(reject) // Explicitly return null, silencing bluebird-style warnings. return null } next() }) } } /***/ }), /***/ "./node_modules/jmespath/jmespath.js": /*!*******************************************!*\ !*** ./node_modules/jmespath/jmespath.js ***! \*******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { (function(exports) { "use strict"; function isArray(obj) { if (obj !== null) { return Object.prototype.toString.call(obj) === "[object Array]"; } else { return false; } } function isObject(obj) { if (obj !== null) { return Object.prototype.toString.call(obj) === "[object Object]"; } else { return false; } } function strictDeepEqual(first, second) { // Check the scalar case first. if (first === second) { return true; } // Check if they are the same type. var firstType = Object.prototype.toString.call(first); if (firstType !== Object.prototype.toString.call(second)) { return false; } // We know that first and second have the same type so we can just check the // first type from now on. if (isArray(first) === true) { // Short circuit if they're not the same length; if (first.length !== second.length) { return false; } for (var i = 0; i < first.length; i++) { if (strictDeepEqual(first[i], second[i]) === false) { return false; } } return true; } if (isObject(first) === true) { // An object is equal if it has the same key/value pairs. var keysSeen = {}; for (var key in first) { if (hasOwnProperty.call(first, key)) { if (strictDeepEqual(first[key], second[key]) === false) { return false; } keysSeen[key] = true; } } // Now check that there aren't any keys in second that weren't // in first. for (var key2 in second) { if (hasOwnProperty.call(second, key2)) { if (keysSeen[key2] !== true) { return false; } } } return true; } return false; } function isFalse(obj) { // From the spec: // A false value corresponds to the following values: // Empty list // Empty object // Empty string // False boolean // null value // First check the scalar values. if (obj === "" || obj === false || obj === null) { return true; } else if (isArray(obj) && obj.length === 0) { // Check for an empty array. return true; } else if (isObject(obj)) { // Check for an empty object. for (var key in obj) { // If there are any keys, then // the object is not empty so the object // is not false. if (obj.hasOwnProperty(key)) { return false; } } return true; } else { return false; } } function objValues(obj) { var keys = Object.keys(obj); var values = []; for (var i = 0; i < keys.length; i++) { values.push(obj[keys[i]]); } return values; } function merge(a, b) { var merged = {}; for (var key in a) { merged[key] = a[key]; } for (var key2 in b) { merged[key2] = b[key2]; } return merged; } var trimLeft; if (typeof String.prototype.trimLeft === "function") { trimLeft = function(str) { return str.trimLeft(); }; } else { trimLeft = function(str) { return str.match(/^\s*(.*)/)[1]; }; } // Type constants used to define functions. var TYPE_NUMBER = 0; var TYPE_ANY = 1; var TYPE_STRING = 2; var TYPE_ARRAY = 3; var TYPE_OBJECT = 4; var TYPE_BOOLEAN = 5; var TYPE_EXPREF = 6; var TYPE_NULL = 7; var TYPE_ARRAY_NUMBER = 8; var TYPE_ARRAY_STRING = 9; var TOK_EOF = "EOF"; var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; var TOK_QUOTEDIDENTIFIER = "QuotedIdentifier"; var TOK_RBRACKET = "Rbracket"; var TOK_RPAREN = "Rparen"; var TOK_COMMA = "Comma"; var TOK_COLON = "Colon"; var TOK_RBRACE = "Rbrace"; var TOK_NUMBER = "Number"; var TOK_CURRENT = "Current"; var TOK_EXPREF = "Expref"; var TOK_PIPE = "Pipe"; var TOK_OR = "Or"; var TOK_AND = "And"; var TOK_EQ = "EQ"; var TOK_GT = "GT"; var TOK_LT = "LT"; var TOK_GTE = "GTE"; var TOK_LTE = "LTE"; var TOK_NE = "NE"; var TOK_FLATTEN = "Flatten"; var TOK_STAR = "Star"; var TOK_FILTER = "Filter"; var TOK_DOT = "Dot"; var TOK_NOT = "Not"; var TOK_LBRACE = "Lbrace"; var TOK_LBRACKET = "Lbracket"; var TOK_LPAREN= "Lparen"; var TOK_LITERAL= "Literal"; // The "&", "[", "<", ">" tokens // are not in basicToken because // there are two token variants // ("&&", "[?", "<=", ">="). This is specially handled // below. var basicTokens = { ".": TOK_DOT, "*": TOK_STAR, ",": TOK_COMMA, ":": TOK_COLON, "{": TOK_LBRACE, "}": TOK_RBRACE, "]": TOK_RBRACKET, "(": TOK_LPAREN, ")": TOK_RPAREN, "@": TOK_CURRENT }; var operatorStartToken = { "<": true, ">": true, "=": true, "!": true }; var skipChars = { " ": true, "\t": true, "\n": true }; function isAlpha(ch) { return (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") || ch === "_"; } function isNum(ch) { return (ch >= "0" && ch <= "9") || ch === "-"; } function isAlphaNum(ch) { return (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") || (ch >= "0" && ch <= "9") || ch === "_"; } function Lexer() { } Lexer.prototype = { tokenize: function(stream) { var tokens = []; this._current = 0; var start; var identifier; var token; while (this._current < stream.length) { if (isAlpha(stream[this._current])) { start = this._current; identifier = this._consumeUnquotedIdentifier(stream); tokens.push({type: TOK_UNQUOTEDIDENTIFIER, value: identifier, start: start}); } else if (basicTokens[stream[this._current]] !== undefined) { tokens.push({type: basicTokens[stream[this._current]], value: stream[this._current], start: this._current}); this._current++; } else if (isNum(stream[this._current])) { token = this._consumeNumber(stream); tokens.push(token); } else if (stream[this._current] === "[") { // No need to increment this._current. This happens // in _consumeLBracket token = this._consumeLBracket(stream); tokens.push(token); } else if (stream[this._current] === "\"") { start = this._current; identifier = this._consumeQuotedIdentifier(stream); tokens.push({type: TOK_QUOTEDIDENTIFIER, value: identifier, start: start}); } else if (stream[this._current] === "'") { start = this._current; identifier = this._consumeRawStringLiteral(stream); tokens.push({type: TOK_LITERAL, value: identifier, start: start}); } else if (stream[this._current] === "`") { start = this._current; var literal = this._consumeLiteral(stream); tokens.push({type: TOK_LITERAL, value: literal, start: start}); } else if (operatorStartToken[stream[this._current]] !== undefined) { tokens.push(this._consumeOperator(stream)); } else if (skipChars[stream[this._current]] !== undefined) { // Ignore whitespace. this._current++; } else if (stream[this._current] === "&") { start = this._current; this._current++; if (stream[this._current] === "&") { this._current++; tokens.push({type: TOK_AND, value: "&&", start: start}); } else { tokens.push({type: TOK_EXPREF, value: "&", start: start}); } } else if (stream[this._current] === "|") { start = this._current; this._current++; if (stream[this._current] === "|") { this._current++; tokens.push({type: TOK_OR, value: "||", start: start}); } else { tokens.push({type: TOK_PIPE, value: "|", start: start}); } } else { var error = new Error("Unknown character:" + stream[this._current]); error.name = "LexerError"; throw error; } } return tokens; }, _consumeUnquotedIdentifier: function(stream) { var start = this._current; this._current++; while (this._current < stream.length && isAlphaNum(stream[this._current])) { this._current++; } return stream.slice(start, this._current); }, _consumeQuotedIdentifier: function(stream) { var start = this._current; this._current++; var maxLength = stream.length; while (stream[this._current] !== "\"" && this._current < maxLength) { // You can escape a double quote and you can escape an escape. var current = this._current; if (stream[current] === "\\" && (stream[current + 1] === "\\" || stream[current + 1] === "\"")) { current += 2; } else { current++; } this._current = current; } this._current++; return JSON.parse(stream.slice(start, this._current)); }, _consumeRawStringLiteral: function(stream) { var start = this._current; this._current++; var maxLength = stream.length; while (stream[this._current] !== "'" && this._current < maxLength) { // You can escape a single quote and you can escape an escape. var current = this._current; if (stream[current] === "\\" && (stream[current + 1] === "\\" || stream[current + 1] === "'")) { current += 2; } else { current++; } this._current = current; } this._current++; var literal = stream.slice(start + 1, this._current - 1); return literal.replace("\\'", "'"); }, _consumeNumber: function(stream) { var start = this._current; this._current++; var maxLength = stream.length; while (isNum(stream[this._current]) && this._current < maxLength) { this._current++; } var value = parseInt(stream.slice(start, this._current)); return {type: TOK_NUMBER, value: value, start: start}; }, _consumeLBracket: function(stream) { var start = this._current; this._current++; if (stream[this._current] === "?") { this._current++; return {type: TOK_FILTER, value: "[?", start: start}; } else if (stream[this._current] === "]") { this._current++; return {type: TOK_FLATTEN, value: "[]", start: start}; } else { return {type: TOK_LBRACKET, value: "[", start: start}; } }, _consumeOperator: function(stream) { var start = this._current; var startingChar = stream[start]; this._current++; if (startingChar === "!") { if (stream[this._current] === "=") { this._current++; return {type: TOK_NE, value: "!=", start: start}; } else { return {type: TOK_NOT, value: "!", start: start}; } } else if (startingChar === "<") { if (stream[this._current] === "=") { this._current++; return {type: TOK_LTE, value: "<=", start: start}; } else { return {type: TOK_LT, value: "<", start: start}; } } else if (startingChar === ">") { if (stream[this._current] === "=") { this._current++; return {type: TOK_GTE, value: ">=", start: start}; } else { return {type: TOK_GT, value: ">", start: start}; } } else if (startingChar === "=") { if (stream[this._current] === "=") { this._current++; return {type: TOK_EQ, value: "==", start: start}; } } }, _consumeLiteral: function(stream) { this._current++; var start = this._current; var maxLength = stream.length; var literal; while(stream[this._current] !== "`" && this._current < maxLength) { // You can escape a literal char or you can escape the escape. var current = this._current; if (stream[current] === "\\" && (stream[current + 1] === "\\" || stream[current + 1] === "`")) { current += 2; } else { current++; } this._current = current; } var literalString = trimLeft(stream.slice(start, this._current)); literalString = literalString.replace("\\`", "`"); if (this._looksLikeJSON(literalString)) { literal = JSON.parse(literalString); } else { // Try to JSON parse it as "" literal = JSON.parse("\"" + literalString + "\""); } // +1 gets us to the ending "`", +1 to move on to the next char. this._current++; return literal; }, _looksLikeJSON: function(literalString) { var startingChars = "[{\""; var jsonLiterals = ["true", "false", "null"]; var numberLooking = "-0123456789"; if (literalString === "") { return false; } else if (startingChars.indexOf(literalString[0]) >= 0) { return true; } else if (jsonLiterals.indexOf(literalString) >= 0) { return true; } else if (numberLooking.indexOf(literalString[0]) >= 0) { try { JSON.parse(literalString); return true; } catch (ex) { return false; } } else { return false; } } }; var bindingPower = {}; bindingPower[TOK_EOF] = 0; bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0; bindingPower[TOK_QUOTEDIDENTIFIER] = 0; bindingPower[TOK_RBRACKET] = 0; bindingPower[TOK_RPAREN] = 0; bindingPower[TOK_COMMA] = 0; bindingPower[TOK_RBRACE] = 0; bindingPower[TOK_NUMBER] = 0; bindingPower[TOK_CURRENT] = 0; bindingPower[TOK_EXPREF] = 0; bindingPower[TOK_PIPE] = 1; bindingPower[TOK_OR] = 2; bindingPower[TOK_AND] = 3; bindingPower[TOK_EQ] = 5; bindingPower[TOK_GT] = 5; bindingPower[TOK_LT] = 5; bindingPower[TOK_GTE] = 5; bindingPower[TOK_LTE] = 5; bindingPower[TOK_NE] = 5; bindingPower[TOK_FLATTEN] = 9; bindingPower[TOK_STAR] = 20; bindingPower[TOK_FILTER] = 21; bindingPower[TOK_DOT] = 40; bindingPower[TOK_NOT] = 45; bindingPower[TOK_LBRACE] = 50; bindingPower[TOK_LBRACKET] = 55; bindingPower[TOK_LPAREN] = 60; function Parser() { } Parser.prototype = { parse: function(expression) { this._loadTokens(expression); this.index = 0; var ast = this.expression(0); if (this._lookahead(0) !== TOK_EOF) { var t = this._lookaheadToken(0); var error = new Error( "Unexpected token type: " + t.type + ", value: " + t.value); error.name = "ParserError"; throw error; } return ast; }, _loadTokens: function(expression) { var lexer = new Lexer(); var tokens = lexer.tokenize(expression); tokens.push({type: TOK_EOF, value: "", start: expression.length}); this.tokens = tokens; }, expression: function(rbp) { var leftToken = this._lookaheadToken(0); this._advance(); var left = this.nud(leftToken); var currentToken = this._lookahead(0); while (rbp < bindingPower[currentToken]) { this._advance(); left = this.led(currentToken, left); currentToken = this._lookahead(0); } return left; }, _lookahead: function(number) { return this.tokens[this.index + number].type; }, _lookaheadToken: function(number) { return this.tokens[this.index + number]; }, _advance: function() { this.index++; }, nud: function(token) { var left; var right; var expression; switch (token.type) { case TOK_LITERAL: return {type: "Literal", value: token.value}; case TOK_UNQUOTEDIDENTIFIER: return {type: "Field", name: token.value}; case TOK_QUOTEDIDENTIFIER: var node = {type: "Field", name: token.value}; if (this._lookahead(0) === TOK_LPAREN) { throw new Error("Quoted identifier not allowed for function names."); } else { return node; } break; case TOK_NOT: right = this.expression(bindingPower.Not); return {type: "NotExpression", children: [right]}; case TOK_STAR: left = {type: "Identity"}; right = null; if (this._lookahead(0) === TOK_RBRACKET) { // This can happen in a multiselect, // [a, b, *] right = {type: "Identity"}; } else { right = this._parseProjectionRHS(bindingPower.Star); } return {type: "ValueProjection", children: [left, right]}; case TOK_FILTER: return this.led(token.type, {type: "Identity"}); case TOK_LBRACE: return this._parseMultiselectHash(); case TOK_FLATTEN: left = {type: TOK_FLATTEN, children: [{type: "Identity"}]}; right = this._parseProjectionRHS(bindingPower.Flatten); return {type: "Projection", children: [left, right]}; case TOK_LBRACKET: if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) { right = this._parseIndexExpression(); return this._projectIfSlice({type: "Identity"}, right); } else if (this._lookahead(0) === TOK_STAR && this._lookahead(1) === TOK_RBRACKET) { this._advance(); this._advance(); right = this._parseProjectionRHS(bindingPower.Star); return {type: "Projection", children: [{type: "Identity"}, right]}; } else { return this._parseMultiselectList(); } break; case TOK_CURRENT: return {type: TOK_CURRENT}; case TOK_EXPREF: expression = this.expression(bindingPower.Expref); return {type: "ExpressionReference", children: [expression]}; case TOK_LPAREN: var args = []; while (this._lookahead(0) !== TOK_RPAREN) { if (this._lookahead(0) === TOK_CURRENT) { expression = {type: TOK_CURRENT}; this._advance(); } else { expression = this.expression(0); } args.push(expression); } this._match(TOK_RPAREN); return args[0]; default: this._errorToken(token); } }, led: function(tokenName, left) { var right; switch(tokenName) { case TOK_DOT: var rbp = bindingPower.Dot; if (this._lookahead(0) !== TOK_STAR) { right = this._parseDotRHS(rbp); return {type: "Subexpression", children: [left, right]}; } else { // Creating a projection. this._advance(); right = this._parseProjectionRHS(rbp); return {type: "ValueProjection", children: [left, right]}; } break; case TOK_PIPE: right = this.expression(bindingPower.Pipe); return {type: TOK_PIPE, children: [left, right]}; case TOK_OR: right = this.expression(bindingPower.Or); return {type: "OrExpression", children: [left, right]}; case TOK_AND: right = this.expression(bindingPower.And); return {type: "AndExpression", children: [left, right]}; case TOK_LPAREN: var name = left.name; var args = []; var expression, node; while (this._lookahead(0) !== TOK_RPAREN) { if (this._lookahead(0) === TOK_CURRENT) { expression = {type: TOK_CURRENT}; this._advance(); } else { expression = this.expression(0); } if (this._lookahead(0) === TOK_COMMA) { this._match(TOK_COMMA); } args.push(expression); } this._match(TOK_RPAREN); node = {type: "Function", name: name, children: args}; return node; case TOK_FILTER: var condition = this.expression(0); this._match(TOK_RBRACKET); if (this._lookahead(0) === TOK_FLATTEN) { right = {type: "Identity"}; } else { right = this._parseProjectionRHS(bindingPower.Filter); } return {type: "FilterProjection", children: [left, right, condition]}; case TOK_FLATTEN: var leftNode = {type: TOK_FLATTEN, children: [left]}; var rightNode = this._parseProjectionRHS(bindingPower.Flatten); return {type: "Projection", children: [leftNode, rightNode]}; case TOK_EQ: case TOK_NE: case TOK_GT: case TOK_GTE: case TOK_LT: case TOK_LTE: return this._parseComparator(left, tokenName); case TOK_LBRACKET: var token = this._lookaheadToken(0); if (token.type === TOK_NUMBER || token.type === TOK_COLON) { right = this._parseIndexExpression(); return this._projectIfSlice(left, right); } else { this._match(TOK_STAR); this._match(TOK_RBRACKET); right = this._parseProjectionRHS(bindingPower.Star); return {type: "Projection", children: [left, right]}; } break; default: this._errorToken(this._lookaheadToken(0)); } }, _match: function(tokenType) { if (this._lookahead(0) === tokenType) { this._advance(); } else { var t = this._lookaheadToken(0); var error = new Error("Expected " + tokenType + ", got: " + t.type); error.name = "ParserError"; throw error; } }, _errorToken: function(token) { var error = new Error("Invalid token (" + token.type + "): \"" + token.value + "\""); error.name = "ParserError"; throw error; }, _parseIndexExpression: function() { if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) { return this._parseSliceExpression(); } else { var node = { type: "Index", value: this._lookaheadToken(0).value}; this._advance(); this._match(TOK_RBRACKET); return node; } }, _projectIfSlice: function(left, right) { var indexExpr = {type: "IndexExpression", children: [left, right]}; if (right.type === "Slice") { return { type: "Projection", children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)] }; } else { return indexExpr; } }, _parseSliceExpression: function() { // [start:end:step] where each part is optional, as well as the last // colon. var parts = [null, null, null]; var index = 0; var currentToken = this._lookahead(0); while (currentToken !== TOK_RBRACKET && index < 3) { if (currentToken === TOK_COLON) { index++; this._advance(); } else if (currentToken === TOK_NUMBER) { parts[index] = this._lookaheadToken(0).value; this._advance(); } else { var t = this._lookahead(0); var error = new Error("Syntax error, unexpected token: " + t.value + "(" + t.type + ")"); error.name = "Parsererror"; throw error; } currentToken = this._lookahead(0); } this._match(TOK_RBRACKET); return { type: "Slice", children: parts }; }, _parseComparator: function(left, comparator) { var right = this.expression(bindingPower[comparator]); return {type: "Comparator", name: comparator, children: [left, right]}; }, _parseDotRHS: function(rbp) { var lookahead = this._lookahead(0); var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR]; if (exprTokens.indexOf(lookahead) >= 0) { return this.expression(rbp); } else if (lookahead === TOK_LBRACKET) { this._match(TOK_LBRACKET); return this._parseMultiselectList(); } else if (lookahead === TOK_LBRACE) { this._match(TOK_LBRACE); return this._parseMultiselectHash(); } }, _parseProjectionRHS: function(rbp) { var right; if (bindingPower[this._lookahead(0)] < 10) { right = {type: "Identity"}; } else if (this._lookahead(0) === TOK_LBRACKET) { right = this.expression(rbp); } else if (this._lookahead(0) === TOK_FILTER) { right = this.expression(rbp); } else if (this._lookahead(0) === TOK_DOT) { this._match(TOK_DOT); right = this._parseDotRHS(rbp); } else { var t = this._lookaheadToken(0); var error = new Error("Sytanx error, unexpected token: " + t.value + "(" + t.type + ")"); error.name = "ParserError"; throw error; } return right; }, _parseMultiselectList: function() { var expressions = []; while (this._lookahead(0) !== TOK_RBRACKET) { var expression = this.expression(0); expressions.push(expression); if (this._lookahead(0) === TOK_COMMA) { this._match(TOK_COMMA); if (this._lookahead(0) === TOK_RBRACKET) { throw new Error("Unexpected token Rbracket"); } } } this._match(TOK_RBRACKET); return {type: "MultiSelectList", children: expressions}; }, _parseMultiselectHash: function() { var pairs = []; var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER]; var keyToken, keyName, value, node; for (;;) { keyToken = this._lookaheadToken(0); if (identifierTypes.indexOf(keyToken.type) < 0) { throw new Error("Expecting an identifier token, got: " + keyToken.type); } keyName = keyToken.value; this._advance(); this._match(TOK_COLON); value = this.expression(0); node = {type: "KeyValuePair", name: keyName, value: value}; pairs.push(node); if (this._lookahead(0) === TOK_COMMA) { this._match(TOK_COMMA); } else if (this._lookahead(0) === TOK_RBRACE) { this._match(TOK_RBRACE); break; } } return {type: "MultiSelectHash", children: pairs}; } }; function TreeInterpreter(runtime) { this.runtime = runtime; } TreeInterpreter.prototype = { search: function(node, value) { return this.visit(node, value); }, visit: function(node, value) { var matched, current, result, first, second, field, left, right, collected, i; switch (node.type) { case "Field": if (value === null ) { return null; } else if (isObject(value)) { field = value[node.name]; if (field === undefined) { return null; } else { return field; } } else { return null; } break; case "Subexpression": result = this.visit(node.children[0], value); for (i = 1; i < node.children.length; i++) { result = this.visit(node.children[1], result); if (result === null) { return null; } } return result; case "IndexExpression": left = this.visit(node.children[0], value); right = this.visit(node.children[1], left); return right; case "Index": if (!isArray(value)) { return null; } var index = node.value; if (index < 0) { index = value.length + index; } result = value[index]; if (result === undefined) { result = null; } return result; case "Slice": if (!isArray(value)) { return null; } var sliceParams = node.children.slice(0); var computed = this.computeSliceParams(value.length, sliceParams); var start = computed[0]; var stop = computed[1]; var step = computed[2]; result = []; if (step > 0) { for (i = start; i < stop; i += step) { result.push(value[i]); } } else { for (i = start; i > stop; i += step) { result.push(value[i]); } } return result; case "Projection": // Evaluate left child. var base = this.visit(node.children[0], value); if (!isArray(base)) { return null; } collected = []; for (i = 0; i < base.length; i++) { current = this.visit(node.children[1], base[i]); if (current !== null) { collected.push(current); } } return collected; case "ValueProjection": // Evaluate left child. base = this.visit(node.children[0], value); if (!isObject(base)) { return null; } collected = []; var values = objValues(base); for (i = 0; i < values.length; i++) { current = this.visit(node.children[1], values[i]); if (current !== null) { collected.push(current); } } return collected; case "FilterProjection": base = this.visit(node.children[0], value); if (!isArray(base)) { return null; } var filtered = []; var finalResults = []; for (i = 0; i < base.length; i++) { matched = this.visit(node.children[2], base[i]); if (!isFalse(matched)) { filtered.push(base[i]); } } for (var j = 0; j < filtered.length; j++) { current = this.visit(node.children[1], filtered[j]); if (current !== null) { finalResults.push(current); } } return finalResults; case "Comparator": first = this.visit(node.children[0], value); second = this.visit(node.children[1], value); switch(node.name) { case TOK_EQ: result = strictDeepEqual(first, second); break; case TOK_NE: result = !strictDeepEqual(first, second); break; case TOK_GT: result = first > second; break; case TOK_GTE: result = first >= second; break; case TOK_LT: result = first < second; break; case TOK_LTE: result = first <= second; break; default: throw new Error("Unknown comparator: " + node.name); } return result; case TOK_FLATTEN: var original = this.visit(node.children[0], value); if (!isArray(original)) { return null; } var merged = []; for (i = 0; i < original.length; i++) { current = original[i]; if (isArray(current)) { merged.push.apply(merged, current); } else { merged.push(current); } } return merged; case "Identity": return value; case "MultiSelectList": if (value === null) { return null; } collected = []; for (i = 0; i < node.children.length; i++) { collected.push(this.visit(node.children[i], value)); } return collected; case "MultiSelectHash": if (value === null) { return null; } collected = {}; var child; for (i = 0; i < node.children.length; i++) { child = node.children[i]; collected[child.name] = this.visit(child.value, value); } return collected; case "OrExpression": matched = this.visit(node.children[0], value); if (isFalse(matched)) { matched = this.visit(node.children[1], value); } return matched; case "AndExpression": first = this.visit(node.children[0], value); if (isFalse(first) === true) { return first; } return this.visit(node.children[1], value); case "NotExpression": first = this.visit(node.children[0], value); return isFalse(first); case "Literal": return node.value; case TOK_PIPE: left = this.visit(node.children[0], value); return this.visit(node.children[1], left); case TOK_CURRENT: return value; case "Function": var resolvedArgs = []; for (i = 0; i < node.children.length; i++) { resolvedArgs.push(this.visit(node.children[i], value)); } return this.runtime.callFunction(node.name, resolvedArgs); case "ExpressionReference": var refNode = node.children[0]; // Tag the node with a specific attribute so the type // checker verify the type. refNode.jmespathType = TOK_EXPREF; return refNode; default: throw new Error("Unknown node type: " + node.type); } }, computeSliceParams: function(arrayLength, sliceParams) { var start = sliceParams[0]; var stop = sliceParams[1]; var step = sliceParams[2]; var computed = [null, null, null]; if (step === null) { step = 1; } else if (step === 0) { var error = new Error("Invalid slice, step cannot be 0"); error.name = "RuntimeError"; throw error; } var stepValueNegative = step < 0 ? true : false; if (start === null) { start = stepValueNegative ? arrayLength - 1 : 0; } else { start = this.capSliceRange(arrayLength, start, step); } if (stop === null) { stop = stepValueNegative ? -1 : arrayLength; } else { stop = this.capSliceRange(arrayLength, stop, step); } computed[0] = start; computed[1] = stop; computed[2] = step; return computed; }, capSliceRange: function(arrayLength, actualValue, step) { if (actualValue < 0) { actualValue += arrayLength; if (actualValue < 0) { actualValue = step < 0 ? -1 : 0; } } else if (actualValue >= arrayLength) { actualValue = step < 0 ? arrayLength - 1 : arrayLength; } return actualValue; } }; function Runtime(interpreter) { this._interpreter = interpreter; this.functionTable = { // name: [function, ] // The can be: // // { // args: [[type1, type2], [type1, type2]], // variadic: true|false // } // // Each arg in the arg list is a list of valid types // (if the function is overloaded and supports multiple // types. If the type is "any" then no type checking // occurs on the argument. Variadic is optional // and if not provided is assumed to be false. abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]}, avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]}, contains: { _func: this._functionContains, _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}, {types: [TYPE_ANY]}]}, "ends_with": { _func: this._functionEndsWith, _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]}, length: { _func: this._functionLength, _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]}, map: { _func: this._functionMap, _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]}, max: { _func: this._functionMax, _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, "merge": { _func: this._functionMerge, _signature: [{types: [TYPE_OBJECT], variadic: true}] }, "max_by": { _func: this._functionMaxBy, _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] }, sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]}, "starts_with": { _func: this._functionStartsWith, _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]}, min: { _func: this._functionMin, _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]}, "min_by": { _func: this._functionMinBy, _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] }, type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]}, keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]}, values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]}, sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]}, "sort_by": { _func: this._functionSortBy, _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}] }, join: { _func: this._functionJoin, _signature: [ {types: [TYPE_STRING]}, {types: [TYPE_ARRAY_STRING]} ] }, reverse: { _func: this._functionReverse, _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]}, "to_array": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]}, "to_string": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]}, "to_number": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]}, "not_null": { _func: this._functionNotNull, _signature: [{types: [TYPE_ANY], variadic: true}] } }; } Runtime.prototype = { callFunction: function(name, resolvedArgs) { var functionEntry = this.functionTable[name]; if (functionEntry === undefined) { throw new Error("Unknown function: " + name + "()"); } this._validateArgs(name, resolvedArgs, functionEntry._signature); return functionEntry._func.call(this, resolvedArgs); }, _validateArgs: function(name, args, signature) { // Validating the args requires validating // the correct arity and the correct type of each arg. // If the last argument is declared as variadic, then we need // a minimum number of args to be required. Otherwise it has to // be an exact amount. var pluralized; if (signature[signature.length - 1].variadic) { if (args.length < signature.length) { pluralized = signature.length === 1 ? " argument" : " arguments"; throw new Error("ArgumentError: " + name + "() " + "takes at least" + signature.length + pluralized + " but received " + args.length); } } else if (args.length !== signature.length) { pluralized = signature.length === 1 ? " argument" : " arguments"; throw new Error("ArgumentError: " + name + "() " + "takes " + signature.length + pluralized + " but received " + args.length); } var currentSpec; var actualType; var typeMatched; for (var i = 0; i < signature.length; i++) { typeMatched = false; currentSpec = signature[i].types; actualType = this._getTypeName(args[i]); for (var j = 0; j < currentSpec.length; j++) { if (this._typeMatches(actualType, currentSpec[j], args[i])) { typeMatched = true; break; } } if (!typeMatched) { throw new Error("TypeError: " + name + "() " + "expected argument " + (i + 1) + " to be type " + currentSpec + " but received type " + actualType + " instead."); } } }, _typeMatches: function(actual, expected, argValue) { if (expected === TYPE_ANY) { return true; } if (expected === TYPE_ARRAY_STRING || expected === TYPE_ARRAY_NUMBER || expected === TYPE_ARRAY) { // The expected type can either just be array, // or it can require a specific subtype (array of numbers). // // The simplest case is if "array" with no subtype is specified. if (expected === TYPE_ARRAY) { return actual === TYPE_ARRAY; } else if (actual === TYPE_ARRAY) { // Otherwise we need to check subtypes. // I think this has potential to be improved. var subtype; if (expected === TYPE_ARRAY_NUMBER) { subtype = TYPE_NUMBER; } else if (expected === TYPE_ARRAY_STRING) { subtype = TYPE_STRING; } for (var i = 0; i < argValue.length; i++) { if (!this._typeMatches( this._getTypeName(argValue[i]), subtype, argValue[i])) { return false; } } return true; } } else { return actual === expected; } }, _getTypeName: function(obj) { switch (Object.prototype.toString.call(obj)) { case "[object String]": return TYPE_STRING; case "[object Number]": return TYPE_NUMBER; case "[object Array]": return TYPE_ARRAY; case "[object Boolean]": return TYPE_BOOLEAN; case "[object Null]": return TYPE_NULL; case "[object Object]": // Check if it's an expref. If it has, it's been // tagged with a jmespathType attr of 'Expref'; if (obj.jmespathType === TOK_EXPREF) { return TYPE_EXPREF; } else { return TYPE_OBJECT; } } }, _functionStartsWith: function(resolvedArgs) { return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0; }, _functionEndsWith: function(resolvedArgs) { var searchStr = resolvedArgs[0]; var suffix = resolvedArgs[1]; return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1; }, _functionReverse: function(resolvedArgs) { var typeName = this._getTypeName(resolvedArgs[0]); if (typeName === TYPE_STRING) { var originalStr = resolvedArgs[0]; var reversedStr = ""; for (var i = originalStr.length - 1; i >= 0; i--) { reversedStr += originalStr[i]; } return reversedStr; } else { var reversedArray = resolvedArgs[0].slice(0); reversedArray.reverse(); return reversedArray; } }, _functionAbs: function(resolvedArgs) { return Math.abs(resolvedArgs[0]); }, _functionCeil: function(resolvedArgs) { return Math.ceil(resolvedArgs[0]); }, _functionAvg: function(resolvedArgs) { var sum = 0; var inputArray = resolvedArgs[0]; for (var i = 0; i < inputArray.length; i++) { sum += inputArray[i]; } return sum / inputArray.length; }, _functionContains: function(resolvedArgs) { return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0; }, _functionFloor: function(resolvedArgs) { return Math.floor(resolvedArgs[0]); }, _functionLength: function(resolvedArgs) { if (!isObject(resolvedArgs[0])) { return resolvedArgs[0].length; } else { // As far as I can tell, there's no way to get the length // of an object without O(n) iteration through the object. return Object.keys(resolvedArgs[0]).length; } }, _functionMap: function(resolvedArgs) { var mapped = []; var interpreter = this._interpreter; var exprefNode = resolvedArgs[0]; var elements = resolvedArgs[1]; for (var i = 0; i < elements.length; i++) { mapped.push(interpreter.visit(exprefNode, elements[i])); } return mapped; }, _functionMerge: function(resolvedArgs) { var merged = {}; for (var i = 0; i < resolvedArgs.length; i++) { var current = resolvedArgs[i]; for (var key in current) { merged[key] = current[key]; } } return merged; }, _functionMax: function(resolvedArgs) { if (resolvedArgs[0].length > 0) { var typeName = this._getTypeName(resolvedArgs[0][0]); if (typeName === TYPE_NUMBER) { return Math.max.apply(Math, resolvedArgs[0]); } else { var elements = resolvedArgs[0]; var maxElement = elements[0]; for (var i = 1; i < elements.length; i++) { if (maxElement.localeCompare(elements[i]) < 0) { maxElement = elements[i]; } } return maxElement; } } else { return null; } }, _functionMin: function(resolvedArgs) { if (resolvedArgs[0].length > 0) { var typeName = this._getTypeName(resolvedArgs[0][0]); if (typeName === TYPE_NUMBER) { return Math.min.apply(Math, resolvedArgs[0]); } else { var elements = resolvedArgs[0]; var minElement = elements[0]; for (var i = 1; i < elements.length; i++) { if (elements[i].localeCompare(minElement) < 0) { minElement = elements[i]; } } return minElement; } } else { return null; } }, _functionSum: function(resolvedArgs) { var sum = 0; var listToSum = resolvedArgs[0]; for (var i = 0; i < listToSum.length; i++) { sum += listToSum[i]; } return sum; }, _functionType: function(resolvedArgs) { switch (this._getTypeName(resolvedArgs[0])) { case TYPE_NUMBER: return "number"; case TYPE_STRING: return "string"; case TYPE_ARRAY: return "array"; case TYPE_OBJECT: return "object"; case TYPE_BOOLEAN: return "boolean"; case TYPE_EXPREF: return "expref"; case TYPE_NULL: return "null"; } }, _functionKeys: function(resolvedArgs) { return Object.keys(resolvedArgs[0]); }, _functionValues: function(resolvedArgs) { var obj = resolvedArgs[0]; var keys = Object.keys(obj); var values = []; for (var i = 0; i < keys.length; i++) { values.push(obj[keys[i]]); } return values; }, _functionJoin: function(resolvedArgs) { var joinChar = resolvedArgs[0]; var listJoin = resolvedArgs[1]; return listJoin.join(joinChar); }, _functionToArray: function(resolvedArgs) { if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) { return resolvedArgs[0]; } else { return [resolvedArgs[0]]; } }, _functionToString: function(resolvedArgs) { if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) { return resolvedArgs[0]; } else { return JSON.stringify(resolvedArgs[0]); } }, _functionToNumber: function(resolvedArgs) { var typeName = this._getTypeName(resolvedArgs[0]); var convertedValue; if (typeName === TYPE_NUMBER) { return resolvedArgs[0]; } else if (typeName === TYPE_STRING) { convertedValue = +resolvedArgs[0]; if (!isNaN(convertedValue)) { return convertedValue; } } return null; }, _functionNotNull: function(resolvedArgs) { for (var i = 0; i < resolvedArgs.length; i++) { if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) { return resolvedArgs[i]; } } return null; }, _functionSort: function(resolvedArgs) { var sortedArray = resolvedArgs[0].slice(0); sortedArray.sort(); return sortedArray; }, _functionSortBy: function(resolvedArgs) { var sortedArray = resolvedArgs[0].slice(0); if (sortedArray.length === 0) { return sortedArray; } var interpreter = this._interpreter; var exprefNode = resolvedArgs[1]; var requiredType = this._getTypeName( interpreter.visit(exprefNode, sortedArray[0])); if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) { throw new Error("TypeError"); } var that = this; // In order to get a stable sort out of an unstable // sort algorithm, we decorate/sort/undecorate (DSU) // by creating a new list of [index, element] pairs. // In the cmp function, if the evaluated elements are // equal, then the index will be used as the tiebreaker. // After the decorated list has been sorted, it will be // undecorated to extract the original elements. var decorated = []; for (var i = 0; i < sortedArray.length; i++) { decorated.push([i, sortedArray[i]]); } decorated.sort(function(a, b) { var exprA = interpreter.visit(exprefNode, a[1]); var exprB = interpreter.visit(exprefNode, b[1]); if (that._getTypeName(exprA) !== requiredType) { throw new Error( "TypeError: expected " + requiredType + ", received " + that._getTypeName(exprA)); } else if (that._getTypeName(exprB) !== requiredType) { throw new Error( "TypeError: expected " + requiredType + ", received " + that._getTypeName(exprB)); } if (exprA > exprB) { return 1; } else if (exprA < exprB) { return -1; } else { // If they're equal compare the items by their // order to maintain relative order of equal keys // (i.e. to get a stable sort). return a[0] - b[0]; } }); // Undecorate: extract out the original list elements. for (var j = 0; j < decorated.length; j++) { sortedArray[j] = decorated[j][1]; } return sortedArray; }, _functionMaxBy: function(resolvedArgs) { var exprefNode = resolvedArgs[1]; var resolvedArray = resolvedArgs[0]; var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); var maxNumber = -Infinity; var maxRecord; var current; for (var i = 0; i < resolvedArray.length; i++) { current = keyFunction(resolvedArray[i]); if (current > maxNumber) { maxNumber = current; maxRecord = resolvedArray[i]; } } return maxRecord; }, _functionMinBy: function(resolvedArgs) { var exprefNode = resolvedArgs[1]; var resolvedArray = resolvedArgs[0]; var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); var minNumber = Infinity; var minRecord; var current; for (var i = 0; i < resolvedArray.length; i++) { current = keyFunction(resolvedArray[i]); if (current < minNumber) { minNumber = current; minRecord = resolvedArray[i]; } } return minRecord; }, createKeyFunction: function(exprefNode, allowedTypes) { var that = this; var interpreter = this._interpreter; var keyFunc = function(x) { var current = interpreter.visit(exprefNode, x); if (allowedTypes.indexOf(that._getTypeName(current)) < 0) { var msg = "TypeError: expected one of " + allowedTypes + ", received " + that._getTypeName(current); throw new Error(msg); } return current; }; return keyFunc; } }; function compile(stream) { var parser = new Parser(); var ast = parser.parse(stream); return ast; } function tokenize(stream) { var lexer = new Lexer(); return lexer.tokenize(stream); } function search(data, expression) { var parser = new Parser(); // This needs to be improved. Both the interpreter and runtime depend on // each other. The runtime needs the interpreter to support exprefs. // There's likely a clean way to avoid the cyclic dependency. var runtime = new Runtime(); var interpreter = new TreeInterpreter(runtime); runtime._interpreter = interpreter; var node = parser.parse(expression); return interpreter.search(node, data); } exports.tokenize = tokenize; exports.compile = compile; exports.search = search; exports.strictDeepEqual = strictDeepEqual; })( false ? this.jmespath = {} : exports); /***/ }), /***/ "./node_modules/js-cookie/src/js.cookie.js": /*!*************************************************!*\ !*** ./node_modules/js-cookie/src/js.cookie.js ***! \*************************************************/ /*! dynamic exports provided */ /*! exports used: get, remove, set */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! * JavaScript Cookie v2.2.1 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ ;(function (factory) { var registeredInModuleLoader; if (true) { !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); registeredInModuleLoader = true; } if (true) { module.exports = factory(); registeredInModuleLoader = true; } if (!registeredInModuleLoader) { var OldCookies = window.Cookies; var api = window.Cookies = factory(); api.noConflict = function () { window.Cookies = OldCookies; return api; }; } }(function () { function extend () { var i = 0; var result = {}; for (; i < arguments.length; i++) { var attributes = arguments[ i ]; for (var key in attributes) { result[key] = attributes[key]; } } return result; } function decode (s) { return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); } function init (converter) { function api() {} function set (key, value, attributes) { if (typeof document === 'undefined') { return; } attributes = extend({ path: '/' }, api.defaults, attributes); if (typeof attributes.expires === 'number') { attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); } // We're using "expires" because "max-age" is not supported by IE attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; try { var result = JSON.stringify(value); if (/^[\{\[]/.test(result)) { value = result; } } catch (e) {} value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)) .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); key = encodeURIComponent(String(key)) .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape); var stringifiedAttributes = ''; for (var attributeName in attributes) { if (!attributes[attributeName]) { continue; } stringifiedAttributes += '; ' + attributeName; if (attributes[attributeName] === true) { continue; } // Considers RFC 6265 section 5.2: // ... // 3. If the remaining unparsed-attributes contains a %x3B (";") // character: // Consume the characters of the unparsed-attributes up to, // not including, the first %x3B (";") character. // ... stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; } return (document.cookie = key + '=' + value + stringifiedAttributes); } function get (key, json) { if (typeof document === 'undefined') { return; } var jar = {}; // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. var cookies = document.cookie ? document.cookie.split('; ') : []; var i = 0; for (; i < cookies.length; i++) { var parts = cookies[i].split('='); var cookie = parts.slice(1).join('='); if (!json && cookie.charAt(0) === '"') { cookie = cookie.slice(1, -1); } try { var name = decode(parts[0]); cookie = (converter.read || converter)(cookie, name) || decode(cookie); if (json) { try { cookie = JSON.parse(cookie); } catch (e) {} } jar[name] = cookie; if (key === name) { break; } } catch (e) {} } return key ? jar[key] : jar; } api.set = set; api.get = function (key) { return get(key, false /* read as raw */); }; api.getJSON = function (key) { return get(key, true /* read as json */); }; api.remove = function (key, attributes) { set(key, '', extend(attributes, { expires: -1 })); }; api.defaults = {}; api.withConverter = init; return api; } return init(function () {}); })); /***/ }), /***/ "./node_modules/json3/lib/json3.js": /*!*****************************************!*\ !*** ./node_modules/json3/lib/json3.js ***! \*****************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ ;(function () { // Detect the `define` function exposed by asynchronous module loaders. The // strict `define` check is necessary for compatibility with `r.js`. var isLoader = "function" === "function" && __webpack_require__(/*! !webpack amd options */ "./node_modules/webpack/buildin/amd-options.js"); // A set of types used to distinguish objects from primitives. var objectTypes = { "function": true, "object": true }; // Detect the `exports` object exposed by CommonJS implementations. var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; // Use the `global` object exposed by Node (including Browserify via // `insert-module-globals`), Narwhal, and Ringo as the default context, // and the `window` object in browsers. Rhino exports a `global` function // instead. var root = objectTypes[typeof window] && window || this, freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { root = freeGlobal; } // Public: Initializes JSON 3 using the given `context` object, attaching the // `stringify` and `parse` functions to the specified `exports` object. function runInContext(context, exports) { context || (context = root["Object"]()); exports || (exports = root["Object"]()); // Native constructor aliases. var Number = context["Number"] || root["Number"], String = context["String"] || root["String"], Object = context["Object"] || root["Object"], Date = context["Date"] || root["Date"], SyntaxError = context["SyntaxError"] || root["SyntaxError"], TypeError = context["TypeError"] || root["TypeError"], Math = context["Math"] || root["Math"], nativeJSON = context["JSON"] || root["JSON"]; // Delegate to the native `stringify` and `parse` implementations. if (typeof nativeJSON == "object" && nativeJSON) { exports.stringify = nativeJSON.stringify; exports.parse = nativeJSON.parse; } // Convenience aliases. var objectProto = Object.prototype, getClass = objectProto.toString, isProperty, forEach, undef; // Test the `Date#getUTC*` methods. Based on work by @Yaffle. var isExtended = new Date(-3509827334573292); try { // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical // results for certain dates in Opera >= 10.53. isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && // Safari < 2.0.2 stores the internal millisecond time value correctly, // but clips the values returned by the date methods to the range of // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; } catch (exception) {} // Internal: Determines whether the native `JSON.stringify` and `parse` // implementations are spec-compliant. Based on work by Ken Snyder. function has(name) { if (has[name] !== undef) { // Return cached feature test result. return has[name]; } var isSupported; if (name == "bug-string-char-index") { // IE <= 7 doesn't support accessing string characters using square // bracket notation. IE 8 only supports this for primitives. isSupported = "a"[0] != "a"; } else if (name == "json") { // Indicates whether both `JSON.stringify` and `JSON.parse` are // supported. isSupported = has("json-stringify") && has("json-parse"); } else { var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; // Test `JSON.stringify`. if (name == "json-stringify") { var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; if (stringifySupported) { // A test function object with a custom `toJSON` method. (value = function () { return 1; }).toJSON = value; try { stringifySupported = // Firefox 3.1b1 and b2 serialize string, number, and boolean // primitives as object literals. stringify(0) === "0" && // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object // literals. stringify(new Number()) === "0" && stringify(new String()) == '""' && // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or // does not define a canonical JSON representation (this applies to // objects with `toJSON` properties as well, *unless* they are nested // within an object or array). stringify(getClass) === undef && // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and // FF 3.1b3 pass this test. stringify(undef) === undef && // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, // respectively, if the value is omitted entirely. stringify() === undef && // FF 3.1b1, 2 throw an error if the given value is not a number, // string, array, object, Boolean, or `null` literal. This applies to // objects with custom `toJSON` methods as well, unless they are nested // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` // methods entirely. stringify(value) === "1" && stringify([value]) == "[1]" && // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of // `"[null]"`. stringify([undef]) == "[null]" && // YUI 3.0.0b1 fails to serialize `null` literals. stringify(null) == "null" && // FF 3.1b1, 2 halts serialization if an array contains a function: // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 // elides non-JSON values from objects and arrays, unless they // define custom `toJSON` methods. stringify([undef, getClass, null]) == "[null,null,null]" && // Simple serialization test. FF 3.1b1 uses Unicode escape sequences // where character escape codes are expected (e.g., `\b` => `\u0008`). stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. stringify(null, value) === "1" && stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly // serialize extended years. stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && // The milliseconds are optional in ES 5, but required in 5.1. stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative // four-digit years instead of six-digit years. Credits: @Yaffle. stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond // values less than 1000. Credits: @Yaffle. stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; } catch (exception) { stringifySupported = false; } } isSupported = stringifySupported; } // Test `JSON.parse`. if (name == "json-parse") { var parse = exports.parse; if (typeof parse == "function") { try { // FF 3.1b1, b2 will throw an exception if a bare literal is provided. // Conforming implementations should also coerce the initial argument to // a string prior to parsing. if (parse("0") === 0 && !parse(false)) { // Simple parsing test. value = parse(serialized); var parseSupported = value["a"].length == 5 && value["a"][0] === 1; if (parseSupported) { try { // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. parseSupported = !parse('"\t"'); } catch (exception) {} if (parseSupported) { try { // FF 4.0 and 4.0.1 allow leading `+` signs and leading // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow // certain octal literals. parseSupported = parse("01") !== 1; } catch (exception) {} } if (parseSupported) { try { // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal // points. These environments, along with FF 3.1b1 and 2, // also allow trailing commas in JSON objects and arrays. parseSupported = parse("1.") !== 1; } catch (exception) {} } } } } catch (exception) { parseSupported = false; } } isSupported = parseSupported; } } return has[name] = !!isSupported; } if (!has("json")) { // Common `[[Class]]` name aliases. var functionClass = "[object Function]", dateClass = "[object Date]", numberClass = "[object Number]", stringClass = "[object String]", arrayClass = "[object Array]", booleanClass = "[object Boolean]"; // Detect incomplete support for accessing string characters by index. var charIndexBuggy = has("bug-string-char-index"); // Define additional utility methods if the `Date` methods are buggy. if (!isExtended) { var floor = Math.floor; // A mapping between the months of the year and the number of days between // January 1st and the first of the respective month. var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; // Internal: Calculates the number of days between the Unix epoch and the // first day of the given month. var getDay = function (year, month) { return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; } // Internal: Determines if a property is a direct property of the given // object. Delegates to the native `Object#hasOwnProperty` method. if (!(isProperty = objectProto.hasOwnProperty)) { isProperty = function (property) { var members = {}, constructor; if ((members.__proto__ = null, members.__proto__ = { // The *proto* property cannot be set multiple times in recent // versions of Firefox and SeaMonkey. "toString": 1 }, members).toString != getClass) { // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but // supports the mutable *proto* property. isProperty = function (property) { // Capture and break the object's prototype chain (see section 8.6.2 // of the ES 5.1 spec). The parenthesized expression prevents an // unsafe transformation by the Closure Compiler. var original = this.__proto__, result = property in (this.__proto__ = null, this); // Restore the original prototype chain. this.__proto__ = original; return result; }; } else { // Capture a reference to the top-level `Object` constructor. constructor = members.constructor; // Use the `constructor` property to simulate `Object#hasOwnProperty` in // other environments. isProperty = function (property) { var parent = (this.constructor || constructor).prototype; return property in this && !(property in parent && this[property] === parent[property]); }; } members = null; return isProperty.call(this, property); }; } // Internal: Normalizes the `for...in` iteration algorithm across // environments. Each enumerated key is yielded to a `callback` function. forEach = function (object, callback) { var size = 0, Properties, members, property; // Tests for bugs in the current environment's `for...in` algorithm. The // `valueOf` property inherits the non-enumerable flag from // `Object.prototype` in older versions of IE, Netscape, and Mozilla. (Properties = function () { this.valueOf = 0; }).prototype.valueOf = 0; // Iterate over a new instance of the `Properties` class. members = new Properties(); for (property in members) { // Ignore all properties inherited from `Object.prototype`. if (isProperty.call(members, property)) { size++; } } Properties = members = null; // Normalize the iteration algorithm. if (!size) { // A list of non-enumerable properties inherited from `Object.prototype`. members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable // properties. forEach = function (object, callback) { var isFunction = getClass.call(object) == functionClass, property, length; var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; for (property in object) { // Gecko <= 1.0 enumerates the `prototype` property of functions under // certain conditions; IE does not. if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { callback(property); } } // Manually invoke the callback for each non-enumerable property. for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); }; } else if (size == 2) { // Safari <= 2.0.4 enumerates shadowed properties twice. forEach = function (object, callback) { // Create a set of iterated properties. var members = {}, isFunction = getClass.call(object) == functionClass, property; for (property in object) { // Store each property name to prevent double enumeration. The // `prototype` property of functions is not enumerated due to cross- // environment inconsistencies. if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { callback(property); } } }; } else { // No bugs detected; use the standard `for...in` algorithm. forEach = function (object, callback) { var isFunction = getClass.call(object) == functionClass, property, isConstructor; for (property in object) { if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { callback(property); } } // Manually invoke the callback for the `constructor` property due to // cross-environment inconsistencies. if (isConstructor || isProperty.call(object, (property = "constructor"))) { callback(property); } }; } return forEach(object, callback); }; // Public: Serializes a JavaScript `value` as a JSON string. The optional // `filter` argument may specify either a function that alters how object and // array members are serialized, or an array of strings and numbers that // indicates which properties should be serialized. The optional `width` // argument may be either a string or number that specifies the indentation // level of the output. if (!has("json-stringify")) { // Internal: A map of control characters and their escaped equivalents. var Escapes = { 92: "\\\\", 34: '\\"', 8: "\\b", 12: "\\f", 10: "\\n", 13: "\\r", 9: "\\t" }; // Internal: Converts `value` into a zero-padded string such that its // length is at least equal to `width`. The `width` must be <= 6. var leadingZeroes = "000000"; var toPaddedString = function (width, value) { // The `|| 0` expression is necessary to work around a bug in // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. return (leadingZeroes + (value || 0)).slice(-width); }; // Internal: Double-quotes a string `value`, replacing all ASCII control // characters (characters with code unit values between 0 and 31) with // their escaped equivalents. This is an implementation of the // `Quote(value)` operation defined in ES 5.1 section 15.12.3. var unicodePrefix = "\\u00"; var quote = function (value) { var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); for (; index < length; index++) { var charCode = value.charCodeAt(index); // If the character is a control character, append its Unicode or // shorthand escape sequence; otherwise, append the character as-is. switch (charCode) { case 8: case 9: case 10: case 12: case 13: case 34: case 92: result += Escapes[charCode]; break; default: if (charCode < 32) { result += unicodePrefix + toPaddedString(2, charCode.toString(16)); break; } result += useCharIndex ? symbols[index] : value.charAt(index); } } return result + '"'; }; // Internal: Recursively serializes an object. Implements the // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; try { // Necessary for host object support. value = object[property]; } catch (exception) {} if (typeof value == "object" && value) { className = getClass.call(value); if (className == dateClass && !isProperty.call(value, "toJSON")) { if (value > -1 / 0 && value < 1 / 0) { // Dates are serialized according to the `Date#toJSON` method // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 // for the ISO 8601 date time string format. if (getDay) { // Manually compute the year, month, date, hours, minutes, // seconds, and milliseconds if the `getUTC*` methods are // buggy. Adapted from @Yaffle's `date-shim` project. date = floor(value / 864e5); for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); date = 1 + date - getDay(year, month); // The `time` value specifies the time within the day (see ES // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used // to compute `A modulo B`, as the `%` operator does not // correspond to the `modulo` operation for negative numbers. time = (value % 864e5 + 864e5) % 864e5; // The hours, minutes, seconds, and milliseconds are obtained by // decomposing the time within the day. See section 15.9.1.10. hours = floor(time / 36e5) % 24; minutes = floor(time / 6e4) % 60; seconds = floor(time / 1e3) % 60; milliseconds = time % 1e3; } else { year = value.getUTCFullYear(); month = value.getUTCMonth(); date = value.getUTCDate(); hours = value.getUTCHours(); minutes = value.getUTCMinutes(); seconds = value.getUTCSeconds(); milliseconds = value.getUTCMilliseconds(); } // Serialize extended years correctly. value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + // Months, dates, hours, minutes, and seconds should have two // digits; milliseconds should have three. "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + // Milliseconds are optional in ES 5.0, but required in 5.1. "." + toPaddedString(3, milliseconds) + "Z"; } else { value = null; } } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 // ignores all `toJSON` methods on these objects unless they are // defined directly on an instance. value = value.toJSON(property); } } if (callback) { // If a replacement function was provided, call it to obtain the value // for serialization. value = callback.call(object, property, value); } if (value === null) { return "null"; } className = getClass.call(value); if (className == booleanClass) { // Booleans are represented literally. return "" + value; } else if (className == numberClass) { // JSON numbers must be finite. `Infinity` and `NaN` are serialized as // `"null"`. return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; } else if (className == stringClass) { // Strings are double-quoted and escaped. return quote("" + value); } // Recursively serialize objects and arrays. if (typeof value == "object") { // Check for cyclic structures. This is a linear search; performance // is inversely proportional to the number of unique nested objects. for (length = stack.length; length--;) { if (stack[length] === value) { // Cyclic structures cannot be serialized by `JSON.stringify`. throw TypeError(); } } // Add the object to the stack of traversed objects. stack.push(value); results = []; // Save the current indentation level and indent one additional level. prefix = indentation; indentation += whitespace; if (className == arrayClass) { // Recursively serialize array elements. for (index = 0, length = value.length; index < length; index++) { element = serialize(index, value, callback, properties, whitespace, indentation, stack); results.push(element === undef ? "null" : element); } result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { // Recursively serialize object members. Members are selected from // either a user-specified list of property names, or the object // itself. forEach(properties || value, function (property) { var element = serialize(property, value, callback, properties, whitespace, indentation, stack); if (element !== undef) { // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} // is not the empty string, let `member` {quote(property) + ":"} // be the concatenation of `member` and the `space` character." // The "`space` character" refers to the literal space // character, not the `space` {width} argument provided to // `JSON.stringify`. results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } }); result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } // Remove the object from the traversed object stack. stack.pop(); return result; } }; // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. exports.stringify = function (source, filter, width) { var whitespace, callback, properties, className; if (objectTypes[typeof filter] && filter) { if ((className = getClass.call(filter)) == functionClass) { callback = filter; } else if (className == arrayClass) { // Convert the property names array into a makeshift set. properties = {}; for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } } if (width) { if ((className = getClass.call(width)) == numberClass) { // Convert the `width` to an integer and create a string containing // `width` number of space characters. if ((width -= width % 1) > 0) { for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); } } else if (className == stringClass) { whitespace = width.length <= 10 ? width : width.slice(0, 10); } } // Opera <= 7.54u2 discards the values associated with empty string keys // (`""`) only if they are used directly within an object member list // (e.g., `!("" in { "": 1})`). return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; } // Public: Parses a JSON source string. if (!has("json-parse")) { var fromCharCode = String.fromCharCode; // Internal: A map of escaped control characters and their unescaped // equivalents. var Unescapes = { 92: "\\", 34: '"', 47: "/", 98: "\b", 116: "\t", 110: "\n", 102: "\f", 114: "\r" }; // Internal: Stores the parser state. var Index, Source; // Internal: Resets the parser state and throws a `SyntaxError`. var abort = function () { Index = Source = null; throw SyntaxError(); }; // Internal: Returns the next token, or `"$"` if the parser has reached // the end of the source string. A token may be a string, number, `null` // literal, or Boolean literal. var lex = function () { var source = Source, length = source.length, value, begin, position, isSigned, charCode; while (Index < length) { charCode = source.charCodeAt(Index); switch (charCode) { case 9: case 10: case 13: case 32: // Skip whitespace tokens, including tabs, carriage returns, line // feeds, and space characters. Index++; break; case 123: case 125: case 91: case 93: case 58: case 44: // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at // the current position. value = charIndexBuggy ? source.charAt(Index) : source[Index]; Index++; return value; case 34: // `"` delimits a JSON string; advance to the next character and // begin parsing the string. String tokens are prefixed with the // sentinel `@` character to distinguish them from punctuators and // end-of-string tokens. for (value = "@", Index++; Index < length;) { charCode = source.charCodeAt(Index); if (charCode < 32) { // Unescaped ASCII control characters (those with a code unit // less than the space character) are not permitted. abort(); } else if (charCode == 92) { // A reverse solidus (`\`) marks the beginning of an escaped // control character (including `"`, `\`, and `/`) or Unicode // escape sequence. charCode = source.charCodeAt(++Index); switch (charCode) { case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: // Revive escaped control characters. value += Unescapes[charCode]; Index++; break; case 117: // `\u` marks the beginning of a Unicode escape sequence. // Advance to the first character and validate the // four-digit code point. begin = ++Index; for (position = Index + 4; Index < position; Index++) { charCode = source.charCodeAt(Index); // A valid sequence comprises four hexdigits (case- // insensitive) that form a single hexadecimal value. if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { // Invalid Unicode escape sequence. abort(); } } // Revive the escaped character. value += fromCharCode("0x" + source.slice(begin, Index)); break; default: // Invalid escape sequence. abort(); } } else { if (charCode == 34) { // An unescaped double-quote character marks the end of the // string. break; } charCode = source.charCodeAt(Index); begin = Index; // Optimize for the common case where a string is valid. while (charCode >= 32 && charCode != 92 && charCode != 34) { charCode = source.charCodeAt(++Index); } // Append the string as-is. value += source.slice(begin, Index); } } if (source.charCodeAt(Index) == 34) { // Advance to the next character and return the revived string. Index++; return value; } // Unterminated string. abort(); default: // Parse numbers and literals. begin = Index; // Advance past the negative sign, if one is specified. if (charCode == 45) { isSigned = true; charCode = source.charCodeAt(++Index); } // Parse an integer or floating-point value. if (charCode >= 48 && charCode <= 57) { // Leading zeroes are interpreted as octal literals. if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { // Illegal octal literal. abort(); } isSigned = false; // Parse the integer component. for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); // Floats cannot contain a leading decimal point; however, this // case is already accounted for by the parser. if (source.charCodeAt(Index) == 46) { position = ++Index; // Parse the decimal component. for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); if (position == Index) { // Illegal trailing decimal. abort(); } Index = position; } // Parse exponents. The `e` denoting the exponent is // case-insensitive. charCode = source.charCodeAt(Index); if (charCode == 101 || charCode == 69) { charCode = source.charCodeAt(++Index); // Skip past the sign following the exponent, if one is // specified. if (charCode == 43 || charCode == 45) { Index++; } // Parse the exponential component. for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); if (position == Index) { // Illegal empty exponent. abort(); } Index = position; } // Coerce the parsed value to a JavaScript number. return +source.slice(begin, Index); } // A negative sign may only precede numbers. if (isSigned) { abort(); } // `true`, `false`, and `null` literals. if (source.slice(Index, Index + 4) == "true") { Index += 4; return true; } else if (source.slice(Index, Index + 5) == "false") { Index += 5; return false; } else if (source.slice(Index, Index + 4) == "null") { Index += 4; return null; } // Unrecognized token. abort(); } } // Return the sentinel `$` character if the parser has reached the end // of the source string. return "$"; }; // Internal: Parses a JSON `value` token. var get = function (value) { var results, hasMembers; if (value == "$") { // Unexpected end of input. abort(); } if (typeof value == "string") { if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { // Remove the sentinel `@` character. return value.slice(1); } // Parse object and array literals. if (value == "[") { // Parses a JSON array, returning a new JavaScript array. results = []; for (;; hasMembers || (hasMembers = true)) { value = lex(); // A closing square bracket marks the end of the array literal. if (value == "]") { break; } // If the array literal contains elements, the current token // should be a comma separating the previous element from the // next. if (hasMembers) { if (value == ",") { value = lex(); if (value == "]") { // Unexpected trailing `,` in array literal. abort(); } } else { // A `,` must separate each array element. abort(); } } // Elisions and leading commas are not permitted. if (value == ",") { abort(); } results.push(get(value)); } return results; } else if (value == "{") { // Parses a JSON object, returning a new JavaScript object. results = {}; for (;; hasMembers || (hasMembers = true)) { value = lex(); // A closing curly brace marks the end of the object literal. if (value == "}") { break; } // If the object literal contains members, the current token // should be a comma separator. if (hasMembers) { if (value == ",") { value = lex(); if (value == "}") { // Unexpected trailing `,` in object literal. abort(); } } else { // A `,` must separate each object member. abort(); } } // Leading commas are not permitted, object property names must be // double-quoted strings, and a `:` must separate each property // name and value. if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { abort(); } results[value.slice(1)] = get(lex()); } return results; } // Unexpected token encountered. abort(); } return value; }; // Internal: Updates a traversed object member. var update = function (source, property, callback) { var element = walk(source, property, callback); if (element === undef) { delete source[property]; } else { source[property] = element; } }; // Internal: Recursively traverses a parsed JSON object, invoking the // `callback` function for each value. This is an implementation of the // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. var walk = function (source, property, callback) { var value = source[property], length; if (typeof value == "object" && value) { // `forEach` can't be used to traverse an array in Opera <= 8.54 // because its `Object#hasOwnProperty` implementation returns `false` // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). if (getClass.call(value) == arrayClass) { for (length = value.length; length--;) { update(value, length, callback); } } else { forEach(value, function (property) { update(value, property, callback); }); } } return callback.call(source, property, value); }; // Public: `JSON.parse`. See ES 5.1 section 15.12.2. exports.parse = function (source, callback) { var result, value; Index = 0; Source = "" + source; result = get(lex()); // If a JSON string contains multiple tokens, it is invalid. if (lex() != "$") { abort(); } // Reset the parser state. Index = Source = null; return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; } } exports["runInContext"] = runInContext; return exports; } if (freeExports && !isLoader) { // Export for CommonJS environments. runInContext(root, freeExports); } else { // Export for web browsers and JavaScript engines. var nativeJSON = root.JSON, previousJSON = root["JSON3"], isRestored = false; var JSON3 = runInContext(root, (root["JSON3"] = { // Public: Restores the original value of the global `JSON` object and // returns a reference to the `JSON3` object. "noConflict": function () { if (!isRestored) { isRestored = true; root.JSON = nativeJSON; root["JSON3"] = previousJSON; nativeJSON = previousJSON = null; } return JSON3; } })); root.JSON = { "parse": JSON3.parse, "stringify": JSON3.stringify }; } // Export for asynchronous module loaders. if (isLoader) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { return JSON3; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } }).call(this); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module), __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) /***/ }), /***/ "./node_modules/jsonwebtoken/decode.js": /*!*********************************************!*\ !*** ./node_modules/jsonwebtoken/decode.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var jws = __webpack_require__(/*! jws */ "./node_modules/jws/index.js"); module.exports = function (jwt, options) { options = options || {}; var decoded = jws.decode(jwt, options); if (!decoded) { return null; } var payload = decoded.payload; //try parse the payload if(typeof payload === 'string') { try { var obj = JSON.parse(payload); if(obj !== null && typeof obj === 'object') { payload = obj; } } catch (e) { } } //return header if `complete` option is enabled. header includes claims //such as `kid` and `alg` used to select the key within a JWKS needed to //verify the signature if (options.complete === true) { return { header: decoded.header, payload: payload, signature: decoded.signature }; } return payload; }; /***/ }), /***/ "./node_modules/jsonwebtoken/index.js": /*!********************************************!*\ !*** ./node_modules/jsonwebtoken/index.js ***! \********************************************/ /*! dynamic exports provided */ /*! exports used: decode */ /***/ (function(module, exports, __webpack_require__) { module.exports = { decode: __webpack_require__(/*! ./decode */ "./node_modules/jsonwebtoken/decode.js"), verify: __webpack_require__(/*! ./verify */ "./node_modules/jsonwebtoken/verify.js"), sign: __webpack_require__(/*! ./sign */ "./node_modules/jsonwebtoken/sign.js"), JsonWebTokenError: __webpack_require__(/*! ./lib/JsonWebTokenError */ "./node_modules/jsonwebtoken/lib/JsonWebTokenError.js"), NotBeforeError: __webpack_require__(/*! ./lib/NotBeforeError */ "./node_modules/jsonwebtoken/lib/NotBeforeError.js"), TokenExpiredError: __webpack_require__(/*! ./lib/TokenExpiredError */ "./node_modules/jsonwebtoken/lib/TokenExpiredError.js"), }; /***/ }), /***/ "./node_modules/jsonwebtoken/lib/JsonWebTokenError.js": /*!************************************************************!*\ !*** ./node_modules/jsonwebtoken/lib/JsonWebTokenError.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { var JsonWebTokenError = function (message, error) { Error.call(this, message); if(Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } this.name = 'JsonWebTokenError'; this.message = message; if (error) this.inner = error; }; JsonWebTokenError.prototype = Object.create(Error.prototype); JsonWebTokenError.prototype.constructor = JsonWebTokenError; module.exports = JsonWebTokenError; /***/ }), /***/ "./node_modules/jsonwebtoken/lib/NotBeforeError.js": /*!*********************************************************!*\ !*** ./node_modules/jsonwebtoken/lib/NotBeforeError.js ***! \*********************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var JsonWebTokenError = __webpack_require__(/*! ./JsonWebTokenError */ "./node_modules/jsonwebtoken/lib/JsonWebTokenError.js"); var NotBeforeError = function (message, date) { JsonWebTokenError.call(this, message); this.name = 'NotBeforeError'; this.date = date; }; NotBeforeError.prototype = Object.create(JsonWebTokenError.prototype); NotBeforeError.prototype.constructor = NotBeforeError; module.exports = NotBeforeError; /***/ }), /***/ "./node_modules/jsonwebtoken/lib/TokenExpiredError.js": /*!************************************************************!*\ !*** ./node_modules/jsonwebtoken/lib/TokenExpiredError.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var JsonWebTokenError = __webpack_require__(/*! ./JsonWebTokenError */ "./node_modules/jsonwebtoken/lib/JsonWebTokenError.js"); var TokenExpiredError = function (message, expiredAt) { JsonWebTokenError.call(this, message); this.name = 'TokenExpiredError'; this.expiredAt = expiredAt; }; TokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype); TokenExpiredError.prototype.constructor = TokenExpiredError; module.exports = TokenExpiredError; /***/ }), /***/ "./node_modules/jsonwebtoken/lib/psSupported.js": /*!******************************************************!*\ !*** ./node_modules/jsonwebtoken/lib/psSupported.js ***! \******************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {var semver = __webpack_require__(/*! semver */ "./node_modules/jsonwebtoken/node_modules/semver/semver.js"); module.exports = semver.satisfies(process.version, '^6.12.0 || >=8.0.0'); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/jsonwebtoken/lib/timespan.js": /*!***************************************************!*\ !*** ./node_modules/jsonwebtoken/lib/timespan.js ***! \***************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var ms = __webpack_require__(/*! ms */ "./node_modules/jsonwebtoken/node_modules/ms/index.js"); module.exports = function (time, iat) { var timestamp = iat || Math.floor(Date.now() / 1000); if (typeof time === 'string') { var milliseconds = ms(time); if (typeof milliseconds === 'undefined') { return; } return Math.floor(timestamp + milliseconds / 1000); } else if (typeof time === 'number') { return timestamp + time; } else { return; } }; /***/ }), /***/ "./node_modules/jsonwebtoken/node_modules/ms/index.js": /*!************************************************************!*\ !*** ./node_modules/jsonwebtoken/node_modules/ms/index.js ***! \************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * Helpers. */ var s = 1000; var m = s * 60; var h = m * 60; var d = h * 24; var w = d * 7; var y = d * 365.25; /** * Parse or format the given `val`. * * Options: * * - `long` verbose formatting [false] * * @param {String|Number} val * @param {Object} [options] * @throws {Error} throw an error if val is not a non-empty string or a number * @return {String|Number} * @api public */ module.exports = function(val, options) { options = options || {}; var type = typeof val; if (type === 'string' && val.length > 0) { return parse(val); } else if (type === 'number' && isNaN(val) === false) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error( 'val is not a non-empty string or a valid number. val=' + JSON.stringify(val) ); }; /** * Parse the given `str` and return milliseconds. * * @param {String} str * @return {Number} * @api private */ function parse(str) { str = String(str); if (str.length > 100) { return; } var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( str ); if (!match) { return; } var n = parseFloat(match[1]); var type = (match[2] || 'ms').toLowerCase(); switch (type) { case 'years': case 'year': case 'yrs': case 'yr': case 'y': return n * y; case 'weeks': case 'week': case 'w': return n * w; case 'days': case 'day': case 'd': return n * d; case 'hours': case 'hour': case 'hrs': case 'hr': case 'h': return n * h; case 'minutes': case 'minute': case 'mins': case 'min': case 'm': return n * m; case 'seconds': case 'second': case 'secs': case 'sec': case 's': return n * s; case 'milliseconds': case 'millisecond': case 'msecs': case 'msec': case 'ms': return n; default: return undefined; } } /** * Short format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function fmtShort(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return Math.round(ms / d) + 'd'; } if (msAbs >= h) { return Math.round(ms / h) + 'h'; } if (msAbs >= m) { return Math.round(ms / m) + 'm'; } if (msAbs >= s) { return Math.round(ms / s) + 's'; } return ms + 'ms'; } /** * Long format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return plural(ms, msAbs, d, 'day'); } if (msAbs >= h) { return plural(ms, msAbs, h, 'hour'); } if (msAbs >= m) { return plural(ms, msAbs, m, 'minute'); } if (msAbs >= s) { return plural(ms, msAbs, s, 'second'); } return ms + ' ms'; } /** * Pluralization helper. */ function plural(ms, msAbs, n, name) { var isPlural = msAbs >= n * 1.5; return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); } /***/ }), /***/ "./node_modules/jsonwebtoken/node_modules/semver/semver.js": /*!*****************************************************************!*\ !*** ./node_modules/jsonwebtoken/node_modules/semver/semver.js ***! \*****************************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {exports = module.exports = SemVer var debug /* istanbul ignore next */ if (typeof process === 'object' && Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}) && Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).NODE_DEBUG && /\bsemver\b/i.test(Object({"NODE_ENV":"development","PUBLIC_URL":"","AppBuildVersion":"a7200c75","AppBuildCommitHash":"a7200c7540675ee0d47979442bb7702040f51de6","AppBuildBranch":"rc/2021/06/03-2.27-pp","REACT_APP_API_RESPONSE_DATE_TIME_FORMAT":"","REACT_APP_BANKING_EMAIL":"billing@fidelitypayment.com","REACT_APP_BANKING_SERVICES_EMAIL":"efriedlander@cardknox.com","REACT_APP_CARDKNOX_CUSTOMER_SERVICE_EMAIL":"cs@cardknox.com","REACT_APP_CDN_URL":"https://secure-cdn.cardknox.com/partner/","REACT_APP_CHECK_DATE_FORMAT":"M/D/YYYY","REACT_APP_CUSTOMER_SERVICE_EMAIL":"cs@fidelitypayment.com","REACT_APP_DATE_FORMAT":"MMM D, YYYY","REACT_APP_DATE_TIME_FORMAT":"M/D/YYYY, HH:mm:ss A","REACT_APP_DEPLOYMENTS_EMAIL":"deployments@fidelitypayment.com","REACT_APP_DISPLAY_DATE_FORMAT":"MM/DD/YYYY","REACT_APP_DISPLAY_DATE_TIME_FORMAT":"M/D/YYYY h:mm:ss A","REACT_APP_MERCHANT_PORTAL_URL":"https://devportal.cardknox.com","REACT_APP_PCI_GROUP_EMAIL":"pcigroup@fidelitypayment.com","REACT_APP_PORTAL_API":"https://localhost:44368/api","REACT_APP_PORTAL_API_VERSION":"4.5.5","REACT_APP_POS_SUPPORT_EMAIL":"support@hifipos.com","REACT_APP_REVIEW_PRICING_EMAIL":"reviewpricing@fidelitypayment.com","REACT_APP_RISK_RELATED_SUPPORT_EMAIL":"risk@fidelitypayment.com","REACT_APP_SHORT_DATE_TIME_FORMAT":"MM/DD/YYYY HH:mm","REACT_APP_SIGNATURE_ACCESS_ID":"ce60a635-12e1-480c-b5b9-d2678cd6b018","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_AMEX_ID":"113101","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_EBT_ID":"113086","REACT_APP_SIGNATURE_ADD_REMOVE_ENTITLEMENTS_PIN_DEBIT_ID":"113075","REACT_APP_SIGNATURE_ADD_REMOVE_WIRELESS_FEE_FD_ID":"113105","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_ERR_PRICING_ID":"112985","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_PASS_THROUGH_PRICING_ID":"112845","REACT_APP_SIGNATURE_AMEX_OPT_BLUE_TIERED_PRICING_ID":"112849","REACT_APP_SIGNATURE_AMEX_OPT_FLAT_RATE_PRICING_ID":"112986","REACT_APP_SIGNATURE_API":"https://api.pactsafe.com/v1.1","REACT_APP_SIGNATURE_AUTH_TOKEN":"xzo0PEZQ2IgQyLrMGoRsI4AXEGd4Ww0baqdXLzZQb~Q_","REACT_APP_SIGNATURE_CLIENT_ID":"5dca239b47d3f209102f6cde","REACT_APP_SIGNATURE_ELAVON_SIGNATURE_CONTRACT_ID":"58327","REACT_APP_SIGNATURE_ELAVON_WIRELESS_FEE_ID":"112825","REACT_APP_SIGNATURE_FD_BANK_INFORMATION_ID":"109424","REACT_APP_SIGNATURE_FD_CONFIRMATION_CONTRACT_ID":"58140","REACT_APP_SIGNATURE_FD_SIGNATURE_CONTRACT_ID":"58326","REACT_APP_SIGNATURE_MPA_CONTRACT_ID":"72467","REACT_APP_SIGNATURE_REINCORPORATION_BANK_INFORMATION_ID":"112828","REACT_APP_SIGNATURE_REINCORPORATION_CONTRACT_ID":"109392","REACT_APP_SIGNATURE_SITE_ID":"5294","REACT_APP_TECH_SUPPORT_EMAIL":"techsupport@fidelitypayment.com","REACT_APP_TICKET_SERVICE_EMAIL":"tickets@fidelitypayment.com","REACT_APP_TIME_FORMAT":"HH:mm","REACT_APP_TODAY_DATE_TIME_FORMAT":"[Today], HH:mm:ss A","REACT_APP_USE_TESTMODE_PACTSAFE":"0","REACT_APP_VERSION":"0.0.1"}).NODE_DEBUG)) { debug = function () { var args = Array.prototype.slice.call(arguments, 0) args.unshift('SEMVER') console.log.apply(console, args) } } else { debug = function () {} } // Note: this is the semver.org version of the spec that it implements // Not necessarily the package version of this code. exports.SEMVER_SPEC_VERSION = '2.0.0' var MAX_LENGTH = 256 var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991 // Max safe segment length for coercion. var MAX_SAFE_COMPONENT_LENGTH = 16 // The actual regexps go on exports.re var re = exports.re = [] var src = exports.src = [] var R = 0 // The following Regular Expressions can be used for tokenizing, // validating, and parsing SemVer version strings. // ## Numeric Identifier // A single `0`, or a non-zero digit followed by zero or more digits. var NUMERICIDENTIFIER = R++ src[NUMERICIDENTIFIER] = '0|[1-9]\\d*' var NUMERICIDENTIFIERLOOSE = R++ src[NUMERICIDENTIFIERLOOSE] = '[0-9]+' // ## Non-numeric Identifier // Zero or more digits, followed by a letter or hyphen, and then zero or // more letters, digits, or hyphens. var NONNUMERICIDENTIFIER = R++ src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' // ## Main Version // Three dot-separated numeric identifiers. var MAINVERSION = R++ src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')' var MAINVERSIONLOOSE = R++ src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')' // ## Pre-release Version Identifier // A numeric identifier, or a non-numeric identifier. var PRERELEASEIDENTIFIER = R++ src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + '|' + src[NONNUMERICIDENTIFIER] + ')' var PRERELEASEIDENTIFIERLOOSE = R++ src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + '|' + src[NONNUMERICIDENTIFIER] + ')' // ## Pre-release Version // Hyphen, followed by one or more dot-separated pre-release version // identifiers. var PRERELEASE = R++ src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))' var PRERELEASELOOSE = R++ src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))' // ## Build Metadata Identifier // Any combination of digits, letters, or hyphens. var BUILDIDENTIFIER = R++ src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+' // ## Build Metadata // Plus sign, followed by one or more period-separated build metadata // identifiers. var BUILD = R++ src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))' // ## Full Version String // A main version, followed optionally by a pre-release version and // build metadata. // Note that the only major, minor, patch, and pre-release sections of // the version string are capturing groups. The build metadata is not a // capturing group, because it should not ever be used in version // comparison. var FULL = R++ var FULLPLAIN = 'v?' + src[MAINVERSION] + src[PRERELEASE] + '?' + src[BUILD] + '?' src[FULL] = '^' + FULLPLAIN + '$' // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty // common in the npm registry. var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + src[PRERELEASELOOSE] + '?' + src[BUILD] + '?' var LOOSE = R++ src[LOOSE] = '^' + LOOSEPLAIN + '$' var GTLT = R++ src[GTLT] = '((?:<|>)?=?)' // Something like "2.*" or "1.2.x". // Note that "x.x" is a valid xRange identifer, meaning "any version" // Only the first item is strictly required. var XRANGEIDENTIFIERLOOSE = R++ src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' var XRANGEIDENTIFIER = R++ src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*' var XRANGEPLAIN = R++ src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:' + src[PRERELEASE] + ')?' + src[BUILD] + '?' + ')?)?' var XRANGEPLAINLOOSE = R++ src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:' + src[PRERELEASELOOSE] + ')?' + src[BUILD] + '?' + ')?)?' var XRANGE = R++ src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$' var XRANGELOOSE = R++ src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$' // Coercion. // Extract anything that could conceivably be a part of a valid semver var COERCE = R++ src[COERCE] = '(?:^|[^\\d])' + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:$|[^\\d])' // Tilde ranges. // Meaning is "reasonably at or greater than" var LONETILDE = R++ src[LONETILDE] = '(?:~>?)' var TILDETRIM = R++ src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+' re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g') var tildeTrimReplace = '$1~' var TILDE = R++ src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$' var TILDELOOSE = R++ src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$' // Caret ranges. // Meaning is "at least and backwards compatible with" var LONECARET = R++ src[LONECARET] = '(?:\\^)' var CARETTRIM = R++ src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+' re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g') var caretTrimReplace = '$1^' var CARET = R++ src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$' var CARETLOOSE = R++ src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$' // A simple gt/lt/eq thing, or just "" to indicate "any version" var COMPARATORLOOSE = R++ src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$' var COMPARATOR = R++ src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$' // An expression to strip any whitespace between the gtlt and the thing // it modifies, so that `> 1.2.3` ==> `>1.2.3` var COMPARATORTRIM = R++ src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')' // this one has to use the /g flag re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g') var comparatorTrimReplace = '$1$2$3' // Something like `1.2.3 - 1.2.4` // Note that these all use the loose form, because they'll be // checked against either the strict or loose comparator form // later. var HYPHENRANGE = R++ src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAIN] + ')' + '\\s*$' var HYPHENRANGELOOSE = R++ src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAINLOOSE] + ')' + '\\s*$' // Star ranges basically just allow anything at all. var STAR = R++ src[STAR] = '(<|>)?=?\\s*\\*' // Compile to actual regexp objects. // All are flag-free, unless they were created above with a flag. for (var i = 0; i < R; i++) { debug(i, src[i]) if (!re[i]) { re[i] = new RegExp(src[i]) } } exports.parse = parse function parse (version, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (version instanceof SemVer) { return version } if (typeof version !== 'string') { return null } if (version.length > MAX_LENGTH) { return null } var r = options.loose ? re[LOOSE] : re[FULL] if (!r.test(version)) { return null } try { return new SemVer(version, options) } catch (er) { return null } } exports.valid = valid function valid (version, options) { var v = parse(version, options) return v ? v.version : null } exports.clean = clean function clean (version, options) { var s = parse(version.trim().replace(/^[=v]+/, ''), options) return s ? s.version : null } exports.SemVer = SemVer function SemVer (version, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (version instanceof SemVer) { if (version.loose === options.loose) { return version } else { version = version.version } } else if (typeof version !== 'string') { throw new TypeError('Invalid Version: ' + version) } if (version.length > MAX_LENGTH) { throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') } if (!(this instanceof SemVer)) { return new SemVer(version, options) } debug('SemVer', version, options) this.options = options this.loose = !!options.loose var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]) if (!m) { throw new TypeError('Invalid Version: ' + version) } this.raw = version // these are actually numbers this.major = +m[1] this.minor = +m[2] this.patch = +m[3] if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError('Invalid major version') } if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError('Invalid minor version') } if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError('Invalid patch version') } // numberify any prerelease numeric ids if (!m[4]) { this.prerelease = [] } else { this.prerelease = m[4].split('.').map(function (id) { if (/^[0-9]+$/.test(id)) { var num = +id if (num >= 0 && num < MAX_SAFE_INTEGER) { return num } } return id }) } this.build = m[5] ? m[5].split('.') : [] this.format() } SemVer.prototype.format = function () { this.version = this.major + '.' + this.minor + '.' + this.patch if (this.prerelease.length) { this.version += '-' + this.prerelease.join('.') } return this.version } SemVer.prototype.toString = function () { return this.version } SemVer.prototype.compare = function (other) { debug('SemVer.compare', this.version, this.options, other) if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } return this.compareMain(other) || this.comparePre(other) } SemVer.prototype.compareMain = function (other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch) } SemVer.prototype.comparePre = function (other) { if (!(other instanceof SemVer)) { other = new SemVer(other, this.options) } // NOT having a prerelease is > having one if (this.prerelease.length && !other.prerelease.length) { return -1 } else if (!this.prerelease.length && other.prerelease.length) { return 1 } else if (!this.prerelease.length && !other.prerelease.length) { return 0 } var i = 0 do { var a = this.prerelease[i] var b = other.prerelease[i] debug('prerelease compare', i, a, b) if (a === undefined && b === undefined) { return 0 } else if (b === undefined) { return 1 } else if (a === undefined) { return -1 } else if (a === b) { continue } else { return compareIdentifiers(a, b) } } while (++i) } // preminor will bump the version up to the next minor release, and immediately // down to pre-release. premajor and prepatch work the same way. SemVer.prototype.inc = function (release, identifier) { switch (release) { case 'premajor': this.prerelease.length = 0 this.patch = 0 this.minor = 0 this.major++ this.inc('pre', identifier) break case 'preminor': this.prerelease.length = 0 this.patch = 0 this.minor++ this.inc('pre', identifier) break case 'prepatch': // If this is already a prerelease, it will bump to the next version // drop any prereleases that might already exist, since they are not // relevant at this point. this.prerelease.length = 0 this.inc('patch', identifier) this.inc('pre', identifier) break // If the input is a non-prerelease version, this acts the same as // prepatch. case 'prerelease': if (this.prerelease.length === 0) { this.inc('patch', identifier) } this.inc('pre', identifier) break case 'major': // If this is a pre-major version, bump up to the same major version. // Otherwise increment major. // 1.0.0-5 bumps to 1.0.0 // 1.1.0 bumps to 2.0.0 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { this.major++ } this.minor = 0 this.patch = 0 this.prerelease = [] break case 'minor': // If this is a pre-minor version, bump up to the same minor version. // Otherwise increment minor. // 1.2.0-5 bumps to 1.2.0 // 1.2.1 bumps to 1.3.0 if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++ } this.patch = 0 this.prerelease = [] break case 'patch': // If this is not a pre-release version, it will increment the patch. // If it is a pre-release it will bump up to the same patch version. // 1.2.0-5 patches to 1.2.0 // 1.2.0 patches to 1.2.1 if (this.prerelease.length === 0) { this.patch++ } this.prerelease = [] break // This probably shouldn't be used publicly. // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. case 'pre': if (this.prerelease.length === 0) { this.prerelease = [0] } else { var i = this.prerelease.length while (--i >= 0) { if (typeof this.prerelease[i] === 'number') { this.prerelease[i]++ i = -2 } } if (i === -1) { // didn't increment anything this.prerelease.push(0) } } if (identifier) { // 1.2.0-beta.1 bumps to 1.2.0-beta.2, // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 if (this.prerelease[0] === identifier) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0] } } else { this.prerelease = [identifier, 0] } } break default: throw new Error('invalid increment argument: ' + release) } this.format() this.raw = this.version return this } exports.inc = inc function inc (version, release, loose, identifier) { if (typeof (loose) === 'string') { identifier = loose loose = undefined } try { return new SemVer(version, loose).inc(release, identifier).version } catch (er) { return null } } exports.diff = diff function diff (version1, version2) { if (eq(version1, version2)) { return null } else { var v1 = parse(version1) var v2 = parse(version2) var prefix = '' if (v1.prerelease.length || v2.prerelease.length) { prefix = 'pre' var defaultResult = 'prerelease' } for (var key in v1) { if (key === 'major' || key === 'minor' || key === 'patch') { if (v1[key] !== v2[key]) { return prefix + key } } } return defaultResult // may be undefined } } exports.compareIdentifiers = compareIdentifiers var numeric = /^[0-9]+$/ function compareIdentifiers (a, b) { var anum = numeric.test(a) var bnum = numeric.test(b) if (anum && bnum) { a = +a b = +b } return a === b ? 0 : (anum && !bnum) ? -1 : (bnum && !anum) ? 1 : a < b ? -1 : 1 } exports.rcompareIdentifiers = rcompareIdentifiers function rcompareIdentifiers (a, b) { return compareIdentifiers(b, a) } exports.major = major function major (a, loose) { return new SemVer(a, loose).major } exports.minor = minor function minor (a, loose) { return new SemVer(a, loose).minor } exports.patch = patch function patch (a, loose) { return new SemVer(a, loose).patch } exports.compare = compare function compare (a, b, loose) { return new SemVer(a, loose).compare(new SemVer(b, loose)) } exports.compareLoose = compareLoose function compareLoose (a, b) { return compare(a, b, true) } exports.rcompare = rcompare function rcompare (a, b, loose) { return compare(b, a, loose) } exports.sort = sort function sort (list, loose) { return list.sort(function (a, b) { return exports.compare(a, b, loose) }) } exports.rsort = rsort function rsort (list, loose) { return list.sort(function (a, b) { return exports.rcompare(a, b, loose) }) } exports.gt = gt function gt (a, b, loose) { return compare(a, b, loose) > 0 } exports.lt = lt function lt (a, b, loose) { return compare(a, b, loose) < 0 } exports.eq = eq function eq (a, b, loose) { return compare(a, b, loose) === 0 } exports.neq = neq function neq (a, b, loose) { return compare(a, b, loose) !== 0 } exports.gte = gte function gte (a, b, loose) { return compare(a, b, loose) >= 0 } exports.lte = lte function lte (a, b, loose) { return compare(a, b, loose) <= 0 } exports.cmp = cmp function cmp (a, op, b, loose) { switch (op) { case '===': if (typeof a === 'object') a = a.version if (typeof b === 'object') b = b.version return a === b case '!==': if (typeof a === 'object') a = a.version if (typeof b === 'object') b = b.version return a !== b case '': case '=': case '==': return eq(a, b, loose) case '!=': return neq(a, b, loose) case '>': return gt(a, b, loose) case '>=': return gte(a, b, loose) case '<': return lt(a, b, loose) case '<=': return lte(a, b, loose) default: throw new TypeError('Invalid operator: ' + op) } } exports.Comparator = Comparator function Comparator (comp, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (comp instanceof Comparator) { if (comp.loose === !!options.loose) { return comp } else { comp = comp.value } } if (!(this instanceof Comparator)) { return new Comparator(comp, options) } debug('comparator', comp, options) this.options = options this.loose = !!options.loose this.parse(comp) if (this.semver === ANY) { this.value = '' } else { this.value = this.operator + this.semver.version } debug('comp', this) } var ANY = {} Comparator.prototype.parse = function (comp) { var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR] var m = comp.match(r) if (!m) { throw new TypeError('Invalid comparator: ' + comp) } this.operator = m[1] if (this.operator === '=') { this.operator = '' } // if it literally is just '>' or '' then allow anything. if (!m[2]) { this.semver = ANY } else { this.semver = new SemVer(m[2], this.options.loose) } } Comparator.prototype.toString = function () { return this.value } Comparator.prototype.test = function (version) { debug('Comparator.test', version, this.options.loose) if (this.semver === ANY) { return true } if (typeof version === 'string') { version = new SemVer(version, this.options) } return cmp(version, this.operator, this.semver, this.options) } Comparator.prototype.intersects = function (comp, options) { if (!(comp instanceof Comparator)) { throw new TypeError('a Comparator is required') } if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } var rangeTmp if (this.operator === '') { rangeTmp = new Range(comp.value, options) return satisfies(this.value, rangeTmp, options) } else if (comp.operator === '') { rangeTmp = new Range(this.value, options) return satisfies(comp.semver, rangeTmp, options) } var sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>') var sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<') var sameSemVer = this.semver.version === comp.semver.version var differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<=') var oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && ((this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<')) var oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && ((this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>')) return sameDirectionIncreasing || sameDirectionDecreasing || (sameSemVer && differentDirectionsInclusive) || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan } exports.Range = Range function Range (range, options) { if (!options || typeof options !== 'object') { options = { loose: !!options, includePrerelease: false } } if (range instanceof Range) { if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { return range } else { return new Range(range.raw, options) } } if (range instanceof Comparator) { return new Range(range.value, options) } if (!(this instanceof Range)) { return new Range(range, options) } this.options = options this.loose = !!options.loose this.includePrerelease = !!options.includePrerelease // First, split based on boolean or || this.raw = range this.set = range.split(/\s*\|\|\s*/).map(function (range) { return this.parseRange(range.trim()) }, this).filter(function (c) { // throw out any that are not relevant for whatever reason return c.length }) if (!this.set.length) { throw new TypeError('Invalid SemVer Range: ' + range) } this.format() } Range.prototype.format = function () { this.range = this.set.map(function (comps) { return comps.join(' ').trim() }).join('||').trim() return this.range } Range.prototype.toString = function () { return this.range } Range.prototype.parseRange = function (range) { var loose = this.options.loose range = range.trim() // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE] range = range.replace(hr, hyphenReplace) debug('hyphen replace', range) // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace) debug('comparator trim', range, re[COMPARATORTRIM]) // `~ 1.2.3` => `~1.2.3` range = range.replace(re[TILDETRIM], tildeTrimReplace) // `^ 1.2.3` => `^1.2.3` range = range.replace(re[CARETTRIM], caretTrimReplace) // normalize spaces range = range.split(/\s+/).join(' ') // At this point, the range is completely trimmed and // ready to be split into comparators. var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR] var set = range.split(' ').map(function (comp) { return parseComparator(comp, this.options) }, this).join(' ').split(/\s+/) if (this.options.loose) { // in loose mode, throw out any that are not valid comparators set = set.filter(function (comp) { return !!comp.match(compRe) }) } set = set.map(function (comp) { return new Comparator(comp, this.options) }, this) return set } Range.prototype.intersects = function (range, options) { if (!(range instanceof Range)) { throw new TypeError('a Range is required') } return this.set.some(function (thisComparators) { return thisComparators.every(function (thisComparator) { return range.set.some(function (rangeComparators) { return rangeComparators.every(function (rangeComparator) { return thisComparator.intersects(rangeComparator, options) }) }) }) }) } // Mostly just for testing and legacy API reasons exports.toComparators = toComparators function toComparators (range, options) { return new Range(range, options).set.map(function (comp) { return comp.map(function (c) { return c.value }).join(' ').trim().split(' ') }) } // comprised of xranges, tildes, stars, and gtlt's at this point. // already replaced the hyphen ranges // turn into a set of JUST comparators. function parseComparator (comp, options) { debug('comp', comp, options) comp = replaceCarets(comp, options) debug('caret', comp) comp = replaceTildes(comp, options) debug('tildes', comp) comp = replaceXRanges(comp, options) debug('xrange', comp) comp = replaceStars(comp, options) debug('stars', comp) return comp } function isX (id) { return !id || id.toLowerCase() === 'x' || id === '*' } // ~, ~> --> * (any, kinda silly) // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 function replaceTildes (comp, options) { return comp.trim().split(/\s+/).map(function (comp) { return replaceTilde(comp, options) }).join(' ') } function replaceTilde (comp, options) { var r = options.loose ? re[TILDELOOSE] : re[TILDE] return comp.replace(r, function (_, M, m, p, pr) { debug('tilde', comp, _, M, m, p, pr) var ret if (isX(M)) { ret = '' } else if (isX(m)) { ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' } else if (isX(p)) { // ~1.2 == >=1.2.0 <1.3.0 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' } else if (pr) { debug('replaceTilde pr', pr) ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0' } else { // ~1.2.3 == >=1.2.3 <1.3.0 ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0' } debug('tilde return', ret) return ret }) } // ^ --> * (any, kinda silly) // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 // ^1.2.3 --> >=1.2.3 <2.0.0 // ^1.2.0 --> >=1.2.0 <2.0.0 function replaceCarets (comp, options) { return comp.trim().split(/\s+/).map(function (comp) { return replaceCaret(comp, options) }).join(' ') } function replaceCaret (comp, options) { debug('caret', comp, options) var r = options.loose ? re[CARETLOOSE] : re[CARET] return comp.replace(r, function (_, M, m, p, pr) { debug('caret', comp, _, M, m, p, pr) var ret if (isX(M)) { ret = '' } else if (isX(m)) { ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' } else if (isX(p)) { if (M === '0') { ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' } else { ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' } } else if (pr) { debug('replaceCaret pr', pr) if (M === '0') { if (m === '0') { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + m + '.' + (+p + 1) } else { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0' } } else { ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + (+M + 1) + '.0.0' } } else { debug('no pr') if (M === '0') { if (m === '0') { ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + m + '.' + (+p + 1) } else { ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0' } } else { ret = '>=' + M + '.' + m + '.' + p + ' <' + (+M + 1) + '.0.0' } } debug('caret return', ret) return ret }) } function replaceXRanges (comp, options) { debug('replaceXRanges', comp, options) return comp.split(/\s+/).map(function (comp) { return replaceXRange(comp, options) }).join(' ') } function replaceXRange (comp, options) { comp = comp.trim() var r = options.loose ? re[XRANGELOOSE] : re[XRANGE] return comp.replace(r, function (ret, gtlt, M, m, p, pr) { debug('xRange', comp, ret, gtlt, M, m, p, pr) var xM = isX(M) var xm = xM || isX(m) var xp = xm || isX(p) var anyX = xp if (gtlt === '=' && anyX) { gtlt = '' } if (xM) { if (gtlt === '>' || gtlt === '<') { // nothing is allowed ret = '<0.0.0' } else { // nothing is forbidden ret = '*' } } else if (gtlt && anyX) { // we know patch is an x, because we have any x at all. // replace X with 0 if (xm) { m = 0 } p = 0 if (gtlt === '>') { // >1 => >=2.0.0 // >1.2 => >=1.3.0 // >1.2.3 => >= 1.2.4 gtlt = '>=' if (xm) { M = +M + 1 m = 0 p = 0 } else { m = +m + 1 p = 0 } } else if (gtlt === '<=') { // <=0.7.x is actually <0.8.0, since any 0.7.x should // pass. Similarly, <=7.x is actually <8.0.0, etc. gtlt = '<' if (xm) { M = +M + 1 } else { m = +m + 1 } } ret = gtlt + M + '.' + m + '.' + p } else if (xm) { ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' } else if (xp) { ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' } debug('xRange return', ret) return ret }) } // Because * is AND-ed with everything else in the comparator, // and '' means "any version", just remove the *s entirely. function replaceStars (comp, options) { debug('replaceStars', comp, options) // Looseness is ignored here. star is always as loose as it gets! return comp.trim().replace(re[STAR], '') } // This function is passed to string.replace(re[HYPHENRANGE]) // M, m, patch, prerelease, build // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do // 1.2 - 3.4 => >=1.2.0 <3.5.0 function hyphenReplace ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { if (isX(fM)) { from = '' } else if (isX(fm)) { from = '>=' + fM + '.0.0' } else if (isX(fp)) { from = '>=' + fM + '.' + fm + '.0' } else { from = '>=' + from } if (isX(tM)) { to = '' } else if (isX(tm)) { to = '<' + (+tM + 1) + '.0.0' } else if (isX(tp)) { to = '<' + tM + '.' + (+tm + 1) + '.0' } else if (tpr) { to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr } else { to = '<=' + to } return (from + ' ' + to).trim() } // if ANY of the sets match ALL of its comparators, then pass Range.prototype.test = function (version) { if (!version) { return false } if (typeof version === 'string') { version = new SemVer(version, this.options) } for (var i = 0; i < this.set.length; i++) { if (testSet(this.set[i], version, this.options)) { return true } } return false } function testSet (set, version, options) { for (var i = 0; i < set.length; i++) { if (!set[i].test(version)) { return false } } if (version.prerelease.length && !options.includePrerelease) { // Find the set of versions that are allowed to have prereleases // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 // That should allow `1.2.3-pr.2` to pass. // However, `1.2.4-alpha.notready` should NOT be allowed, // even though it's within the range set by the comparators. for (i = 0; i < set.length; i++) { debug(set[i].semver) if (set[i].semver === ANY) { continue } if (set[i].semver.prerelease.length > 0) { var allowed = set[i].semver if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { return true } } } // Version has a -pre, but it's not one of the ones we like. return false } return true } exports.satisfies = satisfies function satisfies (version, range, options) { try { range = new Range(range, options) } catch (er) { return false } return range.test(version) } exports.maxSatisfying = maxSatisfying function maxSatisfying (versions, range, options) { var max = null var maxSV = null try { var rangeObj = new Range(range, options) } catch (er) { return null } versions.forEach(function (v) { if (rangeObj.test(v)) { // satisfies(v, range, options) if (!max || maxSV.compare(v) === -1) { // compare(max, v, true) max = v maxSV = new SemVer(max, options) } } }) return max } exports.minSatisfying = minSatisfying function minSatisfying (versions, range, options) { var min = null var minSV = null try { var rangeObj = new Range(range, options) } catch (er) { return null } versions.forEach(function (v) { if (rangeObj.test(v)) { // satisfies(v, range, options) if (!min || minSV.compare(v) === 1) { // compare(min, v, true) min = v minSV = new SemVer(min, options) } } }) return min } exports.minVersion = minVersion function minVersion (range, loose) { range = new Range(range, loose) var minver = new SemVer('0.0.0') if (range.test(minver)) { return minver } minver = new SemVer('0.0.0-0') if (range.test(minver)) { return minver } minver = null for (var i = 0; i < range.set.length; ++i) { var comparators = range.set[i] comparators.forEach(function (comparator) { // Clone to avoid manipulating the comparator's semver object. var compver = new SemVer(comparator.semver.version) switch (comparator.operator) { case '>': if (compver.prerelease.length === 0) { compver.patch++ } else { compver.prerelease.push(0) } compver.raw = compver.format() /* fallthrough */ case '': case '>=': if (!minver || gt(minver, compver)) { minver = compver } break case '<': case '<=': /* Ignore maximum versions */ break /* istanbul ignore next */ default: throw new Error('Unexpected operation: ' + comparator.operator) } }) } if (minver && range.test(minver)) { return minver } return null } exports.validRange = validRange function validRange (range, options) { try { // Return '*' instead of '' so that truthiness works. // This will throw if it's invalid anyway return new Range(range, options).range || '*' } catch (er) { return null } } // Determine if version is less than all the versions possible in the range exports.ltr = ltr function ltr (version, range, options) { return outside(version, range, '<', options) } // Determine if version is greater than all the versions possible in the range. exports.gtr = gtr function gtr (version, range, options) { return outside(version, range, '>', options) } exports.outside = outside function outside (version, range, hilo, options) { version = new SemVer(version, options) range = new Range(range, options) var gtfn, ltefn, ltfn, comp, ecomp switch (hilo) { case '>': gtfn = gt ltefn = lte ltfn = lt comp = '>' ecomp = '>=' break case '<': gtfn = lt ltefn = gte ltfn = gt comp = '<' ecomp = '<=' break default: throw new TypeError('Must provide a hilo val of "<" or ">"') } // If it satisifes the range it is not outside if (satisfies(version, range, options)) { return false } // From now on, variable terms are as if we're in "gtr" mode. // but note that everything is flipped for the "ltr" function. for (var i = 0; i < range.set.length; ++i) { var comparators = range.set[i] var high = null var low = null comparators.forEach(function (comparator) { if (comparator.semver === ANY) { comparator = new Comparator('>=0.0.0') } high = high || comparator low = low || comparator if (gtfn(comparator.semver, high.semver, options)) { high = comparator } else if (ltfn(comparator.semver, low.semver, options)) { low = comparator } }) // If the edge version comparator has a operator then our version // isn't outside it if (high.operator === comp || high.operator === ecomp) { return false } // If the lowest version comparator has an operator and our version // is less than it then it isn't higher than the range if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { return false } else if (low.operator === ecomp && ltfn(version, low.semver)) { return false } } return true } exports.prerelease = prerelease function prerelease (version, options) { var parsed = parse(version, options) return (parsed && parsed.prerelease.length) ? parsed.prerelease : null } exports.intersects = intersects function intersects (r1, r2, options) { r1 = new Range(r1, options) r2 = new Range(r2, options) return r1.intersects(r2) } exports.coerce = coerce function coerce (version) { if (version instanceof SemVer) { return version } if (typeof version !== 'string') { return null } var match = version.match(re[COERCE]) if (match == null) { return null } return parse(match[1] + '.' + (match[2] || '0') + '.' + (match[3] || '0')) } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/jsonwebtoken/sign.js": /*!*******************************************!*\ !*** ./node_modules/jsonwebtoken/sign.js ***! \*******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var timespan = __webpack_require__(/*! ./lib/timespan */ "./node_modules/jsonwebtoken/lib/timespan.js"); var PS_SUPPORTED = __webpack_require__(/*! ./lib/psSupported */ "./node_modules/jsonwebtoken/lib/psSupported.js"); var jws = __webpack_require__(/*! jws */ "./node_modules/jws/index.js"); var includes = __webpack_require__(/*! lodash.includes */ "./node_modules/lodash.includes/index.js"); var isBoolean = __webpack_require__(/*! lodash.isboolean */ "./node_modules/lodash.isboolean/index.js"); var isInteger = __webpack_require__(/*! lodash.isinteger */ "./node_modules/lodash.isinteger/index.js"); var isNumber = __webpack_require__(/*! lodash.isnumber */ "./node_modules/lodash.isnumber/index.js"); var isPlainObject = __webpack_require__(/*! lodash.isplainobject */ "./node_modules/lodash.isplainobject/index.js"); var isString = __webpack_require__(/*! lodash.isstring */ "./node_modules/lodash.isstring/index.js"); var once = __webpack_require__(/*! lodash.once */ "./node_modules/lodash.once/index.js"); var SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none'] if (PS_SUPPORTED) { SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512'); } var sign_options_schema = { expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"expiresIn" should be a number of seconds or string representing a timespan' }, notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '"notBefore" should be a number of seconds or string representing a timespan' }, audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '"audience" must be a string or array' }, algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '"algorithm" must be a valid string enum value' }, header: { isValid: isPlainObject, message: '"header" must be an object' }, encoding: { isValid: isString, message: '"encoding" must be a string' }, issuer: { isValid: isString, message: '"issuer" must be a string' }, subject: { isValid: isString, message: '"subject" must be a string' }, jwtid: { isValid: isString, message: '"jwtid" must be a string' }, noTimestamp: { isValid: isBoolean, message: '"noTimestamp" must be a boolean' }, keyid: { isValid: isString, message: '"keyid" must be a string' }, mutatePayload: { isValid: isBoolean, message: '"mutatePayload" must be a boolean' } }; var registered_claims_schema = { iat: { isValid: isNumber, message: '"iat" should be a number of seconds' }, exp: { isValid: isNumber, message: '"exp" should be a number of seconds' }, nbf: { isValid: isNumber, message: '"nbf" should be a number of seconds' } }; function validate(schema, allowUnknown, object, parameterName) { if (!isPlainObject(object)) { throw new Error('Expected "' + parameterName + '" to be a plain object.'); } Object.keys(object) .forEach(function(key) { var validator = schema[key]; if (!validator) { if (!allowUnknown) { throw new Error('"' + key + '" is not allowed in "' + parameterName + '"'); } return; } if (!validator.isValid(object[key])) { throw new Error(validator.message); } }); } function validateOptions(options) { return validate(sign_options_schema, false, options, 'options'); } function validatePayload(payload) { return validate(registered_claims_schema, true, payload, 'payload'); } var options_to_payload = { 'audience': 'aud', 'issuer': 'iss', 'subject': 'sub', 'jwtid': 'jti' }; var options_for_objects = [ 'expiresIn', 'notBefore', 'noTimestamp', 'audience', 'issuer', 'subject', 'jwtid', ]; module.exports = function (payload, secretOrPrivateKey, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } else { options = options || {}; } var isObjectPayload = typeof payload === 'object' && !Buffer.isBuffer(payload); var header = Object.assign({ alg: options.algorithm || 'HS256', typ: isObjectPayload ? 'JWT' : undefined, kid: options.keyid }, options.header); function failure(err) { if (callback) { return callback(err); } throw err; } if (!secretOrPrivateKey && options.algorithm !== 'none') { return failure(new Error('secretOrPrivateKey must have a value')); } if (typeof payload === 'undefined') { return failure(new Error('payload is required')); } else if (isObjectPayload) { try { validatePayload(payload); } catch (error) { return failure(error); } if (!options.mutatePayload) { payload = Object.assign({},payload); } } else { var invalid_options = options_for_objects.filter(function (opt) { return typeof options[opt] !== 'undefined'; }); if (invalid_options.length > 0) { return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload')); } } if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') { return failure(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.')); } if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') { return failure(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.')); } try { validateOptions(options); } catch (error) { return failure(error); } var timestamp = payload.iat || Math.floor(Date.now() / 1000); if (options.noTimestamp) { delete payload.iat; } else if (isObjectPayload) { payload.iat = timestamp; } if (typeof options.notBefore !== 'undefined') { try { payload.nbf = timespan(options.notBefore, timestamp); } catch (err) { return failure(err); } if (typeof payload.nbf === 'undefined') { return failure(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); } } if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') { try { payload.exp = timespan(options.expiresIn, timestamp); } catch (err) { return failure(err); } if (typeof payload.exp === 'undefined') { return failure(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); } } Object.keys(options_to_payload).forEach(function (key) { var claim = options_to_payload[key]; if (typeof options[key] !== 'undefined') { if (typeof payload[claim] !== 'undefined') { return failure(new Error('Bad "options.' + key + '" option. The payload already has an "' + claim + '" property.')); } payload[claim] = options[key]; } }); var encoding = options.encoding || 'utf8'; if (typeof callback === 'function') { callback = callback && once(callback); jws.createSign({ header: header, privateKey: secretOrPrivateKey, payload: payload, encoding: encoding }).once('error', callback) .once('done', function (signature) { callback(null, signature); }); } else { return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding}); } }; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) /***/ }), /***/ "./node_modules/jsonwebtoken/verify.js": /*!*********************************************!*\ !*** ./node_modules/jsonwebtoken/verify.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var JsonWebTokenError = __webpack_require__(/*! ./lib/JsonWebTokenError */ "./node_modules/jsonwebtoken/lib/JsonWebTokenError.js"); var NotBeforeError = __webpack_require__(/*! ./lib/NotBeforeError */ "./node_modules/jsonwebtoken/lib/NotBeforeError.js"); var TokenExpiredError = __webpack_require__(/*! ./lib/TokenExpiredError */ "./node_modules/jsonwebtoken/lib/TokenExpiredError.js"); var decode = __webpack_require__(/*! ./decode */ "./node_modules/jsonwebtoken/decode.js"); var timespan = __webpack_require__(/*! ./lib/timespan */ "./node_modules/jsonwebtoken/lib/timespan.js"); var PS_SUPPORTED = __webpack_require__(/*! ./lib/psSupported */ "./node_modules/jsonwebtoken/lib/psSupported.js"); var jws = __webpack_require__(/*! jws */ "./node_modules/jws/index.js"); var PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512']; var RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512']; var HS_ALGS = ['HS256', 'HS384', 'HS512']; if (PS_SUPPORTED) { PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512'); RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512'); } module.exports = function (jwtString, secretOrPublicKey, options, callback) { if ((typeof options === 'function') && !callback) { callback = options; options = {}; } if (!options) { options = {}; } //clone this object since we are going to mutate it. options = Object.assign({}, options); var done; if (callback) { done = callback; } else { done = function(err, data) { if (err) throw err; return data; }; } if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') { return done(new JsonWebTokenError('clockTimestamp must be a number')); } if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) { return done(new JsonWebTokenError('nonce must be a non-empty string')); } var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000); if (!jwtString){ return done(new JsonWebTokenError('jwt must be provided')); } if (typeof jwtString !== 'string') { return done(new JsonWebTokenError('jwt must be a string')); } var parts = jwtString.split('.'); if (parts.length !== 3){ return done(new JsonWebTokenError('jwt malformed')); } var decodedToken; try { decodedToken = decode(jwtString, { complete: true }); } catch(err) { return done(err); } if (!decodedToken) { return done(new JsonWebTokenError('invalid token')); } var header = decodedToken.header; var getSecret; if(typeof secretOrPublicKey === 'function') { if(!callback) { return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback')); } getSecret = secretOrPublicKey; } else { getSecret = function(header, secretCallback) { return secretCallback(null, secretOrPublicKey); }; } return getSecret(header, function(err, secretOrPublicKey) { if(err) { return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message)); } var hasSignature = parts[2].trim() !== ''; if (!hasSignature && secretOrPublicKey){ return done(new JsonWebTokenError('jwt signature is required')); } if (hasSignature && !secretOrPublicKey) { return done(new JsonWebTokenError('secret or public key must be provided')); } if (!hasSignature && !options.algorithms) { options.algorithms = ['none']; } if (!options.algorithms) { options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') || ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS : ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS; } if (!~options.algorithms.indexOf(decodedToken.header.alg)) { return done(new JsonWebTokenError('invalid algorithm')); } var valid; try { valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey); } catch (e) { return done(e); } if (!valid) { return done(new JsonWebTokenError('invalid signature')); } var payload = decodedToken.payload; if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) { if (typeof payload.nbf !== 'number') { return done(new JsonWebTokenError('invalid nbf value')); } if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) { return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000))); } } if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) { if (typeof payload.exp !== 'number') { return done(new JsonWebTokenError('invalid exp value')); } if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) { return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000))); } } if (options.audience) { var audiences = Array.isArray(options.audience) ? options.audience : [options.audience]; var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud]; var match = target.some(function (targetAudience) { return audiences.some(function (audience) { return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience; }); }); if (!match) { return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or '))); } } if (options.issuer) { var invalid_issuer = (typeof options.issuer === 'string' && payload.iss !== options.issuer) || (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1); if (invalid_issuer) { return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer)); } } if (options.subject) { if (payload.sub !== options.subject) { return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject)); } } if (options.jwtid) { if (payload.jti !== options.jwtid) { return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid)); } } if (options.nonce) { if (payload.nonce !== options.nonce) { return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce)); } } if (options.maxAge) { if (typeof payload.iat !== 'number') { return done(new JsonWebTokenError('iat required when maxAge is specified')); } var maxAgeTimestamp = timespan(options.maxAge, payload.iat); if (typeof maxAgeTimestamp === 'undefined') { return done(new JsonWebTokenError('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); } if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) { return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000))); } } if (options.complete === true) { var signature = decodedToken.signature; return done(null, { header: header, payload: payload, signature: signature }); } return done(null, payload); }); }; /***/ }), /***/ "./node_modules/jwa/index.js": /*!***********************************!*\ !*** ./node_modules/jwa/index.js ***! \***********************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { var bufferEqual = __webpack_require__(/*! buffer-equal-constant-time */ "./node_modules/buffer-equal-constant-time/index.js"); var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; var crypto = __webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"); var formatEcdsa = __webpack_require__(/*! ecdsa-sig-formatter */ "./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js"); var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".' var MSG_INVALID_SECRET = 'secret must be a string or buffer'; var MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer'; var MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object'; var supportsKeyObjects = typeof crypto.createPublicKey === 'function'; if (supportsKeyObjects) { MSG_INVALID_VERIFIER_KEY += ' or a KeyObject'; MSG_INVALID_SECRET += 'or a KeyObject'; } function checkIsPublicKey(key) { if (Buffer.isBuffer(key)) { return; } if (typeof key === 'string') { return; } if (!supportsKeyObjects) { throw typeError(MSG_INVALID_VERIFIER_KEY); } if (typeof key !== 'object') { throw typeError(MSG_INVALID_VERIFIER_KEY); } if (typeof key.type !== 'string') { throw typeError(MSG_INVALID_VERIFIER_KEY); } if (typeof key.asymmetricKeyType !== 'string') { throw typeError(MSG_INVALID_VERIFIER_KEY); } if (typeof key.export !== 'function') { throw typeError(MSG_INVALID_VERIFIER_KEY); } }; function checkIsPrivateKey(key) { if (Buffer.isBuffer(key)) { return; } if (typeof key === 'string') { return; } if (typeof key === 'object') { return; } throw typeError(MSG_INVALID_SIGNER_KEY); }; function checkIsSecretKey(key) { if (Buffer.isBuffer(key)) { return; } if (typeof key === 'string') { return key; } if (!supportsKeyObjects) { throw typeError(MSG_INVALID_SECRET); } if (typeof key !== 'object') { throw typeError(MSG_INVALID_SECRET); } if (key.type !== 'secret') { throw typeError(MSG_INVALID_SECRET); } if (typeof key.export !== 'function') { throw typeError(MSG_INVALID_SECRET); } } function fromBase64(base64) { return base64 .replace(/=/g, '') .replace(/\+/g, '-') .replace(/\//g, '_'); } function toBase64(base64url) { base64url = base64url.toString(); var padding = 4 - base64url.length % 4; if (padding !== 4) { for (var i = 0; i < padding; ++i) { base64url += '='; } } return base64url .replace(/\-/g, '+') .replace(/_/g, '/'); } function typeError(template) { var args = [].slice.call(arguments, 1); var errMsg = util.format.bind(util, template).apply(null, args); return new TypeError(errMsg); } function bufferOrString(obj) { return Buffer.isBuffer(obj) || typeof obj === 'string'; } function normalizeInput(thing) { if (!bufferOrString(thing)) thing = JSON.stringify(thing); return thing; } function createHmacSigner(bits) { return function sign(thing, secret) { checkIsSecretKey(secret); thing = normalizeInput(thing); var hmac = crypto.createHmac('sha' + bits, secret); var sig = (hmac.update(thing), hmac.digest('base64')) return fromBase64(sig); } } function createHmacVerifier(bits) { return function verify(thing, signature, secret) { var computedSig = createHmacSigner(bits)(thing, secret); return bufferEqual(Buffer.from(signature), Buffer.from(computedSig)); } } function createKeySigner(bits) { return function sign(thing, privateKey) { checkIsPrivateKey(privateKey); thing = normalizeInput(thing); // Even though we are specifying "RSA" here, this works with ECDSA // keys as well. var signer = crypto.createSign('RSA-SHA' + bits); var sig = (signer.update(thing), signer.sign(privateKey, 'base64')); return fromBase64(sig); } } function createKeyVerifier(bits) { return function verify(thing, signature, publicKey) { checkIsPublicKey(publicKey); thing = normalizeInput(thing); signature = toBase64(signature); var verifier = crypto.createVerify('RSA-SHA' + bits); verifier.update(thing); return verifier.verify(publicKey, signature, 'base64'); } } function createPSSKeySigner(bits) { return function sign(thing, privateKey) { checkIsPrivateKey(privateKey); thing = normalizeInput(thing); var signer = crypto.createSign('RSA-SHA' + bits); var sig = (signer.update(thing), signer.sign({ key: privateKey, padding: crypto.constants.RSA_PKCS1_PSS_PADDING, saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST }, 'base64')); return fromBase64(sig); } } function createPSSKeyVerifier(bits) { return function verify(thing, signature, publicKey) { checkIsPublicKey(publicKey); thing = normalizeInput(thing); signature = toBase64(signature); var verifier = crypto.createVerify('RSA-SHA' + bits); verifier.update(thing); return verifier.verify({ key: publicKey, padding: crypto.constants.RSA_PKCS1_PSS_PADDING, saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST }, signature, 'base64'); } } function createECDSASigner(bits) { var inner = createKeySigner(bits); return function sign() { var signature = inner.apply(null, arguments); signature = formatEcdsa.derToJose(signature, 'ES' + bits); return signature; }; } function createECDSAVerifer(bits) { var inner = createKeyVerifier(bits); return function verify(thing, signature, publicKey) { signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64'); var result = inner(thing, signature, publicKey); return result; }; } function createNoneSigner() { return function sign() { return ''; } } function createNoneVerifier() { return function verify(thing, signature) { return signature === ''; } } module.exports = function jwa(algorithm) { var signerFactories = { hs: createHmacSigner, rs: createKeySigner, ps: createPSSKeySigner, es: createECDSASigner, none: createNoneSigner, } var verifierFactories = { hs: createHmacVerifier, rs: createKeyVerifier, ps: createPSSKeyVerifier, es: createECDSAVerifer, none: createNoneVerifier, } var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i); if (!match) throw typeError(MSG_INVALID_ALGORITHM, algorithm); var algo = (match[1] || match[3]).toLowerCase(); var bits = match[2]; return { sign: signerFactories[algo](bits), verify: verifierFactories[algo](bits), } }; /***/ }), /***/ "./node_modules/jws/index.js": /*!***********************************!*\ !*** ./node_modules/jws/index.js ***! \***********************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /*global exports*/ var SignStream = __webpack_require__(/*! ./lib/sign-stream */ "./node_modules/jws/lib/sign-stream.js"); var VerifyStream = __webpack_require__(/*! ./lib/verify-stream */ "./node_modules/jws/lib/verify-stream.js"); var ALGORITHMS = [ 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512', 'ES256', 'ES384', 'ES512' ]; exports.ALGORITHMS = ALGORITHMS; exports.sign = SignStream.sign; exports.verify = VerifyStream.verify; exports.decode = VerifyStream.decode; exports.isValid = VerifyStream.isValid; exports.createSign = function createSign(opts) { return new SignStream(opts); }; exports.createVerify = function createVerify(opts) { return new VerifyStream(opts); }; /***/ }), /***/ "./node_modules/jws/lib/data-stream.js": /*!*********************************************!*\ !*** ./node_modules/jws/lib/data-stream.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/*global module, process*/ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; var Stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js"); var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); function DataStream(data) { this.buffer = null; this.writable = true; this.readable = true; // No input if (!data) { this.buffer = Buffer.alloc(0); return this; } // Stream if (typeof data.pipe === 'function') { this.buffer = Buffer.alloc(0); data.pipe(this); return this; } // Buffer or String // or Object (assumedly a passworded key) if (data.length || typeof data === 'object') { this.buffer = data; this.writable = false; process.nextTick(function () { this.emit('end', data); this.readable = false; this.emit('close'); }.bind(this)); return this; } throw new TypeError('Unexpected data type ('+ typeof data + ')'); } util.inherits(DataStream, Stream); DataStream.prototype.write = function write(data) { this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]); this.emit('data', data); }; DataStream.prototype.end = function end(data) { if (data) this.write(data); this.emit('end', data); this.emit('close'); this.writable = false; this.readable = false; }; module.exports = DataStream; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) /***/ }), /***/ "./node_modules/jws/lib/sign-stream.js": /*!*********************************************!*\ !*** ./node_modules/jws/lib/sign-stream.js ***! \*********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /*global module*/ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; var DataStream = __webpack_require__(/*! ./data-stream */ "./node_modules/jws/lib/data-stream.js"); var jwa = __webpack_require__(/*! jwa */ "./node_modules/jwa/index.js"); var Stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js"); var toString = __webpack_require__(/*! ./tostring */ "./node_modules/jws/lib/tostring.js"); var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); function base64url(string, encoding) { return Buffer .from(string, encoding) .toString('base64') .replace(/=/g, '') .replace(/\+/g, '-') .replace(/\//g, '_'); } function jwsSecuredInput(header, payload, encoding) { encoding = encoding || 'utf8'; var encodedHeader = base64url(toString(header), 'binary'); var encodedPayload = base64url(toString(payload), encoding); return util.format('%s.%s', encodedHeader, encodedPayload); } function jwsSign(opts) { var header = opts.header; var payload = opts.payload; var secretOrKey = opts.secret || opts.privateKey; var encoding = opts.encoding; var algo = jwa(header.alg); var securedInput = jwsSecuredInput(header, payload, encoding); var signature = algo.sign(securedInput, secretOrKey); return util.format('%s.%s', securedInput, signature); } function SignStream(opts) { var secret = opts.secret||opts.privateKey||opts.key; var secretStream = new DataStream(secret); this.readable = true; this.header = opts.header; this.encoding = opts.encoding; this.secret = this.privateKey = this.key = secretStream; this.payload = new DataStream(opts.payload); this.secret.once('close', function () { if (!this.payload.writable && this.readable) this.sign(); }.bind(this)); this.payload.once('close', function () { if (!this.secret.writable && this.readable) this.sign(); }.bind(this)); } util.inherits(SignStream, Stream); SignStream.prototype.sign = function sign() { try { var signature = jwsSign({ header: this.header, payload: this.payload.buffer, secret: this.secret.buffer, encoding: this.encoding }); this.emit('done', signature); this.emit('data', signature); this.emit('end'); this.readable = false; return signature; } catch (e) { this.readable = false; this.emit('error', e); this.emit('close'); } }; SignStream.sign = jwsSign; module.exports = SignStream; /***/ }), /***/ "./node_modules/jws/lib/tostring.js": /*!******************************************!*\ !*** ./node_modules/jws/lib/tostring.js ***! \******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /*global module*/ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer; module.exports = function toString(obj) { if (typeof obj === 'string') return obj; if (typeof obj === 'number' || Buffer.isBuffer(obj)) return obj.toString(); return JSON.stringify(obj); }; /***/ }), /***/ "./node_modules/jws/lib/verify-stream.js": /*!***********************************************!*\ !*** ./node_modules/jws/lib/verify-stream.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { /*global module*/ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; var DataStream = __webpack_require__(/*! ./data-stream */ "./node_modules/jws/lib/data-stream.js"); var jwa = __webpack_require__(/*! jwa */ "./node_modules/jwa/index.js"); var Stream = __webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js"); var toString = __webpack_require__(/*! ./tostring */ "./node_modules/jws/lib/tostring.js"); var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; function isObject(thing) { return Object.prototype.toString.call(thing) === '[object Object]'; } function safeJsonParse(thing) { if (isObject(thing)) return thing; try { return JSON.parse(thing); } catch (e) { return undefined; } } function headerFromJWS(jwsSig) { var encodedHeader = jwsSig.split('.', 1)[0]; return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary')); } function securedInputFromJWS(jwsSig) { return jwsSig.split('.', 2).join('.'); } function signatureFromJWS(jwsSig) { return jwsSig.split('.')[2]; } function payloadFromJWS(jwsSig, encoding) { encoding = encoding || 'utf8'; var payload = jwsSig.split('.')[1]; return Buffer.from(payload, 'base64').toString(encoding); } function isValidJws(string) { return JWS_REGEX.test(string) && !!headerFromJWS(string); } function jwsVerify(jwsSig, algorithm, secretOrKey) { if (!algorithm) { var err = new Error("Missing algorithm parameter for jws.verify"); err.code = "MISSING_ALGORITHM"; throw err; } jwsSig = toString(jwsSig); var signature = signatureFromJWS(jwsSig); var securedInput = securedInputFromJWS(jwsSig); var algo = jwa(algorithm); return algo.verify(securedInput, signature, secretOrKey); } function jwsDecode(jwsSig, opts) { opts = opts || {}; jwsSig = toString(jwsSig); if (!isValidJws(jwsSig)) return null; var header = headerFromJWS(jwsSig); if (!header) return null; var payload = payloadFromJWS(jwsSig); if (header.typ === 'JWT' || opts.json) payload = JSON.parse(payload, opts.encoding); return { header: header, payload: payload, signature: signatureFromJWS(jwsSig) }; } function VerifyStream(opts) { opts = opts || {}; var secretOrKey = opts.secret||opts.publicKey||opts.key; var secretStream = new DataStream(secretOrKey); this.readable = true; this.algorithm = opts.algorithm; this.encoding = opts.encoding; this.secret = this.publicKey = this.key = secretStream; this.signature = new DataStream(opts.signature); this.secret.once('close', function () { if (!this.signature.writable && this.readable) this.verify(); }.bind(this)); this.signature.once('close', function () { if (!this.secret.writable && this.readable) this.verify(); }.bind(this)); } util.inherits(VerifyStream, Stream); VerifyStream.prototype.verify = function verify() { try { var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); var obj = jwsDecode(this.signature.buffer, this.encoding); this.emit('done', valid, obj); this.emit('data', valid); this.emit('end'); this.readable = false; return valid; } catch (e) { this.readable = false; this.emit('error', e); this.emit('close'); } }; VerifyStream.decode = jwsDecode; VerifyStream.isValid = isValidJws; VerifyStream.verify = jwsVerify; module.exports = VerifyStream; /***/ }), /***/ "./node_modules/lodash.includes/index.js": /*!***********************************************!*\ !*** ./node_modules/lodash.includes/index.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright jQuery Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 1.7976931348623157e+308, NAN = 0 / 0; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', stringTag = '[object String]', symbolTag = '[object Symbol]'; /** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt; /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array, iteratee) { var index = -1, length = array ? array.length : 0, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } /** * The base implementation of `_.findIndex` and `_.findLastIndex` without * support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} predicate The function invoked per iteration. * @param {number} fromIndex The index to search from. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, index = fromIndex + (fromRight ? 1 : -1); while ((fromRight ? index-- : ++index < length)) { if (predicate(array[index], index, array)) { return index; } } return -1; } /** * The base implementation of `_.indexOf` without `fromIndex` bounds checks. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOf(array, value, fromIndex) { if (value !== value) { return baseFindIndex(array, baseIsNaN, fromIndex); } var index = fromIndex - 1, length = array.length; while (++index < length) { if (array[index] === value) { return index; } } return -1; } /** * The base implementation of `_.isNaN` without support for number objects. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. */ function baseIsNaN(value) { return value !== value; } /** * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. * * @private * @param {number} n The number of times to invoke `iteratee`. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the array of results. */ function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } /** * The base implementation of `_.values` and `_.valuesIn` which creates an * array of `object` property values corresponding to the property names * of `props`. * * @private * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the array of property values. */ function baseValues(object, props) { return arrayMap(props, function(key) { return object[key]; }); } /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** Built-in value references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeKeys = overArg(Object.keys, Object), nativeMax = Math.max; /** * Creates an array of the enumerable property names of the array-like `value`. * * @private * @param {*} value The value to query. * @param {boolean} inherited Specify returning inherited property names. * @returns {Array} Returns the array of property names. */ function arrayLikeKeys(value, inherited) { // Safari 8.1 makes `arguments.callee` enumerable in strict mode. // Safari 9 makes `arguments.length` enumerable in strict mode. var result = (isArray(value) || isArguments(value)) ? baseTimes(value.length, String) : []; var length = result.length, skipIndexes = !!length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) { result.push(key); } } return result; } /** * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } /** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == 'number' || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } /** * Checks if `value` is likely a prototype object. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ function isPrototype(value) { var Ctor = value && value.constructor, proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; return value === proto; } /** * Checks if `value` is in `collection`. If `collection` is a string, it's * checked for a substring of `value`, otherwise * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * is used for equality comparisons. If `fromIndex` is negative, it's used as * the offset from the end of `collection`. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @param {*} value The value to search for. * @param {number} [fromIndex=0] The index to search from. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. * @returns {boolean} Returns `true` if `value` is found, else `false`. * @example * * _.includes([1, 2, 3], 1); * // => true * * _.includes([1, 2, 3], 1, 2); * // => false * * _.includes({ 'a': 1, 'b': 2 }, 1); * // => true * * _.includes('abcd', 'bc'); * // => true */ function includes(collection, value, fromIndex, guard) { collection = isArrayLike(collection) ? collection : values(collection); fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; var length = collection.length; if (fromIndex < 0) { fromIndex = nativeMax(length + fromIndex, 0); } return isString(collection) ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) : (!!length && baseIndexOf(collection, value, fromIndex) > -1); } /** * Checks if `value` is likely an `arguments` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, * else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ function isArguments(value) { // Safari 8.1 makes `arguments.callee` enumerable in strict mode. return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); } /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; /** * Checks if `value` is array-like. A value is considered array-like if it's * not a function and has a `value.length` that's an integer greater than or * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. * @example * * _.isArrayLike([1, 2, 3]); * // => true * * _.isArrayLike(document.body.children); * // => true * * _.isArrayLike('abc'); * // => true * * _.isArrayLike(_.noop); * // => false */ function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } /** * This method is like `_.isArrayLike` except that it also checks if `value` * is an object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array-like object, * else `false`. * @example * * _.isArrayLikeObject([1, 2, 3]); * // => true * * _.isArrayLikeObject(document.body.children); * // => true * * _.isArrayLikeObject('abc'); * // => false * * _.isArrayLikeObject(_.noop); * // => false */ function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } /** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value) { // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 8-9 which returns 'object' for typed array and other constructors. var tag = isObject(value) ? objectToString.call(value) : ''; return tag == funcTag || tag == genTag; } /** * Checks if `value` is a valid array-like length. * * **Note:** This method is loosely based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. * @example * * _.isLength(3); * // => true * * _.isLength(Number.MIN_VALUE); * // => false * * _.isLength(Infinity); * // => false * * _.isLength('3'); * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return !!value && (type == 'object' || type == 'function'); } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is classified as a `String` primitive or object. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a string, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value) { return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); } /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && objectToString.call(value) == symbolTag); } /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } /** * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * for more details. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keys(new Foo); * // => ['a', 'b'] (iteration order is not guaranteed) * * _.keys('hi'); * // => ['0', '1'] */ function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } /** * Creates an array of the own enumerable string keyed property values of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property values. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.values(new Foo); * // => [1, 2] (iteration order is not guaranteed) * * _.values('hi'); * // => ['h', 'i'] */ function values(object) { return object ? baseValues(object, keys(object)) : []; } module.exports = includes; /***/ }), /***/ "./node_modules/lodash.isboolean/index.js": /*!************************************************!*\ !*** ./node_modules/lodash.isboolean/index.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash 3.0.3 (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright 2012-2016 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ /** `Object#toString` result references. */ var boolTag = '[object Boolean]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** * Checks if `value` is classified as a boolean primitive or object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isBoolean(false); * // => true * * _.isBoolean(null); * // => false */ function isBoolean(value) { return value === true || value === false || (isObjectLike(value) && objectToString.call(value) == boolTag); } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } module.exports = isBoolean; /***/ }), /***/ "./node_modules/lodash.isinteger/index.js": /*!************************************************!*\ !*** ./node_modules/lodash.isinteger/index.js ***! \************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright jQuery Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_INTEGER = 1.7976931348623157e+308, NAN = 0 / 0; /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; /** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** * Checks if `value` is an integer. * * **Note:** This method is based on * [`Number.isInteger`](https://mdn.io/Number/isInteger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an integer, else `false`. * @example * * _.isInteger(3); * // => true * * _.isInteger(Number.MIN_VALUE); * // => false * * _.isInteger(Infinity); * // => false * * _.isInteger('3'); * // => false */ function isInteger(value) { return typeof value == 'number' && value == toInteger(value); } /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return !!value && (type == 'object' || type == 'function'); } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && objectToString.call(value) == symbolTag); } /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } module.exports = isInteger; /***/ }), /***/ "./node_modules/lodash.isnumber/index.js": /*!***********************************************!*\ !*** ./node_modules/lodash.isnumber/index.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash 3.0.3 (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright 2012-2016 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ /** `Object#toString` result references. */ var numberTag = '[object Number]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is classified as a `Number` primitive or object. * * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified * as numbers, use the `_.isFinite` method. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isNumber(3); * // => true * * _.isNumber(Number.MIN_VALUE); * // => true * * _.isNumber(Infinity); * // => true * * _.isNumber('3'); * // => false */ function isNumber(value) { return typeof value == 'number' || (isObjectLike(value) && objectToString.call(value) == numberTag); } module.exports = isNumber; /***/ }), /***/ "./node_modules/lodash.isplainobject/index.js": /*!****************************************************!*\ !*** ./node_modules/lodash.isplainobject/index.js ***! \****************************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright jQuery Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ /** `Object#toString` result references. */ var objectTag = '[object Object]'; /** * Checks if `value` is a host object in IE < 9. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a host object, else `false`. */ function isHostObject(value) { // Many host objects are `Object` objects that can coerce to strings // despite having improperly defined `toString` methods. var result = false; if (value != null && typeof value.toString != 'function') { try { result = !!(value + ''); } catch (e) {} } return result; } /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ * @since 0.8.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value) { if (!isObjectLike(value) || objectToString.call(value) != objectTag || isHostObject(value)) { return false; } var proto = getPrototype(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return (typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); } module.exports = isPlainObject; /***/ }), /***/ "./node_modules/lodash.isstring/index.js": /*!***********************************************!*\ !*** ./node_modules/lodash.isstring/index.js ***! \***********************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash 4.0.1 (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright 2012-2016 The Dojo Foundation * Based on Underscore.js 1.8.3 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ /** `Object#toString` result references. */ var stringTag = '[object String]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @type Function * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is classified as a `String` primitive or object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value) { return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); } module.exports = isString; /***/ }), /***/ "./node_modules/lodash.once/index.js": /*!*******************************************!*\ !*** ./node_modules/lodash.once/index.js ***! \*******************************************/ /*! dynamic exports provided */ /*! all exports used */ /***/ (function(module, exports) { /** * lodash (Custom Build) * Build: `lodash modularize exports="npm" -o ./` * Copyright jQuery Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ /** Used as the `TypeError` message for "Functions" methods. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_INTEGER = 1.7976931348623157e+308, NAN = 0 / 0; /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; /** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var objectToString = objectProto.toString; /** * Creates a function that invokes `func`, with the `this` binding and arguments * of the created function, while it's called less than `n` times. Subsequent * calls to the created function return the result of the last `func` invocation. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {number} n The number of calls at which `func` is no longer invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * jQuery(element).on('click', _.before(5, addContactToList)); * // => Allows adding up to 4 contacts to the list. */ function before(n, func) { var result; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } n = toInteger(n); return function() { if (--n > 0) { result = func.apply(this, arguments); } if (n <= 1) { func = undefined; } return result; }; } /** * Creates a function that is restricted to invoking `func` once. Repeat calls * to the function return the value of the first invocation. The `func` is * invoked with the `this` binding and arguments of the created function. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * var initialize = _.once(createApplication); * initialize(); * initialize(); * // => `createApplication` is invoked once */ function once(func) { return before(2, func); } /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return !!value && (type == 'object' || type == 'function'); } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return !!value && typeof value == 'object'; } /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && objectToString.call(value) == symbolTag); } /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } module.exports = once; /***/ }), /***/ "./node_modules/lodash/lodash.js": /*!***************************************!*\ !*** ./node_modules/lodash/lodash.js ***! \***************************************/ /*! dynamic exports provided */ /*! exports used: clone, cloneDeep, compact, concat, constant, debounce, each, every, filter, find, findIndex, findKey, findLastIndex, first, flatMap, forOwn, get, groupBy, has, identity, includes, isArray, isEmpty, isEqual, isFunction, isObject, isPlainObject, isString, join, keys, last, map, memoize, merge, noop, orderBy, remove, replace, reverse, some, sortBy, split, startCase, startsWith, sum, sumBy, times, toLower, toNumber, toUpper, transform, trim, trimStart, unionBy, uniq, uniqBy, upperFirst, zip */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ ;(function() { /** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined; /** Used as the semantic version number. */ var VERSION = '4.17.15'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; /** Error message constants. */ var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', FUNC_ERROR_TEXT = 'Expected a function'; /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** Used as the maximum memoize cache size. */ var MAX_MEMOIZE_SIZE = 500; /** Used as the internal argument placeholder. */ var PLACEHOLDER = '__lodash_placeholder__'; /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** Used to compose bitmasks for function metadata. */ var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; /** Used as default options for `_.truncate`. */ var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = '...'; /** Used to detect hot functions by number of calls within a span of milliseconds. */ var HOT_COUNT = 800, HOT_SPAN = 16; /** Used to indicate the type of lazy iteratees. */ var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 1.7976931348623157e+308, NAN = 0 / 0; /** Used as references for the maximum length and index of an array. */ var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; /** Used to associate wrap methods with their bit flags. */ var wrapFlags = [ ['ary', WRAP_ARY_FLAG], ['bind', WRAP_BIND_FLAG], ['bindKey', WRAP_BIND_KEY_FLAG], ['curry', WRAP_CURRY_FLAG], ['curryRight', WRAP_CURRY_RIGHT_FLAG], ['flip', WRAP_FLIP_FLAG], ['partial', WRAP_PARTIAL_FLAG], ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], ['rearg', WRAP_REARG_FLAG] ]; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', asyncTag = '[object AsyncFunction]', boolTag = '[object Boolean]', dateTag = '[object Date]', domExcTag = '[object DOMException]', errorTag = '[object Error]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', mapTag = '[object Map]', numberTag = '[object Number]', nullTag = '[object Null]', objectTag = '[object Object]', promiseTag = '[object Promise]', proxyTag = '[object Proxy]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]', undefinedTag = '[object Undefined]', weakMapTag = '[object WeakMap]', weakSetTag = '[object WeakSet]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]'; /** Used to match empty string literals in compiled template source. */ var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; /** Used to match HTML entities and HTML characters. */ var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); /** Used to match template delimiters. */ var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; /** Used to match property names within property paths. */ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; /** * Used to match `RegExp` * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). */ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); /** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g, reTrimStart = /^\s+/, reTrimEnd = /\s+$/; /** Used to match wrap detail comments. */ var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; /** Used to match words composed of alphanumeric characters. */ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; /** * Used to match * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). */ var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; /** Used to match `RegExp` flags from their coerced string values. */ var reFlags = /\w*$/; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect host constructors (Safari). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** Used to match Latin Unicode letters (excluding mathematical operators). */ var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; /** Used to ensure capturing order of template delimiters. */ var reNoMatch = /($^)/; /** Used to match unescaped characters in compiled string literals. */ var reUnescapedString = /['\n\r\u2028\u2029\\]/g; /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = '\\u2700-\\u27bf', rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', rsPunctuationRange = '\\u2000-\\u206f', rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', rsVarRange = '\\ufe0e\\ufe0f', rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; /** Used to compose unicode capture groups. */ var rsApos = "['\u2019]", rsAstral = '[' + rsAstralRange + ']', rsBreak = '[' + rsBreakRange + ']', rsCombo = '[' + rsComboRange + ']', rsDigits = '\\d+', rsDingbat = '[' + rsDingbatRange + ']', rsLower = '[' + rsLowerRange + ']', rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', rsFitz = '\\ud83c[\\udffb-\\udfff]', rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', rsUpper = '[' + rsUpperRange + ']', rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; /** Used to match apostrophes. */ var reApos = RegExp(rsApos, 'g'); /** * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). */ var reComboMark = RegExp(rsCombo, 'g'); /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); /** Used to match complex or compound words. */ var reUnicodeWord = RegExp([ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji ].join('|'), 'g'); /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); /** Used to detect strings that need a more robust regexp to match words. */ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; /** Used to assign default `context` object properties. */ var contextProps = [ 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' ]; /** Used to make template sourceURLs easier to identify. */ var templateCounter = -1; /** Used to identify `toStringTag` values of typed arrays. */ var typedArrayTags = {}; typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; /** Used to identify `toStringTag` values supported by `_.clone`. */ var cloneableTags = {}; cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; /** Used to map Latin Unicode letters to basic Latin letters. */ var deburredLetters = { // Latin-1 Supplement block. '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', '\xc7': 'C', '\xe7': 'c', '\xd0': 'D', '\xf0': 'd', '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', '\xd1': 'N', '\xf1': 'n', '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', '\xc6': 'Ae', '\xe6': 'ae', '\xde': 'Th', '\xfe': 'th', '\xdf': 'ss', // Latin Extended-A block. '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', '\u0134': 'J', '\u0135': 'j', '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', '\u0163': 't', '\u0165': 't', '\u0167': 't', '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', '\u0174': 'W', '\u0175': 'w', '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', '\u0132': 'IJ', '\u0133': 'ij', '\u0152': 'Oe', '\u0153': 'oe', '\u0149': "'n", '\u017f': 's' }; /** Used to map characters to HTML entities. */ var htmlEscapes = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; /** Used to map HTML entities to characters. */ var htmlUnescapes = { '&': '&', '<': '<', '>': '>', '"': '"', ''': "'" }; /** Used to escape characters for inclusion in compiled string literals. */ var stringEscapes = { '\\': '\\', "'": "'", '\n': 'n', '\r': 'r', '\u2028': 'u2028', '\u2029': 'u2029' }; /** Built-in method references without a dependency on `root`. */ var freeParseFloat = parseFloat, freeParseInt = parseInt; /** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')(); /** Detect free variable `exports`. */ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Detect free variable `process` from Node.js. */ var freeProcess = moduleExports && freeGlobal.process; /** Used to access faster Node.js helpers. */ var nodeUtil = (function() { try { // Use `util.types` for Node.js 10+. var types = freeModule && freeModule.require && freeModule.require('util').types; if (types) { return types; } // Legacy `process.binding('util')` for Node.js < 10. return freeProcess && freeProcess.binding && freeProcess.binding('util'); } catch (e) {} }()); /* Node.js helper references. */ var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; /*--------------------------------------------------------------------------*/ /** * A faster alternative to `Function#apply`, this function invokes `func` * with the `this` binding of `thisArg` and the arguments of `args`. * * @private * @param {Function} func The function to invoke. * @param {*} thisArg The `this` binding of `func`. * @param {Array} args The arguments to invoke `func` with. * @returns {*} Returns the result of `func`. */ function apply(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); case 2: return func.call(thisArg, args[0], args[1]); case 3: return func.call(thisArg, args[0], args[1], args[2]); } return func.apply(thisArg, args); } /** * A specialized version of `baseAggregator` for arrays. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform keys. * @param {Object} accumulator The initial aggregated object. * @returns {Function} Returns `accumulator`. */ function arrayAggregator(array, setter, iteratee, accumulator) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { var value = array[index]; setter(accumulator, value, iteratee(value), array); } return accumulator; } /** * A specialized version of `_.forEach` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach(array, iteratee) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (iteratee(array[index], index, array) === false) { break; } } return array; } /** * A specialized version of `_.forEachRight` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEachRight(array, iteratee) { var length = array == null ? 0 : array.length; while (length--) { if (iteratee(array[length], length, array) === false) { break; } } return array; } /** * A specialized version of `_.every` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false`. */ function arrayEvery(array, predicate) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (!predicate(array[index], index, array)) { return false; } } return true; } /** * A specialized version of `_.filter` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function arrayFilter(array, predicate) { var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (predicate(value, index, array)) { result[resIndex++] = value; } } return result; } /** * A specialized version of `_.includes` for arrays without support for * specifying an index to search from. * * @private * @param {Array} [array] The array to inspect. * @param {*} target The value to search for. * @returns {boolean} Returns `true` if `target` is found, else `false`. */ function arrayIncludes(array, value) { var length = array == null ? 0 : array.length; return !!length && baseIndexOf(array, value, 0) > -1; } /** * This function is like `arrayIncludes` except that it accepts a comparator. * * @private * @param {Array} [array] The array to inspect. * @param {*} target The value to search for. * @param {Function} comparator The comparator invoked per element. * @returns {boolean} Returns `true` if `target` is found, else `false`. */ function arrayIncludesWith(array, value, comparator) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (comparator(value, array[index])) { return true; } } return false; } /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } /** * Appends the elements of `values` to `array`. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to append. * @returns {Array} Returns `array`. */ function arrayPush(array, values) { var index = -1, length = values.length, offset = array.length; while (++index < length) { array[offset + index] = values[index]; } return array; } /** * A specialized version of `_.reduce` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initAccum] Specify using the first element of `array` as * the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index]; } while (++index < length) { accumulator = iteratee(accumulator, array[index], index, array); } return accumulator; } /** * A specialized version of `_.reduceRight` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initAccum] Specify using the last element of `array` as * the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduceRight(array, iteratee, accumulator, initAccum) { var length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[--length]; } while (length--) { accumulator = iteratee(accumulator, array[length], length, array); } return accumulator; } /** * A specialized version of `_.some` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function arraySome(array, predicate) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } /** * Gets the size of an ASCII `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ var asciiSize = baseProperty('length'); /** * Converts an ASCII `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function asciiToArray(string) { return string.split(''); } /** * Splits an ASCII `string` into an array of its words. * * @private * @param {string} The string to inspect. * @returns {Array} Returns the words of `string`. */ function asciiWords(string) { return string.match(reAsciiWord) || []; } /** * The base implementation of methods like `_.findKey` and `_.findLastKey`, * without support for iteratee shorthands, which iterates over `collection` * using `eachFunc`. * * @private * @param {Array|Object} collection The collection to inspect. * @param {Function} predicate The function invoked per iteration. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the found element or its key, else `undefined`. */ function baseFindKey(collection, predicate, eachFunc) { var result; eachFunc(collection, function(value, key, collection) { if (predicate(value, key, collection)) { result = key; return false; } }); return result; } /** * The base implementation of `_.findIndex` and `_.findLastIndex` without * support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} predicate The function invoked per iteration. * @param {number} fromIndex The index to search from. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, index = fromIndex + (fromRight ? 1 : -1); while ((fromRight ? index-- : ++index < length)) { if (predicate(array[index], index, array)) { return index; } } return -1; } /** * The base implementation of `_.indexOf` without `fromIndex` bounds checks. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOf(array, value, fromIndex) { return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); } /** * This function is like `baseIndexOf` except that it accepts a comparator. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @param {Function} comparator The comparator invoked per element. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOfWith(array, value, fromIndex, comparator) { var index = fromIndex - 1, length = array.length; while (++index < length) { if (comparator(array[index], value)) { return index; } } return -1; } /** * The base implementation of `_.isNaN` without support for number objects. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. */ function baseIsNaN(value) { return value !== value; } /** * The base implementation of `_.mean` and `_.meanBy` without support for * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {number} Returns the mean. */ function baseMean(array, iteratee) { var length = array == null ? 0 : array.length; return length ? (baseSum(array, iteratee) / length) : NAN; } /** * The base implementation of `_.property` without support for deep paths. * * @private * @param {string} key The key of the property to get. * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { return function(object) { return object == null ? undefined : object[key]; }; } /** * The base implementation of `_.propertyOf` without support for deep paths. * * @private * @param {Object} object The object to query. * @returns {Function} Returns the new accessor function. */ function basePropertyOf(object) { return function(key) { return object == null ? undefined : object[key]; }; } /** * The base implementation of `_.reduce` and `_.reduceRight`, without support * for iteratee shorthands, which iterates over `collection` using `eachFunc`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} accumulator The initial value. * @param {boolean} initAccum Specify using the first or last element of * `collection` as the initial value. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the accumulated value. */ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { eachFunc(collection, function(value, index, collection) { accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); }); return accumulator; } /** * The base implementation of `_.sortBy` which uses `comparer` to define the * sort order of `array` and replaces criteria objects with their corresponding * values. * * @private * @param {Array} array The array to sort. * @param {Function} comparer The function to define sort order. * @returns {Array} Returns `array`. */ function baseSortBy(array, comparer) { var length = array.length; array.sort(comparer); while (length--) { array[length] = array[length].value; } return array; } /** * The base implementation of `_.sum` and `_.sumBy` without support for * iteratee shorthands. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {number} Returns the sum. */ function baseSum(array, iteratee) { var result, index = -1, length = array.length; while (++index < length) { var current = iteratee(array[index]); if (current !== undefined) { result = result === undefined ? current : (result + current); } } return result; } /** * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. * * @private * @param {number} n The number of times to invoke `iteratee`. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the array of results. */ function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } /** * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array * of key-value pairs for `object` corresponding to the property names of `props`. * * @private * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the key-value pairs. */ function baseToPairs(object, props) { return arrayMap(props, function(key) { return [key, object[key]]; }); } /** * The base implementation of `_.unary` without support for storing metadata. * * @private * @param {Function} func The function to cap arguments for. * @returns {Function} Returns the new capped function. */ function baseUnary(func) { return function(value) { return func(value); }; } /** * The base implementation of `_.values` and `_.valuesIn` which creates an * array of `object` property values corresponding to the property names * of `props`. * * @private * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the array of property values. */ function baseValues(object, props) { return arrayMap(props, function(key) { return object[key]; }); } /** * Checks if a `cache` value for `key` exists. * * @private * @param {Object} cache The cache to query. * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function cacheHas(cache, key) { return cache.has(key); } /** * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol * that is not found in the character symbols. * * @private * @param {Array} strSymbols The string symbols to inspect. * @param {Array} chrSymbols The character symbols to find. * @returns {number} Returns the index of the first unmatched string symbol. */ function charsStartIndex(strSymbols, chrSymbols) { var index = -1, length = strSymbols.length; while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} return index; } /** * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol * that is not found in the character symbols. * * @private * @param {Array} strSymbols The string symbols to inspect. * @param {Array} chrSymbols The character symbols to find. * @returns {number} Returns the index of the last unmatched string symbol. */ function charsEndIndex(strSymbols, chrSymbols) { var index = strSymbols.length; while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} return index; } /** * Gets the number of `placeholder` occurrences in `array`. * * @private * @param {Array} array The array to inspect. * @param {*} placeholder The placeholder to search for. * @returns {number} Returns the placeholder count. */ function countHolders(array, placeholder) { var length = array.length, result = 0; while (length--) { if (array[length] === placeholder) { ++result; } } return result; } /** * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A * letters to basic Latin letters. * * @private * @param {string} letter The matched letter to deburr. * @returns {string} Returns the deburred letter. */ var deburrLetter = basePropertyOf(deburredLetters); /** * Used by `_.escape` to convert characters to HTML entities. * * @private * @param {string} chr The matched character to escape. * @returns {string} Returns the escaped character. */ var escapeHtmlChar = basePropertyOf(htmlEscapes); /** * Used by `_.template` to escape characters for inclusion in compiled string literals. * * @private * @param {string} chr The matched character to escape. * @returns {string} Returns the escaped character. */ function escapeStringChar(chr) { return '\\' + stringEscapes[chr]; } /** * Gets the value at `key` of `object`. * * @private * @param {Object} [object] The object to query. * @param {string} key The key of the property to get. * @returns {*} Returns the property value. */ function getValue(object, key) { return object == null ? undefined : object[key]; } /** * Checks if `string` contains Unicode symbols. * * @private * @param {string} string The string to inspect. * @returns {boolean} Returns `true` if a symbol is found, else `false`. */ function hasUnicode(string) { return reHasUnicode.test(string); } /** * Checks if `string` contains a word composed of Unicode symbols. * * @private * @param {string} string The string to inspect. * @returns {boolean} Returns `true` if a word is found, else `false`. */ function hasUnicodeWord(string) { return reHasUnicodeWord.test(string); } /** * Converts `iterator` to an array. * * @private * @param {Object} iterator The iterator to convert. * @returns {Array} Returns the converted array. */ function iteratorToArray(iterator) { var data, result = []; while (!(data = iterator.next()).done) { result.push(data.value); } return result; } /** * Converts `map` to its key-value pairs. * * @private * @param {Object} map The map to convert. * @returns {Array} Returns the key-value pairs. */ function mapToArray(map) { var index = -1, result = Array(map.size); map.forEach(function(value, key) { result[++index] = [key, value]; }); return result; } /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } /** * Replaces all `placeholder` elements in `array` with an internal placeholder * and returns an array of their indexes. * * @private * @param {Array} array The array to modify. * @param {*} placeholder The placeholder to replace. * @returns {Array} Returns the new array of placeholder indexes. */ function replaceHolders(array, placeholder) { var index = -1, length = array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (value === placeholder || value === PLACEHOLDER) { array[index] = PLACEHOLDER; result[resIndex++] = index; } } return result; } /** * Converts `set` to an array of its values. * * @private * @param {Object} set The set to convert. * @returns {Array} Returns the values. */ function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } /** * Converts `set` to its value-value pairs. * * @private * @param {Object} set The set to convert. * @returns {Array} Returns the value-value pairs. */ function setToPairs(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = [value, value]; }); return result; } /** * A specialized version of `_.indexOf` which performs strict equality * comparisons of values, i.e. `===`. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function strictIndexOf(array, value, fromIndex) { var index = fromIndex - 1, length = array.length; while (++index < length) { if (array[index] === value) { return index; } } return -1; } /** * A specialized version of `_.lastIndexOf` which performs strict equality * comparisons of values, i.e. `===`. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function strictLastIndexOf(array, value, fromIndex) { var index = fromIndex + 1; while (index--) { if (array[index] === value) { return index; } } return index; } /** * Gets the number of symbols in `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the string size. */ function stringSize(string) { return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); } /** * Converts `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function stringToArray(string) { return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); } /** * Used by `_.unescape` to convert HTML entities to characters. * * @private * @param {string} chr The matched character to unescape. * @returns {string} Returns the unescaped character. */ var unescapeHtmlChar = basePropertyOf(htmlUnescapes); /** * Gets the size of a Unicode `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ function unicodeSize(string) { var result = reUnicode.lastIndex = 0; while (reUnicode.test(string)) { ++result; } return result; } /** * Converts a Unicode `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function unicodeToArray(string) { return string.match(reUnicode) || []; } /** * Splits a Unicode `string` into an array of its words. * * @private * @param {string} The string to inspect. * @returns {Array} Returns the words of `string`. */ function unicodeWords(string) { return string.match(reUnicodeWord) || []; } /*--------------------------------------------------------------------------*/ /** * Create a new pristine `lodash` function using the `context` object. * * @static * @memberOf _ * @since 1.1.0 * @category Util * @param {Object} [context=root] The context object. * @returns {Function} Returns a new `lodash` function. * @example * * _.mixin({ 'foo': _.constant('foo') }); * * var lodash = _.runInContext(); * lodash.mixin({ 'bar': lodash.constant('bar') }); * * _.isFunction(_.foo); * // => true * _.isFunction(_.bar); * // => false * * lodash.isFunction(lodash.foo); * // => false * lodash.isFunction(lodash.bar); * // => true * * // Create a suped-up `defer` in Node.js. * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; */ var runInContext = (function runInContext(context) { context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); /** Built-in constructor references. */ var Array = context.Array, Date = context.Date, Error = context.Error, Function = context.Function, Math = context.Math, Object = context.Object, RegExp = context.RegExp, String = context.String, TypeError = context.TypeError; /** Used for built-in method references. */ var arrayProto = Array.prototype, funcProto = Function.prototype, objectProto = Object.prototype; /** Used to detect overreaching core-js shims. */ var coreJsData = context['__core-js_shared__']; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to generate unique IDs. */ var idCounter = 0; /** Used to detect methods masquerading as native. */ var maskSrcKey = (function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); return uid ? ('Symbol(src)_1.' + uid) : ''; }()); /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** Used to restore the original `_` reference in `_.noConflict`. */ var oldDash = root._; /** Used to detect if a method is native. */ var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' ); /** Built-in value references. */ var Buffer = moduleExports ? context.Buffer : undefined, Symbol = context.Symbol, Uint8Array = context.Uint8Array, allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, getPrototype = overArg(Object.getPrototypeOf, Object), objectCreate = Object.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, symIterator = Symbol ? Symbol.iterator : undefined, symToStringTag = Symbol ? Symbol.toStringTag : undefined; var defineProperty = (function() { try { var func = getNative(Object, 'defineProperty'); func({}, '', {}); return func; } catch (e) {} }()); /** Mocked built-ins. */ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date && Date.now !== root.Date.now && Date.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeCeil = Math.ceil, nativeFloor = Math.floor, nativeGetSymbols = Object.getOwnPropertySymbols, nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object.keys, Object), nativeMax = Math.max, nativeMin = Math.min, nativeNow = Date.now, nativeParseInt = context.parseInt, nativeRandom = Math.random, nativeReverse = arrayProto.reverse; /* Built-in method references that are verified to be native. */ var DataView = getNative(context, 'DataView'), Map = getNative(context, 'Map'), Promise = getNative(context, 'Promise'), Set = getNative(context, 'Set'), WeakMap = getNative(context, 'WeakMap'), nativeCreate = getNative(Object, 'create'); /** Used to store function metadata. */ var metaMap = WeakMap && new WeakMap; /** Used to lookup unminified function names. */ var realNames = {}; /** Used to detect maps, sets, and weakmaps. */ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap); /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, symbolToString = symbolProto ? symbolProto.toString : undefined; /*------------------------------------------------------------------------*/ /** * Creates a `lodash` object which wraps `value` to enable implicit method * chain sequences. Methods that operate on and return arrays, collections, * and functions can be chained together. Methods that retrieve a single value * or may return a primitive value will automatically end the chain sequence * and return the unwrapped value. Otherwise, the value must be unwrapped * with `_#value`. * * Explicit chain sequences, which must be unwrapped with `_#value`, may be * enabled using `_.chain`. * * The execution of chained methods is lazy, that is, it's deferred until * `_#value` is implicitly or explicitly called. * * Lazy evaluation allows several methods to support shortcut fusion. * Shortcut fusion is an optimization to merge iteratee calls; this avoids * the creation of intermediate arrays and can greatly reduce the number of * iteratee executions. Sections of a chain sequence qualify for shortcut * fusion if the section is applied to an array and iteratees accept only * one argument. The heuristic for whether a section qualifies for shortcut * fusion is subject to change. * * Chaining is supported in custom builds as long as the `_#value` method is * directly or indirectly included in the build. * * In addition to lodash methods, wrappers have `Array` and `String` methods. * * The wrapper `Array` methods are: * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` * * The wrapper `String` methods are: * `replace` and `split` * * The wrapper methods that support shortcut fusion are: * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` * * The chainable wrapper methods are: * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, * `zipObject`, `zipObjectDeep`, and `zipWith` * * The wrapper methods that are **not** chainable by default are: * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, * `upperFirst`, `value`, and `words` * * @name _ * @constructor * @category Seq * @param {*} value The value to wrap in a `lodash` instance. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * function square(n) { * return n * n; * } * * var wrapped = _([1, 2, 3]); * * // Returns an unwrapped value. * wrapped.reduce(_.add); * // => 6 * * // Returns a wrapped value. * var squares = wrapped.map(square); * * _.isArray(squares); * // => false * * _.isArray(squares.value()); * // => true */ function lodash(value) { if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { if (value instanceof LodashWrapper) { return value; } if (hasOwnProperty.call(value, '__wrapped__')) { return wrapperClone(value); } } return new LodashWrapper(value); } /** * The base implementation of `_.create` without support for assigning * properties to the created object. * * @private * @param {Object} proto The object to inherit from. * @returns {Object} Returns the new object. */ var baseCreate = (function() { function object() {} return function(proto) { if (!isObject(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object; object.prototype = undefined; return result; }; }()); /** * The function whose prototype chain sequence wrappers inherit from. * * @private */ function baseLodash() { // No operation performed. } /** * The base constructor for creating `lodash` wrapper objects. * * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable explicit method chain sequences. */ function LodashWrapper(value, chainAll) { this.__wrapped__ = value; this.__actions__ = []; this.__chain__ = !!chainAll; this.__index__ = 0; this.__values__ = undefined; } /** * By default, the template delimiters used by lodash are like those in * embedded Ruby (ERB) as well as ES2015 template strings. Change the * following template settings to use alternative delimiters. * * @static * @memberOf _ * @type {Object} */ lodash.templateSettings = { /** * Used to detect `data` property values to be HTML-escaped. * * @memberOf _.templateSettings * @type {RegExp} */ 'escape': reEscape, /** * Used to detect code to be evaluated. * * @memberOf _.templateSettings * @type {RegExp} */ 'evaluate': reEvaluate, /** * Used to detect `data` property values to inject. * * @memberOf _.templateSettings * @type {RegExp} */ 'interpolate': reInterpolate, /** * Used to reference the data object in the template text. * * @memberOf _.templateSettings * @type {string} */ 'variable': '', /** * Used to import variables into the compiled template. * * @memberOf _.templateSettings * @type {Object} */ 'imports': { /** * A reference to the `lodash` function. * * @memberOf _.templateSettings.imports * @type {Function} */ '_': lodash } }; // Ensure wrappers are instances of `baseLodash`. lodash.prototype = baseLodash.prototype; lodash.prototype.constructor = lodash; LodashWrapper.prototype = baseCreate(baseLodash.prototype); LodashWrapper.prototype.constructor = LodashWrapper; /*------------------------------------------------------------------------*/ /** * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. * * @private * @constructor * @param {*} value The value to wrap. */ function LazyWrapper(value) { this.__wrapped__ = value; this.__actions__ = []; this.__dir__ = 1; this.__filtered__ = false; this.__iteratees__ = []; this.__takeCount__ = MAX_ARRAY_LENGTH; this.__views__ = []; } /** * Creates a clone of the lazy wrapper object. * * @private * @name clone * @memberOf LazyWrapper * @returns {Object} Returns the cloned `LazyWrapper` object. */ function lazyClone() { var result = new LazyWrapper(this.__wrapped__); result.__actions__ = copyArray(this.__actions__); result.__dir__ = this.__dir__; result.__filtered__ = this.__filtered__; result.__iteratees__ = copyArray(this.__iteratees__); result.__takeCount__ = this.__takeCount__; result.__views__ = copyArray(this.__views__); return result; } /** * Reverses the direction of lazy iteration. * * @private * @name reverse * @memberOf LazyWrapper * @returns {Object} Returns the new reversed `LazyWrapper` object. */ function lazyReverse() { if (this.__filtered__) { var result = new LazyWrapper(this); result.__dir__ = -1; result.__filtered__ = true; } else { result = this.clone(); result.__dir__ *= -1; } return result; } /** * Extracts the unwrapped value from its lazy wrapper. * * @private * @name value * @memberOf LazyWrapper * @returns {*} Returns the unwrapped value. */ function lazyValue() { var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : (start - 1), iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); if (!isArr || (!isRight && arrLength == length && takeCount == length)) { return baseWrapperValue(array, this.__actions__); } var result = []; outer: while (length-- && resIndex < takeCount) { index += dir; var iterIndex = -1, value = array[index]; while (++iterIndex < iterLength) { var data = iteratees[iterIndex], iteratee = data.iteratee, type = data.type, computed = iteratee(value); if (type == LAZY_MAP_FLAG) { value = computed; } else if (!computed) { if (type == LAZY_FILTER_FLAG) { continue outer; } else { break outer; } } } result[resIndex++] = value; } return result; } // Ensure `LazyWrapper` is an instance of `baseLodash`. LazyWrapper.prototype = baseCreate(baseLodash.prototype); LazyWrapper.prototype.constructor = LazyWrapper; /*------------------------------------------------------------------------*/ /** * Creates a hash object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } /** * Removes all key-value entries from the hash. * * @private * @name clear * @memberOf Hash */ function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; this.size = 0; } /** * Removes `key` and its value from the hash. * * @private * @name delete * @memberOf Hash * @param {Object} hash The hash to modify. * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function hashDelete(key) { var result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } /** * Gets the hash value for `key`. * * @private * @name get * @memberOf Hash * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? undefined : result; } return hasOwnProperty.call(data, key) ? data[key] : undefined; } /** * Checks if a hash value for `key` exists. * * @private * @name has * @memberOf Hash * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function hashHas(key) { var data = this.__data__; return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); } /** * Sets the hash `key` to `value`. * * @private * @name set * @memberOf Hash * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the hash instance. */ function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; return this; } // Add methods to `Hash`. Hash.prototype.clear = hashClear; Hash.prototype['delete'] = hashDelete; Hash.prototype.get = hashGet; Hash.prototype.has = hashHas; Hash.prototype.set = hashSet; /*------------------------------------------------------------------------*/ /** * Creates an list cache object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function ListCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } /** * Removes all key-value entries from the list cache. * * @private * @name clear * @memberOf ListCache */ function listCacheClear() { this.__data__ = []; this.size = 0; } /** * Removes `key` and its value from the list cache. * * @private * @name delete * @memberOf ListCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function listCacheDelete(key) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { return false; } var lastIndex = data.length - 1; if (index == lastIndex) { data.pop(); } else { splice.call(data, index, 1); } --this.size; return true; } /** * Gets the list cache value for `key`. * * @private * @name get * @memberOf ListCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? undefined : data[index][1]; } /** * Checks if a list cache value for `key` exists. * * @private * @name has * @memberOf ListCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function listCacheHas(key) { return assocIndexOf(this.__data__, key) > -1; } /** * Sets the list cache `key` to `value`. * * @private * @name set * @memberOf ListCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the list cache instance. */ function listCacheSet(key, value) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { ++this.size; data.push([key, value]); } else { data[index][1] = value; } return this; } // Add methods to `ListCache`. ListCache.prototype.clear = listCacheClear; ListCache.prototype['delete'] = listCacheDelete; ListCache.prototype.get = listCacheGet; ListCache.prototype.has = listCacheHas; ListCache.prototype.set = listCacheSet; /*------------------------------------------------------------------------*/ /** * Creates a map cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function MapCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } /** * Removes all key-value entries from the map. * * @private * @name clear * @memberOf MapCache */ function mapCacheClear() { this.size = 0; this.__data__ = { 'hash': new Hash, 'map': new (Map || ListCache), 'string': new Hash }; } /** * Removes `key` and its value from the map. * * @private * @name delete * @memberOf MapCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function mapCacheDelete(key) { var result = getMapData(this, key)['delete'](key); this.size -= result ? 1 : 0; return result; } /** * Gets the map value for `key`. * * @private * @name get * @memberOf MapCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function mapCacheGet(key) { return getMapData(this, key).get(key); } /** * Checks if a map value for `key` exists. * * @private * @name has * @memberOf MapCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function mapCacheHas(key) { return getMapData(this, key).has(key); } /** * Sets the map `key` to `value`. * * @private * @name set * @memberOf MapCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the map cache instance. */ function mapCacheSet(key, value) { var data = getMapData(this, key), size = data.size; data.set(key, value); this.size += data.size == size ? 0 : 1; return this; } // Add methods to `MapCache`. MapCache.prototype.clear = mapCacheClear; MapCache.prototype['delete'] = mapCacheDelete; MapCache.prototype.get = mapCacheGet; MapCache.prototype.has = mapCacheHas; MapCache.prototype.set = mapCacheSet; /*------------------------------------------------------------------------*/ /** * * Creates an array cache object to store unique values. * * @private * @constructor * @param {Array} [values] The values to cache. */ function SetCache(values) { var index = -1, length = values == null ? 0 : values.length; this.__data__ = new MapCache; while (++index < length) { this.add(values[index]); } } /** * Adds `value` to the array cache. * * @private * @name add * @memberOf SetCache * @alias push * @param {*} value The value to cache. * @returns {Object} Returns the cache instance. */ function setCacheAdd(value) { this.__data__.set(value, HASH_UNDEFINED); return this; } /** * Checks if `value` is in the array cache. * * @private * @name has * @memberOf SetCache * @param {*} value The value to search for. * @returns {number} Returns `true` if `value` is found, else `false`. */ function setCacheHas(value) { return this.__data__.has(value); } // Add methods to `SetCache`. SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; SetCache.prototype.has = setCacheHas; /*------------------------------------------------------------------------*/ /** * Creates a stack cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Stack(entries) { var data = this.__data__ = new ListCache(entries); this.size = data.size; } /** * Removes all key-value entries from the stack. * * @private * @name clear * @memberOf Stack */ function stackClear() { this.__data__ = new ListCache; this.size = 0; } /** * Removes `key` and its value from the stack. * * @private * @name delete * @memberOf Stack * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function stackDelete(key) { var data = this.__data__, result = data['delete'](key); this.size = data.size; return result; } /** * Gets the stack value for `key`. * * @private * @name get * @memberOf Stack * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function stackGet(key) { return this.__data__.get(key); } /** * Checks if a stack value for `key` exists. * * @private * @name has * @memberOf Stack * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function stackHas(key) { return this.__data__.has(key); } /** * Sets the stack `key` to `value`. * * @private * @name set * @memberOf Stack * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the stack cache instance. */ function stackSet(key, value) { var data = this.__data__; if (data instanceof ListCache) { var pairs = data.__data__; if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { pairs.push([key, value]); this.size = ++data.size; return this; } data = this.__data__ = new MapCache(pairs); } data.set(key, value); this.size = data.size; return this; } // Add methods to `Stack`. Stack.prototype.clear = stackClear; Stack.prototype['delete'] = stackDelete; Stack.prototype.get = stackGet; Stack.prototype.has = stackHas; Stack.prototype.set = stackSet; /*------------------------------------------------------------------------*/ /** * Creates an array of the enumerable property names of the array-like `value`. * * @private * @param {*} value The value to query. * @param {boolean} inherited Specify returning inherited property names. * @returns {Array} Returns the array of property names. */ function arrayLikeKeys(value, inherited) { var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. (isBuff && (key == 'offset' || key == 'parent')) || // PhantomJS 2 has enumerable non-index properties on typed arrays. (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || // Skip index properties. isIndex(key, length) ))) { result.push(key); } } return result; } /** * A specialized version of `_.sample` for arrays. * * @private * @param {Array} array The array to sample. * @returns {*} Returns the random element. */ function arraySample(array) { var length = array.length; return length ? array[baseRandom(0, length - 1)] : undefined; } /** * A specialized version of `_.sampleSize` for arrays. * * @private * @param {Array} array The array to sample. * @param {number} n The number of elements to sample. * @returns {Array} Returns the random elements. */ function arraySampleSize(array, n) { return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); } /** * A specialized version of `_.shuffle` for arrays. * * @private * @param {Array} array The array to shuffle. * @returns {Array} Returns the new shuffled array. */ function arrayShuffle(array) { return shuffleSelf(copyArray(array)); } /** * This function is like `assignValue` except that it doesn't assign * `undefined` values. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function assignMergeValue(object, key, value) { if ((value !== undefined && !eq(object[key], value)) || (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } /** * Assigns `value` to `key` of `object` if the existing value is not equivalent * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function assignValue(object, key, value) { var objValue = object[key]; if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } /** * Gets the index at which the `key` is found in `array` of key-value pairs. * * @private * @param {Array} array The array to inspect. * @param {*} key The key to search for. * @returns {number} Returns the index of the matched value, else `-1`. */ function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } /** * Aggregates elements of `collection` on `accumulator` with keys transformed * by `iteratee` and values set by `setter`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform keys. * @param {Object} accumulator The initial aggregated object. * @returns {Function} Returns `accumulator`. */ function baseAggregator(collection, setter, iteratee, accumulator) { baseEach(collection, function(value, key, collection) { setter(accumulator, value, iteratee(value), collection); }); return accumulator; } /** * The base implementation of `_.assign` without support for multiple sources * or `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @returns {Object} Returns `object`. */ function baseAssign(object, source) { return object && copyObject(source, keys(source), object); } /** * The base implementation of `_.assignIn` without support for multiple sources * or `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @returns {Object} Returns `object`. */ function baseAssignIn(object, source) { return object && copyObject(source, keysIn(source), object); } /** * The base implementation of `assignValue` and `assignMergeValue` without * value checks. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function baseAssignValue(object, key, value) { if (key == '__proto__' && defineProperty) { defineProperty(object, key, { 'configurable': true, 'enumerable': true, 'value': value, 'writable': true }); } else { object[key] = value; } } /** * The base implementation of `_.at` without support for individual paths. * * @private * @param {Object} object The object to iterate over. * @param {string[]} paths The property paths to pick. * @returns {Array} Returns the picked elements. */ function baseAt(object, paths) { var index = -1, length = paths.length, result = Array(length), skip = object == null; while (++index < length) { result[index] = skip ? undefined : get(object, paths[index]); } return result; } /** * The base implementation of `_.clamp` which doesn't coerce arguments. * * @private * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. */ function baseClamp(number, lower, upper) { if (number === number) { if (upper !== undefined) { number = number <= upper ? number : upper; } if (lower !== undefined) { number = number >= lower ? number : lower; } } return number; } /** * The base implementation of `_.clone` and `_.cloneDeep` which tracks * traversed objects. * * @private * @param {*} value The value to clone. * @param {boolean} bitmask The bitmask flags. * 1 - Deep clone * 2 - Flatten inherited properties * 4 - Clone symbols * @param {Function} [customizer] The function to customize cloning. * @param {string} [key] The key of `value`. * @param {Object} [object] The parent object of `value`. * @param {Object} [stack] Tracks traversed objects and their clone counterparts. * @returns {*} Returns the cloned value. */ function baseClone(value, bitmask, customizer, key, object, stack) { var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; if (customizer) { result = object ? customizer(value, key, object, stack) : customizer(value); } if (result !== undefined) { return result; } if (!isObject(value)) { return value; } var isArr = isArray(value); if (isArr) { result = initCloneArray(value); if (!isDeep) { return copyArray(value, result); } } else { var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; if (isBuffer(value)) { return cloneBuffer(value, isDeep); } if (tag == objectTag || tag == argsTag || (isFunc && !object)) { result = (isFlat || isFunc) ? {} : initCloneObject(value); if (!isDeep) { return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); } } else { if (!cloneableTags[tag]) { return object ? value : {}; } result = initCloneByTag(value, tag, isDeep); } } // Check for circular references and return its corresponding clone. stack || (stack = new Stack); var stacked = stack.get(value); if (stacked) { return stacked; } stack.set(value, result); if (isSet(value)) { value.forEach(function(subValue) { result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); }); } else if (isMap(value)) { value.forEach(function(subValue, key) { result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); }); } var keysFunc = isFull ? (isFlat ? getAllKeysIn : getAllKeys) : (isFlat ? keysIn : keys); var props = isArr ? undefined : keysFunc(value); arrayEach(props || value, function(subValue, key) { if (props) { key = subValue; subValue = value[key]; } // Recursively populate clone (susceptible to call stack limits). assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); }); return result; } /** * The base implementation of `_.conforms` which doesn't clone `source`. * * @private * @param {Object} source The object of property predicates to conform to. * @returns {Function} Returns the new spec function. */ function baseConforms(source) { var props = keys(source); return function(object) { return baseConformsTo(object, source, props); }; } /** * The base implementation of `_.conformsTo` which accepts `props` to check. * * @private * @param {Object} object The object to inspect. * @param {Object} source The object of property predicates to conform to. * @returns {boolean} Returns `true` if `object` conforms, else `false`. */ function baseConformsTo(object, source, props) { var length = props.length; if (object == null) { return !length; } object = Object(object); while (length--) { var key = props[length], predicate = source[key], value = object[key]; if ((value === undefined && !(key in object)) || !predicate(value)) { return false; } } return true; } /** * The base implementation of `_.delay` and `_.defer` which accepts `args` * to provide to `func`. * * @private * @param {Function} func The function to delay. * @param {number} wait The number of milliseconds to delay invocation. * @param {Array} args The arguments to provide to `func`. * @returns {number|Object} Returns the timer id or timeout object. */ function baseDelay(func, wait, args) { if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } return setTimeout(function() { func.apply(undefined, args); }, wait); } /** * The base implementation of methods like `_.difference` without support * for excluding multiple arrays or iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Array} values The values to exclude. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of filtered values. */ function baseDifference(array, values, iteratee, comparator) { var index = -1, includes = arrayIncludes, isCommon = true, length = array.length, result = [], valuesLength = values.length; if (!length) { return result; } if (iteratee) { values = arrayMap(values, baseUnary(iteratee)); } if (comparator) { includes = arrayIncludesWith; isCommon = false; } else if (values.length >= LARGE_ARRAY_SIZE) { includes = cacheHas; isCommon = false; values = new SetCache(values); } outer: while (++index < length) { var value = array[index], computed = iteratee == null ? value : iteratee(value); value = (comparator || value !== 0) ? value : 0; if (isCommon && computed === computed) { var valuesIndex = valuesLength; while (valuesIndex--) { if (values[valuesIndex] === computed) { continue outer; } } result.push(value); } else if (!includes(values, computed, comparator)) { result.push(value); } } return result; } /** * The base implementation of `_.forEach` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array|Object} Returns `collection`. */ var baseEach = createBaseEach(baseForOwn); /** * The base implementation of `_.forEachRight` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array|Object} Returns `collection`. */ var baseEachRight = createBaseEach(baseForOwnRight, true); /** * The base implementation of `_.every` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false` */ function baseEvery(collection, predicate) { var result = true; baseEach(collection, function(value, index, collection) { result = !!predicate(value, index, collection); return result; }); return result; } /** * The base implementation of methods like `_.max` and `_.min` which accepts a * `comparator` to determine the extremum value. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The iteratee invoked per iteration. * @param {Function} comparator The comparator used to compare values. * @returns {*} Returns the extremum value. */ function baseExtremum(array, iteratee, comparator) { var index = -1, length = array.length; while (++index < length) { var value = array[index], current = iteratee(value); if (current != null && (computed === undefined ? (current === current && !isSymbol(current)) : comparator(current, computed) )) { var computed = current, result = value; } } return result; } /** * The base implementation of `_.fill` without an iteratee call guard. * * @private * @param {Array} array The array to fill. * @param {*} value The value to fill `array` with. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns `array`. */ function baseFill(array, value, start, end) { var length = array.length; start = toInteger(start); if (start < 0) { start = -start > length ? 0 : (length + start); } end = (end === undefined || end > length) ? length : toInteger(end); if (end < 0) { end += length; } end = start > end ? 0 : toLength(end); while (start < end) { array[start++] = value; } return array; } /** * The base implementation of `_.filter` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function baseFilter(collection, predicate) { var result = []; baseEach(collection, function(value, index, collection) { if (predicate(value, index, collection)) { result.push(value); } }); return result; } /** * The base implementation of `_.flatten` with support for restricting flattening. * * @private * @param {Array} array The array to flatten. * @param {number} depth The maximum recursion depth. * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */ function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length; predicate || (predicate = isFlattenable); result || (result = []); while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { // Recursively flatten arrays (susceptible to call stack limits). baseFlatten(value, depth - 1, predicate, isStrict, result); } else { arrayPush(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result; } /** * The base implementation of `baseForOwn` which iterates over `object` * properties returned by `keysFunc` and invokes `iteratee` for each property. * Iteratee functions may exit iteration early by explicitly returning `false`. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} keysFunc The function to get the keys of `object`. * @returns {Object} Returns `object`. */ var baseFor = createBaseFor(); /** * This function is like `baseFor` except that it iterates over properties * in the opposite order. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} keysFunc The function to get the keys of `object`. * @returns {Object} Returns `object`. */ var baseForRight = createBaseFor(true); /** * The base implementation of `_.forOwn` without support for iteratee shorthands. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } /** * The base implementation of `_.forOwnRight` without support for iteratee shorthands. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwnRight(object, iteratee) { return object && baseForRight(object, iteratee, keys); } /** * The base implementation of `_.functions` which creates an array of * `object` function property names filtered from `props`. * * @private * @param {Object} object The object to inspect. * @param {Array} props The property names to filter. * @returns {Array} Returns the function names. */ function baseFunctions(object, props) { return arrayFilter(props, function(key) { return isFunction(object[key]); }); } /** * The base implementation of `_.get` without support for default values. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @returns {*} Returns the resolved value. */ function baseGet(object, path) { path = castPath(path, object); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return (index && index == length) ? object : undefined; } /** * The base implementation of `getAllKeys` and `getAllKeysIn` which uses * `keysFunc` and `symbolsFunc` to get the enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @param {Function} keysFunc The function to get the keys of `object`. * @param {Function} symbolsFunc The function to get the symbols of `object`. * @returns {Array} Returns the array of property names and symbols. */ function baseGetAllKeys(object, keysFunc, symbolsFunc) { var result = keysFunc(object); return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); } /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return (symToStringTag && symToStringTag in Object(value)) ? getRawTag(value) : objectToString(value); } /** * The base implementation of `_.gt` which doesn't coerce arguments. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is greater than `other`, * else `false`. */ function baseGt(value, other) { return value > other; } /** * The base implementation of `_.has` without support for deep paths. * * @private * @param {Object} [object] The object to query. * @param {Array|string} key The key to check. * @returns {boolean} Returns `true` if `key` exists, else `false`. */ function baseHas(object, key) { return object != null && hasOwnProperty.call(object, key); } /** * The base implementation of `_.hasIn` without support for deep paths. * * @private * @param {Object} [object] The object to query. * @param {Array|string} key The key to check. * @returns {boolean} Returns `true` if `key` exists, else `false`. */ function baseHasIn(object, key) { return object != null && key in Object(object); } /** * The base implementation of `_.inRange` which doesn't coerce arguments. * * @private * @param {number} number The number to check. * @param {number} start The start of the range. * @param {number} end The end of the range. * @returns {boolean} Returns `true` if `number` is in the range, else `false`. */ function baseInRange(number, start, end) { return number >= nativeMin(start, end) && number < nativeMax(start, end); } /** * The base implementation of methods like `_.intersection`, without support * for iteratee shorthands, that accepts an array of arrays to inspect. * * @private * @param {Array} arrays The arrays to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of shared values. */ function baseIntersection(arrays, iteratee, comparator) { var includes = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array(othLength), maxLength = Infinity, result = []; while (othIndex--) { var array = arrays[othIndex]; if (othIndex && iteratee) { array = arrayMap(array, baseUnary(iteratee)); } maxLength = nativeMin(array.length, maxLength); caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) ? new SetCache(othIndex && array) : undefined; } array = arrays[0]; var index = -1, seen = caches[0]; outer: while (++index < length && result.length < maxLength) { var value = array[index], computed = iteratee ? iteratee(value) : value; value = (comparator || value !== 0) ? value : 0; if (!(seen ? cacheHas(seen, computed) : includes(result, computed, comparator) )) { othIndex = othLength; while (--othIndex) { var cache = caches[othIndex]; if (!(cache ? cacheHas(cache, computed) : includes(arrays[othIndex], computed, comparator)) ) { continue outer; } } if (seen) { seen.push(computed); } result.push(value); } } return result; } /** * The base implementation of `_.invert` and `_.invertBy` which inverts * `object` with values transformed by `iteratee` and set by `setter`. * * @private * @param {Object} object The object to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform values. * @param {Object} accumulator The initial inverted object. * @returns {Function} Returns `accumulator`. */ function baseInverter(object, setter, iteratee, accumulator) { baseForOwn(object, function(value, key, object) { setter(accumulator, iteratee(value), key, object); }); return accumulator; } /** * The base implementation of `_.invoke` without support for individual * method arguments. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path of the method to invoke. * @param {Array} args The arguments to invoke the method with. * @returns {*} Returns the result of the invoked method. */ function baseInvoke(object, path, args) { path = castPath(path, object); object = parent(object, path); var func = object == null ? object : object[toKey(last(path))]; return func == null ? undefined : apply(func, object, args); } /** * The base implementation of `_.isArguments`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, */ function baseIsArguments(value) { return isObjectLike(value) && baseGetTag(value) == argsTag; } /** * The base implementation of `_.isArrayBuffer` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. */ function baseIsArrayBuffer(value) { return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; } /** * The base implementation of `_.isDate` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a date object, else `false`. */ function baseIsDate(value) { return isObjectLike(value) && baseGetTag(value) == dateTag; } /** * The base implementation of `_.isEqual` which supports partial comparisons * and tracks traversed objects. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {boolean} bitmask The bitmask flags. * 1 - Unordered comparison * 2 - Partial comparison * @param {Function} [customizer] The function to customize comparisons. * @param {Object} [stack] Tracks traversed `value` and `other` objects. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ function baseIsEqual(value, other, bitmask, customizer, stack) { if (value === other) { return true; } if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } /** * A specialized version of `baseIsEqual` for arrays and objects which performs * deep comparisons and tracks traversed objects enabling objects with circular * references to be compared. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); objTag = objTag == argsTag ? objectTag : objTag; othTag = othTag == argsTag ? objectTag : othTag; var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; if (isSameTag && isBuffer(object)) { if (!isBuffer(other)) { return false; } objIsArr = true; objIsObj = false; } if (isSameTag && !objIsObj) { stack || (stack = new Stack); return (objIsArr || isTypedArray(object)) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); } if (!(bitmask & COMPARE_PARTIAL_FLAG)) { var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); if (objIsWrapped || othIsWrapped) { var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; stack || (stack = new Stack); return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack); return equalObjects(object, other, bitmask, customizer, equalFunc, stack); } /** * The base implementation of `_.isMap` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a map, else `false`. */ function baseIsMap(value) { return isObjectLike(value) && getTag(value) == mapTag; } /** * The base implementation of `_.isMatch` without support for iteratee shorthands. * * @private * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @param {Array} matchData The property names, values, and compare flags to match. * @param {Function} [customizer] The function to customize comparisons. * @returns {boolean} Returns `true` if `object` is a match, else `false`. */ function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(object); while (index--) { var data = matchData[index]; if ((noCustomizer && data[2]) ? data[1] !== object[data[0]] : !(data[0] in object) ) { return false; } } while (++index < length) { data = matchData[index]; var key = data[0], objValue = object[key], srcValue = data[1]; if (noCustomizer && data[2]) { if (objValue === undefined && !(key in object)) { return false; } } else { var stack = new Stack; if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result )) { return false; } } } return true; } /** * The base implementation of `_.isNative` without bad shim checks. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, * else `false`. */ function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } /** * The base implementation of `_.isRegExp` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. */ function baseIsRegExp(value) { return isObjectLike(value) && baseGetTag(value) == regexpTag; } /** * The base implementation of `_.isSet` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a set, else `false`. */ function baseIsSet(value) { return isObjectLike(value) && getTag(value) == setTag; } /** * The base implementation of `_.isTypedArray` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. */ function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; } /** * The base implementation of `_.iteratee`. * * @private * @param {*} [value=_.identity] The value to convert to an iteratee. * @returns {Function} Returns the iteratee. */ function baseIteratee(value) { // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. if (typeof value == 'function') { return value; } if (value == null) { return identity; } if (typeof value == 'object') { return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); } return property(value); } /** * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } /** * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeysIn(object) { if (!isObject(object)) { return nativeKeysIn(object); } var isProto = isPrototype(object), result = []; for (var key in object) { if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { result.push(key); } } return result; } /** * The base implementation of `_.lt` which doesn't coerce arguments. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is less than `other`, * else `false`. */ function baseLt(value, other) { return value < other; } /** * The base implementation of `_.map` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function baseMap(collection, iteratee) { var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; baseEach(collection, function(value, key, collection) { result[++index] = iteratee(value, key, collection); }); return result; } /** * The base implementation of `_.matches` which doesn't clone `source`. * * @private * @param {Object} source The object of property values to match. * @returns {Function} Returns the new spec function. */ function baseMatches(source) { var matchData = getMatchData(source); if (matchData.length == 1 && matchData[0][2]) { return matchesStrictComparable(matchData[0][0], matchData[0][1]); } return function(object) { return object === source || baseIsMatch(object, source, matchData); }; } /** * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function baseMatchesProperty(path, srcValue) { if (isKey(path) && isStrictComparable(srcValue)) { return matchesStrictComparable(toKey(path), srcValue); } return function(object) { var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); }; } /** * The base implementation of `_.merge` without support for multiple sources. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {number} srcIndex The index of `source`. * @param {Function} [customizer] The function to customize merged values. * @param {Object} [stack] Tracks traversed source values and their merged * counterparts. */ function baseMerge(object, source, srcIndex, customizer, stack) { if (object === source) { return; } baseFor(source, function(srcValue, key) { stack || (stack = new Stack); if (isObject(srcValue)) { baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); } else { var newValue = customizer ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) : undefined; if (newValue === undefined) { newValue = srcValue; } assignMergeValue(object, key, newValue); } }, keysIn); } /** * A specialized version of `baseMerge` for arrays and objects which performs * deep merges and tracks traversed objects enabling objects with circular * references to be merged. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {string} key The key of the value to merge. * @param {number} srcIndex The index of `source`. * @param {Function} mergeFunc The function to merge values. * @param {Function} [customizer] The function to customize assigned values. * @param {Object} [stack] Tracks traversed source values and their merged * counterparts. */ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); if (stacked) { assignMergeValue(object, key, stacked); return; } var newValue = customizer ? customizer(objValue, srcValue, (key + ''), object, source, stack) : undefined; var isCommon = newValue === undefined; if (isCommon) { var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); newValue = srcValue; if (isArr || isBuff || isTyped) { if (isArray(objValue)) { newValue = objValue; } else if (isArrayLikeObject(objValue)) { newValue = copyArray(objValue); } else if (isBuff) { isCommon = false; newValue = cloneBuffer(srcValue, true); } else if (isTyped) { isCommon = false; newValue = cloneTypedArray(srcValue, true); } else { newValue = []; } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { newValue = objValue; if (isArguments(objValue)) { newValue = toPlainObject(objValue); } else if (!isObject(objValue) || isFunction(objValue)) { newValue = initCloneObject(srcValue); } } else { isCommon = false; } } if (isCommon) { // Recursively merge objects and arrays (susceptible to call stack limits). stack.set(srcValue, newValue); mergeFunc(newValue, srcValue, srcIndex, customizer, stack); stack['delete'](srcValue); } assignMergeValue(object, key, newValue); } /** * The base implementation of `_.nth` which doesn't coerce arguments. * * @private * @param {Array} array The array to query. * @param {number} n The index of the element to return. * @returns {*} Returns the nth element of `array`. */ function baseNth(array, n) { var length = array.length; if (!length) { return; } n += n < 0 ? length : 0; return isIndex(n, length) ? array[n] : undefined; } /** * The base implementation of `_.orderBy` without param guards. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. * @param {string[]} orders The sort orders of `iteratees`. * @returns {Array} Returns the new sorted array. */ function baseOrderBy(collection, iteratees, orders) { var index = -1; iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee())); var result = baseMap(collection, function(value, key, collection) { var criteria = arrayMap(iteratees, function(iteratee) { return iteratee(value); }); return { 'criteria': criteria, 'index': ++index, 'value': value }; }); return baseSortBy(result, function(object, other) { return compareMultiple(object, other, orders); }); } /** * The base implementation of `_.pick` without support for individual * property identifiers. * * @private * @param {Object} object The source object. * @param {string[]} paths The property paths to pick. * @returns {Object} Returns the new object. */ function basePick(object, paths) { return basePickBy(object, paths, function(value, path) { return hasIn(object, path); }); } /** * The base implementation of `_.pickBy` without support for iteratee shorthands. * * @private * @param {Object} object The source object. * @param {string[]} paths The property paths to pick. * @param {Function} predicate The function invoked per property. * @returns {Object} Returns the new object. */ function basePickBy(object, paths, predicate) { var index = -1, length = paths.length, result = {}; while (++index < length) { var path = paths[index], value = baseGet(object, path); if (predicate(value, path)) { baseSet(result, castPath(path, object), value); } } return result; } /** * A specialized version of `baseProperty` which supports deep paths. * * @private * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new accessor function. */ function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } /** * The base implementation of `_.pullAllBy` without support for iteratee * shorthands. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to remove. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns `array`. */ function basePullAll(array, values, iteratee, comparator) { var indexOf = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values.length, seen = array; if (array === values) { values = copyArray(values); } if (iteratee) { seen = arrayMap(array, baseUnary(iteratee)); } while (++index < length) { var fromIndex = 0, value = values[index], computed = iteratee ? iteratee(value) : value; while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { if (seen !== array) { splice.call(seen, fromIndex, 1); } splice.call(array, fromIndex, 1); } } return array; } /** * The base implementation of `_.pullAt` without support for individual * indexes or capturing the removed elements. * * @private * @param {Array} array The array to modify. * @param {number[]} indexes The indexes of elements to remove. * @returns {Array} Returns `array`. */ function basePullAt(array, indexes) { var length = array ? indexes.length : 0, lastIndex = length - 1; while (length--) { var index = indexes[length]; if (length == lastIndex || index !== previous) { var previous = index; if (isIndex(index)) { splice.call(array, index, 1); } else { baseUnset(array, index); } } } return array; } /** * The base implementation of `_.random` without support for returning * floating-point numbers. * * @private * @param {number} lower The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the random number. */ function baseRandom(lower, upper) { return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); } /** * The base implementation of `_.range` and `_.rangeRight` which doesn't * coerce arguments. * * @private * @param {number} start The start of the range. * @param {number} end The end of the range. * @param {number} step The value to increment or decrement by. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Array} Returns the range of numbers. */ function baseRange(start, end, step, fromRight) { var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result = Array(length); while (length--) { result[fromRight ? length : ++index] = start; start += step; } return result; } /** * The base implementation of `_.repeat` which doesn't coerce arguments. * * @private * @param {string} string The string to repeat. * @param {number} n The number of times to repeat the string. * @returns {string} Returns the repeated string. */ function baseRepeat(string, n) { var result = ''; if (!string || n < 1 || n > MAX_SAFE_INTEGER) { return result; } // Leverage the exponentiation by squaring algorithm for a faster repeat. // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. do { if (n % 2) { result += string; } n = nativeFloor(n / 2); if (n) { string += string; } } while (n); return result; } /** * The base implementation of `_.rest` which doesn't validate or coerce arguments. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @returns {Function} Returns the new function. */ function baseRest(func, start) { return setToString(overRest(func, start, identity), func + ''); } /** * The base implementation of `_.sample`. * * @private * @param {Array|Object} collection The collection to sample. * @returns {*} Returns the random element. */ function baseSample(collection) { return arraySample(values(collection)); } /** * The base implementation of `_.sampleSize` without param guards. * * @private * @param {Array|Object} collection The collection to sample. * @param {number} n The number of elements to sample. * @returns {Array} Returns the random elements. */ function baseSampleSize(collection, n) { var array = values(collection); return shuffleSelf(array, baseClamp(n, 0, array.length)); } /** * The base implementation of `_.set`. * * @private * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @param {Function} [customizer] The function to customize path creation. * @returns {Object} Returns `object`. */ function baseSet(object, path, value, customizer) { if (!isObject(object)) { return object; } path = castPath(path, object); var index = -1, length = path.length, lastIndex = length - 1, nested = object; while (nested != null && ++index < length) { var key = toKey(path[index]), newValue = value; if (index != lastIndex) { var objValue = nested[key]; newValue = customizer ? customizer(objValue, key, nested) : undefined; if (newValue === undefined) { newValue = isObject(objValue) ? objValue : (isIndex(path[index + 1]) ? [] : {}); } } assignValue(nested, key, newValue); nested = nested[key]; } return object; } /** * The base implementation of `setData` without support for hot loop shorting. * * @private * @param {Function} func The function to associate metadata with. * @param {*} data The metadata. * @returns {Function} Returns `func`. */ var baseSetData = !metaMap ? identity : function(func, data) { metaMap.set(func, data); return func; }; /** * The base implementation of `setToString` without support for hot loop shorting. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var baseSetToString = !defineProperty ? identity : function(func, string) { return defineProperty(func, 'toString', { 'configurable': true, 'enumerable': false, 'value': constant(string), 'writable': true }); }; /** * The base implementation of `_.shuffle`. * * @private * @param {Array|Object} collection The collection to shuffle. * @returns {Array} Returns the new shuffled array. */ function baseShuffle(collection) { return shuffleSelf(values(collection)); } /** * The base implementation of `_.slice` without an iteratee call guard. * * @private * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */ function baseSlice(array, start, end) { var index = -1, length = array.length; if (start < 0) { start = -start > length ? 0 : (length + start); } end = end > length ? length : end; if (end < 0) { end += length; } length = start > end ? 0 : ((end - start) >>> 0); start >>>= 0; var result = Array(length); while (++index < length) { result[index] = array[index + start]; } return result; } /** * The base implementation of `_.some` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function baseSome(collection, predicate) { var result; baseEach(collection, function(value, index, collection) { result = predicate(value, index, collection); return !result; }); return !!result; } /** * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which * performs a binary search of `array` to determine the index at which `value` * should be inserted into `array` in order to maintain its sort order. * * @private * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {boolean} [retHighest] Specify returning the highest qualified index. * @returns {number} Returns the index at which `value` should be inserted * into `array`. */ function baseSortedIndex(array, value, retHighest) { var low = 0, high = array == null ? low : array.length; if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { while (low < high) { var mid = (low + high) >>> 1, computed = array[mid]; if (computed !== null && !isSymbol(computed) && (retHighest ? (computed <= value) : (computed < value))) { low = mid + 1; } else { high = mid; } } return high; } return baseSortedIndexBy(array, value, identity, retHighest); } /** * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` * which invokes `iteratee` for `value` and each element of `array` to compute * their sort ranking. The iteratee is invoked with one argument; (value). * * @private * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {Function} iteratee The iteratee invoked per element. * @param {boolean} [retHighest] Specify returning the highest qualified index. * @returns {number} Returns the index at which `value` should be inserted * into `array`. */ function baseSortedIndexBy(array, value, iteratee, retHighest) { value = iteratee(value); var low = 0, high = array == null ? 0 : array.length, valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined; while (low < high) { var mid = nativeFloor((low + high) / 2), computed = iteratee(array[mid]), othIsDefined = computed !== undefined, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); if (valIsNaN) { var setLow = retHighest || othIsReflexive; } else if (valIsUndefined) { setLow = othIsReflexive && (retHighest || othIsDefined); } else if (valIsNull) { setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); } else if (valIsSymbol) { setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); } else if (othIsNull || othIsSymbol) { setLow = false; } else { setLow = retHighest ? (computed <= value) : (computed < value); } if (setLow) { low = mid + 1; } else { high = mid; } } return nativeMin(high, MAX_ARRAY_INDEX); } /** * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without * support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @returns {Array} Returns the new duplicate free array. */ function baseSortedUniq(array, iteratee) { var index = -1, length = array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index], computed = iteratee ? iteratee(value) : value; if (!index || !eq(computed, seen)) { var seen = computed; result[resIndex++] = value === 0 ? 0 : value; } } return result; } /** * The base implementation of `_.toNumber` which doesn't ensure correct * conversions of binary, hexadecimal, or octal string values. * * @private * @param {*} value The value to process. * @returns {number} Returns the number. */ function baseToNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } return +value; } /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. * * @private * @param {*} value The value to process. * @returns {string} Returns the string. */ function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; } if (isArray(value)) { // Recursively convert values (susceptible to call stack limits). return arrayMap(value, baseToString) + ''; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ''; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } /** * The base implementation of `_.uniqBy` without support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new duplicate free array. */ function baseUniq(array, iteratee, comparator) { var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; if (comparator) { isCommon = false; includes = arrayIncludesWith; } else if (length >= LARGE_ARRAY_SIZE) { var set = iteratee ? null : createSet(array); if (set) { return setToArray(set); } isCommon = false; includes = cacheHas; seen = new SetCache; } else { seen = iteratee ? [] : result; } outer: while (++index < length) { var value = array[index], computed = iteratee ? iteratee(value) : value; value = (comparator || value !== 0) ? value : 0; if (isCommon && computed === computed) { var seenIndex = seen.length; while (seenIndex--) { if (seen[seenIndex] === computed) { continue outer; } } if (iteratee) { seen.push(computed); } result.push(value); } else if (!includes(seen, computed, comparator)) { if (seen !== result) { seen.push(computed); } result.push(value); } } return result; } /** * The base implementation of `_.unset`. * * @private * @param {Object} object The object to modify. * @param {Array|string} path The property path to unset. * @returns {boolean} Returns `true` if the property is deleted, else `false`. */ function baseUnset(object, path) { path = castPath(path, object); object = parent(object, path); return object == null || delete object[toKey(last(path))]; } /** * The base implementation of `_.update`. * * @private * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to update. * @param {Function} updater The function to produce the updated value. * @param {Function} [customizer] The function to customize path creation. * @returns {Object} Returns `object`. */ function baseUpdate(object, path, updater, customizer) { return baseSet(object, path, updater(baseGet(object, path)), customizer); } /** * The base implementation of methods like `_.dropWhile` and `_.takeWhile` * without support for iteratee shorthands. * * @private * @param {Array} array The array to query. * @param {Function} predicate The function invoked per iteration. * @param {boolean} [isDrop] Specify dropping elements instead of taking them. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Array} Returns the slice of `array`. */ function baseWhile(array, predicate, isDrop, fromRight) { var length = array.length, index = fromRight ? length : -1; while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {} return isDrop ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); } /** * The base implementation of `wrapperValue` which returns the result of * performing a sequence of actions on the unwrapped `value`, where each * successive action is supplied the return value of the previous. * * @private * @param {*} value The unwrapped value. * @param {Array} actions Actions to perform to resolve the unwrapped value. * @returns {*} Returns the resolved value. */ function baseWrapperValue(value, actions) { var result = value; if (result instanceof LazyWrapper) { result = result.value(); } return arrayReduce(actions, function(result, action) { return action.func.apply(action.thisArg, arrayPush([result], action.args)); }, result); } /** * The base implementation of methods like `_.xor`, without support for * iteratee shorthands, that accepts an array of arrays to inspect. * * @private * @param {Array} arrays The arrays to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of values. */ function baseXor(arrays, iteratee, comparator) { var length = arrays.length; if (length < 2) { return length ? baseUniq(arrays[0]) : []; } var index = -1, result = Array(length); while (++index < length) { var array = arrays[index], othIndex = -1; while (++othIndex < length) { if (othIndex != index) { result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); } } } return baseUniq(baseFlatten(result, 1), iteratee, comparator); } /** * This base implementation of `_.zipObject` which assigns values using `assignFunc`. * * @private * @param {Array} props The property identifiers. * @param {Array} values The property values. * @param {Function} assignFunc The function to assign values. * @returns {Object} Returns the new object. */ function baseZipObject(props, values, assignFunc) { var index = -1, length = props.length, valsLength = values.length, result = {}; while (++index < length) { var value = index < valsLength ? values[index] : undefined; assignFunc(result, props[index], value); } return result; } /** * Casts `value` to an empty array if it's not an array like object. * * @private * @param {*} value The value to inspect. * @returns {Array|Object} Returns the cast array-like object. */ function castArrayLikeObject(value) { return isArrayLikeObject(value) ? value : []; } /** * Casts `value` to `identity` if it's not a function. * * @private * @param {*} value The value to inspect. * @returns {Function} Returns cast function. */ function castFunction(value) { return typeof value == 'function' ? value : identity; } /** * Casts `value` to a path array if it's not one. * * @private * @param {*} value The value to inspect. * @param {Object} [object] The object to query keys on. * @returns {Array} Returns the cast property path array. */ function castPath(value, object) { if (isArray(value)) { return value; } return isKey(value, object) ? [value] : stringToPath(toString(value)); } /** * A `baseRest` alias which can be replaced with `identity` by module * replacement plugins. * * @private * @type {Function} * @param {Function} func The function to apply a rest parameter to. * @returns {Function} Returns the new function. */ var castRest = baseRest; /** * Casts `array` to a slice if it's needed. * * @private * @param {Array} array The array to inspect. * @param {number} start The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the cast slice. */ function castSlice(array, start, end) { var length = array.length; end = end === undefined ? length : end; return (!start && end >= length) ? array : baseSlice(array, start, end); } /** * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). * * @private * @param {number|Object} id The timer id or timeout object of the timer to clear. */ var clearTimeout = ctxClearTimeout || function(id) { return root.clearTimeout(id); }; /** * Creates a clone of `buffer`. * * @private * @param {Buffer} buffer The buffer to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Buffer} Returns the cloned buffer. */ function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } /** * Creates a clone of `arrayBuffer`. * * @private * @param {ArrayBuffer} arrayBuffer The array buffer to clone. * @returns {ArrayBuffer} Returns the cloned array buffer. */ function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new Uint8Array(result).set(new Uint8Array(arrayBuffer)); return result; } /** * Creates a clone of `dataView`. * * @private * @param {Object} dataView The data view to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned data view. */ function cloneDataView(dataView, isDeep) { var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); } /** * Creates a clone of `regexp`. * * @private * @param {Object} regexp The regexp to clone. * @returns {Object} Returns the cloned regexp. */ function cloneRegExp(regexp) { var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); result.lastIndex = regexp.lastIndex; return result; } /** * Creates a clone of the `symbol` object. * * @private * @param {Object} symbol The symbol object to clone. * @returns {Object} Returns the cloned symbol object. */ function cloneSymbol(symbol) { return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; } /** * Creates a clone of `typedArray`. * * @private * @param {Object} typedArray The typed array to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned typed array. */ function cloneTypedArray(typedArray, isDeep) { var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); } /** * Compares values to sort them in ascending order. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {number} Returns the sort order indicator for `value`. */ function compareAscending(value, other) { if (value !== other) { var valIsDefined = value !== undefined, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); var othIsDefined = other !== undefined, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || (valIsNull && othIsDefined && othIsReflexive) || (!valIsDefined && othIsReflexive) || !valIsReflexive) { return 1; } if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || (othIsNull && valIsDefined && valIsReflexive) || (!othIsDefined && valIsReflexive) || !othIsReflexive) { return -1; } } return 0; } /** * Used by `_.orderBy` to compare multiple properties of a value to another * and stable sort them. * * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, * specify an order of "desc" for descending or "asc" for ascending sort order * of corresponding values. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {boolean[]|string[]} orders The order to sort by for each property. * @returns {number} Returns the sort order indicator for `object`. */ function compareMultiple(object, other, orders) { var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; while (++index < length) { var result = compareAscending(objCriteria[index], othCriteria[index]); if (result) { if (index >= ordersLength) { return result; } var order = orders[index]; return result * (order == 'desc' ? -1 : 1); } } // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications // that causes it, under certain circumstances, to provide the same value for // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 // for more details. // // This also ensures a stable sort in V8 and other engines. // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. return object.index - other.index; } /** * Creates an array that is the composition of partially applied arguments, * placeholders, and provided arguments into a single array of arguments. * * @private * @param {Array} args The provided arguments. * @param {Array} partials The arguments to prepend to those provided. * @param {Array} holders The `partials` placeholder indexes. * @params {boolean} [isCurried] Specify composing for a curried function. * @returns {Array} Returns the new array of composed arguments. */ function composeArgs(args, partials, holders, isCurried) { var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result = Array(leftLength + rangeLength), isUncurried = !isCurried; while (++leftIndex < leftLength) { result[leftIndex] = partials[leftIndex]; } while (++argsIndex < holdersLength) { if (isUncurried || argsIndex < argsLength) { result[holders[argsIndex]] = args[argsIndex]; } } while (rangeLength--) { result[leftIndex++] = args[argsIndex++]; } return result; } /** * This function is like `composeArgs` except that the arguments composition * is tailored for `_.partialRight`. * * @private * @param {Array} args The provided arguments. * @param {Array} partials The arguments to append to those provided. * @param {Array} holders The `partials` placeholder indexes. * @params {boolean} [isCurried] Specify composing for a curried function. * @returns {Array} Returns the new array of composed arguments. */ function composeArgsRight(args, partials, holders, isCurried) { var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result = Array(rangeLength + rightLength), isUncurried = !isCurried; while (++argsIndex < rangeLength) { result[argsIndex] = args[argsIndex]; } var offset = argsIndex; while (++rightIndex < rightLength) { result[offset + rightIndex] = partials[rightIndex]; } while (++holdersIndex < holdersLength) { if (isUncurried || argsIndex < argsLength) { result[offset + holders[holdersIndex]] = args[argsIndex++]; } } return result; } /** * Copies the values of `source` to `array`. * * @private * @param {Array} source The array to copy values from. * @param {Array} [array=[]] The array to copy values to. * @returns {Array} Returns `array`. */ function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(length)); while (++index < length) { array[index] = source[index]; } return array; } /** * Copies properties of `source` to `object`. * * @private * @param {Object} source The object to copy properties from. * @param {Array} props The property identifiers to copy. * @param {Object} [object={}] The object to copy properties to. * @param {Function} [customizer] The function to customize copied values. * @returns {Object} Returns `object`. */ function copyObject(source, props, object, customizer) { var isNew = !object; object || (object = {}); var index = -1, length = props.length; while (++index < length) { var key = props[index]; var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined; if (newValue === undefined) { newValue = source[key]; } if (isNew) { baseAssignValue(object, key, newValue); } else { assignValue(object, key, newValue); } } return object; } /** * Copies own symbols of `source` to `object`. * * @private * @param {Object} source The object to copy symbols from. * @param {Object} [object={}] The object to copy symbols to. * @returns {Object} Returns `object`. */ function copySymbols(source, object) { return copyObject(source, getSymbols(source), object); } /** * Copies own and inherited symbols of `source` to `object`. * * @private * @param {Object} source The object to copy symbols from. * @param {Object} [object={}] The object to copy symbols to. * @returns {Object} Returns `object`. */ function copySymbolsIn(source, object) { return copyObject(source, getSymbolsIn(source), object); } /** * Creates a function like `_.groupBy`. * * @private * @param {Function} setter The function to set accumulator values. * @param {Function} [initializer] The accumulator object initializer. * @returns {Function} Returns the new aggregator function. */ function createAggregator(setter, initializer) { return function(collection, iteratee) { var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; return func(collection, setter, getIteratee(iteratee, 2), accumulator); }; } /** * Creates a function like `_.assign`. * * @private * @param {Function} assigner The function to assign values. * @returns {Function} Returns the new assigner function. */ function createAssigner(assigner) { return baseRest(function(object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; customizer = (assigner.length > 3 && typeof customizer == 'function') ? (length--, customizer) : undefined; if (guard && isIterateeCall(sources[0], sources[1], guard)) { customizer = length < 3 ? undefined : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } /** * Creates a `baseEach` or `baseEachRight` function. * * @private * @param {Function} eachFunc The function to iterate over a collection. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while ((fromRight ? index-- : ++index < length)) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } /** * Creates a base function for methods like `_.forIn` and `_.forOwn`. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } /** * Creates a function that wraps `func` to invoke it with the optional `this` * binding of `thisArg`. * * @private * @param {Function} func The function to wrap. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @param {*} [thisArg] The `this` binding of `func`. * @returns {Function} Returns the new wrapped function. */ function createBind(func, bitmask, thisArg) { var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); function wrapper() { var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; return fn.apply(isBind ? thisArg : this, arguments); } return wrapper; } /** * Creates a function like `_.lowerFirst`. * * @private * @param {string} methodName The name of the `String` case method to use. * @returns {Function} Returns the new case function. */ function createCaseFirst(methodName) { return function(string) { string = toString(string); var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined; var chr = strSymbols ? strSymbols[0] : string.charAt(0); var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1); return chr[methodName]() + trailing; }; } /** * Creates a function like `_.camelCase`. * * @private * @param {Function} callback The function to combine each word. * @returns {Function} Returns the new compounder function. */ function createCompounder(callback) { return function(string) { return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); }; } /** * Creates a function that produces an instance of `Ctor` regardless of * whether it was invoked as part of a `new` expression or by `call` or `apply`. * * @private * @param {Function} Ctor The constructor to wrap. * @returns {Function} Returns the new wrapped function. */ function createCtor(Ctor) { return function() { // Use a `switch` statement to work with class constructors. See // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist // for more details. var args = arguments; switch (args.length) { case 0: return new Ctor; case 1: return new Ctor(args[0]); case 2: return new Ctor(args[0], args[1]); case 3: return new Ctor(args[0], args[1], args[2]); case 4: return new Ctor(args[0], args[1], args[2], args[3]); case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); } var thisBinding = baseCreate(Ctor.prototype), result = Ctor.apply(thisBinding, args); // Mimic the constructor's `return` behavior. // See https://es5.github.io/#x13.2.2 for more details. return isObject(result) ? result : thisBinding; }; } /** * Creates a function that wraps `func` to enable currying. * * @private * @param {Function} func The function to wrap. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @param {number} arity The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createCurry(func, bitmask, arity) { var Ctor = createCtor(func); function wrapper() { var length = arguments.length, args = Array(length), index = length, placeholder = getHolder(wrapper); while (index--) { args[index] = arguments[index]; } var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) ? [] : replaceHolders(args, placeholder); length -= holders.length; if (length < arity) { return createRecurry( func, bitmask, createHybrid, wrapper.placeholder, undefined, args, holders, undefined, undefined, arity - length); } var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; return apply(fn, this, args); } return wrapper; } /** * Creates a `_.find` or `_.findLast` function. * * @private * @param {Function} findIndexFunc The function to find the collection index. * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { return function(collection, predicate, fromIndex) { var iterable = Object(collection); if (!isArrayLike(collection)) { var iteratee = getIteratee(predicate, 3); collection = keys(collection); predicate = function(key) { return iteratee(iterable[key], key, iterable); }; } var index = findIndexFunc(collection, predicate, fromIndex); return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; }; } /** * Creates a `_.flow` or `_.flowRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new flow function. */ function createFlow(fromRight) { return flatRest(function(funcs) { var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; if (fromRight) { funcs.reverse(); } while (index--) { var func = funcs[index]; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (prereq && !wrapper && getFuncName(func) == 'wrapper') { var wrapper = new LodashWrapper([], true); } } index = wrapper ? index : length; while (++index < length) { func = funcs[index]; var funcName = getFuncName(func), data = funcName == 'wrapper' ? getData(func) : undefined; if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1 ) { wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); } else { wrapper = (func.length == 1 && isLaziable(func)) ? wrapper[funcName]() : wrapper.thru(func); } } return function() { var args = arguments, value = args[0]; if (wrapper && args.length == 1 && isArray(value)) { return wrapper.plant(value).value(); } var index = 0, result = length ? funcs[index].apply(this, args) : value; while (++index < length) { result = funcs[index].call(this, result); } return result; }; }); } /** * Creates a function that wraps `func` to invoke it with optional `this` * binding of `thisArg`, partial application, and currying. * * @private * @param {Function|string} func The function or method name to wrap. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to prepend to those provided to * the new function. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [partialsRight] The arguments to append to those provided * to the new function. * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined : createCtor(func); function wrapper() { var length = arguments.length, args = Array(length), index = length; while (index--) { args[index] = arguments[index]; } if (isCurried) { var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); } if (partials) { args = composeArgs(args, partials, holders, isCurried); } if (partialsRight) { args = composeArgsRight(args, partialsRight, holdersRight, isCurried); } length -= holdersCount; if (isCurried && length < arity) { var newHolders = replaceHolders(args, placeholder); return createRecurry( func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length ); } var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; length = args.length; if (argPos) { args = reorder(args, argPos); } else if (isFlip && length > 1) { args.reverse(); } if (isAry && ary < length) { args.length = ary; } if (this && this !== root && this instanceof wrapper) { fn = Ctor || createCtor(fn); } return fn.apply(thisBinding, args); } return wrapper; } /** * Creates a function like `_.invertBy`. * * @private * @param {Function} setter The function to set accumulator values. * @param {Function} toIteratee The function to resolve iteratees. * @returns {Function} Returns the new inverter function. */ function createInverter(setter, toIteratee) { return function(object, iteratee) { return baseInverter(object, setter, toIteratee(iteratee), {}); }; } /** * Creates a function that performs a mathematical operation on two values. * * @private * @param {Function} operator The function to perform the operation. * @param {number} [defaultValue] The value used for `undefined` arguments. * @returns {Function} Returns the new mathematical operation function. */ function createMathOperation(operator, defaultValue) { return function(value, other) { var result; if (value === undefined && other === undefined) { return defaultValue; } if (value !== undefined) { result = value; } if (other !== undefined) { if (result === undefined) { return other; } if (typeof value == 'string' || typeof other == 'string') { value = baseToString(value); other = baseToString(other); } else { value = baseToNumber(value); other = baseToNumber(other); } result = operator(value, other); } return result; }; } /** * Creates a function like `_.over`. * * @private * @param {Function} arrayFunc The function to iterate over iteratees. * @returns {Function} Returns the new over function. */ function createOver(arrayFunc) { return flatRest(function(iteratees) { iteratees = arrayMap(iteratees, baseUnary(getIteratee())); return baseRest(function(args) { var thisArg = this; return arrayFunc(iteratees, function(iteratee) { return apply(iteratee, thisArg, args); }); }); }); } /** * Creates the padding for `string` based on `length`. The `chars` string * is truncated if the number of characters exceeds `length`. * * @private * @param {number} length The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the padding for `string`. */ function createPadding(length, chars) { chars = chars === undefined ? ' ' : baseToString(chars); var charsLength = chars.length; if (charsLength < 2) { return charsLength ? baseRepeat(chars, length) : chars; } var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); return hasUnicode(chars) ? castSlice(stringToArray(result), 0, length).join('') : result.slice(0, length); } /** * Creates a function that wraps `func` to invoke it with the `this` binding * of `thisArg` and `partials` prepended to the arguments it receives. * * @private * @param {Function} func The function to wrap. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @param {*} thisArg The `this` binding of `func`. * @param {Array} partials The arguments to prepend to those provided to * the new function. * @returns {Function} Returns the new wrapped function. */ function createPartial(func, bitmask, thisArg, partials) { var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); function wrapper() { var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array(leftLength + argsLength), fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; while (++leftIndex < leftLength) { args[leftIndex] = partials[leftIndex]; } while (argsLength--) { args[leftIndex++] = arguments[++argsIndex]; } return apply(fn, isBind ? thisArg : this, args); } return wrapper; } /** * Creates a `_.range` or `_.rangeRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new range function. */ function createRange(fromRight) { return function(start, end, step) { if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { end = step = undefined; } // Ensure the sign of `-0` is preserved. start = toFinite(start); if (end === undefined) { end = start; start = 0; } else { end = toFinite(end); } step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); return baseRange(start, end, step, fromRight); }; } /** * Creates a function that performs a relational operation on two values. * * @private * @param {Function} operator The function to perform the operation. * @returns {Function} Returns the new relational operation function. */ function createRelationalOperation(operator) { return function(value, other) { if (!(typeof value == 'string' && typeof other == 'string')) { value = toNumber(value); other = toNumber(other); } return operator(value, other); }; } /** * Creates a function that wraps `func` to continue currying. * * @private * @param {Function} func The function to wrap. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @param {Function} wrapFunc The function to create the `func` wrapper. * @param {*} placeholder The placeholder value. * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to prepend to those provided to * the new function. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined, newHoldersRight = isCurry ? undefined : holders, newPartials = isCurry ? partials : undefined, newPartialsRight = isCurry ? undefined : partials; bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); } var newData = [ func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity ]; var result = wrapFunc.apply(undefined, newData); if (isLaziable(func)) { setData(result, newData); } result.placeholder = placeholder; return setWrapToString(result, func, bitmask); } /** * Creates a function like `_.round`. * * @private * @param {string} methodName The name of the `Math` method to use when rounding. * @returns {Function} Returns the new round function. */ function createRound(methodName) { var func = Math[methodName]; return function(number, precision) { number = toNumber(number); precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); if (precision && nativeIsFinite(number)) { // Shift with exponential notation to avoid floating-point issues. // See [MDN](https://mdn.io/round#Examples) for more details. var pair = (toString(number) + 'e').split('e'), value = func(pair[0] + 'e' + (+pair[1] + precision)); pair = (toString(value) + 'e').split('e'); return +(pair[0] + 'e' + (+pair[1] - precision)); } return func(number); }; } /** * Creates a set object of `values`. * * @private * @param {Array} values The values to add to the set. * @returns {Object} Returns the new set. */ var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { return new Set(values); }; /** * Creates a `_.toPairs` or `_.toPairsIn` function. * * @private * @param {Function} keysFunc The function to get the keys of a given object. * @returns {Function} Returns the new pairs function. */ function createToPairs(keysFunc) { return function(object) { var tag = getTag(object); if (tag == mapTag) { return mapToArray(object); } if (tag == setTag) { return setToPairs(object); } return baseToPairs(object, keysFunc(object)); }; } /** * Creates a function that either curries or invokes `func` with optional * `this` binding and partially applied arguments. * * @private * @param {Function|string} func The function or method name to wrap. * @param {number} bitmask The bitmask flags. * 1 - `_.bind` * 2 - `_.bindKey` * 4 - `_.curry` or `_.curryRight` of a bound function * 8 - `_.curry` * 16 - `_.curryRight` * 32 - `_.partial` * 64 - `_.partialRight` * 128 - `_.rearg` * 256 - `_.ary` * 512 - `_.flip` * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to be partially applied. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; if (!isBindKey && typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } var length = partials ? partials.length : 0; if (!length) { bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); partials = holders = undefined; } ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); arity = arity === undefined ? arity : toInteger(arity); length -= holders ? holders.length : 0; if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { var partialsRight = partials, holdersRight = holders; partials = holders = undefined; } var data = isBindKey ? undefined : getData(func); var newData = [ func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity ]; if (data) { mergeData(newData, data); } func = newData[0]; bitmask = newData[1]; thisArg = newData[2]; partials = newData[3]; holders = newData[4]; arity = newData[9] = newData[9] === undefined ? (isBindKey ? 0 : func.length) : nativeMax(newData[9] - length, 0); if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); } if (!bitmask || bitmask == WRAP_BIND_FLAG) { var result = createBind(func, bitmask, thisArg); } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { result = createCurry(func, bitmask, arity); } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { result = createPartial(func, bitmask, thisArg, partials); } else { result = createHybrid.apply(undefined, newData); } var setter = data ? baseSetData : setData; return setWrapToString(setter(result, newData), func, bitmask); } /** * Used by `_.defaults` to customize its `_.assignIn` use to assign properties * of source objects to the destination object for all destination properties * that resolve to `undefined`. * * @private * @param {*} objValue The destination value. * @param {*} srcValue The source value. * @param {string} key The key of the property to assign. * @param {Object} object The parent object of `objValue`. * @returns {*} Returns the value to assign. */ function customDefaultsAssignIn(objValue, srcValue, key, object) { if (objValue === undefined || (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { return srcValue; } return objValue; } /** * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source * objects into destination objects that are passed thru. * * @private * @param {*} objValue The destination value. * @param {*} srcValue The source value. * @param {string} key The key of the property to merge. * @param {Object} object The parent object of `objValue`. * @param {Object} source The parent object of `srcValue`. * @param {Object} [stack] Tracks traversed source values and their merged * counterparts. * @returns {*} Returns the value to assign. */ function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { if (isObject(objValue) && isObject(srcValue)) { // Recursively merge objects and arrays (susceptible to call stack limits). stack.set(srcValue, objValue); baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); stack['delete'](srcValue); } return objValue; } /** * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain * objects. * * @private * @param {*} value The value to inspect. * @param {string} key The key of the property to inspect. * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. */ function customOmitClone(value) { return isPlainObject(value) ? undefined : value; } /** * A specialized version of `baseIsEqualDeep` for arrays with support for * partial deep comparisons. * * @private * @param {Array} array The array to compare. * @param {Array} other The other array to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `array` and `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } // Assume cyclic values are equal. var stacked = stack.get(array); if (stacked && stack.get(other)) { return stacked == other; } var index = -1, result = true, seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; stack.set(array, other); stack.set(other, array); // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], othValue = other[index]; if (customizer) { var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); } if (compared !== undefined) { if (compared) { continue; } result = false; break; } // Recursively compare arrays (susceptible to call stack limits). if (seen) { if (!arraySome(other, function(othValue, othIndex) { if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { return seen.push(othIndex); } })) { result = false; break; } } else if (!( arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack) )) { result = false; break; } } stack['delete'](array); stack['delete'](other); return result; } /** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. * * **Note:** This function only supports comparing values with tags of * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {string} tag The `toStringTag` of the objects to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { switch (tag) { case dataViewTag: if ((object.byteLength != other.byteLength) || (object.byteOffset != other.byteOffset)) { return false; } object = object.buffer; other = other.buffer; case arrayBufferTag: if ((object.byteLength != other.byteLength) || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { return false; } return true; case boolTag: case dateTag: case numberTag: // Coerce booleans to `1` or `0` and dates to milliseconds. // Invalid dates are coerced to `NaN`. return eq(+object, +other); case errorTag: return object.name == other.name && object.message == other.message; case regexpTag: case stringTag: // Coerce regexes to strings and treat strings, primitives and objects, // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring // for more details. return object == (other + ''); case mapTag: var convert = mapToArray; case setTag: var isPartial = bitmask & COMPARE_PARTIAL_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } // Assume cyclic values are equal. var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits). stack.set(object, other); var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); stack['delete'](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } /** * A specialized version of `baseIsEqualDeep` for objects with support for * partial deep comparisons. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; } var index = objLength; while (index--) { var key = objProps[index]; if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { return false; } } // Assume cyclic values are equal. var stacked = stack.get(object); if (stacked && stack.get(other)) { return stacked == other; } var result = true; stack.set(object, other); stack.set(other, object); var skipCtor = isPartial; while (++index < objLength) { key = objProps[index]; var objValue = object[key], othValue = other[key]; if (customizer) { var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); } // Recursively compare objects (susceptible to call stack limits). if (!(compared === undefined ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) : compared )) { result = false; break; } skipCtor || (skipCtor = key == 'constructor'); } if (result && !skipCtor) { var objCtor = object.constructor, othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { result = false; } } stack['delete'](object); stack['delete'](other); return result; } /** * A specialized version of `baseRest` which flattens the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @returns {Function} Returns the new function. */ function flatRest(func) { return setToString(overRest(func, undefined, flatten), func + ''); } /** * Creates an array of own enumerable property names and symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeys(object) { return baseGetAllKeys(object, keys, getSymbols); } /** * Creates an array of own and inherited enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeysIn(object) { return baseGetAllKeys(object, keysIn, getSymbolsIn); } /** * Gets metadata for `func`. * * @private * @param {Function} func The function to query. * @returns {*} Returns the metadata for `func`. */ var getData = !metaMap ? noop : function(func) { return metaMap.get(func); }; /** * Gets the name of `func`. * * @private * @param {Function} func The function to query. * @returns {string} Returns the function name. */ function getFuncName(func) { var result = (func.name + ''), array = realNames[result], length = hasOwnProperty.call(realNames, result) ? array.length : 0; while (length--) { var data = array[length], otherFunc = data.func; if (otherFunc == null || otherFunc == func) { return data.name; } } return result; } /** * Gets the argument placeholder value for `func`. * * @private * @param {Function} func The function to inspect. * @returns {*} Returns the placeholder value. */ function getHolder(func) { var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; return object.placeholder; } /** * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, * this function returns the custom method, otherwise it returns `baseIteratee`. * If arguments are provided, the chosen function is invoked with them and * its result is returned. * * @private * @param {*} [value] The value to convert to an iteratee. * @param {number} [arity] The arity of the created iteratee. * @returns {Function} Returns the chosen function or its result. */ function getIteratee() { var result = lodash.iteratee || iteratee; result = result === iteratee ? baseIteratee : result; return arguments.length ? result(arguments[0], arguments[1]) : result; } /** * Gets the data for `map`. * * @private * @param {Object} map The map to query. * @param {string} key The reference key. * @returns {*} Returns the map data. */ function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; } /** * Gets the property names, values, and compare flags of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the match data of `object`. */ function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } /** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : undefined; } /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } /** * Creates an array of the own enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbols = !nativeGetSymbols ? stubArray : function(object) { if (object == null) { return []; } object = Object(object); return arrayFilter(nativeGetSymbols(object), function(symbol) { return propertyIsEnumerable.call(object, symbol); }); }; /** * Creates an array of the own and inherited enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { var result = []; while (object) { arrayPush(result, getSymbols(object)); object = getPrototype(object); } return result; }; /** * Gets the `toStringTag` of `value`. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || (Map && getTag(new Map) != mapTag) || (Promise && getTag(Promise.resolve()) != promiseTag) || (Set && getTag(new Set) != setTag) || (WeakMap && getTag(new WeakMap) != weakMapTag)) { getTag = function(value) { var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : undefined, ctorString = Ctor ? toSource(Ctor) : ''; if (ctorString) { switch (ctorString) { case dataViewCtorString: return dataViewTag; case mapCtorString: return mapTag; case promiseCtorString: return promiseTag; case setCtorString: return setTag; case weakMapCtorString: return weakMapTag; } } return result; }; } /** * Gets the view, applying any `transforms` to the `start` and `end` positions. * * @private * @param {number} start The start of the view. * @param {number} end The end of the view. * @param {Array} transforms The transformations to apply to the view. * @returns {Object} Returns an object containing the `start` and `end` * positions of the view. */ function getView(start, end, transforms) { var index = -1, length = transforms.length; while (++index < length) { var data = transforms[index], size = data.size; switch (data.type) { case 'drop': start += size; break; case 'dropRight': end -= size; break; case 'take': end = nativeMin(end, start + size); break; case 'takeRight': start = nativeMax(start, end - size); break; } } return { 'start': start, 'end': end }; } /** * Extracts wrapper details from the `source` body comment. * * @private * @param {string} source The source to inspect. * @returns {Array} Returns the wrapper details. */ function getWrapDetails(source) { var match = source.match(reWrapDetails); return match ? match[1].split(reSplitDetails) : []; } /** * Checks if `path` exists on `object`. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @param {Function} hasFunc The function to check properties. * @returns {boolean} Returns `true` if `path` exists, else `false`. */ function hasPath(object, path, hasFunc) { path = castPath(path, object); var index = -1, length = path.length, result = false; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result || ++index != length) { return result; } length = object == null ? 0 : object.length; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } /** * Initializes an array clone. * * @private * @param {Array} array The array to clone. * @returns {Array} Returns the initialized clone. */ function initCloneArray(array) { var length = array.length, result = new array.constructor(length); // Add properties assigned by `RegExp#exec`. if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { result.index = array.index; result.input = array.input; } return result; } /** * Initializes an object clone. * * @private * @param {Object} object The object to clone. * @returns {Object} Returns the initialized clone. */ function initCloneObject(object) { return (typeof object.constructor == 'function' && !isPrototype(object)) ? baseCreate(getPrototype(object)) : {}; } /** * Initializes an object clone based on its `toStringTag`. * * **Note:** This function only supports cloning values with tags of * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. * * @private * @param {Object} object The object to clone. * @param {string} tag The `toStringTag` of the object to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the initialized clone. */ function initCloneByTag(object, tag, isDeep) { var Ctor = object.constructor; switch (tag) { case arrayBufferTag: return cloneArrayBuffer(object); case boolTag: case dateTag: return new Ctor(+object); case dataViewTag: return cloneDataView(object, isDeep); case float32Tag: case float64Tag: case int8Tag: case int16Tag: case int32Tag: case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: return cloneTypedArray(object, isDeep); case mapTag: return new Ctor; case numberTag: case stringTag: return new Ctor(object); case regexpTag: return cloneRegExp(object); case setTag: return new Ctor; case symbolTag: return cloneSymbol(object); } } /** * Inserts wrapper `details` in a comment at the top of the `source` body. * * @private * @param {string} source The source to modify. * @returns {Array} details The details to insert. * @returns {string} Returns the modified source. */ function insertWrapDetails(source, details) { var length = details.length; if (!length) { return source; } var lastIndex = length - 1; details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; details = details.join(length > 2 ? ', ' : ' '); return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); } /** * Checks if `value` is a flattenable `arguments` object or array. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. */ function isFlattenable(value) { return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); } /** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { var type = typeof value; length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (type == 'number' || (type != 'symbol' && reIsUint.test(value))) && (value > -1 && value % 1 == 0 && value < length); } /** * Checks if the given arguments are from an iteratee call. * * @private * @param {*} value The potential iteratee value argument. * @param {*} index The potential iteratee index or key argument. * @param {*} object The potential iteratee object argument. * @returns {boolean} Returns `true` if the arguments are from an iteratee call, * else `false`. */ function isIterateeCall(value, index, object) { if (!isObject(object)) { return false; } var type = typeof index; if (type == 'number' ? (isArrayLike(object) && isIndex(index, object.length)) : (type == 'string' && index in object) ) { return eq(object[index], value); } return false; } /** * Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. * @param {Object} [object] The object to query keys on. * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ function isKey(value, object) { if (isArray(value)) { return false; } var type = typeof value; if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) { return true; } return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || (object != null && value in Object(object)); } /** * Checks if `value` is suitable for use as unique object key. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is suitable, else `false`. */ function isKeyable(value) { var type = typeof value; return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') ? (value !== '__proto__') : (value === null); } /** * Checks if `func` has a lazy counterpart. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` has a lazy counterpart, * else `false`. */ function isLaziable(func) { var funcName = getFuncName(func), other = lodash[funcName]; if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { return false; } if (func === other) { return true; } var data = getData(other); return !!data && func === data[0]; } /** * Checks if `func` has its source masked. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` is masked, else `false`. */ function isMasked(func) { return !!maskSrcKey && (maskSrcKey in func); } /** * Checks if `func` is capable of being masked. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `func` is maskable, else `false`. */ var isMaskable = coreJsData ? isFunction : stubFalse; /** * Checks if `value` is likely a prototype object. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ function isPrototype(value) { var Ctor = value && value.constructor, proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; return value === proto; } /** * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` if suitable for strict * equality comparisons, else `false`. */ function isStrictComparable(value) { return value === value && !isObject(value); } /** * A specialized version of `matchesProperty` for source values suitable * for strict equality comparisons, i.e. `===`. * * @private * @param {string} key The key of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function matchesStrictComparable(key, srcValue) { return function(object) { if (object == null) { return false; } return object[key] === srcValue && (srcValue !== undefined || (key in Object(object))); }; } /** * A specialized version of `_.memoize` which clears the memoized function's * cache when it exceeds `MAX_MEMOIZE_SIZE`. * * @private * @param {Function} func The function to have its output memoized. * @returns {Function} Returns the new memoized function. */ function memoizeCapped(func) { var result = memoize(func, function(key) { if (cache.size === MAX_MEMOIZE_SIZE) { cache.clear(); } return key; }); var cache = result.cache; return result; } /** * Merges the function metadata of `source` into `data`. * * Merging metadata reduces the number of wrappers used to invoke a function. * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` * may be applied regardless of execution order. Methods like `_.ary` and * `_.rearg` modify function arguments, making the order in which they are * executed important, preventing the merging of metadata. However, we make * an exception for a safe combined case where curried functions have `_.ary` * and or `_.rearg` applied. * * @private * @param {Array} data The destination metadata. * @param {Array} source The source metadata. * @returns {Array} Returns `data`. */ function mergeData(data, source) { var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); var isCombo = ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); // Exit early if metadata can't be merged. if (!(isCommon || isCombo)) { return data; } // Use source `thisArg` if available. if (srcBitmask & WRAP_BIND_FLAG) { data[2] = source[2]; // Set when currying a bound function. newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; } // Compose partial arguments. var value = source[3]; if (value) { var partials = data[3]; data[3] = partials ? composeArgs(partials, value, source[4]) : value; data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; } // Compose partial right arguments. value = source[5]; if (value) { partials = data[5]; data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; } // Use source `argPos` if available. value = source[7]; if (value) { data[7] = value; } // Use source `ary` if it's smaller. if (srcBitmask & WRAP_ARY_FLAG) { data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); } // Use source `arity` if one is not provided. if (data[9] == null) { data[9] = source[9]; } // Use source `func` and merge bitmasks. data[0] = source[0]; data[1] = newBitmask; return data; } /** * This function is like * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * except that it includes inherited enumerable properties. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } /** * A specialized version of `baseRest` which transforms the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @param {Function} transform The rest array transform. * @returns {Function} Returns the new function. */ function overRest(func, start, transform) { start = nativeMax(start === undefined ? (func.length - 1) : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); while (++index < length) { array[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array); return apply(func, this, otherArgs); }; } /** * Gets the parent value at `path` of `object`. * * @private * @param {Object} object The object to query. * @param {Array} path The path to get the parent value of. * @returns {*} Returns the parent value. */ function parent(object, path) { return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); } /** * Reorder `array` according to the specified indexes where the element at * the first index is assigned as the first element, the element at * the second index is assigned as the second element, and so on. * * @private * @param {Array} array The array to reorder. * @param {Array} indexes The arranged array indexes. * @returns {Array} Returns `array`. */ function reorder(array, indexes) { var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); while (length--) { var index = indexes[length]; array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; } return array; } /** * Gets the value at `key`, unless `key` is "__proto__" or "constructor". * * @private * @param {Object} object The object to query. * @param {string} key The key of the property to get. * @returns {*} Returns the property value. */ function safeGet(object, key) { if (key === 'constructor' && typeof object[key] === 'function') { return; } if (key == '__proto__') { return; } return object[key]; } /** * Sets metadata for `func`. * * **Note:** If this function becomes hot, i.e. is invoked a lot in a short * period of time, it will trip its breaker and transition to an identity * function to avoid garbage collection pauses in V8. See * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) * for more details. * * @private * @param {Function} func The function to associate metadata with. * @param {*} data The metadata. * @returns {Function} Returns `func`. */ var setData = shortOut(baseSetData); /** * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). * * @private * @param {Function} func The function to delay. * @param {number} wait The number of milliseconds to delay invocation. * @returns {number|Object} Returns the timer id or timeout object. */ var setTimeout = ctxSetTimeout || function(func, wait) { return root.setTimeout(func, wait); }; /** * Sets the `toString` method of `func` to return `string`. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var setToString = shortOut(baseSetToString); /** * Sets the `toString` method of `wrapper` to mimic the source of `reference` * with wrapper details in a comment at the top of the source body. * * @private * @param {Function} wrapper The function to modify. * @param {Function} reference The reference function. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @returns {Function} Returns `wrapper`. */ function setWrapToString(wrapper, reference, bitmask) { var source = (reference + ''); return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); } /** * Creates a function that'll short out and invoke `identity` instead * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` * milliseconds. * * @private * @param {Function} func The function to restrict. * @returns {Function} Returns the new shortable function. */ function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(undefined, arguments); }; } /** * A specialized version of `_.shuffle` which mutates and sets the size of `array`. * * @private * @param {Array} array The array to shuffle. * @param {number} [size=array.length] The size of `array`. * @returns {Array} Returns `array`. */ function shuffleSelf(array, size) { var index = -1, length = array.length, lastIndex = length - 1; size = size === undefined ? length : size; while (++index < size) { var rand = baseRandom(index, lastIndex), value = array[rand]; array[rand] = array[index]; array[index] = value; } array.length = size; return array; } /** * Converts `string` to a property path array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the property path array. */ var stringToPath = memoizeCapped(function(string) { var result = []; if (string.charCodeAt(0) === 46 /* . */) { result.push(''); } string.replace(rePropName, function(match, number, quote, subString) { result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); }); return result; }); /** * Converts `value` to a string key if it's not a string or symbol. * * @private * @param {*} value The value to inspect. * @returns {string|symbol} Returns the key. */ function toKey(value) { if (typeof value == 'string' || isSymbol(value)) { return value; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } /** * Converts `func` to its source code. * * @private * @param {Function} func The function to convert. * @returns {string} Returns the source code. */ function toSource(func) { if (func != null) { try { return funcToString.call(func); } catch (e) {} try { return (func + ''); } catch (e) {} } return ''; } /** * Updates wrapper `details` based on `bitmask` flags. * * @private * @returns {Array} details The details to modify. * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @returns {Array} Returns `details`. */ function updateWrapDetails(details, bitmask) { arrayEach(wrapFlags, function(pair) { var value = '_.' + pair[0]; if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { details.push(value); } }); return details.sort(); } /** * Creates a clone of `wrapper`. * * @private * @param {Object} wrapper The wrapper to clone. * @returns {Object} Returns the cloned wrapper. */ function wrapperClone(wrapper) { if (wrapper instanceof LazyWrapper) { return wrapper.clone(); } var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); result.__actions__ = copyArray(wrapper.__actions__); result.__index__ = wrapper.__index__; result.__values__ = wrapper.__values__; return result; } /*------------------------------------------------------------------------*/ /** * Creates an array of elements split into groups the length of `size`. * If `array` can't be split evenly, the final chunk will be the remaining * elements. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to process. * @param {number} [size=1] The length of each chunk * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the new array of chunks. * @example * * _.chunk(['a', 'b', 'c', 'd'], 2); * // => [['a', 'b'], ['c', 'd']] * * _.chunk(['a', 'b', 'c', 'd'], 3); * // => [['a', 'b', 'c'], ['d']] */ function chunk(array, size, guard) { if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { size = 1; } else { size = nativeMax(toInteger(size), 0); } var length = array == null ? 0 : array.length; if (!length || size < 1) { return []; } var index = 0, resIndex = 0, result = Array(nativeCeil(length / size)); while (index < length) { result[resIndex++] = baseSlice(array, index, (index += size)); } return result; } /** * Creates an array with all falsey values removed. The values `false`, `null`, * `0`, `""`, `undefined`, and `NaN` are falsey. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to compact. * @returns {Array} Returns the new array of filtered values. * @example * * _.compact([0, 1, false, 2, '', 3]); * // => [1, 2, 3] */ function compact(array) { var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (value) { result[resIndex++] = value; } } return result; } /** * Creates a new array concatenating `array` with any additional arrays * and/or values. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to concatenate. * @param {...*} [values] The values to concatenate. * @returns {Array} Returns the new concatenated array. * @example * * var array = [1]; * var other = _.concat(array, 2, [3], [[4]]); * * console.log(other); * // => [1, 2, 3, [4]] * * console.log(array); * // => [1] */ function concat() { var length = arguments.length; if (!length) { return []; } var args = Array(length - 1), array = arguments[0], index = length; while (index--) { args[index - 1] = arguments[index]; } return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); } /** * Creates an array of `array` values not included in the other given arrays * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. The order and references of result values are * determined by the first array. * * **Note:** Unlike `_.pullAll`, this method returns a new array. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to inspect. * @param {...Array} [values] The values to exclude. * @returns {Array} Returns the new array of filtered values. * @see _.without, _.xor * @example * * _.difference([2, 1], [2, 3]); * // => [1] */ var difference = baseRest(function(array, values) { return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : []; }); /** * This method is like `_.difference` except that it accepts `iteratee` which * is invoked for each element of `array` and `values` to generate the criterion * by which they're compared. The order and references of result values are * determined by the first array. The iteratee is invoked with one argument: * (value). * * **Note:** Unlike `_.pullAllBy`, this method returns a new array. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {...Array} [values] The values to exclude. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of filtered values. * @example * * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); * // => [1.2] * * // The `_.property` iteratee shorthand. * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); * // => [{ 'x': 2 }] */ var differenceBy = baseRest(function(array, values) { var iteratee = last(values); if (isArrayLikeObject(iteratee)) { iteratee = undefined; } return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) : []; }); /** * This method is like `_.difference` except that it accepts `comparator` * which is invoked to compare elements of `array` to `values`. The order and * references of result values are determined by the first array. The comparator * is invoked with two arguments: (arrVal, othVal). * * **Note:** Unlike `_.pullAllWith`, this method returns a new array. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {...Array} [values] The values to exclude. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of filtered values. * @example * * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; * * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); * // => [{ 'x': 2, 'y': 1 }] */ var differenceWith = baseRest(function(array, values) { var comparator = last(values); if (isArrayLikeObject(comparator)) { comparator = undefined; } return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) : []; }); /** * Creates a slice of `array` with `n` elements dropped from the beginning. * * @static * @memberOf _ * @since 0.5.0 * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to drop. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.drop([1, 2, 3]); * // => [2, 3] * * _.drop([1, 2, 3], 2); * // => [3] * * _.drop([1, 2, 3], 5); * // => [] * * _.drop([1, 2, 3], 0); * // => [1, 2, 3] */ function drop(array, n, guard) { var length = array == null ? 0 : array.length; if (!length) { return []; } n = (guard || n === undefined) ? 1 : toInteger(n); return baseSlice(array, n < 0 ? 0 : n, length); } /** * Creates a slice of `array` with `n` elements dropped from the end. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to drop. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.dropRight([1, 2, 3]); * // => [1, 2] * * _.dropRight([1, 2, 3], 2); * // => [1] * * _.dropRight([1, 2, 3], 5); * // => [] * * _.dropRight([1, 2, 3], 0); * // => [1, 2, 3] */ function dropRight(array, n, guard) { var length = array == null ? 0 : array.length; if (!length) { return []; } n = (guard || n === undefined) ? 1 : toInteger(n); n = length - n; return baseSlice(array, 0, n < 0 ? 0 : n); } /** * Creates a slice of `array` excluding elements dropped from the end. * Elements are dropped until `predicate` returns falsey. The predicate is * invoked with three arguments: (value, index, array). * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * _.dropRightWhile(users, function(o) { return !o.active; }); * // => objects for ['barney'] * * // The `_.matches` iteratee shorthand. * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); * // => objects for ['barney', 'fred'] * * // The `_.matchesProperty` iteratee shorthand. * _.dropRightWhile(users, ['active', false]); * // => objects for ['barney'] * * // The `_.property` iteratee shorthand. * _.dropRightWhile(users, 'active'); * // => objects for ['barney', 'fred', 'pebbles'] */ function dropRightWhile(array, predicate) { return (array && array.length) ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; } /** * Creates a slice of `array` excluding elements dropped from the beginning. * Elements are dropped until `predicate` returns falsey. The predicate is * invoked with three arguments: (value, index, array). * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * _.dropWhile(users, function(o) { return !o.active; }); * // => objects for ['pebbles'] * * // The `_.matches` iteratee shorthand. * _.dropWhile(users, { 'user': 'barney', 'active': false }); * // => objects for ['fred', 'pebbles'] * * // The `_.matchesProperty` iteratee shorthand. * _.dropWhile(users, ['active', false]); * // => objects for ['pebbles'] * * // The `_.property` iteratee shorthand. * _.dropWhile(users, 'active'); * // => objects for ['barney', 'fred', 'pebbles'] */ function dropWhile(array, predicate) { return (array && array.length) ? baseWhile(array, getIteratee(predicate, 3), true) : []; } /** * Fills elements of `array` with `value` from `start` up to, but not * including, `end`. * * **Note:** This method mutates `array`. * * @static * @memberOf _ * @since 3.2.0 * @category Array * @param {Array} array The array to fill. * @param {*} value The value to fill `array` with. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns `array`. * @example * * var array = [1, 2, 3]; * * _.fill(array, 'a'); * console.log(array); * // => ['a', 'a', 'a'] * * _.fill(Array(3), 2); * // => [2, 2, 2] * * _.fill([4, 6, 8, 10], '*', 1, 3); * // => [4, '*', '*', 10] */ function fill(array, value, start, end) { var length = array == null ? 0 : array.length; if (!length) { return []; } if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { start = 0; end = length; } return baseFill(array, value, start, end); } /** * This method is like `_.find` except that it returns the index of the first * element `predicate` returns truthy for instead of the element itself. * * @static * @memberOf _ * @since 1.1.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * _.findIndex(users, function(o) { return o.user == 'barney'; }); * // => 0 * * // The `_.matches` iteratee shorthand. * _.findIndex(users, { 'user': 'fred', 'active': false }); * // => 1 * * // The `_.matchesProperty` iteratee shorthand. * _.findIndex(users, ['active', false]); * // => 0 * * // The `_.property` iteratee shorthand. * _.findIndex(users, 'active'); * // => 2 */ function findIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax(length + index, 0); } return baseFindIndex(array, getIteratee(predicate, 3), index); } /** * This method is like `_.findIndex` except that it iterates over elements * of `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=array.length-1] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); * // => 2 * * // The `_.matches` iteratee shorthand. * _.findLastIndex(users, { 'user': 'barney', 'active': true }); * // => 0 * * // The `_.matchesProperty` iteratee shorthand. * _.findLastIndex(users, ['active', false]); * // => 2 * * // The `_.property` iteratee shorthand. * _.findLastIndex(users, 'active'); * // => 0 */ function findLastIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = length - 1; if (fromIndex !== undefined) { index = toInteger(fromIndex); index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); } return baseFindIndex(array, getIteratee(predicate, 3), index, true); } /** * Flattens `array` a single level deep. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to flatten. * @returns {Array} Returns the new flattened array. * @example * * _.flatten([1, [2, [3, [4]], 5]]); * // => [1, 2, [3, [4]], 5] */ function flatten(array) { var length = array == null ? 0 : array.length; return length ? baseFlatten(array, 1) : []; } /** * Recursively flattens `array`. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to flatten. * @returns {Array} Returns the new flattened array. * @example * * _.flattenDeep([1, [2, [3, [4]], 5]]); * // => [1, 2, 3, 4, 5] */ function flattenDeep(array) { var length = array == null ? 0 : array.length; return length ? baseFlatten(array, INFINITY) : []; } /** * Recursively flatten `array` up to `depth` times. * * @static * @memberOf _ * @since 4.4.0 * @category Array * @param {Array} array The array to flatten. * @param {number} [depth=1] The maximum recursion depth. * @returns {Array} Returns the new flattened array. * @example * * var array = [1, [2, [3, [4]], 5]]; * * _.flattenDepth(array, 1); * // => [1, 2, [3, [4]], 5] * * _.flattenDepth(array, 2); * // => [1, 2, 3, [4], 5] */ function flattenDepth(array, depth) { var length = array == null ? 0 : array.length; if (!length) { return []; } depth = depth === undefined ? 1 : toInteger(depth); return baseFlatten(array, depth); } /** * The inverse of `_.toPairs`; this method returns an object composed * from key-value `pairs`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} pairs The key-value pairs. * @returns {Object} Returns the new object. * @example * * _.fromPairs([['a', 1], ['b', 2]]); * // => { 'a': 1, 'b': 2 } */ function fromPairs(pairs) { var index = -1, length = pairs == null ? 0 : pairs.length, result = {}; while (++index < length) { var pair = pairs[index]; result[pair[0]] = pair[1]; } return result; } /** * Gets the first element of `array`. * * @static * @memberOf _ * @since 0.1.0 * @alias first * @category Array * @param {Array} array The array to query. * @returns {*} Returns the first element of `array`. * @example * * _.head([1, 2, 3]); * // => 1 * * _.head([]); * // => undefined */ function head(array) { return (array && array.length) ? array[0] : undefined; } /** * Gets the index at which the first occurrence of `value` is found in `array` * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. If `fromIndex` is negative, it's used as the * offset from the end of `array`. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} [fromIndex=0] The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.indexOf([1, 2, 1, 2], 2); * // => 1 * * // Search from the `fromIndex`. * _.indexOf([1, 2, 1, 2], 2, 2); * // => 3 */ function indexOf(array, value, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax(length + index, 0); } return baseIndexOf(array, value, index); } /** * Gets all but the last element of `array`. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to query. * @returns {Array} Returns the slice of `array`. * @example * * _.initial([1, 2, 3]); * // => [1, 2] */ function initial(array) { var length = array == null ? 0 : array.length; return length ? baseSlice(array, 0, -1) : []; } /** * Creates an array of unique values that are included in all given arrays * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. The order and references of result values are * determined by the first array. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @returns {Array} Returns the new array of intersecting values. * @example * * _.intersection([2, 1], [2, 3]); * // => [2] */ var intersection = baseRest(function(arrays) { var mapped = arrayMap(arrays, castArrayLikeObject); return (mapped.length && mapped[0] === arrays[0]) ? baseIntersection(mapped) : []; }); /** * This method is like `_.intersection` except that it accepts `iteratee` * which is invoked for each element of each `arrays` to generate the criterion * by which they're compared. The order and references of result values are * determined by the first array. The iteratee is invoked with one argument: * (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of intersecting values. * @example * * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); * // => [2.1] * * // The `_.property` iteratee shorthand. * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 1 }] */ var intersectionBy = baseRest(function(arrays) { var iteratee = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); if (iteratee === last(mapped)) { iteratee = undefined; } else { mapped.pop(); } return (mapped.length && mapped[0] === arrays[0]) ? baseIntersection(mapped, getIteratee(iteratee, 2)) : []; }); /** * This method is like `_.intersection` except that it accepts `comparator` * which is invoked to compare elements of `arrays`. The order and references * of result values are determined by the first array. The comparator is * invoked with two arguments: (arrVal, othVal). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of intersecting values. * @example * * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; * * _.intersectionWith(objects, others, _.isEqual); * // => [{ 'x': 1, 'y': 2 }] */ var intersectionWith = baseRest(function(arrays) { var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); comparator = typeof comparator == 'function' ? comparator : undefined; if (comparator) { mapped.pop(); } return (mapped.length && mapped[0] === arrays[0]) ? baseIntersection(mapped, undefined, comparator) : []; }); /** * Converts all elements in `array` into a string separated by `separator`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to convert. * @param {string} [separator=','] The element separator. * @returns {string} Returns the joined string. * @example * * _.join(['a', 'b', 'c'], '~'); * // => 'a~b~c' */ function join(array, separator) { return array == null ? '' : nativeJoin.call(array, separator); } /** * Gets the last element of `array`. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to query. * @returns {*} Returns the last element of `array`. * @example * * _.last([1, 2, 3]); * // => 3 */ function last(array) { var length = array == null ? 0 : array.length; return length ? array[length - 1] : undefined; } /** * This method is like `_.indexOf` except that it iterates over elements of * `array` from right to left. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} [fromIndex=array.length-1] The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.lastIndexOf([1, 2, 1, 2], 2); * // => 3 * * // Search from the `fromIndex`. * _.lastIndexOf([1, 2, 1, 2], 2, 2); * // => 1 */ function lastIndexOf(array, value, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = length; if (fromIndex !== undefined) { index = toInteger(fromIndex); index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); } return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); } /** * Gets the element at index `n` of `array`. If `n` is negative, the nth * element from the end is returned. * * @static * @memberOf _ * @since 4.11.0 * @category Array * @param {Array} array The array to query. * @param {number} [n=0] The index of the element to return. * @returns {*} Returns the nth element of `array`. * @example * * var array = ['a', 'b', 'c', 'd']; * * _.nth(array, 1); * // => 'b' * * _.nth(array, -2); * // => 'c'; */ function nth(array, n) { return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; } /** * Removes all given values from `array` using * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` * to remove elements from an array by predicate. * * @static * @memberOf _ * @since 2.0.0 * @category Array * @param {Array} array The array to modify. * @param {...*} [values] The values to remove. * @returns {Array} Returns `array`. * @example * * var array = ['a', 'b', 'c', 'a', 'b', 'c']; * * _.pull(array, 'a', 'c'); * console.log(array); * // => ['b', 'b'] */ var pull = baseRest(pullAll); /** * This method is like `_.pull` except that it accepts an array of values to remove. * * **Note:** Unlike `_.difference`, this method mutates `array`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to modify. * @param {Array} values The values to remove. * @returns {Array} Returns `array`. * @example * * var array = ['a', 'b', 'c', 'a', 'b', 'c']; * * _.pullAll(array, ['a', 'c']); * console.log(array); * // => ['b', 'b'] */ function pullAll(array, values) { return (array && array.length && values && values.length) ? basePullAll(array, values) : array; } /** * This method is like `_.pullAll` except that it accepts `iteratee` which is * invoked for each element of `array` and `values` to generate the criterion * by which they're compared. The iteratee is invoked with one argument: (value). * * **Note:** Unlike `_.differenceBy`, this method mutates `array`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to modify. * @param {Array} values The values to remove. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns `array`. * @example * * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; * * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); * console.log(array); * // => [{ 'x': 2 }] */ function pullAllBy(array, values, iteratee) { return (array && array.length && values && values.length) ? basePullAll(array, values, getIteratee(iteratee, 2)) : array; } /** * This method is like `_.pullAll` except that it accepts `comparator` which * is invoked to compare elements of `array` to `values`. The comparator is * invoked with two arguments: (arrVal, othVal). * * **Note:** Unlike `_.differenceWith`, this method mutates `array`. * * @static * @memberOf _ * @since 4.6.0 * @category Array * @param {Array} array The array to modify. * @param {Array} values The values to remove. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns `array`. * @example * * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; * * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); * console.log(array); * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] */ function pullAllWith(array, values, comparator) { return (array && array.length && values && values.length) ? basePullAll(array, values, undefined, comparator) : array; } /** * Removes elements from `array` corresponding to `indexes` and returns an * array of removed elements. * * **Note:** Unlike `_.at`, this method mutates `array`. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to modify. * @param {...(number|number[])} [indexes] The indexes of elements to remove. * @returns {Array} Returns the new array of removed elements. * @example * * var array = ['a', 'b', 'c', 'd']; * var pulled = _.pullAt(array, [1, 3]); * * console.log(array); * // => ['a', 'c'] * * console.log(pulled); * // => ['b', 'd'] */ var pullAt = flatRest(function(array, indexes) { var length = array == null ? 0 : array.length, result = baseAt(array, indexes); basePullAt(array, arrayMap(indexes, function(index) { return isIndex(index, length) ? +index : index; }).sort(compareAscending)); return result; }); /** * Removes all elements from `array` that `predicate` returns truthy for * and returns an array of the removed elements. The predicate is invoked * with three arguments: (value, index, array). * * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` * to pull elements from an array by value. * * @static * @memberOf _ * @since 2.0.0 * @category Array * @param {Array} array The array to modify. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the new array of removed elements. * @example * * var array = [1, 2, 3, 4]; * var evens = _.remove(array, function(n) { * return n % 2 == 0; * }); * * console.log(array); * // => [1, 3] * * console.log(evens); * // => [2, 4] */ function remove(array, predicate) { var result = []; if (!(array && array.length)) { return result; } var index = -1, indexes = [], length = array.length; predicate = getIteratee(predicate, 3); while (++index < length) { var value = array[index]; if (predicate(value, index, array)) { result.push(value); indexes.push(index); } } basePullAt(array, indexes); return result; } /** * Reverses `array` so that the first element becomes the last, the second * element becomes the second to last, and so on. * * **Note:** This method mutates `array` and is based on * [`Array#reverse`](https://mdn.io/Array/reverse). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to modify. * @returns {Array} Returns `array`. * @example * * var array = [1, 2, 3]; * * _.reverse(array); * // => [3, 2, 1] * * console.log(array); * // => [3, 2, 1] */ function reverse(array) { return array == null ? array : nativeReverse.call(array); } /** * Creates a slice of `array` from `start` up to, but not including, `end`. * * **Note:** This method is used instead of * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are * returned. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */ function slice(array, start, end) { var length = array == null ? 0 : array.length; if (!length) { return []; } if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { start = 0; end = length; } else { start = start == null ? 0 : toInteger(start); end = end === undefined ? length : toInteger(end); } return baseSlice(array, start, end); } /** * Uses a binary search to determine the lowest index at which `value` * should be inserted into `array` in order to maintain its sort order. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example * * _.sortedIndex([30, 50], 40); * // => 1 */ function sortedIndex(array, value) { return baseSortedIndex(array, value); } /** * This method is like `_.sortedIndex` except that it accepts `iteratee` * which is invoked for `value` and each element of `array` to compute their * sort ranking. The iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example * * var objects = [{ 'x': 4 }, { 'x': 5 }]; * * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); * // => 0 * * // The `_.property` iteratee shorthand. * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); * // => 0 */ function sortedIndexBy(array, value, iteratee) { return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); } /** * This method is like `_.indexOf` except that it performs a binary * search on a sorted `array`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.sortedIndexOf([4, 5, 5, 5, 6], 5); * // => 1 */ function sortedIndexOf(array, value) { var length = array == null ? 0 : array.length; if (length) { var index = baseSortedIndex(array, value); if (index < length && eq(array[index], value)) { return index; } } return -1; } /** * This method is like `_.sortedIndex` except that it returns the highest * index at which `value` should be inserted into `array` in order to * maintain its sort order. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example * * _.sortedLastIndex([4, 5, 5, 5, 6], 5); * // => 4 */ function sortedLastIndex(array, value) { return baseSortedIndex(array, value, true); } /** * This method is like `_.sortedLastIndex` except that it accepts `iteratee` * which is invoked for `value` and each element of `array` to compute their * sort ranking. The iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example * * var objects = [{ 'x': 4 }, { 'x': 5 }]; * * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); * // => 1 * * // The `_.property` iteratee shorthand. * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); * // => 1 */ function sortedLastIndexBy(array, value, iteratee) { return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); } /** * This method is like `_.lastIndexOf` except that it performs a binary * search on a sorted `array`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); * // => 3 */ function sortedLastIndexOf(array, value) { var length = array == null ? 0 : array.length; if (length) { var index = baseSortedIndex(array, value, true) - 1; if (eq(array[index], value)) { return index; } } return -1; } /** * This method is like `_.uniq` except that it's designed and optimized * for sorted arrays. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @returns {Array} Returns the new duplicate free array. * @example * * _.sortedUniq([1, 1, 2]); * // => [1, 2] */ function sortedUniq(array) { return (array && array.length) ? baseSortedUniq(array) : []; } /** * This method is like `_.uniqBy` except that it's designed and optimized * for sorted arrays. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @returns {Array} Returns the new duplicate free array. * @example * * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); * // => [1.1, 2.3] */ function sortedUniqBy(array, iteratee) { return (array && array.length) ? baseSortedUniq(array, getIteratee(iteratee, 2)) : []; } /** * Gets all but the first element of `array`. * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to query. * @returns {Array} Returns the slice of `array`. * @example * * _.tail([1, 2, 3]); * // => [2, 3] */ function tail(array) { var length = array == null ? 0 : array.length; return length ? baseSlice(array, 1, length) : []; } /** * Creates a slice of `array` with `n` elements taken from the beginning. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to take. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.take([1, 2, 3]); * // => [1] * * _.take([1, 2, 3], 2); * // => [1, 2] * * _.take([1, 2, 3], 5); * // => [1, 2, 3] * * _.take([1, 2, 3], 0); * // => [] */ function take(array, n, guard) { if (!(array && array.length)) { return []; } n = (guard || n === undefined) ? 1 : toInteger(n); return baseSlice(array, 0, n < 0 ? 0 : n); } /** * Creates a slice of `array` with `n` elements taken from the end. * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to take. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.takeRight([1, 2, 3]); * // => [3] * * _.takeRight([1, 2, 3], 2); * // => [2, 3] * * _.takeRight([1, 2, 3], 5); * // => [1, 2, 3] * * _.takeRight([1, 2, 3], 0); * // => [] */ function takeRight(array, n, guard) { var length = array == null ? 0 : array.length; if (!length) { return []; } n = (guard || n === undefined) ? 1 : toInteger(n); n = length - n; return baseSlice(array, n < 0 ? 0 : n, length); } /** * Creates a slice of `array` with elements taken from the end. Elements are * taken until `predicate` returns falsey. The predicate is invoked with * three arguments: (value, index, array). * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * _.takeRightWhile(users, function(o) { return !o.active; }); * // => objects for ['fred', 'pebbles'] * * // The `_.matches` iteratee shorthand. * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); * // => objects for ['pebbles'] * * // The `_.matchesProperty` iteratee shorthand. * _.takeRightWhile(users, ['active', false]); * // => objects for ['fred', 'pebbles'] * * // The `_.property` iteratee shorthand. * _.takeRightWhile(users, 'active'); * // => [] */ function takeRightWhile(array, predicate) { return (array && array.length) ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; } /** * Creates a slice of `array` with elements taken from the beginning. Elements * are taken until `predicate` returns falsey. The predicate is invoked with * three arguments: (value, index, array). * * @static * @memberOf _ * @since 3.0.0 * @category Array * @param {Array} array The array to query. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * _.takeWhile(users, function(o) { return !o.active; }); * // => objects for ['barney', 'fred'] * * // The `_.matches` iteratee shorthand. * _.takeWhile(users, { 'user': 'barney', 'active': false }); * // => objects for ['barney'] * * // The `_.matchesProperty` iteratee shorthand. * _.takeWhile(users, ['active', false]); * // => objects for ['barney', 'fred'] * * // The `_.property` iteratee shorthand. * _.takeWhile(users, 'active'); * // => [] */ function takeWhile(array, predicate) { return (array && array.length) ? baseWhile(array, getIteratee(predicate, 3)) : []; } /** * Creates an array of unique values, in order, from all given arrays using * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @returns {Array} Returns the new array of combined values. * @example * * _.union([2], [1, 2]); * // => [2, 1] */ var union = baseRest(function(arrays) { return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); }); /** * This method is like `_.union` except that it accepts `iteratee` which is * invoked for each element of each `arrays` to generate the criterion by * which uniqueness is computed. Result values are chosen from the first * array in which the value occurs. The iteratee is invoked with one argument: * (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of combined values. * @example * * _.unionBy([2.1], [1.2, 2.3], Math.floor); * // => [2.1, 1.2] * * // The `_.property` iteratee shorthand. * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 1 }, { 'x': 2 }] */ var unionBy = baseRest(function(arrays) { var iteratee = last(arrays); if (isArrayLikeObject(iteratee)) { iteratee = undefined; } return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); }); /** * This method is like `_.union` except that it accepts `comparator` which * is invoked to compare elements of `arrays`. Result values are chosen from * the first array in which the value occurs. The comparator is invoked * with two arguments: (arrVal, othVal). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of combined values. * @example * * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; * * _.unionWith(objects, others, _.isEqual); * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] */ var unionWith = baseRest(function(arrays) { var comparator = last(arrays); comparator = typeof comparator == 'function' ? comparator : undefined; return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); }); /** * Creates a duplicate-free version of an array, using * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons, in which only the first occurrence of each element * is kept. The order of result values is determined by the order they occur * in the array. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to inspect. * @returns {Array} Returns the new duplicate free array. * @example * * _.uniq([2, 1, 2]); * // => [2, 1] */ function uniq(array) { return (array && array.length) ? baseUniq(array) : []; } /** * This method is like `_.uniq` except that it accepts `iteratee` which is * invoked for each element in `array` to generate the criterion by which * uniqueness is computed. The order of result values is determined by the * order they occur in the array. The iteratee is invoked with one argument: * (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new duplicate free array. * @example * * _.uniqBy([2.1, 1.2, 2.3], Math.floor); * // => [2.1, 1.2] * * // The `_.property` iteratee shorthand. * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 1 }, { 'x': 2 }] */ function uniqBy(array, iteratee) { return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; } /** * This method is like `_.uniq` except that it accepts `comparator` which * is invoked to compare elements of `array`. The order of result values is * determined by the order they occur in the array.The comparator is invoked * with two arguments: (arrVal, othVal). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new duplicate free array. * @example * * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; * * _.uniqWith(objects, _.isEqual); * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] */ function uniqWith(array, comparator) { comparator = typeof comparator == 'function' ? comparator : undefined; return (array && array.length) ? baseUniq(array, undefined, comparator) : []; } /** * This method is like `_.zip` except that it accepts an array of grouped * elements and creates an array regrouping the elements to their pre-zip * configuration. * * @static * @memberOf _ * @since 1.2.0 * @category Array * @param {Array} array The array of grouped elements to process. * @returns {Array} Returns the new array of regrouped elements. * @example * * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); * // => [['a', 1, true], ['b', 2, false]] * * _.unzip(zipped); * // => [['a', 'b'], [1, 2], [true, false]] */ function unzip(array) { if (!(array && array.length)) { return []; } var length = 0; array = arrayFilter(array, function(group) { if (isArrayLikeObject(group)) { length = nativeMax(group.length, length); return true; } }); return baseTimes(length, function(index) { return arrayMap(array, baseProperty(index)); }); } /** * This method is like `_.unzip` except that it accepts `iteratee` to specify * how regrouped values should be combined. The iteratee is invoked with the * elements of each group: (...group). * * @static * @memberOf _ * @since 3.8.0 * @category Array * @param {Array} array The array of grouped elements to process. * @param {Function} [iteratee=_.identity] The function to combine * regrouped values. * @returns {Array} Returns the new array of regrouped elements. * @example * * var zipped = _.zip([1, 2], [10, 20], [100, 200]); * // => [[1, 10, 100], [2, 20, 200]] * * _.unzipWith(zipped, _.add); * // => [3, 30, 300] */ function unzipWith(array, iteratee) { if (!(array && array.length)) { return []; } var result = unzip(array); if (iteratee == null) { return result; } return arrayMap(result, function(group) { return apply(iteratee, undefined, group); }); } /** * Creates an array excluding all given values using * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * **Note:** Unlike `_.pull`, this method returns a new array. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to inspect. * @param {...*} [values] The values to exclude. * @returns {Array} Returns the new array of filtered values. * @see _.difference, _.xor * @example * * _.without([2, 1, 2, 3], 1, 2); * // => [3] */ var without = baseRest(function(array, values) { return isArrayLikeObject(array) ? baseDifference(array, values) : []; }); /** * Creates an array of unique values that is the * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) * of the given arrays. The order of result values is determined by the order * they occur in the arrays. * * @static * @memberOf _ * @since 2.4.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @returns {Array} Returns the new array of filtered values. * @see _.difference, _.without * @example * * _.xor([2, 1], [2, 3]); * // => [1, 3] */ var xor = baseRest(function(arrays) { return baseXor(arrayFilter(arrays, isArrayLikeObject)); }); /** * This method is like `_.xor` except that it accepts `iteratee` which is * invoked for each element of each `arrays` to generate the criterion by * which by which they're compared. The order of result values is determined * by the order they occur in the arrays. The iteratee is invoked with one * argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of filtered values. * @example * * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); * // => [1.2, 3.4] * * // The `_.property` iteratee shorthand. * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 2 }] */ var xorBy = baseRest(function(arrays) { var iteratee = last(arrays); if (isArrayLikeObject(iteratee)) { iteratee = undefined; } return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); }); /** * This method is like `_.xor` except that it accepts `comparator` which is * invoked to compare elements of `arrays`. The order of result values is * determined by the order they occur in the arrays. The comparator is invoked * with two arguments: (arrVal, othVal). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new array of filtered values. * @example * * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; * * _.xorWith(objects, others, _.isEqual); * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] */ var xorWith = baseRest(function(arrays) { var comparator = last(arrays); comparator = typeof comparator == 'function' ? comparator : undefined; return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); }); /** * Creates an array of grouped elements, the first of which contains the * first elements of the given arrays, the second of which contains the * second elements of the given arrays, and so on. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {...Array} [arrays] The arrays to process. * @returns {Array} Returns the new array of grouped elements. * @example * * _.zip(['a', 'b'], [1, 2], [true, false]); * // => [['a', 1, true], ['b', 2, false]] */ var zip = baseRest(unzip); /** * This method is like `_.fromPairs` except that it accepts two arrays, * one of property identifiers and one of corresponding values. * * @static * @memberOf _ * @since 0.4.0 * @category Array * @param {Array} [props=[]] The property identifiers. * @param {Array} [values=[]] The property values. * @returns {Object} Returns the new object. * @example * * _.zipObject(['a', 'b'], [1, 2]); * // => { 'a': 1, 'b': 2 } */ function zipObject(props, values) { return baseZipObject(props || [], values || [], assignValue); } /** * This method is like `_.zipObject` except that it supports property paths. * * @static * @memberOf _ * @since 4.1.0 * @category Array * @param {Array} [props=[]] The property identifiers. * @param {Array} [values=[]] The property values. * @returns {Object} Returns the new object. * @example * * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } */ function zipObjectDeep(props, values) { return baseZipObject(props || [], values || [], baseSet); } /** * This method is like `_.zip` except that it accepts `iteratee` to specify * how grouped values should be combined. The iteratee is invoked with the * elements of each group: (...group). * * @static * @memberOf _ * @since 3.8.0 * @category Array * @param {...Array} [arrays] The arrays to process. * @param {Function} [iteratee=_.identity] The function to combine * grouped values. * @returns {Array} Returns the new array of grouped elements. * @example * * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { * return a + b + c; * }); * // => [111, 222] */ var zipWith = baseRest(function(arrays) { var length = arrays.length, iteratee = length > 1 ? arrays[length - 1] : undefined; iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; return unzipWith(arrays, iteratee); }); /*------------------------------------------------------------------------*/ /** * Creates a `lodash` wrapper instance that wraps `value` with explicit method * chain sequences enabled. The result of such sequences must be unwrapped * with `_#value`. * * @static * @memberOf _ * @since 1.3.0 * @category Seq * @param {*} value The value to wrap. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 }, * { 'user': 'pebbles', 'age': 1 } * ]; * * var youngest = _ * .chain(users) * .sortBy('age') * .map(function(o) { * return o.user + ' is ' + o.age; * }) * .head() * .value(); * // => 'pebbles is 1' */ function chain(value) { var result = lodash(value); result.__chain__ = true; return result; } /** * This method invokes `interceptor` and returns `value`. The interceptor * is invoked with one argument; (value). The purpose of this method is to * "tap into" a method chain sequence in order to modify intermediate results. * * @static * @memberOf _ * @since 0.1.0 * @category Seq * @param {*} value The value to provide to `interceptor`. * @param {Function} interceptor The function to invoke. * @returns {*} Returns `value`. * @example * * _([1, 2, 3]) * .tap(function(array) { * // Mutate input array. * array.pop(); * }) * .reverse() * .value(); * // => [2, 1] */ function tap(value, interceptor) { interceptor(value); return value; } /** * This method is like `_.tap` except that it returns the result of `interceptor`. * The purpose of this method is to "pass thru" values replacing intermediate * results in a method chain sequence. * * @static * @memberOf _ * @since 3.0.0 * @category Seq * @param {*} value The value to provide to `interceptor`. * @param {Function} interceptor The function to invoke. * @returns {*} Returns the result of `interceptor`. * @example * * _(' abc ') * .chain() * .trim() * .thru(function(value) { * return [value]; * }) * .value(); * // => ['abc'] */ function thru(value, interceptor) { return interceptor(value); } /** * This method is the wrapper version of `_.at`. * * @name at * @memberOf _ * @since 1.0.0 * @category Seq * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; * * _(object).at(['a[0].b.c', 'a[1]']).value(); * // => [3, 4] */ var wrapperAt = flatRest(function(paths) { var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { return baseAt(object, paths); }; if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { return this.thru(interceptor); } value = value.slice(start, +start + (length ? 1 : 0)); value.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined }); return new LodashWrapper(value, this.__chain__).thru(function(array) { if (length && !array.length) { array.push(undefined); } return array; }); }); /** * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. * * @name chain * @memberOf _ * @since 0.1.0 * @category Seq * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 } * ]; * * // A sequence without explicit chaining. * _(users).head(); * // => { 'user': 'barney', 'age': 36 } * * // A sequence with explicit chaining. * _(users) * .chain() * .head() * .pick('user') * .value(); * // => { 'user': 'barney' } */ function wrapperChain() { return chain(this); } /** * Executes the chain sequence and returns the wrapped result. * * @name commit * @memberOf _ * @since 3.2.0 * @category Seq * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var array = [1, 2]; * var wrapped = _(array).push(3); * * console.log(array); * // => [1, 2] * * wrapped = wrapped.commit(); * console.log(array); * // => [1, 2, 3] * * wrapped.last(); * // => 3 * * console.log(array); * // => [1, 2, 3] */ function wrapperCommit() { return new LodashWrapper(this.value(), this.__chain__); } /** * Gets the next value on a wrapped object following the * [iterator protocol](https://mdn.io/iteration_protocols#iterator). * * @name next * @memberOf _ * @since 4.0.0 * @category Seq * @returns {Object} Returns the next iterator value. * @example * * var wrapped = _([1, 2]); * * wrapped.next(); * // => { 'done': false, 'value': 1 } * * wrapped.next(); * // => { 'done': false, 'value': 2 } * * wrapped.next(); * // => { 'done': true, 'value': undefined } */ function wrapperNext() { if (this.__values__ === undefined) { this.__values__ = toArray(this.value()); } var done = this.__index__ >= this.__values__.length, value = done ? undefined : this.__values__[this.__index__++]; return { 'done': done, 'value': value }; } /** * Enables the wrapper to be iterable. * * @name Symbol.iterator * @memberOf _ * @since 4.0.0 * @category Seq * @returns {Object} Returns the wrapper object. * @example * * var wrapped = _([1, 2]); * * wrapped[Symbol.iterator]() === wrapped; * // => true * * Array.from(wrapped); * // => [1, 2] */ function wrapperToIterator() { return this; } /** * Creates a clone of the chain sequence planting `value` as the wrapped value. * * @name plant * @memberOf _ * @since 3.2.0 * @category Seq * @param {*} value The value to plant. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * function square(n) { * return n * n; * } * * var wrapped = _([1, 2]).map(square); * var other = wrapped.plant([3, 4]); * * other.value(); * // => [9, 16] * * wrapped.value(); * // => [1, 4] */ function wrapperPlant(value) { var result, parent = this; while (parent instanceof baseLodash) { var clone = wrapperClone(parent); clone.__index__ = 0; clone.__values__ = undefined; if (result) { previous.__wrapped__ = clone; } else { result = clone; } var previous = clone; parent = parent.__wrapped__; } previous.__wrapped__ = value; return result; } /** * This method is the wrapper version of `_.reverse`. * * **Note:** This method mutates the wrapped array. * * @name reverse * @memberOf _ * @since 0.1.0 * @category Seq * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var array = [1, 2, 3]; * * _(array).reverse().value() * // => [3, 2, 1] * * console.log(array); * // => [3, 2, 1] */ function wrapperReverse() { var value = this.__wrapped__; if (value instanceof LazyWrapper) { var wrapped = value; if (this.__actions__.length) { wrapped = new LazyWrapper(this); } wrapped = wrapped.reverse(); wrapped.__actions__.push({ 'func': thru, 'args': [reverse], 'thisArg': undefined }); return new LodashWrapper(wrapped, this.__chain__); } return this.thru(reverse); } /** * Executes the chain sequence to resolve the unwrapped value. * * @name value * @memberOf _ * @since 0.1.0 * @alias toJSON, valueOf * @category Seq * @returns {*} Returns the resolved unwrapped value. * @example * * _([1, 2, 3]).value(); * // => [1, 2, 3] */ function wrapperValue() { return baseWrapperValue(this.__wrapped__, this.__actions__); } /*------------------------------------------------------------------------*/ /** * Creates an object composed of keys generated from the results of running * each element of `collection` thru `iteratee`. The corresponding value of * each key is the number of times the key was returned by `iteratee`. The * iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 0.5.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * * _.countBy([6.1, 4.2, 6.3], Math.floor); * // => { '4': 1, '6': 2 } * * // The `_.property` iteratee shorthand. * _.countBy(['one', 'two', 'three'], 'length'); * // => { '3': 2, '5': 1 } */ var countBy = createAggregator(function(result, value, key) { if (hasOwnProperty.call(result, key)) { ++result[key]; } else { baseAssignValue(result, key, 1); } }); /** * Checks if `predicate` returns truthy for **all** elements of `collection`. * Iteration is stopped once `predicate` returns falsey. The predicate is * invoked with three arguments: (value, index|key, collection). * * **Note:** This method returns `true` for * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of * elements of empty collections. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false`. * @example * * _.every([true, 1, null, 'yes'], Boolean); * // => false * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': false } * ]; * * // The `_.matches` iteratee shorthand. * _.every(users, { 'user': 'barney', 'active': false }); * // => false * * // The `_.matchesProperty` iteratee shorthand. * _.every(users, ['active', false]); * // => true * * // The `_.property` iteratee shorthand. * _.every(users, 'active'); * // => false */ function every(collection, predicate, guard) { var func = isArray(collection) ? arrayEvery : baseEvery; if (guard && isIterateeCall(collection, predicate, guard)) { predicate = undefined; } return func(collection, getIteratee(predicate, 3)); } /** * Iterates over elements of `collection`, returning an array of all elements * `predicate` returns truthy for. The predicate is invoked with three * arguments: (value, index|key, collection). * * **Note:** Unlike `_.remove`, this method returns a new array. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the new filtered array. * @see _.reject * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false } * ]; * * _.filter(users, function(o) { return !o.active; }); * // => objects for ['fred'] * * // The `_.matches` iteratee shorthand. * _.filter(users, { 'age': 36, 'active': true }); * // => objects for ['barney'] * * // The `_.matchesProperty` iteratee shorthand. * _.filter(users, ['active', false]); * // => objects for ['fred'] * * // The `_.property` iteratee shorthand. * _.filter(users, 'active'); * // => objects for ['barney'] */ function filter(collection, predicate) { var func = isArray(collection) ? arrayFilter : baseFilter; return func(collection, getIteratee(predicate, 3)); } /** * Iterates over elements of `collection`, returning the first element * `predicate` returns truthy for. The predicate is invoked with three * arguments: (value, index|key, collection). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false }, * { 'user': 'pebbles', 'age': 1, 'active': true } * ]; * * _.find(users, function(o) { return o.age < 40; }); * // => object for 'barney' * * // The `_.matches` iteratee shorthand. * _.find(users, { 'age': 1, 'active': true }); * // => object for 'pebbles' * * // The `_.matchesProperty` iteratee shorthand. * _.find(users, ['active', false]); * // => object for 'fred' * * // The `_.property` iteratee shorthand. * _.find(users, 'active'); * // => object for 'barney' */ var find = createFind(findIndex); /** * This method is like `_.find` except that it iterates over elements of * `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=collection.length-1] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * _.findLast([1, 2, 3, 4], function(n) { * return n % 2 == 1; * }); * // => 3 */ var findLast = createFind(findLastIndex); /** * Creates a flattened array of values by running each element in `collection` * thru `iteratee` and flattening the mapped results. The iteratee is invoked * with three arguments: (value, index|key, collection). * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array} Returns the new flattened array. * @example * * function duplicate(n) { * return [n, n]; * } * * _.flatMap([1, 2], duplicate); * // => [1, 1, 2, 2] */ function flatMap(collection, iteratee) { return baseFlatten(map(collection, iteratee), 1); } /** * This method is like `_.flatMap` except that it recursively flattens the * mapped results. * * @static * @memberOf _ * @since 4.7.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array} Returns the new flattened array. * @example * * function duplicate(n) { * return [[[n, n]]]; * } * * _.flatMapDeep([1, 2], duplicate); * // => [1, 1, 2, 2] */ function flatMapDeep(collection, iteratee) { return baseFlatten(map(collection, iteratee), INFINITY); } /** * This method is like `_.flatMap` except that it recursively flattens the * mapped results up to `depth` times. * * @static * @memberOf _ * @since 4.7.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {number} [depth=1] The maximum recursion depth. * @returns {Array} Returns the new flattened array. * @example * * function duplicate(n) { * return [[[n, n]]]; * } * * _.flatMapDepth([1, 2], duplicate, 2); * // => [[1, 1], [2, 2]] */ function flatMapDepth(collection, iteratee, depth) { depth = depth === undefined ? 1 : toInteger(depth); return baseFlatten(map(collection, iteratee), depth); } /** * Iterates over elements of `collection` and invokes `iteratee` for each element. * The iteratee is invoked with three arguments: (value, index|key, collection). * Iteratee functions may exit iteration early by explicitly returning `false`. * * **Note:** As with other "Collections" methods, objects with a "length" * property are iterated like arrays. To avoid this behavior use `_.forIn` * or `_.forOwn` for object iteration. * * @static * @memberOf _ * @since 0.1.0 * @alias each * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array|Object} Returns `collection`. * @see _.forEachRight * @example * * _.forEach([1, 2], function(value) { * console.log(value); * }); * // => Logs `1` then `2`. * * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { * console.log(key); * }); * // => Logs 'a' then 'b' (iteration order is not guaranteed). */ function forEach(collection, iteratee) { var func = isArray(collection) ? arrayEach : baseEach; return func(collection, getIteratee(iteratee, 3)); } /** * This method is like `_.forEach` except that it iterates over elements of * `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @alias eachRight * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array|Object} Returns `collection`. * @see _.forEach * @example * * _.forEachRight([1, 2], function(value) { * console.log(value); * }); * // => Logs `2` then `1`. */ function forEachRight(collection, iteratee) { var func = isArray(collection) ? arrayEachRight : baseEachRight; return func(collection, getIteratee(iteratee, 3)); } /** * Creates an object composed of keys generated from the results of running * each element of `collection` thru `iteratee`. The order of grouped values * is determined by the order they occur in `collection`. The corresponding * value of each key is an array of elements responsible for generating the * key. The iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * * _.groupBy([6.1, 4.2, 6.3], Math.floor); * // => { '4': [4.2], '6': [6.1, 6.3] } * * // The `_.property` iteratee shorthand. * _.groupBy(['one', 'two', 'three'], 'length'); * // => { '3': ['one', 'two'], '5': ['three'] } */ var groupBy = createAggregator(function(result, value, key) { if (hasOwnProperty.call(result, key)) { result[key].push(value); } else { baseAssignValue(result, key, [value]); } }); /** * Checks if `value` is in `collection`. If `collection` is a string, it's * checked for a substring of `value`, otherwise * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * is used for equality comparisons. If `fromIndex` is negative, it's used as * the offset from the end of `collection`. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @param {*} value The value to search for. * @param {number} [fromIndex=0] The index to search from. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. * @returns {boolean} Returns `true` if `value` is found, else `false`. * @example * * _.includes([1, 2, 3], 1); * // => true * * _.includes([1, 2, 3], 1, 2); * // => false * * _.includes({ 'a': 1, 'b': 2 }, 1); * // => true * * _.includes('abcd', 'bc'); * // => true */ function includes(collection, value, fromIndex, guard) { collection = isArrayLike(collection) ? collection : values(collection); fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; var length = collection.length; if (fromIndex < 0) { fromIndex = nativeMax(length + fromIndex, 0); } return isString(collection) ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) : (!!length && baseIndexOf(collection, value, fromIndex) > -1); } /** * Invokes the method at `path` of each element in `collection`, returning * an array of the results of each invoked method. Any additional arguments * are provided to each invoked method. If `path` is a function, it's invoked * for, and `this` bound to, each element in `collection`. * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Array|Function|string} path The path of the method to invoke or * the function invoked per iteration. * @param {...*} [args] The arguments to invoke each method with. * @returns {Array} Returns the array of results. * @example * * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); * // => [[1, 5, 7], [1, 2, 3]] * * _.invokeMap([123, 456], String.prototype.split, ''); * // => [['1', '2', '3'], ['4', '5', '6']] */ var invokeMap = baseRest(function(collection, path, args) { var index = -1, isFunc = typeof path == 'function', result = isArrayLike(collection) ? Array(collection.length) : []; baseEach(collection, function(value) { result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); }); return result; }); /** * Creates an object composed of keys generated from the results of running * each element of `collection` thru `iteratee`. The corresponding value of * each key is the last element responsible for generating the key. The * iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * * var array = [ * { 'dir': 'left', 'code': 97 }, * { 'dir': 'right', 'code': 100 } * ]; * * _.keyBy(array, function(o) { * return String.fromCharCode(o.code); * }); * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } * * _.keyBy(array, 'dir'); * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } */ var keyBy = createAggregator(function(result, value, key) { baseAssignValue(result, key, value); }); /** * Creates an array of values by running each element in `collection` thru * `iteratee`. The iteratee is invoked with three arguments: * (value, index|key, collection). * * Many lodash methods are guarded to work as iteratees for methods like * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. * * The guarded methods are: * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, * `template`, `trim`, `trimEnd`, `trimStart`, and `words` * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array} Returns the new mapped array. * @example * * function square(n) { * return n * n; * } * * _.map([4, 8], square); * // => [16, 64] * * _.map({ 'a': 4, 'b': 8 }, square); * // => [16, 64] (iteration order is not guaranteed) * * var users = [ * { 'user': 'barney' }, * { 'user': 'fred' } * ]; * * // The `_.property` iteratee shorthand. * _.map(users, 'user'); * // => ['barney', 'fred'] */ function map(collection, iteratee) { var func = isArray(collection) ? arrayMap : baseMap; return func(collection, getIteratee(iteratee, 3)); } /** * This method is like `_.sortBy` except that it allows specifying the sort * orders of the iteratees to sort by. If `orders` is unspecified, all values * are sorted in ascending order. Otherwise, specify an order of "desc" for * descending or "asc" for ascending sort order of corresponding values. * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] * The iteratees to sort by. * @param {string[]} [orders] The sort orders of `iteratees`. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. * @returns {Array} Returns the new sorted array. * @example * * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 34 }, * { 'user': 'fred', 'age': 40 }, * { 'user': 'barney', 'age': 36 } * ]; * * // Sort by `user` in ascending order and by `age` in descending order. * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] */ function orderBy(collection, iteratees, orders, guard) { if (collection == null) { return []; } if (!isArray(iteratees)) { iteratees = iteratees == null ? [] : [iteratees]; } orders = guard ? undefined : orders; if (!isArray(orders)) { orders = orders == null ? [] : [orders]; } return baseOrderBy(collection, iteratees, orders); } /** * Creates an array of elements split into two groups, the first of which * contains elements `predicate` returns truthy for, the second of which * contains elements `predicate` returns falsey for. The predicate is * invoked with one argument: (value). * * @static * @memberOf _ * @since 3.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the array of grouped elements. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': true }, * { 'user': 'pebbles', 'age': 1, 'active': false } * ]; * * _.partition(users, function(o) { return o.active; }); * // => objects for [['fred'], ['barney', 'pebbles']] * * // The `_.matches` iteratee shorthand. * _.partition(users, { 'age': 1, 'active': false }); * // => objects for [['pebbles'], ['barney', 'fred']] * * // The `_.matchesProperty` iteratee shorthand. * _.partition(users, ['active', false]); * // => objects for [['barney', 'pebbles'], ['fred']] * * // The `_.property` iteratee shorthand. * _.partition(users, 'active'); * // => objects for [['fred'], ['barney', 'pebbles']] */ var partition = createAggregator(function(result, value, key) { result[key ? 0 : 1].push(value); }, function() { return [[], []]; }); /** * Reduces `collection` to a value which is the accumulated result of running * each element in `collection` thru `iteratee`, where each successive * invocation is supplied the return value of the previous. If `accumulator` * is not given, the first element of `collection` is used as the initial * value. The iteratee is invoked with four arguments: * (accumulator, value, index|key, collection). * * Many lodash methods are guarded to work as iteratees for methods like * `_.reduce`, `_.reduceRight`, and `_.transform`. * * The guarded methods are: * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, * and `sortBy` * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The initial value. * @returns {*} Returns the accumulated value. * @see _.reduceRight * @example * * _.reduce([1, 2], function(sum, n) { * return sum + n; * }, 0); * // => 3 * * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { * (result[value] || (result[value] = [])).push(key); * return result; * }, {}); * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) */ function reduce(collection, iteratee, accumulator) { var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); } /** * This method is like `_.reduce` except that it iterates over elements of * `collection` from right to left. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The initial value. * @returns {*} Returns the accumulated value. * @see _.reduce * @example * * var array = [[0, 1], [2, 3], [4, 5]]; * * _.reduceRight(array, function(flattened, other) { * return flattened.concat(other); * }, []); * // => [4, 5, 2, 3, 0, 1] */ function reduceRight(collection, iteratee, accumulator) { var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); } /** * The opposite of `_.filter`; this method returns the elements of `collection` * that `predicate` does **not** return truthy for. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the new filtered array. * @see _.filter * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': true } * ]; * * _.reject(users, function(o) { return !o.active; }); * // => objects for ['fred'] * * // The `_.matches` iteratee shorthand. * _.reject(users, { 'age': 40, 'active': true }); * // => objects for ['barney'] * * // The `_.matchesProperty` iteratee shorthand. * _.reject(users, ['active', false]); * // => objects for ['fred'] * * // The `_.property` iteratee shorthand. * _.reject(users, 'active'); * // => objects for ['barney'] */ function reject(collection, predicate) { var func = isArray(collection) ? arrayFilter : baseFilter; return func(collection, negate(getIteratee(predicate, 3))); } /** * Gets a random element from `collection`. * * @static * @memberOf _ * @since 2.0.0 * @category Collection * @param {Array|Object} collection The collection to sample. * @returns {*} Returns the random element. * @example * * _.sample([1, 2, 3, 4]); * // => 2 */ function sample(collection) { var func = isArray(collection) ? arraySample : baseSample; return func(collection); } /** * Gets `n` random elements at unique keys from `collection` up to the * size of `collection`. * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to sample. * @param {number} [n=1] The number of elements to sample. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the random elements. * @example * * _.sampleSize([1, 2, 3], 2); * // => [3, 1] * * _.sampleSize([1, 2, 3], 4); * // => [2, 3, 1] */ function sampleSize(collection, n, guard) { if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { n = 1; } else { n = toInteger(n); } var func = isArray(collection) ? arraySampleSize : baseSampleSize; return func(collection, n); } /** * Creates an array of shuffled values, using a version of the * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to shuffle. * @returns {Array} Returns the new shuffled array. * @example * * _.shuffle([1, 2, 3, 4]); * // => [4, 1, 3, 2] */ function shuffle(collection) { var func = isArray(collection) ? arrayShuffle : baseShuffle; return func(collection); } /** * Gets the size of `collection` by returning its length for array-like * values or the number of own enumerable string keyed properties for objects. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @returns {number} Returns the collection size. * @example * * _.size([1, 2, 3]); * // => 3 * * _.size({ 'a': 1, 'b': 2 }); * // => 2 * * _.size('pebbles'); * // => 7 */ function size(collection) { if (collection == null) { return 0; } if (isArrayLike(collection)) { return isString(collection) ? stringSize(collection) : collection.length; } var tag = getTag(collection); if (tag == mapTag || tag == setTag) { return collection.size; } return baseKeys(collection).length; } /** * Checks if `predicate` returns truthy for **any** element of `collection`. * Iteration is stopped once `predicate` returns truthy. The predicate is * invoked with three arguments: (value, index|key, collection). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. * @example * * _.some([null, 0, 'yes', false], Boolean); * // => true * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false } * ]; * * // The `_.matches` iteratee shorthand. * _.some(users, { 'user': 'barney', 'active': false }); * // => false * * // The `_.matchesProperty` iteratee shorthand. * _.some(users, ['active', false]); * // => true * * // The `_.property` iteratee shorthand. * _.some(users, 'active'); * // => true */ function some(collection, predicate, guard) { var func = isArray(collection) ? arraySome : baseSome; if (guard && isIterateeCall(collection, predicate, guard)) { predicate = undefined; } return func(collection, getIteratee(predicate, 3)); } /** * Creates an array of elements, sorted in ascending order by the results of * running each element in a collection thru each iteratee. This method * performs a stable sort, that is, it preserves the original sort order of * equal elements. The iteratees are invoked with one argument: (value). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {...(Function|Function[])} [iteratees=[_.identity]] * The iteratees to sort by. * @returns {Array} Returns the new sorted array. * @example * * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 }, * { 'user': 'barney', 'age': 34 } * ]; * * _.sortBy(users, [function(o) { return o.user; }]); * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] * * _.sortBy(users, ['user', 'age']); * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] */ var sortBy = baseRest(function(collection, iteratees) { if (collection == null) { return []; } var length = iteratees.length; if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { iteratees = []; } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { iteratees = [iteratees[0]]; } return baseOrderBy(collection, baseFlatten(iteratees, 1), []); }); /*------------------------------------------------------------------------*/ /** * Gets the timestamp of the number of milliseconds that have elapsed since * the Unix epoch (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ * @since 2.4.0 * @category Date * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); * // => Logs the number of milliseconds it took for the deferred invocation. */ var now = ctxNow || function() { return root.Date.now(); }; /*------------------------------------------------------------------------*/ /** * The opposite of `_.before`; this method creates a function that invokes * `func` once it's called `n` or more times. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {number} n The number of calls before `func` is invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * var saves = ['profile', 'settings']; * * var done = _.after(saves.length, function() { * console.log('done saving!'); * }); * * _.forEach(saves, function(type) { * asyncSave({ 'type': type, 'complete': done }); * }); * // => Logs 'done saving!' after the two async saves have completed. */ function after(n, func) { if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } n = toInteger(n); return function() { if (--n < 1) { return func.apply(this, arguments); } }; } /** * Creates a function that invokes `func`, with up to `n` arguments, * ignoring any additional arguments. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} func The function to cap arguments for. * @param {number} [n=func.length] The arity cap. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Function} Returns the new capped function. * @example * * _.map(['6', '8', '10'], _.ary(parseInt, 1)); * // => [6, 8, 10] */ function ary(func, n, guard) { n = guard ? undefined : n; n = (func && n == null) ? func.length : n; return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); } /** * Creates a function that invokes `func`, with the `this` binding and arguments * of the created function, while it's called less than `n` times. Subsequent * calls to the created function return the result of the last `func` invocation. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {number} n The number of calls at which `func` is no longer invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * jQuery(element).on('click', _.before(5, addContactToList)); * // => Allows adding up to 4 contacts to the list. */ function before(n, func) { var result; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } n = toInteger(n); return function() { if (--n > 0) { result = func.apply(this, arguments); } if (n <= 1) { func = undefined; } return result; }; } /** * Creates a function that invokes `func` with the `this` binding of `thisArg` * and `partials` prepended to the arguments it receives. * * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, * may be used as a placeholder for partially applied arguments. * * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" * property of bound functions. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to bind. * @param {*} thisArg The `this` binding of `func`. * @param {...*} [partials] The arguments to be partially applied. * @returns {Function} Returns the new bound function. * @example * * function greet(greeting, punctuation) { * return greeting + ' ' + this.user + punctuation; * } * * var object = { 'user': 'fred' }; * * var bound = _.bind(greet, object, 'hi'); * bound('!'); * // => 'hi fred!' * * // Bound with placeholders. * var bound = _.bind(greet, object, _, '!'); * bound('hi'); * // => 'hi fred!' */ var bind = baseRest(function(func, thisArg, partials) { var bitmask = WRAP_BIND_FLAG; if (partials.length) { var holders = replaceHolders(partials, getHolder(bind)); bitmask |= WRAP_PARTIAL_FLAG; } return createWrap(func, bitmask, thisArg, partials, holders); }); /** * Creates a function that invokes the method at `object[key]` with `partials` * prepended to the arguments it receives. * * This method differs from `_.bind` by allowing bound functions to reference * methods that may be redefined or don't yet exist. See * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) * for more details. * * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic * builds, may be used as a placeholder for partially applied arguments. * * @static * @memberOf _ * @since 0.10.0 * @category Function * @param {Object} object The object to invoke the method on. * @param {string} key The key of the method. * @param {...*} [partials] The arguments to be partially applied. * @returns {Function} Returns the new bound function. * @example * * var object = { * 'user': 'fred', * 'greet': function(greeting, punctuation) { * return greeting + ' ' + this.user + punctuation; * } * }; * * var bound = _.bindKey(object, 'greet', 'hi'); * bound('!'); * // => 'hi fred!' * * object.greet = function(greeting, punctuation) { * return greeting + 'ya ' + this.user + punctuation; * }; * * bound('!'); * // => 'hiya fred!' * * // Bound with placeholders. * var bound = _.bindKey(object, 'greet', _, '!'); * bound('hi'); * // => 'hiya fred!' */ var bindKey = baseRest(function(object, key, partials) { var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; if (partials.length) { var holders = replaceHolders(partials, getHolder(bindKey)); bitmask |= WRAP_PARTIAL_FLAG; } return createWrap(key, bitmask, object, partials, holders); }); /** * Creates a function that accepts arguments of `func` and either invokes * `func` returning its result, if at least `arity` number of arguments have * been provided, or returns a function that accepts the remaining `func` * arguments, and so on. The arity of `func` may be specified if `func.length` * is not sufficient. * * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, * may be used as a placeholder for provided arguments. * * **Note:** This method doesn't set the "length" property of curried functions. * * @static * @memberOf _ * @since 2.0.0 * @category Function * @param {Function} func The function to curry. * @param {number} [arity=func.length] The arity of `func`. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Function} Returns the new curried function. * @example * * var abc = function(a, b, c) { * return [a, b, c]; * }; * * var curried = _.curry(abc); * * curried(1)(2)(3); * // => [1, 2, 3] * * curried(1, 2)(3); * // => [1, 2, 3] * * curried(1, 2, 3); * // => [1, 2, 3] * * // Curried with placeholders. * curried(1)(_, 3)(2); * // => [1, 2, 3] */ function curry(func, arity, guard) { arity = guard ? undefined : arity; var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); result.placeholder = curry.placeholder; return result; } /** * This method is like `_.curry` except that arguments are applied to `func` * in the manner of `_.partialRight` instead of `_.partial`. * * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic * builds, may be used as a placeholder for provided arguments. * * **Note:** This method doesn't set the "length" property of curried functions. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} func The function to curry. * @param {number} [arity=func.length] The arity of `func`. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Function} Returns the new curried function. * @example * * var abc = function(a, b, c) { * return [a, b, c]; * }; * * var curried = _.curryRight(abc); * * curried(3)(2)(1); * // => [1, 2, 3] * * curried(2, 3)(1); * // => [1, 2, 3] * * curried(1, 2, 3); * // => [1, 2, 3] * * // Curried with placeholders. * curried(3)(1, _)(2); * // => [1, 2, 3] */ function curryRight(func, arity, guard) { arity = guard ? undefined : arity; var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); result.placeholder = curryRight.placeholder; return result; } /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel * delayed `func` invocations and a `flush` method to immediately invoke them. * Provide `options` to indicate whether `func` should be invoked on the * leading and/or trailing edge of the `wait` timeout. The `func` is invoked * with the last arguments provided to the debounced function. Subsequent * calls to the debounced function return the result of the last `func` * invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the debounced function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=false] * Specify invoking on the leading edge of the timeout. * @param {number} [options.maxWait] * The maximum time `func` is allowed to be delayed before it's invoked. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * * // Avoid costly calculations while the window size is in flux. * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * * // Invoke `sendMail` when clicked, debouncing subsequent calls. * jQuery(element).on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * * // Ensure `batchLog` is invoked once after 1 second of debounced calls. * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); * var source = new EventSource('/stream'); * jQuery(source).on('message', debounced); * * // Cancel the trailing debounced invocation. * jQuery(window).on('popstate', debounced.cancel); */ function debounce(func, wait, options) { var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } wait = toNumber(wait) || 0; if (isObject(options)) { leading = !!options.leading; maxing = 'maxWait' in options; maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; trailing = 'trailing' in options ? !!options.trailing : trailing; } function invokeFunc(time) { var args = lastArgs, thisArg = lastThis; lastArgs = lastThis = undefined; lastInvokeTime = time; result = func.apply(thisArg, args); return result; } function leadingEdge(time) { // Reset any `maxWait` timer. lastInvokeTime = time; // Start the timer for the trailing edge. timerId = setTimeout(timerExpired, wait); // Invoke the leading edge. return leading ? invokeFunc(time) : result; } function remainingWait(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } function shouldInvoke(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the // trailing edge, the system time has gone backwards and we're treating // it as the trailing edge, or we've hit the `maxWait` limit. return (lastCallTime === undefined || (timeSinceLastCall >= wait) || (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); } function timerExpired() { var time = now(); if (shouldInvoke(time)) { return trailingEdge(time); } // Restart the timer. timerId = setTimeout(timerExpired, remainingWait(time)); } function trailingEdge(time) { timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been // debounced at least once. if (trailing && lastArgs) { return invokeFunc(time); } lastArgs = lastThis = undefined; return result; } function cancel() { if (timerId !== undefined) { clearTimeout(timerId); } lastInvokeTime = 0; lastArgs = lastCallTime = lastThis = timerId = undefined; } function flush() { return timerId === undefined ? result : trailingEdge(now()); } function debounced() { var time = now(), isInvoking = shouldInvoke(time); lastArgs = arguments; lastThis = this; lastCallTime = time; if (isInvoking) { if (timerId === undefined) { return leadingEdge(lastCallTime); } if (maxing) { // Handle invocations in a tight loop. clearTimeout(timerId); timerId = setTimeout(timerExpired, wait); return invokeFunc(lastCallTime); } } if (timerId === undefined) { timerId = setTimeout(timerExpired, wait); } return result; } debounced.cancel = cancel; debounced.flush = flush; return debounced; } /** * Defers invoking the `func` until the current call stack has cleared. Any * additional arguments are provided to `func` when it's invoked. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to defer. * @param {...*} [args] The arguments to invoke `func` with. * @returns {number} Returns the timer id. * @example * * _.defer(function(text) { * console.log(text); * }, 'deferred'); * // => Logs 'deferred' after one millisecond. */ var defer = baseRest(function(func, args) { return baseDelay(func, 1, args); }); /** * Invokes `func` after `wait` milliseconds. Any additional arguments are * provided to `func` when it's invoked. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to delay. * @param {number} wait The number of milliseconds to delay invocation. * @param {...*} [args] The arguments to invoke `func` with. * @returns {number} Returns the timer id. * @example * * _.delay(function(text) { * console.log(text); * }, 1000, 'later'); * // => Logs 'later' after one second. */ var delay = baseRest(function(func, wait, args) { return baseDelay(func, toNumber(wait) || 0, args); }); /** * Creates a function that invokes `func` with arguments reversed. * * @static * @memberOf _ * @since 4.0.0 * @category Function * @param {Function} func The function to flip arguments for. * @returns {Function} Returns the new flipped function. * @example * * var flipped = _.flip(function() { * return _.toArray(arguments); * }); * * flipped('a', 'b', 'c', 'd'); * // => ['d', 'c', 'b', 'a'] */ function flip(func) { return createWrap(func, WRAP_FLIP_FLAG); } /** * Creates a function that memoizes the result of `func`. If `resolver` is * provided, it determines the cache key for storing the result based on the * arguments provided to the memoized function. By default, the first argument * provided to the memoized function is used as the map cache key. The `func` * is invoked with the `this` binding of the memoized function. * * **Note:** The cache is exposed as the `cache` property on the memoized * function. Its creation may be customized by replacing the `_.memoize.Cache` * constructor with one whose instances implement the * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) * method interface of `clear`, `delete`, `get`, `has`, and `set`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to have its output memoized. * @param {Function} [resolver] The function to resolve the cache key. * @returns {Function} Returns the new memoized function. * @example * * var object = { 'a': 1, 'b': 2 }; * var other = { 'c': 3, 'd': 4 }; * * var values = _.memoize(_.values); * values(object); * // => [1, 2] * * values(other); * // => [3, 4] * * object.a = 2; * values(object); * // => [1, 2] * * // Modify the result cache. * values.cache.set(object, ['a', 'b']); * values(object); * // => ['a', 'b'] * * // Replace `_.memoize.Cache`. * _.memoize.Cache = WeakMap; */ function memoize(func, resolver) { if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { throw new TypeError(FUNC_ERROR_TEXT); } var memoized = function() { var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; if (cache.has(key)) { return cache.get(key); } var result = func.apply(this, args); memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new (memoize.Cache || MapCache); return memoized; } // Expose `MapCache`. memoize.Cache = MapCache; /** * Creates a function that negates the result of the predicate `func`. The * `func` predicate is invoked with the `this` binding and arguments of the * created function. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} predicate The predicate to negate. * @returns {Function} Returns the new negated function. * @example * * function isEven(n) { * return n % 2 == 0; * } * * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); * // => [1, 3, 5] */ function negate(predicate) { if (typeof predicate != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } return function() { var args = arguments; switch (args.length) { case 0: return !predicate.call(this); case 1: return !predicate.call(this, args[0]); case 2: return !predicate.call(this, args[0], args[1]); case 3: return !predicate.call(this, args[0], args[1], args[2]); } return !predicate.apply(this, args); }; } /** * Creates a function that is restricted to invoking `func` once. Repeat calls * to the function return the value of the first invocation. The `func` is * invoked with the `this` binding and arguments of the created function. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * var initialize = _.once(createApplication); * initialize(); * initialize(); * // => `createApplication` is invoked once */ function once(func) { return before(2, func); } /** * Creates a function that invokes `func` with its arguments transformed. * * @static * @since 4.0.0 * @memberOf _ * @category Function * @param {Function} func The function to wrap. * @param {...(Function|Function[])} [transforms=[_.identity]] * The argument transforms. * @returns {Function} Returns the new function. * @example * * function doubled(n) { * return n * 2; * } * * function square(n) { * return n * n; * } * * var func = _.overArgs(function(x, y) { * return [x, y]; * }, [square, doubled]); * * func(9, 3); * // => [81, 6] * * func(10, 5); * // => [100, 10] */ var overArgs = castRest(function(func, transforms) { transforms = (transforms.length == 1 && isArray(transforms[0])) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); var funcsLength = transforms.length; return baseRest(function(args) { var index = -1, length = nativeMin(args.length, funcsLength); while (++index < length) { args[index] = transforms[index].call(this, args[index]); } return apply(func, this, args); }); }); /** * Creates a function that invokes `func` with `partials` prepended to the * arguments it receives. This method is like `_.bind` except it does **not** * alter the `this` binding. * * The `_.partial.placeholder` value, which defaults to `_` in monolithic * builds, may be used as a placeholder for partially applied arguments. * * **Note:** This method doesn't set the "length" property of partially * applied functions. * * @static * @memberOf _ * @since 0.2.0 * @category Function * @param {Function} func The function to partially apply arguments to. * @param {...*} [partials] The arguments to be partially applied. * @returns {Function} Returns the new partially applied function. * @example * * function greet(greeting, name) { * return greeting + ' ' + name; * } * * var sayHelloTo = _.partial(greet, 'hello'); * sayHelloTo('fred'); * // => 'hello fred' * * // Partially applied with placeholders. * var greetFred = _.partial(greet, _, 'fred'); * greetFred('hi'); * // => 'hi fred' */ var partial = baseRest(function(func, partials) { var holders = replaceHolders(partials, getHolder(partial)); return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); }); /** * This method is like `_.partial` except that partially applied arguments * are appended to the arguments it receives. * * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic * builds, may be used as a placeholder for partially applied arguments. * * **Note:** This method doesn't set the "length" property of partially * applied functions. * * @static * @memberOf _ * @since 1.0.0 * @category Function * @param {Function} func The function to partially apply arguments to. * @param {...*} [partials] The arguments to be partially applied. * @returns {Function} Returns the new partially applied function. * @example * * function greet(greeting, name) { * return greeting + ' ' + name; * } * * var greetFred = _.partialRight(greet, 'fred'); * greetFred('hi'); * // => 'hi fred' * * // Partially applied with placeholders. * var sayHelloTo = _.partialRight(greet, 'hello', _); * sayHelloTo('fred'); * // => 'hello fred' */ var partialRight = baseRest(function(func, partials) { var holders = replaceHolders(partials, getHolder(partialRight)); return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); }); /** * Creates a function that invokes `func` with arguments arranged according * to the specified `indexes` where the argument value at the first index is * provided as the first argument, the argument value at the second index is * provided as the second argument, and so on. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} func The function to rearrange arguments for. * @param {...(number|number[])} indexes The arranged argument indexes. * @returns {Function} Returns the new function. * @example * * var rearged = _.rearg(function(a, b, c) { * return [a, b, c]; * }, [2, 0, 1]); * * rearged('b', 'c', 'a') * // => ['a', 'b', 'c'] */ var rearg = flatRest(function(func, indexes) { return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); }); /** * Creates a function that invokes `func` with the `this` binding of the * created function and arguments from `start` and beyond provided as * an array. * * **Note:** This method is based on the * [rest parameter](https://mdn.io/rest_parameters). * * @static * @memberOf _ * @since 4.0.0 * @category Function * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @returns {Function} Returns the new function. * @example * * var say = _.rest(function(what, names) { * return what + ' ' + _.initial(names).join(', ') + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); * }); * * say('hello', 'fred', 'barney', 'pebbles'); * // => 'hello fred, barney, & pebbles' */ function rest(func, start) { if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } start = start === undefined ? start : toInteger(start); return baseRest(func, start); } /** * Creates a function that invokes `func` with the `this` binding of the * create function and an array of arguments much like * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). * * **Note:** This method is based on the * [spread operator](https://mdn.io/spread_operator). * * @static * @memberOf _ * @since 3.2.0 * @category Function * @param {Function} func The function to spread arguments over. * @param {number} [start=0] The start position of the spread. * @returns {Function} Returns the new function. * @example * * var say = _.spread(function(who, what) { * return who + ' says ' + what; * }); * * say(['fred', 'hello']); * // => 'fred says hello' * * var numbers = Promise.all([ * Promise.resolve(40), * Promise.resolve(36) * ]); * * numbers.then(_.spread(function(x, y) { * return x + y; * })); * // => a Promise of 76 */ function spread(func, start) { if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } start = start == null ? 0 : nativeMax(toInteger(start), 0); return baseRest(function(args) { var array = args[start], otherArgs = castSlice(args, 0, start); if (array) { arrayPush(otherArgs, array); } return apply(func, this, otherArgs); }); } /** * Creates a throttled function that only invokes `func` at most once per * every `wait` milliseconds. The throttled function comes with a `cancel` * method to cancel delayed `func` invocations and a `flush` method to * immediately invoke them. Provide `options` to indicate whether `func` * should be invoked on the leading and/or trailing edge of the `wait` * timeout. The `func` is invoked with the last arguments provided to the * throttled function. Subsequent calls to the throttled function return the * result of the last `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the throttled function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to throttle. * @param {number} [wait=0] The number of milliseconds to throttle invocations to. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=true] * Specify invoking on the leading edge of the timeout. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new throttled function. * @example * * // Avoid excessively updating the position while scrolling. * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); * jQuery(element).on('click', throttled); * * // Cancel the trailing throttled invocation. * jQuery(window).on('popstate', throttled.cancel); */ function throttle(func, wait, options) { var leading = true, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (isObject(options)) { leading = 'leading' in options ? !!options.leading : leading; trailing = 'trailing' in options ? !!options.trailing : trailing; } return debounce(func, wait, { 'leading': leading, 'maxWait': wait, 'trailing': trailing }); } /** * Creates a function that accepts up to one argument, ignoring any * additional arguments. * * @static * @memberOf _ * @since 4.0.0 * @category Function * @param {Function} func The function to cap arguments for. * @returns {Function} Returns the new capped function. * @example * * _.map(['6', '8', '10'], _.unary(parseInt)); * // => [6, 8, 10] */ function unary(func) { return ary(func, 1); } /** * Creates a function that provides `value` to `wrapper` as its first * argument. Any additional arguments provided to the function are appended * to those provided to the `wrapper`. The wrapper is invoked with the `this` * binding of the created function. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {*} value The value to wrap. * @param {Function} [wrapper=identity] The wrapper function. * @returns {Function} Returns the new function. * @example * * var p = _.wrap(_.escape, function(func, text) { * return '

' + func(text) + '

'; * }); * * p('fred, barney, & pebbles'); * // => '

fred, barney, & pebbles

' */ function wrap(value, wrapper) { return partial(castFunction(wrapper), value); } /*------------------------------------------------------------------------*/ /** * Casts `value` as an array if it's not one. * * @static * @memberOf _ * @since 4.4.0 * @category Lang * @param {*} value The value to inspect. * @returns {Array} Returns the cast array. * @example * * _.castArray(1); * // => [1] * * _.castArray({ 'a': 1 }); * // => [{ 'a': 1 }] * * _.castArray('abc'); * // => ['abc'] * * _.castArray(null); * // => [null] * * _.castArray(undefined); * // => [undefined] * * _.castArray(); * // => [] * * var array = [1, 2, 3]; * console.log(_.castArray(array) === array); * // => true */ function castArray() { if (!arguments.length) { return []; } var value = arguments[0]; return isArray(value) ? value : [value]; } /** * Creates a shallow clone of `value`. * * **Note:** This method is loosely based on the * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) * and supports cloning arrays, array buffers, booleans, date objects, maps, * numbers, `Object` objects, regexes, sets, strings, symbols, and typed * arrays. The own enumerable properties of `arguments` objects are cloned * as plain objects. An empty object is returned for uncloneable values such * as error objects, functions, DOM nodes, and WeakMaps. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to clone. * @returns {*} Returns the cloned value. * @see _.cloneDeep * @example * * var objects = [{ 'a': 1 }, { 'b': 2 }]; * * var shallow = _.clone(objects); * console.log(shallow[0] === objects[0]); * // => true */ function clone(value) { return baseClone(value, CLONE_SYMBOLS_FLAG); } /** * This method is like `_.clone` except that it accepts `customizer` which * is invoked to produce the cloned value. If `customizer` returns `undefined`, * cloning is handled by the method instead. The `customizer` is invoked with * up to four arguments; (value [, index|key, object, stack]). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to clone. * @param {Function} [customizer] The function to customize cloning. * @returns {*} Returns the cloned value. * @see _.cloneDeepWith * @example * * function customizer(value) { * if (_.isElement(value)) { * return value.cloneNode(false); * } * } * * var el = _.cloneWith(document.body, customizer); * * console.log(el === document.body); * // => false * console.log(el.nodeName); * // => 'BODY' * console.log(el.childNodes.length); * // => 0 */ function cloneWith(value, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); } /** * This method is like `_.clone` except that it recursively clones `value`. * * @static * @memberOf _ * @since 1.0.0 * @category Lang * @param {*} value The value to recursively clone. * @returns {*} Returns the deep cloned value. * @see _.clone * @example * * var objects = [{ 'a': 1 }, { 'b': 2 }]; * * var deep = _.cloneDeep(objects); * console.log(deep[0] === objects[0]); * // => false */ function cloneDeep(value) { return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); } /** * This method is like `_.cloneWith` except that it recursively clones `value`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to recursively clone. * @param {Function} [customizer] The function to customize cloning. * @returns {*} Returns the deep cloned value. * @see _.cloneWith * @example * * function customizer(value) { * if (_.isElement(value)) { * return value.cloneNode(true); * } * } * * var el = _.cloneDeepWith(document.body, customizer); * * console.log(el === document.body); * // => false * console.log(el.nodeName); * // => 'BODY' * console.log(el.childNodes.length); * // => 20 */ function cloneDeepWith(value, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); } /** * Checks if `object` conforms to `source` by invoking the predicate * properties of `source` with the corresponding property values of `object`. * * **Note:** This method is equivalent to `_.conforms` when `source` is * partially applied. * * @static * @memberOf _ * @since 4.14.0 * @category Lang * @param {Object} object The object to inspect. * @param {Object} source The object of property predicates to conform to. * @returns {boolean} Returns `true` if `object` conforms, else `false`. * @example * * var object = { 'a': 1, 'b': 2 }; * * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); * // => true * * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); * // => false */ function conformsTo(object, source) { return source == null || baseConformsTo(object, source, keys(source)); } /** * Performs a * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * comparison between two values to determine if they are equivalent. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * var object = { 'a': 1 }; * var other = { 'a': 1 }; * * _.eq(object, object); * // => true * * _.eq(object, other); * // => false * * _.eq('a', 'a'); * // => true * * _.eq('a', Object('a')); * // => false * * _.eq(NaN, NaN); * // => true */ function eq(value, other) { return value === other || (value !== value && other !== other); } /** * Checks if `value` is greater than `other`. * * @static * @memberOf _ * @since 3.9.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is greater than `other`, * else `false`. * @see _.lt * @example * * _.gt(3, 1); * // => true * * _.gt(3, 3); * // => false * * _.gt(1, 3); * // => false */ var gt = createRelationalOperation(baseGt); /** * Checks if `value` is greater than or equal to `other`. * * @static * @memberOf _ * @since 3.9.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is greater than or equal to * `other`, else `false`. * @see _.lte * @example * * _.gte(3, 1); * // => true * * _.gte(3, 3); * // => true * * _.gte(1, 3); * // => false */ var gte = createRelationalOperation(function(value, other) { return value >= other; }); /** * Checks if `value` is likely an `arguments` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, * else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); }; /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; /** * Checks if `value` is classified as an `ArrayBuffer` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. * @example * * _.isArrayBuffer(new ArrayBuffer(2)); * // => true * * _.isArrayBuffer(new Array(2)); * // => false */ var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; /** * Checks if `value` is array-like. A value is considered array-like if it's * not a function and has a `value.length` that's an integer greater than or * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. * @example * * _.isArrayLike([1, 2, 3]); * // => true * * _.isArrayLike(document.body.children); * // => true * * _.isArrayLike('abc'); * // => true * * _.isArrayLike(_.noop); * // => false */ function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } /** * This method is like `_.isArrayLike` except that it also checks if `value` * is an object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array-like object, * else `false`. * @example * * _.isArrayLikeObject([1, 2, 3]); * // => true * * _.isArrayLikeObject(document.body.children); * // => true * * _.isArrayLikeObject('abc'); * // => false * * _.isArrayLikeObject(_.noop); * // => false */ function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } /** * Checks if `value` is classified as a boolean primitive or object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. * @example * * _.isBoolean(false); * // => true * * _.isBoolean(null); * // => false */ function isBoolean(value) { return value === true || value === false || (isObjectLike(value) && baseGetTag(value) == boolTag); } /** * Checks if `value` is a buffer. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. * @example * * _.isBuffer(new Buffer(2)); * // => true * * _.isBuffer(new Uint8Array(2)); * // => false */ var isBuffer = nativeIsBuffer || stubFalse; /** * Checks if `value` is classified as a `Date` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a date object, else `false`. * @example * * _.isDate(new Date); * // => true * * _.isDate('Mon April 23 2012'); * // => false */ var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; /** * Checks if `value` is likely a DOM element. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. * @example * * _.isElement(document.body); * // => true * * _.isElement(''); * // => false */ function isElement(value) { return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); } /** * Checks if `value` is an empty object, collection, map, or set. * * Objects are considered empty if they have no own enumerable string keyed * properties. * * Array-like values such as `arguments` objects, arrays, buffers, strings, or * jQuery-like collections are considered empty if they have a `length` of `0`. * Similarly, maps and sets are considered empty if they have a `size` of `0`. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * * _.isEmpty(null); * // => true * * _.isEmpty(true); * // => true * * _.isEmpty(1); * // => true * * _.isEmpty([1, 2, 3]); * // => false * * _.isEmpty({ 'a': 1 }); * // => false */ function isEmpty(value) { if (value == null) { return true; } if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) { return !value.length; } var tag = getTag(value); if (tag == mapTag || tag == setTag) { return !value.size; } if (isPrototype(value)) { return !baseKeys(value).length; } for (var key in value) { if (hasOwnProperty.call(value, key)) { return false; } } return true; } /** * Performs a deep comparison between two values to determine if they are * equivalent. * * **Note:** This method supports comparing arrays, array buffers, booleans, * date objects, error objects, maps, numbers, `Object` objects, regexes, * sets, strings, symbols, and typed arrays. `Object` objects are compared * by their own, not inherited, enumerable properties. Functions and DOM * nodes are compared by strict equality, i.e. `===`. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * var object = { 'a': 1 }; * var other = { 'a': 1 }; * * _.isEqual(object, other); * // => true * * object === other; * // => false */ function isEqual(value, other) { return baseIsEqual(value, other); } /** * This method is like `_.isEqual` except that it accepts `customizer` which * is invoked to compare values. If `customizer` returns `undefined`, comparisons * are handled by the method instead. The `customizer` is invoked with up to * six arguments: (objValue, othValue [, index|key, object, other, stack]). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {Function} [customizer] The function to customize comparisons. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * function isGreeting(value) { * return /^h(?:i|ello)$/.test(value); * } * * function customizer(objValue, othValue) { * if (isGreeting(objValue) && isGreeting(othValue)) { * return true; * } * } * * var array = ['hello', 'goodbye']; * var other = ['hi', 'goodbye']; * * _.isEqualWith(array, other, customizer); * // => true */ function isEqualWith(value, other, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; var result = customizer ? customizer(value, other) : undefined; return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; } /** * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, * `SyntaxError`, `TypeError`, or `URIError` object. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an error object, else `false`. * @example * * _.isError(new Error); * // => true * * _.isError(Error); * // => false */ function isError(value) { if (!isObjectLike(value)) { return false; } var tag = baseGetTag(value); return tag == errorTag || tag == domExcTag || (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); } /** * Checks if `value` is a finite primitive number. * * **Note:** This method is based on * [`Number.isFinite`](https://mdn.io/Number/isFinite). * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. * @example * * _.isFinite(3); * // => true * * _.isFinite(Number.MIN_VALUE); * // => true * * _.isFinite(Infinity); * // => false * * _.isFinite('3'); * // => false */ function isFinite(value) { return typeof value == 'number' && nativeIsFinite(value); } /** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value) { if (!isObject(value)) { return false; } // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } /** * Checks if `value` is an integer. * * **Note:** This method is based on * [`Number.isInteger`](https://mdn.io/Number/isInteger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an integer, else `false`. * @example * * _.isInteger(3); * // => true * * _.isInteger(Number.MIN_VALUE); * // => false * * _.isInteger(Infinity); * // => false * * _.isInteger('3'); * // => false */ function isInteger(value) { return typeof value == 'number' && value == toInteger(value); } /** * Checks if `value` is a valid array-like length. * * **Note:** This method is loosely based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. * @example * * _.isLength(3); * // => true * * _.isLength(Number.MIN_VALUE); * // => false * * _.isLength(Infinity); * // => false * * _.isLength('3'); * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return value != null && (type == 'object' || type == 'function'); } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && typeof value == 'object'; } /** * Checks if `value` is classified as a `Map` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a map, else `false`. * @example * * _.isMap(new Map); * // => true * * _.isMap(new WeakMap); * // => false */ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; /** * Performs a partial deep comparison between `object` and `source` to * determine if `object` contains equivalent property values. * * **Note:** This method is equivalent to `_.matches` when `source` is * partially applied. * * Partial comparisons will match empty array and empty object `source` * values against any array or object value, respectively. See `_.isEqual` * for a list of supported value comparisons. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @returns {boolean} Returns `true` if `object` is a match, else `false`. * @example * * var object = { 'a': 1, 'b': 2 }; * * _.isMatch(object, { 'b': 2 }); * // => true * * _.isMatch(object, { 'b': 1 }); * // => false */ function isMatch(object, source) { return object === source || baseIsMatch(object, source, getMatchData(source)); } /** * This method is like `_.isMatch` except that it accepts `customizer` which * is invoked to compare values. If `customizer` returns `undefined`, comparisons * are handled by the method instead. The `customizer` is invoked with five * arguments: (objValue, srcValue, index|key, object, source). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @param {Function} [customizer] The function to customize comparisons. * @returns {boolean} Returns `true` if `object` is a match, else `false`. * @example * * function isGreeting(value) { * return /^h(?:i|ello)$/.test(value); * } * * function customizer(objValue, srcValue) { * if (isGreeting(objValue) && isGreeting(srcValue)) { * return true; * } * } * * var object = { 'greeting': 'hello' }; * var source = { 'greeting': 'hi' }; * * _.isMatchWith(object, source, customizer); * // => true */ function isMatchWith(object, source, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; return baseIsMatch(object, source, getMatchData(source), customizer); } /** * Checks if `value` is `NaN`. * * **Note:** This method is based on * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for * `undefined` and other non-number values. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. * @example * * _.isNaN(NaN); * // => true * * _.isNaN(new Number(NaN)); * // => true * * isNaN(undefined); * // => true * * _.isNaN(undefined); * // => false */ function isNaN(value) { // An `NaN` primitive is the only value that is not equal to itself. // Perform the `toStringTag` check first to avoid errors with some // ActiveX objects in IE. return isNumber(value) && value != +value; } /** * Checks if `value` is a pristine native function. * * **Note:** This method can't reliably detect native functions in the presence * of the core-js package because core-js circumvents this kind of detection. * Despite multiple requests, the core-js maintainer has made it clear: any * attempt to fix the detection will be obstructed. As a result, we're left * with little choice but to throw an error. Unfortunately, this also affects * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), * which rely on core-js. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, * else `false`. * @example * * _.isNative(Array.prototype.push); * // => true * * _.isNative(_); * // => false */ function isNative(value) { if (isMaskable(value)) { throw new Error(CORE_ERROR_TEXT); } return baseIsNative(value); } /** * Checks if `value` is `null`. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `null`, else `false`. * @example * * _.isNull(null); * // => true * * _.isNull(void 0); * // => false */ function isNull(value) { return value === null; } /** * Checks if `value` is `null` or `undefined`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is nullish, else `false`. * @example * * _.isNil(null); * // => true * * _.isNil(void 0); * // => true * * _.isNil(NaN); * // => false */ function isNil(value) { return value == null; } /** * Checks if `value` is classified as a `Number` primitive or object. * * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are * classified as numbers, use the `_.isFinite` method. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a number, else `false`. * @example * * _.isNumber(3); * // => true * * _.isNumber(Number.MIN_VALUE); * // => true * * _.isNumber(Infinity); * // => true * * _.isNumber('3'); * // => false */ function isNumber(value) { return typeof value == 'number' || (isObjectLike(value) && baseGetTag(value) == numberTag); } /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ * @since 0.8.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value) { if (!isObjectLike(value) || baseGetTag(value) != objectTag) { return false; } var proto = getPrototype(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } /** * Checks if `value` is classified as a `RegExp` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. * @example * * _.isRegExp(/abc/); * // => true * * _.isRegExp('/abc/'); * // => false */ var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; /** * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 * double precision number which isn't the result of a rounded unsafe integer. * * **Note:** This method is based on * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. * @example * * _.isSafeInteger(3); * // => true * * _.isSafeInteger(Number.MIN_VALUE); * // => false * * _.isSafeInteger(Infinity); * // => false * * _.isSafeInteger('3'); * // => false */ function isSafeInteger(value) { return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; } /** * Checks if `value` is classified as a `Set` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a set, else `false`. * @example * * _.isSet(new Set); * // => true * * _.isSet(new WeakSet); * // => false */ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; /** * Checks if `value` is classified as a `String` primitive or object. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a string, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value) { return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); } /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && baseGetTag(value) == symbolTag); } /** * Checks if `value` is classified as a typed array. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. * @example * * _.isTypedArray(new Uint8Array); * // => true * * _.isTypedArray([]); * // => false */ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; /** * Checks if `value` is `undefined`. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. * @example * * _.isUndefined(void 0); * // => true * * _.isUndefined(null); * // => false */ function isUndefined(value) { return value === undefined; } /** * Checks if `value` is classified as a `WeakMap` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. * @example * * _.isWeakMap(new WeakMap); * // => true * * _.isWeakMap(new Map); * // => false */ function isWeakMap(value) { return isObjectLike(value) && getTag(value) == weakMapTag; } /** * Checks if `value` is classified as a `WeakSet` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. * @example * * _.isWeakSet(new WeakSet); * // => true * * _.isWeakSet(new Set); * // => false */ function isWeakSet(value) { return isObjectLike(value) && baseGetTag(value) == weakSetTag; } /** * Checks if `value` is less than `other`. * * @static * @memberOf _ * @since 3.9.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is less than `other`, * else `false`. * @see _.gt * @example * * _.lt(1, 3); * // => true * * _.lt(3, 3); * // => false * * _.lt(3, 1); * // => false */ var lt = createRelationalOperation(baseLt); /** * Checks if `value` is less than or equal to `other`. * * @static * @memberOf _ * @since 3.9.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is less than or equal to * `other`, else `false`. * @see _.gte * @example * * _.lte(1, 3); * // => true * * _.lte(3, 3); * // => true * * _.lte(3, 1); * // => false */ var lte = createRelationalOperation(function(value, other) { return value <= other; }); /** * Converts `value` to an array. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to convert. * @returns {Array} Returns the converted array. * @example * * _.toArray({ 'a': 1, 'b': 2 }); * // => [1, 2] * * _.toArray('abc'); * // => ['a', 'b', 'c'] * * _.toArray(1); * // => [] * * _.toArray(null); * // => [] */ function toArray(value) { if (!value) { return []; } if (isArrayLike(value)) { return isString(value) ? stringToArray(value) : copyArray(value); } if (symIterator && value[symIterator]) { return iteratorToArray(value[symIterator]()); } var tag = getTag(value), func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); return func(value); } /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } /** * Converts `value` to an integer suitable for use as the length of an * array-like object. * * **Note:** This method is based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toLength(3.2); * // => 3 * * _.toLength(Number.MIN_VALUE); * // => 0 * * _.toLength(Infinity); * // => 4294967295 * * _.toLength('3.2'); * // => 3 */ function toLength(value) { return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; } /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } /** * Converts `value` to a plain object flattening inherited enumerable string * keyed properties of `value` to own properties of the plain object. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to convert. * @returns {Object} Returns the converted plain object. * @example * * function Foo() { * this.b = 2; * } * * Foo.prototype.c = 3; * * _.assign({ 'a': 1 }, new Foo); * // => { 'a': 1, 'b': 2 } * * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); * // => { 'a': 1, 'b': 2, 'c': 3 } */ function toPlainObject(value) { return copyObject(value, keysIn(value)); } /** * Converts `value` to a safe integer. A safe integer can be compared and * represented correctly. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toSafeInteger(3.2); * // => 3 * * _.toSafeInteger(Number.MIN_VALUE); * // => 0 * * _.toSafeInteger(Infinity); * // => 9007199254740991 * * _.toSafeInteger('3.2'); * // => 3 */ function toSafeInteger(value) { return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : (value === 0 ? value : 0); } /** * Converts `value` to a string. An empty string is returned for `null` * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {string} Returns the converted string. * @example * * _.toString(null); * // => '' * * _.toString(-0); * // => '-0' * * _.toString([1, 2, 3]); * // => '1,2,3' */ function toString(value) { return value == null ? '' : baseToString(value); } /*------------------------------------------------------------------------*/ /** * Assigns own enumerable string keyed properties of source objects to the * destination object. Source objects are applied from left to right. * Subsequent sources overwrite property assignments of previous sources. * * **Note:** This method mutates `object` and is loosely based on * [`Object.assign`](https://mdn.io/Object/assign). * * @static * @memberOf _ * @since 0.10.0 * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @see _.assignIn * @example * * function Foo() { * this.a = 1; * } * * function Bar() { * this.c = 3; * } * * Foo.prototype.b = 2; * Bar.prototype.d = 4; * * _.assign({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'c': 3 } */ var assign = createAssigner(function(object, source) { if (isPrototype(source) || isArrayLike(source)) { copyObject(source, keys(source), object); return; } for (var key in source) { if (hasOwnProperty.call(source, key)) { assignValue(object, key, source[key]); } } }); /** * This method is like `_.assign` except that it iterates over own and * inherited source properties. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @alias extend * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @see _.assign * @example * * function Foo() { * this.a = 1; * } * * function Bar() { * this.c = 3; * } * * Foo.prototype.b = 2; * Bar.prototype.d = 4; * * _.assignIn({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } */ var assignIn = createAssigner(function(object, source) { copyObject(source, keysIn(source), object); }); /** * This method is like `_.assignIn` except that it accepts `customizer` * which is invoked to produce the assigned values. If `customizer` returns * `undefined`, assignment is handled by the method instead. The `customizer` * is invoked with five arguments: (objValue, srcValue, key, object, source). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @alias extendWith * @category Object * @param {Object} object The destination object. * @param {...Object} sources The source objects. * @param {Function} [customizer] The function to customize assigned values. * @returns {Object} Returns `object`. * @see _.assignWith * @example * * function customizer(objValue, srcValue) { * return _.isUndefined(objValue) ? srcValue : objValue; * } * * var defaults = _.partialRight(_.assignInWith, customizer); * * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { copyObject(source, keysIn(source), object, customizer); }); /** * This method is like `_.assign` except that it accepts `customizer` * which is invoked to produce the assigned values. If `customizer` returns * `undefined`, assignment is handled by the method instead. The `customizer` * is invoked with five arguments: (objValue, srcValue, key, object, source). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The destination object. * @param {...Object} sources The source objects. * @param {Function} [customizer] The function to customize assigned values. * @returns {Object} Returns `object`. * @see _.assignInWith * @example * * function customizer(objValue, srcValue) { * return _.isUndefined(objValue) ? srcValue : objValue; * } * * var defaults = _.partialRight(_.assignWith, customizer); * * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ var assignWith = createAssigner(function(object, source, srcIndex, customizer) { copyObject(source, keys(source), object, customizer); }); /** * Creates an array of values corresponding to `paths` of `object`. * * @static * @memberOf _ * @since 1.0.0 * @category Object * @param {Object} object The object to iterate over. * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Array} Returns the picked values. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; * * _.at(object, ['a[0].b.c', 'a[1]']); * // => [3, 4] */ var at = flatRest(baseAt); /** * Creates an object that inherits from the `prototype` object. If a * `properties` object is given, its own enumerable string keyed properties * are assigned to the created object. * * @static * @memberOf _ * @since 2.3.0 * @category Object * @param {Object} prototype The object to inherit from. * @param {Object} [properties] The properties to assign to the object. * @returns {Object} Returns the new object. * @example * * function Shape() { * this.x = 0; * this.y = 0; * } * * function Circle() { * Shape.call(this); * } * * Circle.prototype = _.create(Shape.prototype, { * 'constructor': Circle * }); * * var circle = new Circle; * circle instanceof Circle; * // => true * * circle instanceof Shape; * // => true */ function create(prototype, properties) { var result = baseCreate(prototype); return properties == null ? result : baseAssign(result, properties); } /** * Assigns own and inherited enumerable string keyed properties of source * objects to the destination object for all destination properties that * resolve to `undefined`. Source objects are applied from left to right. * Once a property is set, additional values of the same property are ignored. * * **Note:** This method mutates `object`. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @see _.defaultsDeep * @example * * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ var defaults = baseRest(function(object, sources) { object = Object(object); var index = -1; var length = sources.length; var guard = length > 2 ? sources[2] : undefined; if (guard && isIterateeCall(sources[0], sources[1], guard)) { length = 1; } while (++index < length) { var source = sources[index]; var props = keysIn(source); var propsIndex = -1; var propsLength = props.length; while (++propsIndex < propsLength) { var key = props[propsIndex]; var value = object[key]; if (value === undefined || (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { object[key] = source[key]; } } } return object; }); /** * This method is like `_.defaults` except that it recursively assigns * default properties. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 3.10.0 * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @see _.defaults * @example * * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); * // => { 'a': { 'b': 2, 'c': 3 } } */ var defaultsDeep = baseRest(function(args) { args.push(undefined, customDefaultsMerge); return apply(mergeWith, undefined, args); }); /** * This method is like `_.find` except that it returns the key of the first * element `predicate` returns truthy for instead of the element itself. * * @static * @memberOf _ * @since 1.1.0 * @category Object * @param {Object} object The object to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {string|undefined} Returns the key of the matched element, * else `undefined`. * @example * * var users = { * 'barney': { 'age': 36, 'active': true }, * 'fred': { 'age': 40, 'active': false }, * 'pebbles': { 'age': 1, 'active': true } * }; * * _.findKey(users, function(o) { return o.age < 40; }); * // => 'barney' (iteration order is not guaranteed) * * // The `_.matches` iteratee shorthand. * _.findKey(users, { 'age': 1, 'active': true }); * // => 'pebbles' * * // The `_.matchesProperty` iteratee shorthand. * _.findKey(users, ['active', false]); * // => 'fred' * * // The `_.property` iteratee shorthand. * _.findKey(users, 'active'); * // => 'barney' */ function findKey(object, predicate) { return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); } /** * This method is like `_.findKey` except that it iterates over elements of * a collection in the opposite order. * * @static * @memberOf _ * @since 2.0.0 * @category Object * @param {Object} object The object to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {string|undefined} Returns the key of the matched element, * else `undefined`. * @example * * var users = { * 'barney': { 'age': 36, 'active': true }, * 'fred': { 'age': 40, 'active': false }, * 'pebbles': { 'age': 1, 'active': true } * }; * * _.findLastKey(users, function(o) { return o.age < 40; }); * // => returns 'pebbles' assuming `_.findKey` returns 'barney' * * // The `_.matches` iteratee shorthand. * _.findLastKey(users, { 'age': 36, 'active': true }); * // => 'barney' * * // The `_.matchesProperty` iteratee shorthand. * _.findLastKey(users, ['active', false]); * // => 'fred' * * // The `_.property` iteratee shorthand. * _.findLastKey(users, 'active'); * // => 'pebbles' */ function findLastKey(object, predicate) { return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); } /** * Iterates over own and inherited enumerable string keyed properties of an * object and invokes `iteratee` for each property. The iteratee is invoked * with three arguments: (value, key, object). Iteratee functions may exit * iteration early by explicitly returning `false`. * * @static * @memberOf _ * @since 0.3.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns `object`. * @see _.forInRight * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.forIn(new Foo, function(value, key) { * console.log(key); * }); * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). */ function forIn(object, iteratee) { return object == null ? object : baseFor(object, getIteratee(iteratee, 3), keysIn); } /** * This method is like `_.forIn` except that it iterates over properties of * `object` in the opposite order. * * @static * @memberOf _ * @since 2.0.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns `object`. * @see _.forIn * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.forInRight(new Foo, function(value, key) { * console.log(key); * }); * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. */ function forInRight(object, iteratee) { return object == null ? object : baseForRight(object, getIteratee(iteratee, 3), keysIn); } /** * Iterates over own enumerable string keyed properties of an object and * invokes `iteratee` for each property. The iteratee is invoked with three * arguments: (value, key, object). Iteratee functions may exit iteration * early by explicitly returning `false`. * * @static * @memberOf _ * @since 0.3.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns `object`. * @see _.forOwnRight * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.forOwn(new Foo, function(value, key) { * console.log(key); * }); * // => Logs 'a' then 'b' (iteration order is not guaranteed). */ function forOwn(object, iteratee) { return object && baseForOwn(object, getIteratee(iteratee, 3)); } /** * This method is like `_.forOwn` except that it iterates over properties of * `object` in the opposite order. * * @static * @memberOf _ * @since 2.0.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns `object`. * @see _.forOwn * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.forOwnRight(new Foo, function(value, key) { * console.log(key); * }); * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. */ function forOwnRight(object, iteratee) { return object && baseForOwnRight(object, getIteratee(iteratee, 3)); } /** * Creates an array of function property names from own enumerable properties * of `object`. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to inspect. * @returns {Array} Returns the function names. * @see _.functionsIn * @example * * function Foo() { * this.a = _.constant('a'); * this.b = _.constant('b'); * } * * Foo.prototype.c = _.constant('c'); * * _.functions(new Foo); * // => ['a', 'b'] */ function functions(object) { return object == null ? [] : baseFunctions(object, keys(object)); } /** * Creates an array of function property names from own and inherited * enumerable properties of `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to inspect. * @returns {Array} Returns the function names. * @see _.functions * @example * * function Foo() { * this.a = _.constant('a'); * this.b = _.constant('b'); * } * * Foo.prototype.c = _.constant('c'); * * _.functionsIn(new Foo); * // => ['a', 'b', 'c'] */ function functionsIn(object) { return object == null ? [] : baseFunctions(object, keysIn(object)); } /** * Gets the value at `path` of `object`. If the resolved value is * `undefined`, the `defaultValue` is returned in its place. * * @static * @memberOf _ * @since 3.7.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @param {*} [defaultValue] The value returned for `undefined` resolved values. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.get(object, 'a[0].b.c'); * // => 3 * * _.get(object, ['a', '0', 'b', 'c']); * // => 3 * * _.get(object, 'a.b.c', 'default'); * // => 'default' */ function get(object, path, defaultValue) { var result = object == null ? undefined : baseGet(object, path); return result === undefined ? defaultValue : result; } /** * Checks if `path` is a direct property of `object`. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * * var object = { 'a': { 'b': 2 } }; * var other = _.create({ 'a': _.create({ 'b': 2 }) }); * * _.has(object, 'a'); * // => true * * _.has(object, 'a.b'); * // => true * * _.has(object, ['a', 'b']); * // => true * * _.has(other, 'a'); * // => false */ function has(object, path) { return object != null && hasPath(object, path, baseHas); } /** * Checks if `path` is a direct or inherited property of `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * * var object = _.create({ 'a': _.create({ 'b': 2 }) }); * * _.hasIn(object, 'a'); * // => true * * _.hasIn(object, 'a.b'); * // => true * * _.hasIn(object, ['a', 'b']); * // => true * * _.hasIn(object, 'b'); * // => false */ function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } /** * Creates an object composed of the inverted keys and values of `object`. * If `object` contains duplicate values, subsequent values overwrite * property assignments of previous values. * * @static * @memberOf _ * @since 0.7.0 * @category Object * @param {Object} object The object to invert. * @returns {Object} Returns the new inverted object. * @example * * var object = { 'a': 1, 'b': 2, 'c': 1 }; * * _.invert(object); * // => { '1': 'c', '2': 'b' } */ var invert = createInverter(function(result, value, key) { if (value != null && typeof value.toString != 'function') { value = nativeObjectToString.call(value); } result[value] = key; }, constant(identity)); /** * This method is like `_.invert` except that the inverted object is generated * from the results of running each element of `object` thru `iteratee`. The * corresponding inverted value of each inverted key is an array of keys * responsible for generating the inverted value. The iteratee is invoked * with one argument: (value). * * @static * @memberOf _ * @since 4.1.0 * @category Object * @param {Object} object The object to invert. * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Object} Returns the new inverted object. * @example * * var object = { 'a': 1, 'b': 2, 'c': 1 }; * * _.invertBy(object); * // => { '1': ['a', 'c'], '2': ['b'] } * * _.invertBy(object, function(value) { * return 'group' + value; * }); * // => { 'group1': ['a', 'c'], 'group2': ['b'] } */ var invertBy = createInverter(function(result, value, key) { if (value != null && typeof value.toString != 'function') { value = nativeObjectToString.call(value); } if (hasOwnProperty.call(result, value)) { result[value].push(key); } else { result[value] = [key]; } }, getIteratee); /** * Invokes the method at `path` of `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the method to invoke. * @param {...*} [args] The arguments to invoke the method with. * @returns {*} Returns the result of the invoked method. * @example * * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; * * _.invoke(object, 'a[0].b.c.slice', 1, 3); * // => [2, 3] */ var invoke = baseRest(baseInvoke); /** * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * for more details. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keys(new Foo); * // => ['a', 'b'] (iteration order is not guaranteed) * * _.keys('hi'); * // => ['0', '1'] */ function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } /** * Creates an array of the own and inherited enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @since 3.0.0 * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keysIn(new Foo); * // => ['a', 'b', 'c'] (iteration order is not guaranteed) */ function keysIn(object) { return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } /** * The opposite of `_.mapValues`; this method creates an object with the * same values as `object` and keys generated by running each own enumerable * string keyed property of `object` thru `iteratee`. The iteratee is invoked * with three arguments: (value, key, object). * * @static * @memberOf _ * @since 3.8.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns the new mapped object. * @see _.mapValues * @example * * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { * return key + value; * }); * // => { 'a1': 1, 'b2': 2 } */ function mapKeys(object, iteratee) { var result = {}; iteratee = getIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { baseAssignValue(result, iteratee(value, key, object), value); }); return result; } /** * Creates an object with the same keys as `object` and values generated * by running each own enumerable string keyed property of `object` thru * `iteratee`. The iteratee is invoked with three arguments: * (value, key, object). * * @static * @memberOf _ * @since 2.4.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns the new mapped object. * @see _.mapKeys * @example * * var users = { * 'fred': { 'user': 'fred', 'age': 40 }, * 'pebbles': { 'user': 'pebbles', 'age': 1 } * }; * * _.mapValues(users, function(o) { return o.age; }); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) * * // The `_.property` iteratee shorthand. * _.mapValues(users, 'age'); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) */ function mapValues(object, iteratee) { var result = {}; iteratee = getIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { baseAssignValue(result, key, iteratee(value, key, object)); }); return result; } /** * This method is like `_.assign` except that it recursively merges own and * inherited enumerable string keyed properties of source objects into the * destination object. Source properties that resolve to `undefined` are * skipped if a destination value exists. Array and plain object properties * are merged recursively. Other objects and value types are overridden by * assignment. Source objects are applied from left to right. Subsequent * sources overwrite property assignments of previous sources. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 0.5.0 * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @example * * var object = { * 'a': [{ 'b': 2 }, { 'd': 4 }] * }; * * var other = { * 'a': [{ 'c': 3 }, { 'e': 5 }] * }; * * _.merge(object, other); * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } */ var merge = createAssigner(function(object, source, srcIndex) { baseMerge(object, source, srcIndex); }); /** * This method is like `_.merge` except that it accepts `customizer` which * is invoked to produce the merged values of the destination and source * properties. If `customizer` returns `undefined`, merging is handled by the * method instead. The `customizer` is invoked with six arguments: * (objValue, srcValue, key, object, source, stack). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The destination object. * @param {...Object} sources The source objects. * @param {Function} customizer The function to customize assigned values. * @returns {Object} Returns `object`. * @example * * function customizer(objValue, srcValue) { * if (_.isArray(objValue)) { * return objValue.concat(srcValue); * } * } * * var object = { 'a': [1], 'b': [2] }; * var other = { 'a': [3], 'b': [4] }; * * _.mergeWith(object, other, customizer); * // => { 'a': [1, 3], 'b': [2, 4] } */ var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { baseMerge(object, source, srcIndex, customizer); }); /** * The opposite of `_.pick`; this method creates an object composed of the * own and inherited enumerable property paths of `object` that are not omitted. * * **Note:** This method is considerably slower than `_.pick`. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The source object. * @param {...(string|string[])} [paths] The property paths to omit. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.omit(object, ['a', 'c']); * // => { 'b': '2' } */ var omit = flatRest(function(object, paths) { var result = {}; if (object == null) { return result; } var isDeep = false; paths = arrayMap(paths, function(path) { path = castPath(path, object); isDeep || (isDeep = path.length > 1); return path; }); copyObject(object, getAllKeysIn(object), result); if (isDeep) { result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); } var length = paths.length; while (length--) { baseUnset(result, paths[length]); } return result; }); /** * The opposite of `_.pickBy`; this method creates an object composed of * the own and inherited enumerable string keyed properties of `object` that * `predicate` doesn't return truthy for. The predicate is invoked with two * arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.omitBy(object, _.isNumber); * // => { 'b': '2' } */ function omitBy(object, predicate) { return pickBy(object, negate(getIteratee(predicate))); } /** * Creates an object composed of the picked `object` properties. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The source object. * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.pick(object, ['a', 'c']); * // => { 'a': 1, 'c': 3 } */ var pick = flatRest(function(object, paths) { return object == null ? {} : basePick(object, paths); }); /** * Creates an object composed of the `object` properties `predicate` returns * truthy for. The predicate is invoked with two arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.pickBy(object, _.isNumber); * // => { 'a': 1, 'c': 3 } */ function pickBy(object, predicate) { if (object == null) { return {}; } var props = arrayMap(getAllKeysIn(object), function(prop) { return [prop]; }); predicate = getIteratee(predicate); return basePickBy(object, props, function(value, path) { return predicate(value, path[0]); }); } /** * This method is like `_.get` except that if the resolved value is a * function it's invoked with the `this` binding of its parent object and * its result is returned. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to resolve. * @param {*} [defaultValue] The value returned for `undefined` resolved values. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; * * _.result(object, 'a[0].b.c1'); * // => 3 * * _.result(object, 'a[0].b.c2'); * // => 4 * * _.result(object, 'a[0].b.c3', 'default'); * // => 'default' * * _.result(object, 'a[0].b.c3', _.constant('default')); * // => 'default' */ function result(object, path, defaultValue) { path = castPath(path, object); var index = -1, length = path.length; // Ensure the loop is entered when path is empty. if (!length) { length = 1; object = undefined; } while (++index < length) { var value = object == null ? undefined : object[toKey(path[index])]; if (value === undefined) { index = length; value = defaultValue; } object = isFunction(value) ? value.call(object) : value; } return object; } /** * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, * it's created. Arrays are created for missing index properties while objects * are created for all other missing properties. Use `_.setWith` to customize * `path` creation. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 3.7.0 * @category Object * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @returns {Object} Returns `object`. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.set(object, 'a[0].b.c', 4); * console.log(object.a[0].b.c); * // => 4 * * _.set(object, ['x', '0', 'y', 'z'], 5); * console.log(object.x[0].y.z); * // => 5 */ function set(object, path, value) { return object == null ? object : baseSet(object, path, value); } /** * This method is like `_.set` except that it accepts `customizer` which is * invoked to produce the objects of `path`. If `customizer` returns `undefined` * path creation is handled by the method instead. The `customizer` is invoked * with three arguments: (nsValue, key, nsObject). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @param {Function} [customizer] The function to customize assigned values. * @returns {Object} Returns `object`. * @example * * var object = {}; * * _.setWith(object, '[0][1]', 'a', Object); * // => { '0': { '1': 'a' } } */ function setWith(object, path, value, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; return object == null ? object : baseSet(object, path, value, customizer); } /** * Creates an array of own enumerable string keyed-value pairs for `object` * which can be consumed by `_.fromPairs`. If `object` is a map or set, its * entries are returned. * * @static * @memberOf _ * @since 4.0.0 * @alias entries * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the key-value pairs. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.toPairs(new Foo); * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) */ var toPairs = createToPairs(keys); /** * Creates an array of own and inherited enumerable string keyed-value pairs * for `object` which can be consumed by `_.fromPairs`. If `object` is a map * or set, its entries are returned. * * @static * @memberOf _ * @since 4.0.0 * @alias entriesIn * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the key-value pairs. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.toPairsIn(new Foo); * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) */ var toPairsIn = createToPairs(keysIn); /** * An alternative to `_.reduce`; this method transforms `object` to a new * `accumulator` object which is the result of running each of its own * enumerable string keyed properties thru `iteratee`, with each invocation * potentially mutating the `accumulator` object. If `accumulator` is not * provided, a new object with the same `[[Prototype]]` will be used. The * iteratee is invoked with four arguments: (accumulator, value, key, object). * Iteratee functions may exit iteration early by explicitly returning `false`. * * @static * @memberOf _ * @since 1.3.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The custom accumulator value. * @returns {*} Returns the accumulated value. * @example * * _.transform([2, 3, 4], function(result, n) { * result.push(n *= n); * return n % 2 == 0; * }, []); * // => [4, 9] * * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { * (result[value] || (result[value] = [])).push(key); * }, {}); * // => { '1': ['a', 'c'], '2': ['b'] } */ function transform(object, iteratee, accumulator) { var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); iteratee = getIteratee(iteratee, 4); if (accumulator == null) { var Ctor = object && object.constructor; if (isArrLike) { accumulator = isArr ? new Ctor : []; } else if (isObject(object)) { accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; } else { accumulator = {}; } } (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { return iteratee(accumulator, value, index, object); }); return accumulator; } /** * Removes the property at `path` of `object`. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to unset. * @returns {boolean} Returns `true` if the property is deleted, else `false`. * @example * * var object = { 'a': [{ 'b': { 'c': 7 } }] }; * _.unset(object, 'a[0].b.c'); * // => true * * console.log(object); * // => { 'a': [{ 'b': {} }] }; * * _.unset(object, ['a', '0', 'b', 'c']); * // => true * * console.log(object); * // => { 'a': [{ 'b': {} }] }; */ function unset(object, path) { return object == null ? true : baseUnset(object, path); } /** * This method is like `_.set` except that accepts `updater` to produce the * value to set. Use `_.updateWith` to customize `path` creation. The `updater` * is invoked with one argument: (value). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.6.0 * @category Object * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {Function} updater The function to produce the updated value. * @returns {Object} Returns `object`. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.update(object, 'a[0].b.c', function(n) { return n * n; }); * console.log(object.a[0].b.c); * // => 9 * * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); * console.log(object.x[0].y.z); * // => 0 */ function update(object, path, updater) { return object == null ? object : baseUpdate(object, path, castFunction(updater)); } /** * This method is like `_.update` except that it accepts `customizer` which is * invoked to produce the objects of `path`. If `customizer` returns `undefined` * path creation is handled by the method instead. The `customizer` is invoked * with three arguments: (nsValue, key, nsObject). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.6.0 * @category Object * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {Function} updater The function to produce the updated value. * @param {Function} [customizer] The function to customize assigned values. * @returns {Object} Returns `object`. * @example * * var object = {}; * * _.updateWith(object, '[0][1]', _.constant('a'), Object); * // => { '0': { '1': 'a' } } */ function updateWith(object, path, updater, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); } /** * Creates an array of the own enumerable string keyed property values of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property values. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.values(new Foo); * // => [1, 2] (iteration order is not guaranteed) * * _.values('hi'); * // => ['h', 'i'] */ function values(object) { return object == null ? [] : baseValues(object, keys(object)); } /** * Creates an array of the own and inherited enumerable string keyed property * values of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @since 3.0.0 * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property values. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.valuesIn(new Foo); * // => [1, 2, 3] (iteration order is not guaranteed) */ function valuesIn(object) { return object == null ? [] : baseValues(object, keysIn(object)); } /*------------------------------------------------------------------------*/ /** * Clamps `number` within the inclusive `lower` and `upper` bounds. * * @static * @memberOf _ * @since 4.0.0 * @category Number * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. * @example * * _.clamp(-10, -5, 5); * // => -5 * * _.clamp(10, -5, 5); * // => 5 */ function clamp(number, lower, upper) { if (upper === undefined) { upper = lower; lower = undefined; } if (upper !== undefined) { upper = toNumber(upper); upper = upper === upper ? upper : 0; } if (lower !== undefined) { lower = toNumber(lower); lower = lower === lower ? lower : 0; } return baseClamp(toNumber(number), lower, upper); } /** * Checks if `n` is between `start` and up to, but not including, `end`. If * `end` is not specified, it's set to `start` with `start` then set to `0`. * If `start` is greater than `end` the params are swapped to support * negative ranges. * * @static * @memberOf _ * @since 3.3.0 * @category Number * @param {number} number The number to check. * @param {number} [start=0] The start of the range. * @param {number} end The end of the range. * @returns {boolean} Returns `true` if `number` is in the range, else `false`. * @see _.range, _.rangeRight * @example * * _.inRange(3, 2, 4); * // => true * * _.inRange(4, 8); * // => true * * _.inRange(4, 2); * // => false * * _.inRange(2, 2); * // => false * * _.inRange(1.2, 2); * // => true * * _.inRange(5.2, 4); * // => false * * _.inRange(-3, -2, -6); * // => true */ function inRange(number, start, end) { start = toFinite(start); if (end === undefined) { end = start; start = 0; } else { end = toFinite(end); } number = toNumber(number); return baseInRange(number, start, end); } /** * Produces a random number between the inclusive `lower` and `upper` bounds. * If only one argument is provided a number between `0` and the given number * is returned. If `floating` is `true`, or either `lower` or `upper` are * floats, a floating-point number is returned instead of an integer. * * **Note:** JavaScript follows the IEEE-754 standard for resolving * floating-point values which can produce unexpected results. * * @static * @memberOf _ * @since 0.7.0 * @category Number * @param {number} [lower=0] The lower bound. * @param {number} [upper=1] The upper bound. * @param {boolean} [floating] Specify returning a floating-point number. * @returns {number} Returns the random number. * @example * * _.random(0, 5); * // => an integer between 0 and 5 * * _.random(5); * // => also an integer between 0 and 5 * * _.random(5, true); * // => a floating-point number between 0 and 5 * * _.random(1.2, 5.2); * // => a floating-point number between 1.2 and 5.2 */ function random(lower, upper, floating) { if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { upper = floating = undefined; } if (floating === undefined) { if (typeof upper == 'boolean') { floating = upper; upper = undefined; } else if (typeof lower == 'boolean') { floating = lower; lower = undefined; } } if (lower === undefined && upper === undefined) { lower = 0; upper = 1; } else { lower = toFinite(lower); if (upper === undefined) { upper = lower; lower = 0; } else { upper = toFinite(upper); } } if (lower > upper) { var temp = lower; lower = upper; upper = temp; } if (floating || lower % 1 || upper % 1) { var rand = nativeRandom(); return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); } return baseRandom(lower, upper); } /*------------------------------------------------------------------------*/ /** * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the camel cased string. * @example * * _.camelCase('Foo Bar'); * // => 'fooBar' * * _.camelCase('--foo-bar--'); * // => 'fooBar' * * _.camelCase('__FOO_BAR__'); * // => 'fooBar' */ var camelCase = createCompounder(function(result, word, index) { word = word.toLowerCase(); return result + (index ? capitalize(word) : word); }); /** * Converts the first character of `string` to upper case and the remaining * to lower case. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to capitalize. * @returns {string} Returns the capitalized string. * @example * * _.capitalize('FRED'); * // => 'Fred' */ function capitalize(string) { return upperFirst(toString(string).toLowerCase()); } /** * Deburrs `string` by converting * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) * letters to basic Latin letters and removing * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to deburr. * @returns {string} Returns the deburred string. * @example * * _.deburr('déjà vu'); * // => 'deja vu' */ function deburr(string) { string = toString(string); return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); } /** * Checks if `string` ends with the given target string. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to inspect. * @param {string} [target] The string to search for. * @param {number} [position=string.length] The position to search up to. * @returns {boolean} Returns `true` if `string` ends with `target`, * else `false`. * @example * * _.endsWith('abc', 'c'); * // => true * * _.endsWith('abc', 'b'); * // => false * * _.endsWith('abc', 'b', 2); * // => true */ function endsWith(string, target, position) { string = toString(string); target = baseToString(target); var length = string.length; position = position === undefined ? length : baseClamp(toInteger(position), 0, length); var end = position; position -= target.length; return position >= 0 && string.slice(position, end) == target; } /** * Converts the characters "&", "<", ">", '"', and "'" in `string` to their * corresponding HTML entities. * * **Note:** No other characters are escaped. To escape additional * characters use a third-party library like [_he_](https://mths.be/he). * * Though the ">" character is escaped for symmetry, characters like * ">" and "/" don't need escaping in HTML and have no special meaning * unless they're part of a tag or unquoted attribute value. See * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) * (under "semi-related fun fact") for more details. * * When working with HTML you should always * [quote attribute values](http://wonko.com/post/html-escaping) to reduce * XSS vectors. * * @static * @since 0.1.0 * @memberOf _ * @category String * @param {string} [string=''] The string to escape. * @returns {string} Returns the escaped string. * @example * * _.escape('fred, barney, & pebbles'); * // => 'fred, barney, & pebbles' */ function escape(string) { string = toString(string); return (string && reHasUnescapedHtml.test(string)) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; } /** * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to escape. * @returns {string} Returns the escaped string. * @example * * _.escapeRegExp('[lodash](https://lodash.com/)'); * // => '\[lodash\]\(https://lodash\.com/\)' */ function escapeRegExp(string) { string = toString(string); return (string && reHasRegExpChar.test(string)) ? string.replace(reRegExpChar, '\\$&') : string; } /** * Converts `string` to * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the kebab cased string. * @example * * _.kebabCase('Foo Bar'); * // => 'foo-bar' * * _.kebabCase('fooBar'); * // => 'foo-bar' * * _.kebabCase('__FOO_BAR__'); * // => 'foo-bar' */ var kebabCase = createCompounder(function(result, word, index) { return result + (index ? '-' : '') + word.toLowerCase(); }); /** * Converts `string`, as space separated words, to lower case. * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the lower cased string. * @example * * _.lowerCase('--Foo-Bar--'); * // => 'foo bar' * * _.lowerCase('fooBar'); * // => 'foo bar' * * _.lowerCase('__FOO_BAR__'); * // => 'foo bar' */ var lowerCase = createCompounder(function(result, word, index) { return result + (index ? ' ' : '') + word.toLowerCase(); }); /** * Converts the first character of `string` to lower case. * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the converted string. * @example * * _.lowerFirst('Fred'); * // => 'fred' * * _.lowerFirst('FRED'); * // => 'fRED' */ var lowerFirst = createCaseFirst('toLowerCase'); /** * Pads `string` on the left and right sides if it's shorter than `length`. * Padding characters are truncated if they can't be evenly divided by `length`. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to pad. * @param {number} [length=0] The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the padded string. * @example * * _.pad('abc', 8); * // => ' abc ' * * _.pad('abc', 8, '_-'); * // => '_-abc_-_' * * _.pad('abc', 3); * // => 'abc' */ function pad(string, length, chars) { string = toString(string); length = toInteger(length); var strLength = length ? stringSize(string) : 0; if (!length || strLength >= length) { return string; } var mid = (length - strLength) / 2; return ( createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars) ); } /** * Pads `string` on the right side if it's shorter than `length`. Padding * characters are truncated if they exceed `length`. * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to pad. * @param {number} [length=0] The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the padded string. * @example * * _.padEnd('abc', 6); * // => 'abc ' * * _.padEnd('abc', 6, '_-'); * // => 'abc_-_' * * _.padEnd('abc', 3); * // => 'abc' */ function padEnd(string, length, chars) { string = toString(string); length = toInteger(length); var strLength = length ? stringSize(string) : 0; return (length && strLength < length) ? (string + createPadding(length - strLength, chars)) : string; } /** * Pads `string` on the left side if it's shorter than `length`. Padding * characters are truncated if they exceed `length`. * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to pad. * @param {number} [length=0] The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the padded string. * @example * * _.padStart('abc', 6); * // => ' abc' * * _.padStart('abc', 6, '_-'); * // => '_-_abc' * * _.padStart('abc', 3); * // => 'abc' */ function padStart(string, length, chars) { string = toString(string); length = toInteger(length); var strLength = length ? stringSize(string) : 0; return (length && strLength < length) ? (createPadding(length - strLength, chars) + string) : string; } /** * Converts `string` to an integer of the specified radix. If `radix` is * `undefined` or `0`, a `radix` of `10` is used unless `value` is a * hexadecimal, in which case a `radix` of `16` is used. * * **Note:** This method aligns with the * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. * * @static * @memberOf _ * @since 1.1.0 * @category String * @param {string} string The string to convert. * @param {number} [radix=10] The radix to interpret `value` by. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {number} Returns the converted integer. * @example * * _.parseInt('08'); * // => 8 * * _.map(['6', '08', '10'], _.parseInt); * // => [6, 8, 10] */ function parseInt(string, radix, guard) { if (guard || radix == null) { radix = 0; } else if (radix) { radix = +radix; } return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); } /** * Repeats the given string `n` times. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to repeat. * @param {number} [n=1] The number of times to repeat the string. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {string} Returns the repeated string. * @example * * _.repeat('*', 3); * // => '***' * * _.repeat('abc', 2); * // => 'abcabc' * * _.repeat('abc', 0); * // => '' */ function repeat(string, n, guard) { if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { n = 1; } else { n = toInteger(n); } return baseRepeat(toString(string), n); } /** * Replaces matches for `pattern` in `string` with `replacement`. * * **Note:** This method is based on * [`String#replace`](https://mdn.io/String/replace). * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to modify. * @param {RegExp|string} pattern The pattern to replace. * @param {Function|string} replacement The match replacement. * @returns {string} Returns the modified string. * @example * * _.replace('Hi Fred', 'Fred', 'Barney'); * // => 'Hi Barney' */ function replace() { var args = arguments, string = toString(args[0]); return args.length < 3 ? string : string.replace(args[1], args[2]); } /** * Converts `string` to * [snake case](https://en.wikipedia.org/wiki/Snake_case). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the snake cased string. * @example * * _.snakeCase('Foo Bar'); * // => 'foo_bar' * * _.snakeCase('fooBar'); * // => 'foo_bar' * * _.snakeCase('--FOO-BAR--'); * // => 'foo_bar' */ var snakeCase = createCompounder(function(result, word, index) { return result + (index ? '_' : '') + word.toLowerCase(); }); /** * Splits `string` by `separator`. * * **Note:** This method is based on * [`String#split`](https://mdn.io/String/split). * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to split. * @param {RegExp|string} separator The separator pattern to split by. * @param {number} [limit] The length to truncate results to. * @returns {Array} Returns the string segments. * @example * * _.split('a-b-c', '-', 2); * // => ['a', 'b'] */ function split(string, separator, limit) { if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { separator = limit = undefined; } limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; if (!limit) { return []; } string = toString(string); if (string && ( typeof separator == 'string' || (separator != null && !isRegExp(separator)) )) { separator = baseToString(separator); if (!separator && hasUnicode(string)) { return castSlice(stringToArray(string), 0, limit); } } return string.split(separator, limit); } /** * Converts `string` to * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). * * @static * @memberOf _ * @since 3.1.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the start cased string. * @example * * _.startCase('--foo-bar--'); * // => 'Foo Bar' * * _.startCase('fooBar'); * // => 'Foo Bar' * * _.startCase('__FOO_BAR__'); * // => 'FOO BAR' */ var startCase = createCompounder(function(result, word, index) { return result + (index ? ' ' : '') + upperFirst(word); }); /** * Checks if `string` starts with the given target string. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to inspect. * @param {string} [target] The string to search for. * @param {number} [position=0] The position to search from. * @returns {boolean} Returns `true` if `string` starts with `target`, * else `false`. * @example * * _.startsWith('abc', 'a'); * // => true * * _.startsWith('abc', 'b'); * // => false * * _.startsWith('abc', 'b', 1); * // => true */ function startsWith(string, target, position) { string = toString(string); position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); target = baseToString(target); return string.slice(position, position + target.length) == target; } /** * Creates a compiled template function that can interpolate data properties * in "interpolate" delimiters, HTML-escape interpolated data properties in * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data * properties may be accessed as free variables in the template. If a setting * object is given, it takes precedence over `_.templateSettings` values. * * **Note:** In the development build `_.template` utilizes * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) * for easier debugging. * * For more information on precompiling templates see * [lodash's custom builds documentation](https://lodash.com/custom-builds). * * For more information on Chrome extension sandboxes see * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). * * @static * @since 0.1.0 * @memberOf _ * @category String * @param {string} [string=''] The template string. * @param {Object} [options={}] The options object. * @param {RegExp} [options.escape=_.templateSettings.escape] * The HTML "escape" delimiter. * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] * The "evaluate" delimiter. * @param {Object} [options.imports=_.templateSettings.imports] * An object to import into the template as free variables. * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] * The "interpolate" delimiter. * @param {string} [options.sourceURL='lodash.templateSources[n]'] * The sourceURL of the compiled template. * @param {string} [options.variable='obj'] * The data object variable name. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Function} Returns the compiled template function. * @example * * // Use the "interpolate" delimiter to create a compiled template. * var compiled = _.template('hello <%= user %>!'); * compiled({ 'user': 'fred' }); * // => 'hello fred!' * * // Use the HTML "escape" delimiter to escape data property values. * var compiled = _.template('<%- value %>'); * compiled({ 'value': '