--- a/devtools/client/shared/source-map/index.js
+++ b/devtools/client/shared/source-map/index.js
@@ -1,18 +1,18 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory(require("Services"), require("devtools/client/shared/vendor/react"), require("devtools/client/shared/vendor/react-dom"), require("devtools/shared/flags"));
+ module.exports = factory();
else if(typeof define === 'function' && define.amd)
- define(["Services", "devtools/client/shared/vendor/react", "devtools/client/shared/vendor/react-dom", "devtools/shared/flags"], factory);
+ define([], factory);
else {
- var a = typeof exports === 'object' ? factory(require("Services"), require("devtools/client/shared/vendor/react"), require("devtools/client/shared/vendor/react-dom"), require("devtools/shared/flags")) : factory(root["Services"], root["devtools/client/shared/vendor/react"], root["devtools/client/shared/vendor/react-dom"], root["devtools/shared/flags"]);
+ var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
-})(this, function(__WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_83__) {
+})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
@@ -49,90 +49,49 @@ return /******/ (function(modules) { //
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
- let hasMappedSource = (() => {
- var _ref = _asyncToGenerator(function* (location) {
- if (isOriginalId(location.sourceId)) {
- return true;
- }
-
- const loc = yield getOriginalLocation(location);
- return loc.sourceId !== location.sourceId;
- });
-
- return function hasMappedSource(_x) {
- return _ref.apply(this, arguments);
- };
- })();
-
- function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
-
- /* global DebuggerConfig */
-
const {
originalToGeneratedId,
generatedToOriginalId,
isGeneratedId,
isOriginalId
} = __webpack_require__(1);
- const { workerUtils: { workerTask } } = __webpack_require__(6);
- const { setConfig, getValue } = __webpack_require__(20);
+ const { workerUtils: { WorkerDispatcher } } = __webpack_require__(6);
- // TODO: Rename this to something not specific to debugger (#265)
- // $FlowIgnore: global DebuggerConfig
- setConfig(({"workers":{"sourceMapURL":"resource://devtools/client/shared/source-map/worker.js"}}));
-
- let sourceMapWorker;
- function restartWorker() {
- if (sourceMapWorker) {
- sourceMapWorker.terminate();
- }
+ const dispatcher = new WorkerDispatcher();
- sourceMapWorker = new Worker(getValue("workers.sourceMapURL"));
- sourceMapWorker.onerror = () => {
- console.error("Error in source map worker");
- };
- }
-
- restartWorker();
-
- function destroyWorker() {
- if (sourceMapWorker) {
- sourceMapWorker.terminate();
- sourceMapWorker = null;
- }
- }
-
- const getOriginalURLs = workerTask(sourceMapWorker, "getOriginalURLs");
- const getGeneratedLocation = workerTask(sourceMapWorker, "getGeneratedLocation");
- const getOriginalLocation = workerTask(sourceMapWorker, "getOriginalLocation");
- const getOriginalSourceText = workerTask(sourceMapWorker, "getOriginalSourceText");
- const applySourceMap = workerTask(sourceMapWorker, "applySourceMap");
- const clearSourceMaps = workerTask(sourceMapWorker, "clearSourceMaps");
+ const getOriginalURLs = dispatcher.task("getOriginalURLs");
+ const getGeneratedLocation = dispatcher.task("getGeneratedLocation");
+ const getOriginalLocation = dispatcher.task("getOriginalLocation");
+ const getOriginalSourceText = dispatcher.task("getOriginalSourceText");
+ const applySourceMap = dispatcher.task("applySourceMap");
+ const clearSourceMaps = dispatcher.task("clearSourceMaps");
+ const hasMappedSource = dispatcher.task("hasMappedSource");
module.exports = {
originalToGeneratedId,
generatedToOriginalId,
isGeneratedId,
isOriginalId,
hasMappedSource,
getOriginalURLs,
getGeneratedLocation,
getOriginalLocation,
getOriginalSourceText,
applySourceMap,
clearSourceMaps,
- destroyWorker
+ startSourceMapWorker: dispatcher.start.bind(dispatcher),
+ stopSourceMapWorker: dispatcher.stop.bind(dispatcher)
};
/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
const md5 = __webpack_require__(2);
@@ -161,231 +120,220 @@ return /******/ (function(modules) { //
let q1 = url.indexOf("?");
let q2 = url.indexOf("&");
let q3 = url.indexOf("#");
let q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length);
return url.slice(0, q);
}
- /**
- * Returns true if the specified URL and/or content type are specific to
- * JavaScript files.
- *
- * @return boolean
- * True if the source is likely JavaScript.
- */
- function isJavaScript(url, contentType = "") {
- return url && /\.(jsm|js)?$/.test(trimUrlQuery(url)) || contentType.includes("javascript");
- }
-
- function getContentType(url) {
- if (isJavaScript(url)) {
- return "text/javascript";
- }
-
- if (url.match(/ts$/)) {
- return "text/typescript";
- }
+ // Map suffix to content type.
+ const contentMap = {
+ "js": "text/javascript",
+ "jsm": "text/javascript",
+ "ts": "text/typescript",
+ "tsx": "text/typescript-jsx",
+ "jsx": "text/jsx",
+ "coffee": "text/coffeescript",
+ "elm": "text/elm",
+ "cljs": "text/x-clojure"
+ };
- if (url.match(/tsx$/)) {
- return "text/typescript-jsx";
- }
-
- if (url.match(/jsx$/)) {
- return "text/jsx";
+ /**
+ * Returns the content type for the specified URL. If no specific
+ * content type can be determined, "text/plain" is returned.
+ *
+ * @return String
+ * The content type.
+ */
+ function getContentType(url) {
+ url = trimUrlQuery(url);
+ let dot = url.lastIndexOf(".");
+ if (dot >= 0) {
+ let name = url.substring(dot + 1);
+ if (name in contentMap) {
+ return contentMap[name];
+ }
}
-
- if (url.match(/coffee$/)) {
- return "text/coffeescript";
- }
-
- if (url.match(/elm$/)) {
- return "text/elm";
- }
-
- if (url.match(/cljs$/)) {
- return "text/x-clojure";
- }
-
return "text/plain";
}
module.exports = {
originalToGeneratedId,
generatedToOriginalId,
isOriginalId,
isGeneratedId,
- getContentType
+ getContentType,
+ contentMapForTesting: contentMap
};
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
- (function(){
- var crypt = __webpack_require__(3),
- utf8 = __webpack_require__(4).utf8,
- isBuffer = __webpack_require__(5),
- bin = __webpack_require__(4).bin,
-
- // The core
- md5 = function (message, options) {
- // Convert to byte array
- if (message.constructor == String)
- if (options && options.encoding === 'binary')
- message = bin.stringToBytes(message);
- else
- message = utf8.stringToBytes(message);
- else if (isBuffer(message))
- message = Array.prototype.slice.call(message, 0);
- else if (!Array.isArray(message))
- message = message.toString();
- // else, assume byte array already
-
- var m = crypt.bytesToWords(message),
- l = message.length * 8,
- a = 1732584193,
- b = -271733879,
- c = -1732584194,
- d = 271733878;
-
- // Swap endian
- for (var i = 0; i < m.length; i++) {
- m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
- ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
- }
-
- // Padding
- m[l >>> 5] |= 0x80 << (l % 32);
- m[(((l + 64) >>> 9) << 4) + 14] = l;
-
- // Method shortcuts
- var FF = md5._ff,
- GG = md5._gg,
- HH = md5._hh,
- II = md5._ii;
-
- for (var i = 0; i < m.length; i += 16) {
-
- var aa = a,
- bb = b,
- cc = c,
- dd = d;
-
- a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
- d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
- c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
- b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
- a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
- d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
- c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
- b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
- a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
- d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
- c = FF(c, d, a, b, m[i+10], 17, -42063);
- b = FF(b, c, d, a, m[i+11], 22, -1990404162);
- a = FF(a, b, c, d, m[i+12], 7, 1804603682);
- d = FF(d, a, b, c, m[i+13], 12, -40341101);
- c = FF(c, d, a, b, m[i+14], 17, -1502002290);
- b = FF(b, c, d, a, m[i+15], 22, 1236535329);
-
- a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
- d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
- c = GG(c, d, a, b, m[i+11], 14, 643717713);
- b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
- a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
- d = GG(d, a, b, c, m[i+10], 9, 38016083);
- c = GG(c, d, a, b, m[i+15], 14, -660478335);
- b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
- a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
- d = GG(d, a, b, c, m[i+14], 9, -1019803690);
- c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
- b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
- a = GG(a, b, c, d, m[i+13], 5, -1444681467);
- d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
- c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
- b = GG(b, c, d, a, m[i+12], 20, -1926607734);
-
- a = HH(a, b, c, d, m[i+ 5], 4, -378558);
- d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
- c = HH(c, d, a, b, m[i+11], 16, 1839030562);
- b = HH(b, c, d, a, m[i+14], 23, -35309556);
- a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
- d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
- c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
- b = HH(b, c, d, a, m[i+10], 23, -1094730640);
- a = HH(a, b, c, d, m[i+13], 4, 681279174);
- d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
- c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
- b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
- a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
- d = HH(d, a, b, c, m[i+12], 11, -421815835);
- c = HH(c, d, a, b, m[i+15], 16, 530742520);
- b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
-
- a = II(a, b, c, d, m[i+ 0], 6, -198630844);
- d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
- c = II(c, d, a, b, m[i+14], 15, -1416354905);
- b = II(b, c, d, a, m[i+ 5], 21, -57434055);
- a = II(a, b, c, d, m[i+12], 6, 1700485571);
- d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
- c = II(c, d, a, b, m[i+10], 15, -1051523);
- b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
- a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
- d = II(d, a, b, c, m[i+15], 10, -30611744);
- c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
- b = II(b, c, d, a, m[i+13], 21, 1309151649);
- a = II(a, b, c, d, m[i+ 4], 6, -145523070);
- d = II(d, a, b, c, m[i+11], 10, -1120210379);
- c = II(c, d, a, b, m[i+ 2], 15, 718787259);
- b = II(b, c, d, a, m[i+ 9], 21, -343485551);
-
- a = (a + aa) >>> 0;
- b = (b + bb) >>> 0;
- c = (c + cc) >>> 0;
- d = (d + dd) >>> 0;
- }
-
- return crypt.endian([a, b, c, d]);
- };
-
- // Auxiliary functions
- md5._ff = function (a, b, c, d, x, s, t) {
- var n = a + (b & c | ~b & d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._gg = function (a, b, c, d, x, s, t) {
- var n = a + (b & d | c & ~d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._hh = function (a, b, c, d, x, s, t) {
- var n = a + (b ^ c ^ d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._ii = function (a, b, c, d, x, s, t) {
- var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
-
- // Package private blocksize
- md5._blocksize = 16;
- md5._digestsize = 16;
-
- module.exports = function (message, options) {
- if (message === undefined || message === null)
- throw new Error('Illegal argument ' + message);
-
- var digestbytes = crypt.wordsToBytes(md5(message, options));
- return options && options.asBytes ? digestbytes :
- options && options.asString ? bin.bytesToString(digestbytes) :
- crypt.bytesToHex(digestbytes);
- };
-
- })();
+ (function(){
+ var crypt = __webpack_require__(3),
+ utf8 = __webpack_require__(4).utf8,
+ isBuffer = __webpack_require__(5),
+ bin = __webpack_require__(4).bin,
+
+ // The core
+ md5 = function (message, options) {
+ // Convert to byte array
+ if (message.constructor == String)
+ if (options && options.encoding === 'binary')
+ message = bin.stringToBytes(message);
+ else
+ message = utf8.stringToBytes(message);
+ else if (isBuffer(message))
+ message = Array.prototype.slice.call(message, 0);
+ else if (!Array.isArray(message))
+ message = message.toString();
+ // else, assume byte array already
+
+ var m = crypt.bytesToWords(message),
+ l = message.length * 8,
+ a = 1732584193,
+ b = -271733879,
+ c = -1732584194,
+ d = 271733878;
+
+ // Swap endian
+ for (var i = 0; i < m.length; i++) {
+ m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
+ ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
+ }
+
+ // Padding
+ m[l >>> 5] |= 0x80 << (l % 32);
+ m[(((l + 64) >>> 9) << 4) + 14] = l;
+
+ // Method shortcuts
+ var FF = md5._ff,
+ GG = md5._gg,
+ HH = md5._hh,
+ II = md5._ii;
+
+ for (var i = 0; i < m.length; i += 16) {
+
+ var aa = a,
+ bb = b,
+ cc = c,
+ dd = d;
+
+ a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
+ d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
+ c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
+ b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
+ a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
+ d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
+ c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
+ b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
+ a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
+ d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
+ c = FF(c, d, a, b, m[i+10], 17, -42063);
+ b = FF(b, c, d, a, m[i+11], 22, -1990404162);
+ a = FF(a, b, c, d, m[i+12], 7, 1804603682);
+ d = FF(d, a, b, c, m[i+13], 12, -40341101);
+ c = FF(c, d, a, b, m[i+14], 17, -1502002290);
+ b = FF(b, c, d, a, m[i+15], 22, 1236535329);
+
+ a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
+ d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
+ c = GG(c, d, a, b, m[i+11], 14, 643717713);
+ b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
+ a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
+ d = GG(d, a, b, c, m[i+10], 9, 38016083);
+ c = GG(c, d, a, b, m[i+15], 14, -660478335);
+ b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
+ a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
+ d = GG(d, a, b, c, m[i+14], 9, -1019803690);
+ c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
+ b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
+ a = GG(a, b, c, d, m[i+13], 5, -1444681467);
+ d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
+ c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
+ b = GG(b, c, d, a, m[i+12], 20, -1926607734);
+
+ a = HH(a, b, c, d, m[i+ 5], 4, -378558);
+ d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
+ c = HH(c, d, a, b, m[i+11], 16, 1839030562);
+ b = HH(b, c, d, a, m[i+14], 23, -35309556);
+ a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
+ d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
+ c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
+ b = HH(b, c, d, a, m[i+10], 23, -1094730640);
+ a = HH(a, b, c, d, m[i+13], 4, 681279174);
+ d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
+ c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
+ b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
+ a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
+ d = HH(d, a, b, c, m[i+12], 11, -421815835);
+ c = HH(c, d, a, b, m[i+15], 16, 530742520);
+ b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
+
+ a = II(a, b, c, d, m[i+ 0], 6, -198630844);
+ d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
+ c = II(c, d, a, b, m[i+14], 15, -1416354905);
+ b = II(b, c, d, a, m[i+ 5], 21, -57434055);
+ a = II(a, b, c, d, m[i+12], 6, 1700485571);
+ d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
+ c = II(c, d, a, b, m[i+10], 15, -1051523);
+ b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
+ a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
+ d = II(d, a, b, c, m[i+15], 10, -30611744);
+ c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
+ b = II(b, c, d, a, m[i+13], 21, 1309151649);
+ a = II(a, b, c, d, m[i+ 4], 6, -145523070);
+ d = II(d, a, b, c, m[i+11], 10, -1120210379);
+ c = II(c, d, a, b, m[i+ 2], 15, 718787259);
+ b = II(b, c, d, a, m[i+ 9], 21, -343485551);
+
+ a = (a + aa) >>> 0;
+ b = (b + bb) >>> 0;
+ c = (c + cc) >>> 0;
+ d = (d + dd) >>> 0;
+ }
+
+ return crypt.endian([a, b, c, d]);
+ };
+
+ // Auxiliary functions
+ md5._ff = function (a, b, c, d, x, s, t) {
+ var n = a + (b & c | ~b & d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._gg = function (a, b, c, d, x, s, t) {
+ var n = a + (b & d | c & ~d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._hh = function (a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._ii = function (a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+
+ // Package private blocksize
+ md5._blocksize = 16;
+ md5._digestsize = 16;
+
+ module.exports = function (message, options) {
+ if (message === undefined || message === null)
+ throw new Error('Illegal argument ' + message);
+
+ var digestbytes = crypt.wordsToBytes(md5(message, options));
+ return options && options.asBytes ? digestbytes :
+ options && options.asString ? bin.bytesToString(digestbytes) :
+ crypt.bytesToHex(digestbytes);
+ };
+
+ })();
/***/ },
/* 3 */
/***/ function(module, exports) {
(function() {
var base64map
@@ -550,2936 +498,124 @@ return /******/ (function(modules) { //
return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
}
/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {
- const Services = __webpack_require__(7);
- const SplitBox = __webpack_require__(8);
- // const SplitBoxCSS = require("./client/shared/components/splitter/SplitBox.css")
- const sprintf = __webpack_require__(12).sprintf;
- const workerUtils = __webpack_require__(19);
+ const networkRequest = __webpack_require__(7);
+ const workerUtils = __webpack_require__(8);
module.exports = {
- Services,
- SplitBox,
- // SplitBoxCSS,
- sprintf,
+ networkRequest,
workerUtils
};
/***/ },
/* 7 */
/***/ function(module, exports) {
- module.exports = __WEBPACK_EXTERNAL_MODULE_7__;
+ function networkRequest(url, opts) {
+ return new Promise((resolve, reject) => {
+ const req = new XMLHttpRequest();
+
+ req.addEventListener("readystatechange", () => {
+ if (req.readyState === XMLHttpRequest.DONE) {
+ if (req.status === 200) {
+ resolve({ content: req.responseText });
+ } else {
+ resolve(req.statusText);
+ }
+ }
+ });
+
+ // Not working yet.
+ // if (!opts.loadFromCache) {
+ // req.channel.loadFlags = (
+ // Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE |
+ // Components.interfaces.nsIRequest.INHIBIT_CACHING |
+ // Components.interfaces.nsIRequest.LOAD_ANONYMOUS
+ // );
+ // }
+
+ req.open("GET", url);
+ req.send();
+ });
+ }
+
+ module.exports = networkRequest;
/***/ },
/* 8 */
-/***/ function(module, exports, __webpack_require__) {
+/***/ function(module, exports) {
- const React = __webpack_require__(9);
- const ReactDOM = __webpack_require__(10);
- const Draggable = React.createFactory(__webpack_require__(11));
- const { DOM: dom, PropTypes } = React;
-
- /**
- * This component represents a Splitter. The splitter supports vertical
- * as well as horizontal mode.
- */
- const SplitBox = React.createClass({
+
- propTypes: {
- // Custom class name. You can use more names separated by a space.
- className: PropTypes.string,
- // Initial size of controlled panel.
- initialSize: PropTypes.any,
- // Optional initial width of controlled panel.
- initialWidth: PropTypes.number,
- // Optional initial height of controlled panel.
- initialHeight: PropTypes.number,
- // Left/top panel
- startPanel: PropTypes.any,
- // Left/top panel collapse state.
- startPanelCollapsed: PropTypes.bool,
- // Min panel size.
- minSize: PropTypes.any,
- // Max panel size.
- maxSize: PropTypes.any,
- // Right/bottom panel
- endPanel: PropTypes.any,
- // Right/bottom panel collapse state.
- endPanelCollapsed: PropTypes.bool,
- // True if the right/bottom panel should be controlled.
- endPanelControl: PropTypes.bool,
- // Size of the splitter handle bar.
- splitterSize: PropTypes.number,
- // True if the splitter bar is vertical (default is vertical).
- vert: PropTypes.bool,
- // Optional style properties passed into the splitbox
- style: PropTypes.object
- },
+ function WorkerDispatcher() {
+ this.msgId = 1;
+ this.worker = null;
+ }
- displayName: "SplitBox",
-
- getDefaultProps() {
- return {
- splitterSize: 5,
- vert: true,
- endPanelControl: false,
- endPanelCollapsed: false,
- startPanelCollapsed: false
- };
- },
-
- /**
- * The state stores the current orientation (vertical or horizontal)
- * and the current size (width/height). All these values can change
- * during the component's life time.
- */
- getInitialState() {
- return {
- vert: this.props.vert,
- // We use integers for these properties
- width: parseInt(this.props.initialWidth || this.props.initialSize),
- height: parseInt(this.props.initialHeight || this.props.initialSize)
+ WorkerDispatcher.prototype = {
+ start(url) {
+ this.worker = new Worker(url);
+ this.worker.onerror = () => {
+ console.error(`Error in worker ${url}`);
};
},
- componentWillReceiveProps(nextProps) {
- if (this.props.vert !== nextProps.vert) {
- this.setState({ vert: nextProps.vert });
- }
- },
-
- // Dragging Events
-
- /**
- * Set 'resizing' cursor on entire document during splitter dragging.
- * This avoids cursor-flickering that happens when the mouse leaves
- * the splitter bar area (happens frequently).
- */
- onStartMove() {
- const splitBox = ReactDOM.findDOMNode(this);
- const doc = splitBox.ownerDocument;
- let defaultCursor = doc.documentElement.style.cursor;
- doc.documentElement.style.cursor = this.state.vert ? "ew-resize" : "ns-resize";
-
- splitBox.classList.add("dragging");
-
- this.setState({
- defaultCursor: defaultCursor
- });
- },
-
- onStopMove() {
- const splitBox = ReactDOM.findDOMNode(this);
- const doc = splitBox.ownerDocument;
- doc.documentElement.style.cursor = this.state.defaultCursor;
-
- splitBox.classList.remove("dragging");
- },
-
- /**
- * Adjust size of the controlled panel. Depending on the current
- * orientation we either remember the width or height of
- * the splitter box.
- */
- onMove({ movementX, movementY }) {
- const node = ReactDOM.findDOMNode(this);
- const doc = node.ownerDocument;
-
- if (this.props.endPanelControl) {
- // For the end panel we need to increase the width/height when the
- // movement is towards the left/top.
- movementX = -movementX;
- movementY = -movementY;
+ stop() {
+ if (!this.worker) {
+ return;
}
- if (this.state.vert) {
- const isRtl = doc.dir === "rtl";
- if (isRtl) {
- // In RTL we need to reverse the movement again -- but only for vertical
- // splitters
- movementX = -movementX;
- }
-
- this.setState((state, props) => ({
- width: state.width + movementX
- }));
- } else {
- this.setState((state, props) => ({
- height: state.height + movementY
- }));
- }
- },
-
- // Rendering
- preparePanelStyles() {
- const vert = this.state.vert;
- const {
- minSize, maxSize, startPanelCollapsed, endPanelControl,
- endPanelCollapsed } = this.props;
- let leftPanelStyle, rightPanelStyle;
-
- // Set proper size for panels depending on the current state.
- if (vert) {
- let startWidth = endPanelControl ? null : this.state.width,
- endWidth = endPanelControl ? this.state.width : null;
-
- leftPanelStyle = {
- maxWidth: endPanelControl ? null : maxSize,
- minWidth: endPanelControl ? null : minSize,
- width: startPanelCollapsed ? 0 : startWidth
- };
- rightPanelStyle = {
- maxWidth: endPanelControl ? maxSize : null,
- minWidth: endPanelControl ? minSize : null,
- width: endPanelCollapsed ? 0 : endWidth
- };
- } else {
- let startHeight = endPanelControl ? null : this.state.height,
- endHeight = endPanelControl ? this.state.height : null;
-
- leftPanelStyle = {
- maxHeight: endPanelControl ? null : maxSize,
- minHeight: endPanelControl ? null : minSize,
- height: endPanelCollapsed ? maxSize : startHeight
- };
- rightPanelStyle = {
- maxHeight: endPanelControl ? maxSize : null,
- minHeight: endPanelControl ? minSize : null,
- height: startPanelCollapsed ? maxSize : endHeight
- };
- }
-
- return { leftPanelStyle, rightPanelStyle };
- },
-
- render() {
- const vert = this.state.vert;
- const {
- startPanelCollapsed,
- startPanel,
- endPanel,
- endPanelControl,
- splitterSize,
- endPanelCollapsed
- } = this.props;
-
- let style = Object.assign({}, this.props.style);
-
- // Calculate class names list.
- let classNames = ["split-box"];
- classNames.push(vert ? "vert" : "horz");
- if (this.props.className) {
- classNames = classNames.concat(this.props.className.split(" "));
- }
-
- const { leftPanelStyle, rightPanelStyle } = this.preparePanelStyles();
-
- // Calculate splitter size
- let splitterStyle = {
- flex: `0 0 ${splitterSize}px`
- };
-
- return dom.div({
- className: classNames.join(" "),
- style: style }, !startPanelCollapsed ? dom.div({
- className: endPanelControl ? "uncontrolled" : "controlled",
- style: leftPanelStyle }, startPanel) : null, Draggable({
- className: "splitter",
- style: splitterStyle,
- onStart: this.onStartMove,
- onStop: this.onStopMove,
- onMove: this.onMove
- }), !endPanelCollapsed ? dom.div({
- className: endPanelControl ? "controlled" : "uncontrolled",
- style: rightPanelStyle }, endPanel) : null);
- }
- });
-
- module.exports = SplitBox;
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
- module.exports = __WEBPACK_EXTERNAL_MODULE_9__;
-
-/***/ },
-/* 10 */
-/***/ function(module, exports) {
-
- module.exports = __WEBPACK_EXTERNAL_MODULE_10__;
-
-/***/ },
-/* 11 */
-/***/ function(module, exports, __webpack_require__) {
-
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- const React = __webpack_require__(9);
- const ReactDOM = __webpack_require__(10);
- const { DOM: dom, PropTypes } = React;
-
- const Draggable = React.createClass({
- displayName: "Draggable",
-
- propTypes: {
- onMove: PropTypes.func.isRequired,
- onStart: PropTypes.func,
- onStop: PropTypes.func,
- style: PropTypes.object,
- className: PropTypes.string
- },
-
- startDragging(ev) {
- ev.preventDefault();
- const doc = ReactDOM.findDOMNode(this).ownerDocument;
- doc.addEventListener("mousemove", this.onMove);
- doc.addEventListener("mouseup", this.onUp);
- this.props.onStart && this.props.onStart();
- },
-
- onMove(ev) {
- ev.preventDefault();
- // We pass the whole event because we don't know which properties
- // the callee needs.
- this.props.onMove(ev);
- },
-
- onUp(ev) {
- ev.preventDefault();
- const doc = ReactDOM.findDOMNode(this).ownerDocument;
- doc.removeEventListener("mousemove", this.onMove);
- doc.removeEventListener("mouseup", this.onUp);
- this.props.onStop && this.props.onStop();
+ this.worker.terminate();
+ this.worker = null;
},
- render() {
- return dom.div({
- style: this.props.style,
- className: this.props.className,
- onMouseDown: this.startDragging
- });
- }
- });
-
- module.exports = Draggable;
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
- /**
- * Copyright (c) 2007-2016, Alexandru Marasteanu <hello [at) alexei (dot] ro>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of this software nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
- /* globals window, exports, define */
-
- (function (window) {
- 'use strict';
+ task(method) {
+ return (...args) => {
+ return new Promise((resolve, reject) => {
+ const id = this.msgId++;
+ this.worker.postMessage({ id, method, args });
- var re = {
- not_string: /[^s]/,
- not_bool: /[^t]/,
- not_type: /[^T]/,
- not_primitive: /[^v]/,
- number: /[diefg]/,
- numeric_arg: /bcdiefguxX/,
- json: /[j]/,
- not_json: /[^j]/,
- text: /^[^\x25]+/,
- modulo: /^\x25{2}/,
- placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosStTuvxX])/,
- key: /^([a-z_][a-z_\d]*)/i,
- key_access: /^\.([a-z_][a-z_\d]*)/i,
- index_access: /^\[(\d+)\]/,
- sign: /^[\+\-]/
- };
-
- function sprintf() {
- var key = arguments[0],
- cache = sprintf.cache;
- if (!(cache[key] && cache.hasOwnProperty(key))) {
- cache[key] = sprintf.parse(key);
- }
- return sprintf.format.call(null, cache[key], arguments);
- }
-
- sprintf.format = function (parse_tree, argv) {
- var cursor = 1,
- tree_length = parse_tree.length,
- node_type = '',
- arg,
- output = [],
- i,
- k,
- match,
- pad,
- pad_character,
- pad_length,
- is_positive = true,
- sign = '';
- for (i = 0; i < tree_length; i++) {
- node_type = get_type(parse_tree[i]);
- if (node_type === 'string') {
- output[output.length] = parse_tree[i];
- } else if (node_type === 'array') {
- match = parse_tree[i]; // convenience purposes only
- if (match[2]) {
- // keyword argument
- arg = argv[cursor];
- for (k = 0; k < match[2].length; k++) {
- if (!arg.hasOwnProperty(match[2][k])) {
- throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
- }
- arg = arg[match[2][k]];
- }
- } else if (match[1]) {
- // positional argument (explicit)
- arg = argv[match[1]];
- } else {
- // positional argument (implicit)
- arg = argv[cursor++];
- }
-
- if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && get_type(arg) == 'function') {
- arg = arg();
- }
-
- if (re.numeric_arg.test(match[8]) && get_type(arg) != 'number' && isNaN(arg)) {
- throw new TypeError(sprintf("[sprintf] expecting number but found %s", get_type(arg)));
- }
-
- if (re.number.test(match[8])) {
- is_positive = arg >= 0;
- }
+ const listener = ({ data: result }) => {
+ if (result.id !== id) {
+ return;
+ }
- switch (match[8]) {
- case 'b':
- arg = parseInt(arg, 10).toString(2);
- break;
- case 'c':
- arg = String.fromCharCode(parseInt(arg, 10));
- break;
- case 'd':
- case 'i':
- arg = parseInt(arg, 10);
- break;
- case 'j':
- arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0);
- break;
- case 'e':
- arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential();
- break;
- case 'f':
- arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg);
- break;
- case 'g':
- arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg);
- break;
- case 'o':
- arg = arg.toString(8);
- break;
- case 's':
- case 'S':
- arg = String(arg);
- arg = match[7] ? arg.substring(0, match[7]) : arg;
- break;
- case 't':
- arg = String(!!arg);
- arg = match[7] ? arg.substring(0, match[7]) : arg;
- break;
- case 'T':
- arg = get_type(arg);
- arg = match[7] ? arg.substring(0, match[7]) : arg;
- break;
- case 'u':
- arg = parseInt(arg, 10) >>> 0;
- break;
- case 'v':
- arg = arg.valueOf();
- arg = match[7] ? arg.substring(0, match[7]) : arg;
- break;
- case 'x':
- arg = parseInt(arg, 10).toString(16);
- break;
- case 'X':
- arg = parseInt(arg, 10).toString(16).toUpperCase();
- break;
- }
- if (re.json.test(match[8])) {
- output[output.length] = arg;
- } else {
- if (re.number.test(match[8]) && (!is_positive || match[3])) {
- sign = is_positive ? '+' : '-';
- arg = arg.toString().replace(re.sign, '');
- } else {
- sign = '';
- }
- pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ';
- pad_length = match[6] - (sign + arg).length;
- pad = match[6] ? pad_length > 0 ? str_repeat(pad_character, pad_length) : '' : '';
- output[output.length] = match[5] ? sign + arg + pad : pad_character === '0' ? sign + pad + arg : pad + sign + arg;
- }
- }
- }
- return output.join('');
- };
-
- sprintf.cache = {};
+ this.worker.removeEventListener("message", listener);
+ if (result.error) {
+ reject(result.error);
+ } else {
+ resolve(result.response);
+ }
+ };
- sprintf.parse = function (fmt) {
- var _fmt = fmt,
- match = [],
- parse_tree = [],
- arg_names = 0;
- while (_fmt) {
- if ((match = re.text.exec(_fmt)) !== null) {
- parse_tree[parse_tree.length] = match[0];
- } else if ((match = re.modulo.exec(_fmt)) !== null) {
- parse_tree[parse_tree.length] = '%';
- } else if ((match = re.placeholder.exec(_fmt)) !== null) {
- if (match[2]) {
- arg_names |= 1;
- var field_list = [],
- replacement_field = match[2],
- field_match = [];
- if ((field_match = re.key.exec(replacement_field)) !== null) {
- field_list[field_list.length] = field_match[1];
- while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
- if ((field_match = re.key_access.exec(replacement_field)) !== null) {
- field_list[field_list.length] = field_match[1];
- } else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
- field_list[field_list.length] = field_match[1];
- } else {
- throw new SyntaxError("[sprintf] failed to parse named argument key");
- }
- }
- } else {
- throw new SyntaxError("[sprintf] failed to parse named argument key");
- }
- match[2] = field_list;
- } else {
- arg_names |= 2;
- }
- if (arg_names === 3) {
- throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
- }
- parse_tree[parse_tree.length] = match;
- } else {
- throw new SyntaxError("[sprintf] unexpected placeholder");
- }
- _fmt = _fmt.substring(match[0].length);
- }
- return parse_tree;
+ this.worker.addEventListener("message", listener);
+ });
};
-
- var vsprintf = function (fmt, argv, _argv) {
- _argv = (argv || []).slice(0);
- _argv.splice(0, 0, fmt);
- return sprintf.apply(null, _argv);
- };
-
- /**
- * helpers
- */
- function get_type(variable) {
- if (typeof variable === 'number') {
- return 'number';
- } else if (typeof variable === 'string') {
- return 'string';
- } else {
- return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
- }
- }
+ }
+ };
- var preformattedPadding = {
- '0': ['', '0', '00', '000', '0000', '00000', '000000', '0000000'],
- ' ': ['', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
- '_': ['', '_', '__', '___', '____', '_____', '______', '_______']
- };
- function str_repeat(input, multiplier) {
- if (multiplier >= 0 && multiplier <= 7 && preformattedPadding[input]) {
- return preformattedPadding[input][multiplier];
- }
- return Array(multiplier + 1).join(input);
- }
-
- /**
- * export to either browser or node.js
- */
- if (true) {
- exports.sprintf = sprintf;
- exports.vsprintf = vsprintf;
+ function workerHandler(publicInterface) {
+ return function workerHandler(msg) {
+ const { id, method, args } = msg.data;
+ const response = publicInterface[method].apply(undefined, args);
+ if (response instanceof Promise) {
+ response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
} else {
- window.sprintf = sprintf;
- window.vsprintf = vsprintf;
-
- if (typeof define === 'function' && define.amd) {
- define(function () {
- return {
- sprintf: sprintf,
- vsprintf: vsprintf
- };
- });
- }
+ self.postMessage({ id, response });
}
- })(typeof window === 'undefined' ? this : window);
-
-/***/ },
-/* 13 */,
-/* 14 */,
-/* 15 */,
-/* 16 */,
-/* 17 */,
-/* 18 */,
-/* 19 */
-/***/ function(module, exports) {
-
- let msgId = 1;
- function workerTask(worker, method) {
- return function (...args) {
- return new Promise((resolve, reject) => {
- const id = msgId++;
- worker.postMessage({ id, method, args });
-
- const listener = ({ data: result }) => {
- if (result.id !== id) {
- return;
- }
-
- worker.removeEventListener("message", listener);
- if (result.error) {
- reject(result.error);
- } else {
- resolve(result.response);
- }
- };
-
- worker.addEventListener("message", listener);
- });
};
}
module.exports = {
- workerTask
- };
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
- const feature = __webpack_require__(21);
-
- module.exports = feature;
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
- const pick = __webpack_require__(22);
- const put = __webpack_require__(74);
- const fs = __webpack_require__(80);
- const path = __webpack_require__(81);
-
- let config;
-
- const flag = __webpack_require__(83);
-
- /**
- * Gets a config value for a given key
- * e.g "chrome.webSocketPort"
- */
- function getValue(key) {
- return pick(config, key);
- }
-
- function setValue(key, value) {
- return put(config, key, value);
- }
-
- function isEnabled(key) {
- return config.features && typeof config.features[key] == "object" ? config.features[key].enabled : config.features[key];
- }
-
- function isDevelopment() {
- if (isFirefoxPanel()) {
- // Default to production if compiling for the Firefox panel
- return ("production") === "development";
- }
- return ("production") !== "production";
- }
-
- function isTesting() {
- return flag.testing;
- }
-
- function isFirefoxPanel() {
- return ("firefox-panel") == "firefox-panel";
- }
-
- function isApplication() {
- return ("firefox-panel") == "application";
- }
-
- function isFirefox() {
- return (/firefox/i.test(navigator.userAgent)
- );
- }
-
- function setConfig(value) {
- config = value;
- }
-
- function getConfig() {
- return config;
- }
-
- function updateLocalConfig(relativePath) {
- const localConfigPath = path.resolve(relativePath, "../configs/local.json");
- const output = JSON.stringify(config, null, 2);
- fs.writeFileSync(localConfigPath, output, { flag: 'w' });
- return output;
- }
-
- module.exports = {
- isEnabled,
- getValue,
- setValue,
- isDevelopment,
- isTesting,
- isFirefoxPanel,
- isApplication,
- isFirefox,
- getConfig,
- setConfig,
- updateLocalConfig
+ WorkerDispatcher,
+ workerHandler
};
-/***/ },
-/* 22 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseGet = __webpack_require__(23);
-
- /**
- * 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;
- }
-
- module.exports = get;
-
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
- var castPath = __webpack_require__(24),
- toKey = __webpack_require__(73);
-
- /**
- * 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;
- }
-
- module.exports = baseGet;
-
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isArray = __webpack_require__(25),
- isKey = __webpack_require__(26),
- stringToPath = __webpack_require__(35),
- toString = __webpack_require__(70);
-
- /**
- * 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));
- }
-
- module.exports = castPath;
-
-
-/***/ },
-/* 25 */
-/***/ function(module, exports) {
-
- /**
- * 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;
-
- module.exports = isArray;
-
-
-/***/ },
-/* 26 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isArray = __webpack_require__(25),
- isSymbol = __webpack_require__(27);
-
- /** Used to match property names within property paths. */
- var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/;
-
- /**
- * 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));
- }
-
- module.exports = isKey;
-
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseGetTag = __webpack_require__(28),
- isObjectLike = __webpack_require__(34);
-
- /** `Object#toString` result references. */
- var symbolTag = '[object Symbol]';
-
- /**
- * 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);
- }
-
- module.exports = isSymbol;
-
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Symbol = __webpack_require__(29),
- getRawTag = __webpack_require__(32),
- objectToString = __webpack_require__(33);
-
- /** `Object#toString` result references. */
- var nullTag = '[object Null]',
- undefinedTag = '[object Undefined]';
-
- /** Built-in value references. */
- var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
-
- /**
- * 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);
- }
-
- module.exports = baseGetTag;
-
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
- var root = __webpack_require__(30);
-
- /** Built-in value references. */
- var Symbol = root.Symbol;
-
- module.exports = Symbol;
-
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
- var freeGlobal = __webpack_require__(31);
-
- /** 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')();
-
- module.exports = root;
-
-
-/***/ },
-/* 31 */
-/***/ function(module, exports) {
-
- /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
- var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
-
- module.exports = freeGlobal;
-
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
-
-/***/ },
-/* 32 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Symbol = __webpack_require__(29);
-
- /** 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 nativeObjectToString = objectProto.toString;
-
- /** Built-in value references. */
- var symToStringTag = Symbol ? Symbol.toStringTag : 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;
- }
-
- module.exports = getRawTag;
-
-
-/***/ },
-/* 33 */
-/***/ function(module, exports) {
-
- /** 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 nativeObjectToString = objectProto.toString;
-
- /**
- * 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);
- }
-
- module.exports = objectToString;
-
-
-/***/ },
-/* 34 */
-/***/ function(module, exports) {
-
- /**
- * 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';
- }
-
- module.exports = isObjectLike;
-
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
- var memoizeCapped = __webpack_require__(36);
-
- /** Used to match property names within property paths. */
- var reLeadingDot = /^\./,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
-
- /** Used to match backslashes in property paths. */
- var reEscapeChar = /\\(\\)?/g;
-
- /**
- * 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 (reLeadingDot.test(string)) {
- result.push('');
- }
- string.replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
- });
-
- module.exports = stringToPath;
-
-
-/***/ },
-/* 36 */
-/***/ function(module, exports, __webpack_require__) {
-
- var memoize = __webpack_require__(37);
-
- /** Used as the maximum memoize cache size. */
- var MAX_MEMOIZE_SIZE = 500;
-
- /**
- * 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;
- }
-
- module.exports = memoizeCapped;
-
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
- var MapCache = __webpack_require__(38);
-
- /** Error message constants. */
- var FUNC_ERROR_TEXT = 'Expected a function';
-
- /**
- * 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;
-
- module.exports = memoize;
-
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
- var mapCacheClear = __webpack_require__(39),
- mapCacheDelete = __webpack_require__(64),
- mapCacheGet = __webpack_require__(67),
- mapCacheHas = __webpack_require__(68),
- mapCacheSet = __webpack_require__(69);
-
- /**
- * 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]);
- }
- }
-
- // Add methods to `MapCache`.
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype['delete'] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
-
- module.exports = MapCache;
-
-
-/***/ },
-/* 39 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Hash = __webpack_require__(40),
- ListCache = __webpack_require__(55),
- Map = __webpack_require__(63);
-
- /**
- * 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
- };
- }
-
- module.exports = mapCacheClear;
-
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
- var hashClear = __webpack_require__(41),
- hashDelete = __webpack_require__(51),
- hashGet = __webpack_require__(52),
- hashHas = __webpack_require__(53),
- hashSet = __webpack_require__(54);
-
- /**
- * 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]);
- }
- }
-
- // Add methods to `Hash`.
- Hash.prototype.clear = hashClear;
- Hash.prototype['delete'] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
-
- module.exports = Hash;
-
-
-/***/ },
-/* 41 */
-/***/ function(module, exports, __webpack_require__) {
-
- var nativeCreate = __webpack_require__(42);
-
- /**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- this.size = 0;
- }
-
- module.exports = hashClear;
-
-
-/***/ },
-/* 42 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getNative = __webpack_require__(43);
-
- /* Built-in method references that are verified to be native. */
- var nativeCreate = getNative(Object, 'create');
-
- module.exports = nativeCreate;
-
-
-/***/ },
-/* 43 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseIsNative = __webpack_require__(44),
- getValue = __webpack_require__(50);
-
- /**
- * 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;
- }
-
- module.exports = getNative;
-
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isFunction = __webpack_require__(45),
- isMasked = __webpack_require__(47),
- isObject = __webpack_require__(46),
- toSource = __webpack_require__(49);
-
- /**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
- /** Used to detect host constructors (Safari). */
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
- /** 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 detect if a method is native. */
- var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
- );
-
- /**
- * 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));
- }
-
- module.exports = baseIsNative;
-
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseGetTag = __webpack_require__(28),
- isObject = __webpack_require__(46);
-
- /** `Object#toString` result references. */
- var asyncTag = '[object AsyncFunction]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- proxyTag = '[object Proxy]';
-
- /**
- * 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;
- }
-
- module.exports = isFunction;
-
-
-/***/ },
-/* 46 */
-/***/ function(module, exports) {
-
- /**
- * 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');
- }
-
- module.exports = isObject;
-
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
- var coreJsData = __webpack_require__(48);
-
- /** 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) : '';
- }());
-
- /**
- * 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);
- }
-
- module.exports = isMasked;
-
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
- var root = __webpack_require__(30);
-
- /** Used to detect overreaching core-js shims. */
- var coreJsData = root['__core-js_shared__'];
-
- module.exports = coreJsData;
-
-
-/***/ },
-/* 49 */
-/***/ function(module, exports) {
-
- /** Used for built-in method references. */
- var funcProto = Function.prototype;
-
- /** Used to resolve the decompiled source of functions. */
- var funcToString = funcProto.toString;
-
- /**
- * 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 '';
- }
-
- module.exports = toSource;
-
-
-/***/ },
-/* 50 */
-/***/ function(module, exports) {
-
- /**
- * 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];
- }
-
- module.exports = getValue;
-
-
-/***/ },
-/* 51 */
-/***/ function(module, exports) {
-
- /**
- * 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;
- }
-
- module.exports = hashDelete;
-
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
- var nativeCreate = __webpack_require__(42);
-
- /** Used to stand-in for `undefined` hash values. */
- var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
- /** Used for built-in method references. */
- var objectProto = Object.prototype;
-
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
-
- /**
- * 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;
- }
-
- module.exports = hashGet;
-
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
- var nativeCreate = __webpack_require__(42);
-
- /** Used for built-in method references. */
- var objectProto = Object.prototype;
-
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
-
- /**
- * 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);
- }
-
- module.exports = hashHas;
-
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
- var nativeCreate = __webpack_require__(42);
-
- /** Used to stand-in for `undefined` hash values. */
- var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
- /**
- * 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;
- }
-
- module.exports = hashSet;
-
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
- var listCacheClear = __webpack_require__(56),
- listCacheDelete = __webpack_require__(57),
- listCacheGet = __webpack_require__(60),
- listCacheHas = __webpack_require__(61),
- listCacheSet = __webpack_require__(62);
-
- /**
- * 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]);
- }
- }
-
- // Add methods to `ListCache`.
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype['delete'] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
-
- module.exports = ListCache;
-
-
-/***/ },
-/* 56 */
-/***/ function(module, exports) {
-
- /**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
- function listCacheClear() {
- this.__data__ = [];
- this.size = 0;
- }
-
- module.exports = listCacheClear;
-
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
- var assocIndexOf = __webpack_require__(58);
-
- /** Used for built-in method references. */
- var arrayProto = Array.prototype;
-
- /** Built-in value references. */
- var splice = arrayProto.splice;
-
- /**
- * 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;
- }
-
- module.exports = listCacheDelete;
-
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
- var eq = __webpack_require__(59);
-
- /**
- * 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;
- }
-
- module.exports = assocIndexOf;
-
-
-/***/ },
-/* 59 */
-/***/ function(module, exports) {
-
- /**
- * 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);
- }
-
- module.exports = eq;
-
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
- var assocIndexOf = __webpack_require__(58);
-
- /**
- * 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];
- }
-
- module.exports = listCacheGet;
-
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
- var assocIndexOf = __webpack_require__(58);
-
- /**
- * 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;
- }
-
- module.exports = listCacheHas;
-
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
- var assocIndexOf = __webpack_require__(58);
-
- /**
- * 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;
- }
-
- module.exports = listCacheSet;
-
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getNative = __webpack_require__(43),
- root = __webpack_require__(30);
-
- /* Built-in method references that are verified to be native. */
- var Map = getNative(root, 'Map');
-
- module.exports = Map;
-
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getMapData = __webpack_require__(65);
-
- /**
- * 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;
- }
-
- module.exports = mapCacheDelete;
-
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isKeyable = __webpack_require__(66);
-
- /**
- * 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;
- }
-
- module.exports = getMapData;
-
-
-/***/ },
-/* 66 */
-/***/ function(module, exports) {
-
- /**
- * 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);
- }
-
- module.exports = isKeyable;
-
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getMapData = __webpack_require__(65);
-
- /**
- * 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);
- }
-
- module.exports = mapCacheGet;
-
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getMapData = __webpack_require__(65);
-
- /**
- * 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);
- }
-
- module.exports = mapCacheHas;
-
-
-/***/ },
-/* 69 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getMapData = __webpack_require__(65);
-
- /**
- * 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;
- }
-
- module.exports = mapCacheSet;
-
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseToString = __webpack_require__(71);
-
- /**
- * 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);
- }
-
- module.exports = toString;
-
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
- var Symbol = __webpack_require__(29),
- arrayMap = __webpack_require__(72),
- isArray = __webpack_require__(25),
- isSymbol = __webpack_require__(27);
-
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0;
-
- /** Used to convert symbols to primitives and strings. */
- var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
-
- /**
- * 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;
- }
-
- module.exports = baseToString;
-
-
-/***/ },
-/* 72 */
-/***/ function(module, exports) {
-
- /**
- * 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;
- }
-
- module.exports = arrayMap;
-
-
-/***/ },
-/* 73 */
-/***/ function(module, exports, __webpack_require__) {
-
- var isSymbol = __webpack_require__(27);
-
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0;
-
- /**
- * 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;
- }
-
- module.exports = toKey;
-
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseSet = __webpack_require__(75);
-
- /**
- * 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);
- }
-
- module.exports = set;
-
-
-/***/ },
-/* 75 */
-/***/ function(module, exports, __webpack_require__) {
-
- var assignValue = __webpack_require__(76),
- castPath = __webpack_require__(24),
- isIndex = __webpack_require__(79),
- isObject = __webpack_require__(46),
- toKey = __webpack_require__(73);
-
- /**
- * 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;
- }
-
- module.exports = baseSet;
-
-
-/***/ },
-/* 76 */
-/***/ function(module, exports, __webpack_require__) {
-
- var baseAssignValue = __webpack_require__(77),
- eq = __webpack_require__(59);
-
- /** Used for built-in method references. */
- var objectProto = Object.prototype;
-
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
-
- /**
- * 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);
- }
- }
-
- module.exports = assignValue;
-
-
-/***/ },
-/* 77 */
-/***/ function(module, exports, __webpack_require__) {
-
- var defineProperty = __webpack_require__(78);
-
- /**
- * 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;
- }
- }
-
- module.exports = baseAssignValue;
-
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
- var getNative = __webpack_require__(43);
-
- var defineProperty = (function() {
- try {
- var func = getNative(Object, 'defineProperty');
- func({}, '', {});
- return func;
- } catch (e) {}
- }());
-
- module.exports = defineProperty;
-
-
-/***/ },
-/* 79 */
-/***/ function(module, exports) {
-
- /** Used as references for various `Number` constants. */
- var MAX_SAFE_INTEGER = 9007199254740991;
-
- /** Used to detect unsigned integer values. */
- var reIsUint = /^(?:0|[1-9]\d*)$/;
-
- /**
- * 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);
- }
-
- module.exports = isIndex;
-
-
-/***/ },
-/* 80 */
-/***/ function(module, exports) {
-
-
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {// 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.
-
- // resolves . and .. elements in a path array with directory names there
- // must be no slashes, empty elements, or device names (c:\) in the array
- // (so also no leading and trailing slashes - it does not distinguish
- // relative and absolute paths)
- function normalizeArray(parts, allowAboveRoot) {
- // if the path tries to go above the root, `up` ends up > 0
- var up = 0;
- for (var i = parts.length - 1; i >= 0; i--) {
- var last = parts[i];
- if (last === '.') {
- parts.splice(i, 1);
- } else if (last === '..') {
- parts.splice(i, 1);
- up++;
- } else if (up) {
- parts.splice(i, 1);
- up--;
- }
- }
-
- // if the path is allowed to go above the root, restore leading ..s
- if (allowAboveRoot) {
- for (; up--; up) {
- parts.unshift('..');
- }
- }
-
- return parts;
- }
-
- // Split a filename into [root, dir, basename, ext], unix version
- // 'root' is just a slash, or nothing.
- var splitPathRe =
- /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
- var splitPath = function(filename) {
- return splitPathRe.exec(filename).slice(1);
- };
-
- // path.resolve([from ...], to)
- // posix version
- exports.resolve = function() {
- var resolvedPath = '',
- resolvedAbsolute = false;
-
- for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
- var path = (i >= 0) ? arguments[i] : process.cwd();
-
- // Skip empty and invalid entries
- if (typeof path !== 'string') {
- throw new TypeError('Arguments to path.resolve must be strings');
- } else if (!path) {
- continue;
- }
-
- resolvedPath = path + '/' + resolvedPath;
- resolvedAbsolute = path.charAt(0) === '/';
- }
-
- // At this point the path should be resolved to a full absolute path, but
- // handle relative paths to be safe (might happen when process.cwd() fails)
-
- // Normalize the path
- resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
- return !!p;
- }), !resolvedAbsolute).join('/');
-
- return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
- };
-
- // path.normalize(path)
- // posix version
- exports.normalize = function(path) {
- var isAbsolute = exports.isAbsolute(path),
- trailingSlash = substr(path, -1) === '/';
-
- // Normalize the path
- path = normalizeArray(filter(path.split('/'), function(p) {
- return !!p;
- }), !isAbsolute).join('/');
-
- if (!path && !isAbsolute) {
- path = '.';
- }
- if (path && trailingSlash) {
- path += '/';
- }
-
- return (isAbsolute ? '/' : '') + path;
- };
-
- // posix version
- exports.isAbsolute = function(path) {
- return path.charAt(0) === '/';
- };
-
- // posix version
- exports.join = function() {
- var paths = Array.prototype.slice.call(arguments, 0);
- return exports.normalize(filter(paths, function(p, index) {
- if (typeof p !== 'string') {
- throw new TypeError('Arguments to path.join must be strings');
- }
- return p;
- }).join('/'));
- };
-
-
- // path.relative(from, to)
- // posix version
- exports.relative = function(from, to) {
- from = exports.resolve(from).substr(1);
- to = exports.resolve(to).substr(1);
-
- function trim(arr) {
- var start = 0;
- for (; start < arr.length; start++) {
- if (arr[start] !== '') break;
- }
-
- var end = arr.length - 1;
- for (; end >= 0; end--) {
- if (arr[end] !== '') break;
- }
-
- if (start > end) return [];
- return arr.slice(start, end - start + 1);
- }
-
- var fromParts = trim(from.split('/'));
- var toParts = trim(to.split('/'));
-
- var length = Math.min(fromParts.length, toParts.length);
- var samePartsLength = length;
- for (var i = 0; i < length; i++) {
- if (fromParts[i] !== toParts[i]) {
- samePartsLength = i;
- break;
- }
- }
-
- var outputParts = [];
- for (var i = samePartsLength; i < fromParts.length; i++) {
- outputParts.push('..');
- }
-
- outputParts = outputParts.concat(toParts.slice(samePartsLength));
-
- return outputParts.join('/');
- };
-
- exports.sep = '/';
- exports.delimiter = ':';
-
- exports.dirname = function(path) {
- var result = splitPath(path),
- root = result[0],
- dir = result[1];
-
- if (!root && !dir) {
- // No dirname whatsoever
- return '.';
- }
-
- if (dir) {
- // It has a dirname, strip trailing slash
- dir = dir.substr(0, dir.length - 1);
- }
-
- return root + dir;
- };
-
-
- exports.basename = function(path, ext) {
- var f = splitPath(path)[2];
- // TODO: make this comparison case-insensitive on windows?
- if (ext && f.substr(-1 * ext.length) === ext) {
- f = f.substr(0, f.length - ext.length);
- }
- return f;
- };
-
-
- exports.extname = function(path) {
- return splitPath(path)[3];
- };
-
- function filter (xs, f) {
- if (xs.filter) return xs.filter(f);
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- if (f(xs[i], i, xs)) res.push(xs[i]);
- }
- return res;
- }
-
- // String.prototype.substr - negative index don't work in IE8
- var substr = 'ab'.substr(-1) === 'b'
- ? function (str, start, len) { return str.substr(start, len) }
- : function (str, start, len) {
- if (start < 0) start = str.length + start;
- return str.substr(start, len);
- }
- ;
-
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(82)))
-
-/***/ },
-/* 82 */
-/***/ function(module, exports) {
-
- // shim for using process in browser
- var process = module.exports = {};
-
- // cached from whatever global is present so that test runners that stub it
- // don't break things. But we need to wrap it in a try catch in case it is
- // wrapped in strict mode code which doesn't define any globals. It's inside a
- // function because try/catches deoptimize in certain engines.
-
- var cachedSetTimeout;
- var cachedClearTimeout;
-
- function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
- }
- function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
- }
- (function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
- } ())
- function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
-
-
- }
- function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
-
-
-
- }
- var queue = [];
- var draining = false;
- var currentQueue;
- var queueIndex = -1;
-
- function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
- }
-
- function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
- }
-
- process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
- };
-
- // v8 likes predictible objects
- function Item(fun, array) {
- this.fun = fun;
- this.array = array;
- }
- Item.prototype.run = function () {
- this.fun.apply(null, this.array);
- };
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
- process.version = ''; // empty string to avoid regexp issues
- process.versions = {};
-
- function noop() {}
-
- process.on = noop;
- process.addListener = noop;
- process.once = noop;
- process.off = noop;
- process.removeListener = noop;
- process.removeAllListeners = noop;
- process.emit = noop;
-
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- };
-
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
- process.umask = function() { return 0; };
-
-
-/***/ },
-/* 83 */
-/***/ function(module, exports) {
-
- module.exports = __WEBPACK_EXTERNAL_MODULE_83__;
-
/***/ }
/******/ ])
});
;
\ No newline at end of file
--- a/devtools/client/shared/source-map/worker.js
+++ b/devtools/client/shared/source-map/worker.js
@@ -54,40 +54,34 @@ return /******/ (function(modules) { //
/* 0 */
/***/ function(module, exports, __webpack_require__) {
const {
getOriginalURLs,
getGeneratedLocation,
getOriginalLocation,
getOriginalSourceText,
+ hasMappedSource,
applySourceMap,
clearSourceMaps
- } = __webpack_require__(84);
+ } = __webpack_require__(9);
+
+ const { workerUtils: { workerHandler } } = __webpack_require__(6);
// The interface is implemented in source-map to be
// easier to unit test.
- const publicInterface = {
+ self.onmessage = workerHandler({
getOriginalURLs,
getGeneratedLocation,
getOriginalLocation,
getOriginalSourceText,
+ hasMappedSource,
applySourceMap,
clearSourceMaps
- };
-
- self.onmessage = function (msg) {
- const { id, method, args } = msg.data;
- const response = publicInterface[method].apply(undefined, args);
- if (response instanceof Promise) {
- response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
- } else {
- self.postMessage({ id, response });
- }
- };
+ });
/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
const md5 = __webpack_require__(2);
function originalToGeneratedId(originalId) {
@@ -115,231 +109,220 @@ return /******/ (function(modules) { //
let q1 = url.indexOf("?");
let q2 = url.indexOf("&");
let q3 = url.indexOf("#");
let q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length);
return url.slice(0, q);
}
+ // Map suffix to content type.
+ const contentMap = {
+ "js": "text/javascript",
+ "jsm": "text/javascript",
+ "ts": "text/typescript",
+ "tsx": "text/typescript-jsx",
+ "jsx": "text/jsx",
+ "coffee": "text/coffeescript",
+ "elm": "text/elm",
+ "cljs": "text/x-clojure"
+ };
+
/**
- * Returns true if the specified URL and/or content type are specific to
- * JavaScript files.
+ * Returns the content type for the specified URL. If no specific
+ * content type can be determined, "text/plain" is returned.
*
- * @return boolean
- * True if the source is likely JavaScript.
+ * @return String
+ * The content type.
*/
- function isJavaScript(url, contentType = "") {
- return url && /\.(jsm|js)?$/.test(trimUrlQuery(url)) || contentType.includes("javascript");
- }
-
function getContentType(url) {
- if (isJavaScript(url)) {
- return "text/javascript";
- }
-
- if (url.match(/ts$/)) {
- return "text/typescript";
+ url = trimUrlQuery(url);
+ let dot = url.lastIndexOf(".");
+ if (dot >= 0) {
+ let name = url.substring(dot + 1);
+ if (name in contentMap) {
+ return contentMap[name];
+ }
}
-
- if (url.match(/tsx$/)) {
- return "text/typescript-jsx";
- }
-
- if (url.match(/jsx$/)) {
- return "text/jsx";
- }
-
- if (url.match(/coffee$/)) {
- return "text/coffeescript";
- }
-
- if (url.match(/elm$/)) {
- return "text/elm";
- }
-
- if (url.match(/cljs$/)) {
- return "text/x-clojure";
- }
-
return "text/plain";
}
module.exports = {
originalToGeneratedId,
generatedToOriginalId,
isOriginalId,
isGeneratedId,
- getContentType
+ getContentType,
+ contentMapForTesting: contentMap
};
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
- (function(){
- var crypt = __webpack_require__(3),
- utf8 = __webpack_require__(4).utf8,
- isBuffer = __webpack_require__(5),
- bin = __webpack_require__(4).bin,
-
- // The core
- md5 = function (message, options) {
- // Convert to byte array
- if (message.constructor == String)
- if (options && options.encoding === 'binary')
- message = bin.stringToBytes(message);
- else
- message = utf8.stringToBytes(message);
- else if (isBuffer(message))
- message = Array.prototype.slice.call(message, 0);
- else if (!Array.isArray(message))
- message = message.toString();
- // else, assume byte array already
-
- var m = crypt.bytesToWords(message),
- l = message.length * 8,
- a = 1732584193,
- b = -271733879,
- c = -1732584194,
- d = 271733878;
-
- // Swap endian
- for (var i = 0; i < m.length; i++) {
- m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
- ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
- }
-
- // Padding
- m[l >>> 5] |= 0x80 << (l % 32);
- m[(((l + 64) >>> 9) << 4) + 14] = l;
-
- // Method shortcuts
- var FF = md5._ff,
- GG = md5._gg,
- HH = md5._hh,
- II = md5._ii;
-
- for (var i = 0; i < m.length; i += 16) {
-
- var aa = a,
- bb = b,
- cc = c,
- dd = d;
-
- a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
- d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
- c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
- b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
- a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
- d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
- c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
- b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
- a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
- d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
- c = FF(c, d, a, b, m[i+10], 17, -42063);
- b = FF(b, c, d, a, m[i+11], 22, -1990404162);
- a = FF(a, b, c, d, m[i+12], 7, 1804603682);
- d = FF(d, a, b, c, m[i+13], 12, -40341101);
- c = FF(c, d, a, b, m[i+14], 17, -1502002290);
- b = FF(b, c, d, a, m[i+15], 22, 1236535329);
-
- a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
- d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
- c = GG(c, d, a, b, m[i+11], 14, 643717713);
- b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
- a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
- d = GG(d, a, b, c, m[i+10], 9, 38016083);
- c = GG(c, d, a, b, m[i+15], 14, -660478335);
- b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
- a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
- d = GG(d, a, b, c, m[i+14], 9, -1019803690);
- c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
- b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
- a = GG(a, b, c, d, m[i+13], 5, -1444681467);
- d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
- c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
- b = GG(b, c, d, a, m[i+12], 20, -1926607734);
-
- a = HH(a, b, c, d, m[i+ 5], 4, -378558);
- d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
- c = HH(c, d, a, b, m[i+11], 16, 1839030562);
- b = HH(b, c, d, a, m[i+14], 23, -35309556);
- a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
- d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
- c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
- b = HH(b, c, d, a, m[i+10], 23, -1094730640);
- a = HH(a, b, c, d, m[i+13], 4, 681279174);
- d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
- c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
- b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
- a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
- d = HH(d, a, b, c, m[i+12], 11, -421815835);
- c = HH(c, d, a, b, m[i+15], 16, 530742520);
- b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
-
- a = II(a, b, c, d, m[i+ 0], 6, -198630844);
- d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
- c = II(c, d, a, b, m[i+14], 15, -1416354905);
- b = II(b, c, d, a, m[i+ 5], 21, -57434055);
- a = II(a, b, c, d, m[i+12], 6, 1700485571);
- d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
- c = II(c, d, a, b, m[i+10], 15, -1051523);
- b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
- a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
- d = II(d, a, b, c, m[i+15], 10, -30611744);
- c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
- b = II(b, c, d, a, m[i+13], 21, 1309151649);
- a = II(a, b, c, d, m[i+ 4], 6, -145523070);
- d = II(d, a, b, c, m[i+11], 10, -1120210379);
- c = II(c, d, a, b, m[i+ 2], 15, 718787259);
- b = II(b, c, d, a, m[i+ 9], 21, -343485551);
-
- a = (a + aa) >>> 0;
- b = (b + bb) >>> 0;
- c = (c + cc) >>> 0;
- d = (d + dd) >>> 0;
- }
-
- return crypt.endian([a, b, c, d]);
- };
-
- // Auxiliary functions
- md5._ff = function (a, b, c, d, x, s, t) {
- var n = a + (b & c | ~b & d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._gg = function (a, b, c, d, x, s, t) {
- var n = a + (b & d | c & ~d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._hh = function (a, b, c, d, x, s, t) {
- var n = a + (b ^ c ^ d) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
- md5._ii = function (a, b, c, d, x, s, t) {
- var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
- return ((n << s) | (n >>> (32 - s))) + b;
- };
-
- // Package private blocksize
- md5._blocksize = 16;
- md5._digestsize = 16;
-
- module.exports = function (message, options) {
- if (message === undefined || message === null)
- throw new Error('Illegal argument ' + message);
-
- var digestbytes = crypt.wordsToBytes(md5(message, options));
- return options && options.asBytes ? digestbytes :
- options && options.asString ? bin.bytesToString(digestbytes) :
- crypt.bytesToHex(digestbytes);
- };
-
- })();
+ (function(){
+ var crypt = __webpack_require__(3),
+ utf8 = __webpack_require__(4).utf8,
+ isBuffer = __webpack_require__(5),
+ bin = __webpack_require__(4).bin,
+
+ // The core
+ md5 = function (message, options) {
+ // Convert to byte array
+ if (message.constructor == String)
+ if (options && options.encoding === 'binary')
+ message = bin.stringToBytes(message);
+ else
+ message = utf8.stringToBytes(message);
+ else if (isBuffer(message))
+ message = Array.prototype.slice.call(message, 0);
+ else if (!Array.isArray(message))
+ message = message.toString();
+ // else, assume byte array already
+
+ var m = crypt.bytesToWords(message),
+ l = message.length * 8,
+ a = 1732584193,
+ b = -271733879,
+ c = -1732584194,
+ d = 271733878;
+
+ // Swap endian
+ for (var i = 0; i < m.length; i++) {
+ m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
+ ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
+ }
+
+ // Padding
+ m[l >>> 5] |= 0x80 << (l % 32);
+ m[(((l + 64) >>> 9) << 4) + 14] = l;
+
+ // Method shortcuts
+ var FF = md5._ff,
+ GG = md5._gg,
+ HH = md5._hh,
+ II = md5._ii;
+
+ for (var i = 0; i < m.length; i += 16) {
+
+ var aa = a,
+ bb = b,
+ cc = c,
+ dd = d;
+
+ a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
+ d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
+ c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
+ b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
+ a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
+ d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
+ c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
+ b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
+ a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
+ d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
+ c = FF(c, d, a, b, m[i+10], 17, -42063);
+ b = FF(b, c, d, a, m[i+11], 22, -1990404162);
+ a = FF(a, b, c, d, m[i+12], 7, 1804603682);
+ d = FF(d, a, b, c, m[i+13], 12, -40341101);
+ c = FF(c, d, a, b, m[i+14], 17, -1502002290);
+ b = FF(b, c, d, a, m[i+15], 22, 1236535329);
+
+ a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
+ d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
+ c = GG(c, d, a, b, m[i+11], 14, 643717713);
+ b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
+ a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
+ d = GG(d, a, b, c, m[i+10], 9, 38016083);
+ c = GG(c, d, a, b, m[i+15], 14, -660478335);
+ b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
+ a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
+ d = GG(d, a, b, c, m[i+14], 9, -1019803690);
+ c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
+ b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
+ a = GG(a, b, c, d, m[i+13], 5, -1444681467);
+ d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
+ c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
+ b = GG(b, c, d, a, m[i+12], 20, -1926607734);
+
+ a = HH(a, b, c, d, m[i+ 5], 4, -378558);
+ d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
+ c = HH(c, d, a, b, m[i+11], 16, 1839030562);
+ b = HH(b, c, d, a, m[i+14], 23, -35309556);
+ a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
+ d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
+ c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
+ b = HH(b, c, d, a, m[i+10], 23, -1094730640);
+ a = HH(a, b, c, d, m[i+13], 4, 681279174);
+ d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
+ c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
+ b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
+ a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
+ d = HH(d, a, b, c, m[i+12], 11, -421815835);
+ c = HH(c, d, a, b, m[i+15], 16, 530742520);
+ b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
+
+ a = II(a, b, c, d, m[i+ 0], 6, -198630844);
+ d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
+ c = II(c, d, a, b, m[i+14], 15, -1416354905);
+ b = II(b, c, d, a, m[i+ 5], 21, -57434055);
+ a = II(a, b, c, d, m[i+12], 6, 1700485571);
+ d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
+ c = II(c, d, a, b, m[i+10], 15, -1051523);
+ b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
+ a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
+ d = II(d, a, b, c, m[i+15], 10, -30611744);
+ c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
+ b = II(b, c, d, a, m[i+13], 21, 1309151649);
+ a = II(a, b, c, d, m[i+ 4], 6, -145523070);
+ d = II(d, a, b, c, m[i+11], 10, -1120210379);
+ c = II(c, d, a, b, m[i+ 2], 15, 718787259);
+ b = II(b, c, d, a, m[i+ 9], 21, -343485551);
+
+ a = (a + aa) >>> 0;
+ b = (b + bb) >>> 0;
+ c = (c + cc) >>> 0;
+ d = (d + dd) >>> 0;
+ }
+
+ return crypt.endian([a, b, c, d]);
+ };
+
+ // Auxiliary functions
+ md5._ff = function (a, b, c, d, x, s, t) {
+ var n = a + (b & c | ~b & d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._gg = function (a, b, c, d, x, s, t) {
+ var n = a + (b & d | c & ~d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._hh = function (a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._ii = function (a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+
+ // Package private blocksize
+ md5._blocksize = 16;
+ md5._digestsize = 16;
+
+ module.exports = function (message, options) {
+ if (message === undefined || message === null)
+ throw new Error('Illegal argument ' + message);
+
+ var digestbytes = crypt.wordsToBytes(md5(message, options));
+ return options && options.asBytes ? digestbytes :
+ options && options.asString ? bin.bytesToString(digestbytes) :
+ crypt.bytesToHex(digestbytes);
+ };
+
+ })();
/***/ },
/* 3 */
/***/ function(module, exports) {
(function() {
var base64map
@@ -501,95 +484,133 @@ return /******/ (function(modules) { //
// For Node v0.10 support. Remove this eventually.
function isSlowBuffer (obj) {
return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
}
/***/ },
-/* 6 */,
-/* 7 */,
-/* 8 */,
-/* 9 */,
-/* 10 */,
-/* 11 */,
-/* 12 */,
-/* 13 */,
-/* 14 */,
-/* 15 */,
-/* 16 */,
-/* 17 */,
-/* 18 */,
-/* 19 */,
-/* 20 */,
-/* 21 */,
-/* 22 */,
-/* 23 */,
-/* 24 */,
-/* 25 */,
-/* 26 */,
-/* 27 */,
-/* 28 */,
-/* 29 */,
-/* 30 */,
-/* 31 */,
-/* 32 */,
-/* 33 */,
-/* 34 */,
-/* 35 */,
-/* 36 */,
-/* 37 */,
-/* 38 */,
-/* 39 */,
-/* 40 */,
-/* 41 */,
-/* 42 */,
-/* 43 */,
-/* 44 */,
-/* 45 */,
-/* 46 */,
-/* 47 */,
-/* 48 */,
-/* 49 */,
-/* 50 */,
-/* 51 */,
-/* 52 */,
-/* 53 */,
-/* 54 */,
-/* 55 */,
-/* 56 */,
-/* 57 */,
-/* 58 */,
-/* 59 */,
-/* 60 */,
-/* 61 */,
-/* 62 */,
-/* 63 */,
-/* 64 */,
-/* 65 */,
-/* 66 */,
-/* 67 */,
-/* 68 */,
-/* 69 */,
-/* 70 */,
-/* 71 */,
-/* 72 */,
-/* 73 */,
-/* 74 */,
-/* 75 */,
-/* 76 */,
-/* 77 */,
-/* 78 */,
-/* 79 */,
-/* 80 */,
-/* 81 */,
-/* 82 */,
-/* 83 */,
-/* 84 */
+/* 6 */
+/***/ function(module, exports, __webpack_require__) {
+
+ const networkRequest = __webpack_require__(7);
+ const workerUtils = __webpack_require__(8);
+
+ module.exports = {
+ networkRequest,
+ workerUtils
+ };
+
+/***/ },
+/* 7 */
+/***/ function(module, exports) {
+
+ function networkRequest(url, opts) {
+ return new Promise((resolve, reject) => {
+ const req = new XMLHttpRequest();
+
+ req.addEventListener("readystatechange", () => {
+ if (req.readyState === XMLHttpRequest.DONE) {
+ if (req.status === 200) {
+ resolve({ content: req.responseText });
+ } else {
+ resolve(req.statusText);
+ }
+ }
+ });
+
+ // Not working yet.
+ // if (!opts.loadFromCache) {
+ // req.channel.loadFlags = (
+ // Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE |
+ // Components.interfaces.nsIRequest.INHIBIT_CACHING |
+ // Components.interfaces.nsIRequest.LOAD_ANONYMOUS
+ // );
+ // }
+
+ req.open("GET", url);
+ req.send();
+ });
+ }
+
+ module.exports = networkRequest;
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
+
+
+ function WorkerDispatcher() {
+ this.msgId = 1;
+ this.worker = null;
+ }
+
+ WorkerDispatcher.prototype = {
+ start(url) {
+ this.worker = new Worker(url);
+ this.worker.onerror = () => {
+ console.error(`Error in worker ${url}`);
+ };
+ },
+
+ stop() {
+ if (!this.worker) {
+ return;
+ }
+
+ this.worker.terminate();
+ this.worker = null;
+ },
+
+ task(method) {
+ return (...args) => {
+ return new Promise((resolve, reject) => {
+ const id = this.msgId++;
+ this.worker.postMessage({ id, method, args });
+
+ const listener = ({ data: result }) => {
+ if (result.id !== id) {
+ return;
+ }
+
+ this.worker.removeEventListener("message", listener);
+ if (result.error) {
+ reject(result.error);
+ } else {
+ resolve(result.response);
+ }
+ };
+
+ this.worker.addEventListener("message", listener);
+ });
+ };
+ }
+ };
+
+ function workerHandler(publicInterface) {
+ return function workerHandler(msg) {
+ const { id, method, args } = msg.data;
+ const response = publicInterface[method].apply(undefined, args);
+ if (response instanceof Promise) {
+ response.then(val => self.postMessage({ id, response: val }), err => self.postMessage({ id, error: err }));
+ } else {
+ self.postMessage({ id, response });
+ }
+ };
+ }
+
+ module.exports = {
+ WorkerDispatcher,
+ workerHandler
+ };
+
+/***/ },
+/* 9 */
/***/ function(module, exports, __webpack_require__) {
let _resolveAndFetch = (() => {
var _ref = _asyncToGenerator(function* (generatedSource) {
// Fetch the sourcemap over the network and create it.
const sourceMapURL = _resolveSourceMapURL(generatedSource);
const fetched = yield networkRequest(sourceMapURL, { loadFromCache: false });
@@ -665,16 +686,17 @@ return /******/ (function(modules) { //
if (url == null) {
// No url means the location didn't map.
return location;
}
return {
sourceId: generatedToOriginalId(location.sourceId, url),
+ sourceUrl: url,
line,
column
};
});
return function getOriginalLocation(_x5) {
return _ref4.apply(this, arguments);
};
@@ -701,29 +723,44 @@ return /******/ (function(modules) { //
};
});
return function getOriginalSourceText(_x6) {
return _ref5.apply(this, arguments);
};
})();
+ let hasMappedSource = (() => {
+ var _ref6 = _asyncToGenerator(function* (location) {
+ if (isOriginalId(location.sourceId)) {
+ return true;
+ }
+
+ const loc = yield getOriginalLocation(location);
+ return loc.sourceId !== location.sourceId;
+ });
+
+ return function hasMappedSource(_x7) {
+ return _ref6.apply(this, arguments);
+ };
+ })();
+
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
/**
* Source Map Worker
* @module utils/source-map-worker
*/
- const networkRequest = __webpack_require__(85);
-
- const { parse } = __webpack_require__(86);
- const path = __webpack_require__(93);
- const { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(94);
- const assert = __webpack_require__(105);
+ const { networkRequest } = __webpack_require__(6);
+
+ const { parse } = __webpack_require__(10);
+ const path = __webpack_require__(17);
+ const { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(18);
+ const assert = __webpack_require__(29);
const {
originalToGeneratedId,
generatedToOriginalId,
isGeneratedId,
isOriginalId,
getContentType
} = __webpack_require__(1);
@@ -808,55 +845,22 @@ return /******/ (function(modules) { //
}
module.exports = {
getOriginalURLs,
getGeneratedLocation,
getOriginalLocation,
getOriginalSourceText,
applySourceMap,
- clearSourceMaps
+ clearSourceMaps,
+ hasMappedSource
};
/***/ },
-/* 85 */
-/***/ function(module, exports) {
-
- function networkRequest(url, opts) {
- return new Promise((resolve, reject) => {
- const req = new XMLHttpRequest();
-
- req.addEventListener("readystatechange", () => {
- if (req.readyState === XMLHttpRequest.DONE) {
- if (req.status === 200) {
- resolve({ content: req.responseText });
- } else {
- resolve(req.statusText);
- }
- }
- });
-
- // Not working yet.
- // if (!opts.loadFromCache) {
- // req.channel.loadFlags = (
- // Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE |
- // Components.interfaces.nsIRequest.INHIBIT_CACHING |
- // Components.interfaces.nsIRequest.LOAD_ANONYMOUS
- // );
- // }
-
- req.open("GET", url);
- req.send();
- });
- }
-
- module.exports = networkRequest;
-
-/***/ },
-/* 86 */
+/* 10 */
/***/ function(module, exports, __webpack_require__) {
// 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,
@@ -872,18 +876,18 @@ return /******/ (function(modules) { //
// 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.
'use strict';
- var punycode = __webpack_require__(87);
- var util = __webpack_require__(89);
+ var punycode = __webpack_require__(11);
+ var util = __webpack_require__(13);
exports.parse = urlParse;
exports.resolve = urlResolve;
exports.resolveObject = urlResolveObject;
exports.format = urlFormat;
exports.Url = Url;
@@ -948,17 +952,17 @@ return /******/ (function(modules) { //
'gopher': true,
'file': true,
'http:': true,
'https:': true,
'ftp:': true,
'gopher:': true,
'file:': true
},
- querystring = __webpack_require__(90);
+ querystring = __webpack_require__(14);
function urlParse(url, parseQueryString, slashesDenoteHost) {
if (url && util.isObject(url) && url instanceof Url) return url;
var u = new Url;
u.parse(url, parseQueryString, slashesDenoteHost);
return u;
}
@@ -1584,17 +1588,17 @@ return /******/ (function(modules) { //
}
host = host.substr(0, host.length - port.length);
}
if (host) this.hostname = host;
};
/***/ },
-/* 87 */
+/* 11 */
/***/ function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/punycode v1.3.2 by @mathias */
;(function(root) {
/** Detect free variables */
var freeExports = typeof exports == 'object' && exports &&
!exports.nodeType && exports;
@@ -2116,36 +2120,36 @@ return /******/ (function(modules) { //
}
}
} else { // in Rhino or a web browser
root.punycode = punycode;
}
}(this));
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(88)(module), (function() { return this; }())))
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12)(module), (function() { return this; }())))
/***/ },
-/* 88 */
+/* 12 */
/***/ function(module, exports) {
- module.exports = function(module) {
- if(!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- module.children = [];
- module.webpackPolyfill = 1;
- }
- return module;
- }
+ module.exports = function(module) {
+ if(!module.webpackPolyfill) {
+ module.deprecate = function() {};
+ module.paths = [];
+ // module.parent = undefined by default
+ module.children = [];
+ module.webpackPolyfill = 1;
+ }
+ return module;
+ }
/***/ },
-/* 89 */
+/* 13 */
/***/ function(module, exports) {
'use strict';
module.exports = {
isString: function(arg) {
return typeof(arg) === 'string';
},
@@ -2157,27 +2161,27 @@ return /******/ (function(modules) { //
},
isNullOrUndefined: function(arg) {
return arg == null;
}
};
/***/ },
-/* 90 */
+/* 14 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
- exports.decode = exports.parse = __webpack_require__(91);
- exports.encode = exports.stringify = __webpack_require__(92);
+ exports.decode = exports.parse = __webpack_require__(15);
+ exports.encode = exports.stringify = __webpack_require__(16);
/***/ },
-/* 91 */
+/* 15 */
/***/ 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,
@@ -2253,17 +2257,17 @@ return /******/ (function(modules) { //
}
}
return obj;
};
/***/ },
-/* 92 */
+/* 16 */
/***/ 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,
@@ -2323,17 +2327,17 @@ return /******/ (function(modules) { //
if (!name) return '';
return encodeURIComponent(stringifyPrimitive(name)) + eq +
encodeURIComponent(stringifyPrimitive(obj));
};
/***/ },
-/* 93 */
+/* 17 */
/***/ function(module, exports) {
function basename(path) {
return path.split("/").pop();
}
function dirname(path) {
const idx = path.lastIndexOf("/");
@@ -2352,44 +2356,44 @@ return /******/ (function(modules) { //
return `${base}/${dir}`;
}
module.exports = {
basename, dirname, isURL, isAbsolute, join
};
/***/ },
-/* 94 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
/*
* Copyright 2009-2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE.txt or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- exports.SourceMapGenerator = __webpack_require__(95).SourceMapGenerator;
- exports.SourceMapConsumer = __webpack_require__(101).SourceMapConsumer;
- exports.SourceNode = __webpack_require__(104).SourceNode;
+ exports.SourceMapGenerator = __webpack_require__(19).SourceMapGenerator;
+ exports.SourceMapConsumer = __webpack_require__(25).SourceMapConsumer;
+ exports.SourceNode = __webpack_require__(28).SourceNode;
/***/ },
-/* 95 */
+/* 19 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- var base64VLQ = __webpack_require__(96);
- var util = __webpack_require__(98);
- var ArraySet = __webpack_require__(99).ArraySet;
- var MappingList = __webpack_require__(100).MappingList;
+ var base64VLQ = __webpack_require__(20);
+ var util = __webpack_require__(22);
+ var ArraySet = __webpack_require__(23).ArraySet;
+ var MappingList = __webpack_require__(24).MappingList;
/**
* An instance of the SourceMapGenerator represents a source map which is
* being built incrementally. You may pass an object with the following
* properties:
*
* - file: The filename of the generated source.
* - sourceRoot: A root for all relative URLs in this source map.
@@ -2776,17 +2780,17 @@ return /******/ (function(modules) { //
function SourceMapGenerator_toString() {
return JSON.stringify(this.toJSON());
};
exports.SourceMapGenerator = SourceMapGenerator;
/***/ },
-/* 96 */
+/* 20 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*
@@ -2816,17 +2820,17 @@ return /******/ (function(modules) { //
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
- var base64 = __webpack_require__(97);
+ var base64 = __webpack_require__(21);
// A single base 64 digit can contain 6 bits of data. For the base 64 variable
// length quantities we use in the source map spec, the first bit is the sign,
// the next four bits are the actual value, and the 6th bit is the
// continuation bit. The continuation bit tells us whether there are more
// digits in this value following this digit.
//
// Continuation
@@ -2922,17 +2926,17 @@ return /******/ (function(modules) { //
} while (continuation);
aOutParam.value = fromVLQSigned(result);
aOutParam.rest = aIndex;
};
/***/ },
-/* 97 */
+/* 21 */
/***/ function(module, exports) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
@@ -2995,17 +2999,17 @@ return /******/ (function(modules) { //
}
// Invalid base64 digit.
return -1;
};
/***/ },
-/* 98 */
+/* 22 */
/***/ function(module, exports) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
@@ -3418,27 +3422,27 @@ return /******/ (function(modules) { //
}
return strcmp(mappingA.name, mappingB.name);
}
exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
/***/ },
-/* 99 */
+/* 23 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- var util = __webpack_require__(98);
+ var util = __webpack_require__(22);
var has = Object.prototype.hasOwnProperty;
/**
* A data structure which is a combination of an array and a set. Adding a new
* member is O(1), testing for membership is O(1), and finding the index of an
* element is O(1). Removing elements from the set is not supported. Only
* strings are supported for membership.
*/
@@ -3528,27 +3532,27 @@ return /******/ (function(modules) { //
ArraySet.prototype.toArray = function ArraySet_toArray() {
return this._array.slice();
};
exports.ArraySet = ArraySet;
/***/ },
-/* 100 */
+/* 24 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2014 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- var util = __webpack_require__(98);
+ var util = __webpack_require__(22);
/**
* Determine whether mappingB is after mappingA with respect to generated
* position.
*/
function generatedPositionAfter(mappingA, mappingB) {
// Optimized for most common case
var lineA = mappingA.generatedLine;
@@ -3613,31 +3617,31 @@ return /******/ (function(modules) { //
}
return this._array;
};
exports.MappingList = MappingList;
/***/ },
-/* 101 */
+/* 25 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- var util = __webpack_require__(98);
- var binarySearch = __webpack_require__(102);
- var ArraySet = __webpack_require__(99).ArraySet;
- var base64VLQ = __webpack_require__(96);
- var quickSort = __webpack_require__(103).quickSort;
+ var util = __webpack_require__(22);
+ var binarySearch = __webpack_require__(26);
+ var ArraySet = __webpack_require__(23).ArraySet;
+ var base64VLQ = __webpack_require__(20);
+ var quickSort = __webpack_require__(27).quickSort;
function SourceMapConsumer(aSourceMap) {
var sourceMap = aSourceMap;
if (typeof aSourceMap === 'string') {
sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
}
return sourceMap.sections != null
@@ -4701,17 +4705,17 @@ return /******/ (function(modules) { //
quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
quickSort(this.__originalMappings, util.compareByOriginalPositions);
};
exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
/***/ },
-/* 102 */
+/* 26 */
/***/ function(module, exports) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
@@ -4818,17 +4822,17 @@ return /******/ (function(modules) { //
--index;
}
return index;
};
/***/ },
-/* 103 */
+/* 27 */
/***/ function(module, exports) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
@@ -4938,28 +4942,28 @@ return /******/ (function(modules) { //
* Function to use to compare two items.
*/
exports.quickSort = function (ary, comparator) {
doQuickSort(ary, comparator, 0, ary.length - 1);
};
/***/ },
-/* 104 */
+/* 28 */
/***/ function(module, exports, __webpack_require__) {
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
- var SourceMapGenerator = __webpack_require__(95).SourceMapGenerator;
- var util = __webpack_require__(98);
+ var SourceMapGenerator = __webpack_require__(19).SourceMapGenerator;
+ var util = __webpack_require__(22);
// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
// operating systems these days (capturing the result).
var REGEX_NEWLINE = /(\r?\n)/;
// Newline character code for charCodeAt() comparisons
var NEWLINE_CODE = 10;
@@ -5351,17 +5355,17 @@ return /******/ (function(modules) { //
return { code: generated.code, map: map };
};
exports.SourceNode = SourceNode;
/***/ },
-/* 105 */
+/* 29 */
/***/ function(module, exports) {
function assert(condition, message) {
if (!condition) {
throw new Error(`Assertion failure: ${message}`);
}
}