{"version":3,"file":"main.js","sources":["../node_modules/source-map/lib/base64.js","../node_modules/source-map/lib/base64-vlq.js","../node_modules/source-map/lib/util.js","../node_modules/source-map/lib/array-set.js","../node_modules/source-map/lib/mapping-list.js","../node_modules/source-map/lib/source-map-generator.js","../node_modules/source-map/lib/binary-search.js","../node_modules/source-map/lib/quick-sort.js","../node_modules/source-map/lib/source-map-consumer.js","../node_modules/source-map/lib/source-node.js","../node_modules/source-map/source-map.js","../src/modules/errorMapping.js","../src/modules/util.ts","../src/modules/harvester.ts","../src/modules/builder.ts","../src/modules/upgrader.ts","../src/modules/setting.ts","../src/modules/spawnCreep.ts","../src/main.ts"],"sourcesContent":["/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","/**\r\n * 校正异常的堆栈信息\r\n * \r\n * 由于 rollup 会打包所有代码到一个文件,所以异常的调用栈定位和源码的位置是不同的\r\n * 本模块就是用来将异常的调用栈映射至源代码位置\r\n * \r\n * @see https://github.com/screepers/screeps-typescript-starter/blob/master/src/utils/ErrorMapper.ts\r\n */\r\n\r\nimport { SourceMapConsumer } from 'source-map'\r\n\r\n// 缓存 SourceMap\r\nlet consumer = null\r\n\r\n// 第一次报错时创建 sourceMap\r\nconst getConsumer = function () {\r\n if (consumer == null) consumer = new SourceMapConsumer(require(\"main.js.map\"))\r\n return consumer\r\n}\r\n\r\n// 缓存映射关系以提高性能\r\nconst cache = {}\r\n\r\n/**\r\n * 使用源映射生成堆栈跟踪,并生成原始标志位\r\n * 警告 - global 重置之后的首次调用会产生很高的 cpu 消耗 (> 30 CPU)\r\n * 之后的每次调用会产生较低的 cpu 消耗 (~ 0.1 CPU / 次)\r\n *\r\n * @param {Error | string} error 错误或原始追踪栈\r\n * @returns {string} 映射之后的源代码追踪栈\r\n */\r\nconst sourceMappedStackTrace = function (error) {\r\n const stack = error instanceof Error ? error.stack : error\r\n // 有缓存直接用\r\n if (cache.hasOwnProperty(stack)) return cache[stack]\r\n\r\n const re = /^\\s+at\\s+(.+?\\s+)?\\(?([0-z._\\-\\\\\\/]+):(\\d+):(\\d+)\\)?$/gm\r\n let match\r\n let outStack = error.toString()\r\n console.log(\"ErrorMapper -> sourceMappedStackTrace -> outStack\", outStack)\r\n\r\n while ((match = re.exec(stack))) {\r\n // 解析完成\r\n if (match[2] !== \"main\") break\r\n \r\n // 获取追踪定位\r\n const pos = getConsumer().originalPositionFor({\r\n column: parseInt(match[4], 10),\r\n line: parseInt(match[3], 10)\r\n })\r\n\r\n // 无法定位\r\n if (!pos.line) break\r\n \r\n // 解析追踪栈\r\n if (pos.name) outStack += `\\n at ${pos.name} (${pos.source}:${pos.line}:${pos.column})`\r\n else {\r\n // 源文件没找到对应文件名,采用原始追踪名\r\n if (match[1]) outStack += `\\n at ${match[1]} (${pos.source}:${pos.line}:${pos.column})`\r\n // 源文件没找到对应文件名并且原始追踪栈里也没有,直接省略\r\n else outStack += `\\n at ${pos.source}:${pos.line}:${pos.column}`\r\n }\r\n }\r\n\r\n cache[stack] = outStack\r\n return outStack\r\n}\r\n\r\n/**\r\n * 错误追踪包装器\r\n * 用于把报错信息通过 source-map 解析成源代码的错误位置\r\n * 和原本 wrapLoop 的区别是,wrapLoop 会返回一个新函数,而这个会直接执行\r\n * \r\n * @param next 玩家代码\r\n */\r\nexport const errorMapper = function (next) {\r\n return () => {\r\n try {\r\n // 执行玩家代码\r\n next()\r\n }\r\n catch (e) {\r\n if (e instanceof Error) {\r\n // 渲染报错调用栈,沙盒模式用不了这个\r\n const errorMessage = Game.rooms.sim ?\r\n `沙盒模式无法使用 source-map - 显示原始追踪栈
${_.escape(e.stack)}` :\r\n `${_.escape(sourceMappedStackTrace(e))}`\r\n \r\n console.log(`${errorMessage}`)\r\n }\r\n // 处理不了,直接抛出\r\n else throw e\r\n }\r\n }\r\n}\r\n","export function FindCapacity(creep: Creep) {\r\n return creep.room.find(FIND_STRUCTURES, {\r\n filter: (structure: StructureSpawn | StructureExtension) => {\r\n let type = structure.structureType;\r\n return (\r\n (type == STRUCTURE_EXTENSION ||\r\n type == STRUCTURE_SPAWN) &&\r\n structure.store.getFreeCapacity() != null && structure.store.getFreeCapacity() as number > 0\r\n )\r\n }\r\n })\r\n}","import { FindCapacity } from \"./util\"\r\n\r\nexport function Harvest(creep: Creep) {\r\n if (creep.store.getFreeCapacity() > 0) {\r\n let sources: Source[] = creep.room.find(FIND_SOURCES);\r\n if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(sources[0], { visualizePathStyle: { stroke: \"#ffaa00\" } });\r\n }\r\n } else {\r\n let targets = FindCapacity(creep);\r\n if (targets.length > 0) {\r\n if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE){\r\n creep.moveTo(targets[0], { visualizePathStyle: { stroke: \"#ffffff\" } });\r\n }\r\n }\r\n }\r\n}","import { FindCapacity } from \"./util\";\r\n\r\nexport function Build(creep: Creep) {\r\n if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {\r\n creep.memory.working = false;\r\n creep.say(\"harvest\")\r\n }\r\n if (!creep.memory.working && creep.store.getFreeCapacity(RESOURCE_ENERGY) == 0) {\r\n creep.memory.working = true\r\n creep.say(\"builder\")\r\n }\r\n if (creep.memory.working) {\r\n let target = creep.room.find(FIND_CONSTRUCTION_SITES);\r\n if (target.length > 0) {\r\n if (creep.build(target[0]) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(target[0], { visualizePathStyle: { stroke: \"#ffaa00\" } });\r\n }\r\n } else {\r\n let targets = FindCapacity(creep);\r\n if (targets.length > 0) {\r\n target.sort();\r\n if (creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(targets[0], { visualizePathStyle: { stroke: \"#ffaa00\" } });\r\n }\r\n }\r\n }\r\n } else {\r\n creep.memory.working = false\r\n let sources = creep.room.find(FIND_SOURCES);\r\n if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(sources[0], { visualizePathStyle: { stroke: \"#ffaa00\" } });\r\n }\r\n }\r\n}","/**@param {Creep} creep */\r\nexport function Upgrade(creep: Creep) {\r\n if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {\r\n creep.memory.working = false;\r\n creep.say('🔄 harvest');\r\n }\r\n if (!creep.memory.working && creep.store.getFreeCapacity() == 0) {\r\n creep.memory.working = true;\r\n creep.say('⚡ upgrade');\r\n }\r\n\r\n if (creep.memory.working) {\r\n if (creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(creep.room.controller, { visualizePathStyle: { stroke: '#ffffff' } });\r\n }\r\n }\r\n else {\r\n var sources = creep.room.find(FIND_SOURCES);\r\n if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {\r\n creep.moveTo(sources[0], { visualizePathStyle: { stroke: '#ffaa00' } });\r\n }\r\n }\r\n}","let HARVESTER_COUNT: number = 2;\r\nlet BUILDER_COUNT: number = 2;\r\nlet UPGRADER_COUNT: number = 6;\r\nexport {\r\n HARVESTER_COUNT,\r\n BUILDER_COUNT,\r\n UPGRADER_COUNT\r\n}\r\n\r\n","import \"./setting\";\r\nimport { BUILDER_COUNT, HARVESTER_COUNT, UPGRADER_COUNT } from \"./setting\";\r\n\r\nvar createDefaultHarvester = (spawn: StructureSpawn) => {\r\n let name = \"Harvester\" + Game.time;\r\n return spawn.spawnCreep([WORK, CARRY, MOVE], name, {\r\n memory: {\r\n role: \"Harvester\",\r\n working: false\r\n }\r\n });\r\n}\r\nvar createDefaultBuilder = (spawn: StructureSpawn) => {\r\n let name = \"Builder\" + Game.time;\r\n return spawn.spawnCreep([WORK, CARRY, MOVE], name, {\r\n memory: {\r\n role: \"Builder\",\r\n working: false\r\n }\r\n });\r\n}\r\n\r\nvar createDefaultUpgrader = (spawn: StructureSpawn) => {\r\n let name = \"Upgrader\" + Game.time;\r\n return spawn.spawnCreep([WORK, CARRY, MOVE], name, {\r\n memory: {\r\n role: \"Upgrader\",\r\n working: false\r\n }\r\n });\r\n}\r\n\r\nexport function SpawnCreep(spawn: StructureSpawn) {\r\n if (spawn.spawning) return;\r\n\r\n\r\n let harvesters = _.filter(Game.creeps,\r\n /**@param {Creep} creep*/\r\n (creep) => {\r\n return creep.memory.role == \"Harvester\";\r\n });\r\n let builders = _.filter(Game.creeps,\r\n /**@param {Creep} creep*/\r\n (creep) => {\r\n return creep.memory.role == \"Builder\";\r\n });\r\n let upgraders = _.filter(Game.creeps,\r\n /**@param {Creep} creep*/\r\n (creep) => {\r\n return creep.memory.role == \"Upgrader\";\r\n });\r\n if (harvesters.length < HARVESTER_COUNT) {\r\n if (createDefaultHarvester(spawn) == 0) {\r\n console.log(\"Spawn Harvester\")\r\n }\r\n }\r\n if (upgraders.length < UPGRADER_COUNT) {\r\n if (createDefaultUpgrader(spawn) == 0) {\r\n console.log(\"Spawn Upgrader\")\r\n }\r\n }\r\n if (builders.length < BUILDER_COUNT) {\r\n if (createDefaultBuilder(spawn) == 0) {\r\n console.log(\"Spawn Builder\")\r\n }\r\n }\r\n\r\n if (spawn.spawning) {\r\n var spawningCreep = Game.creeps[spawn.spawning.name];\r\n spawn.room.visual.text(\r\n '🛠️' + spawningCreep.memory.role,\r\n spawn.pos.x + 1,\r\n spawn.pos.y,\r\n { align: 'left', opacity: 0.8 });\r\n }\r\n}","import { errorMapper } from \"./modules/errorMapping\";\r\nimport { Harvest } from \"./modules/harvester\";\r\nimport { Build } from \"./modules/builder\";\r\nimport { Upgrade } from \"./modules/upgrader\";\r\nimport { SpawnCreep } from \"./modules/spawnCreep\";\r\nexport const loop = errorMapper(() => {\r\n let mainSpawn = Game.spawns[\"Spawn1\"];\r\n SpawnCreep(mainSpawn);\r\n for (var name in Memory.creeps) {\r\n if (!Game.creeps[name]) {\r\n delete Memory.creeps[name];\r\n console.log(\"clearing non-existing creep memory:\", name);\r\n }\r\n }\r\n\r\n for (var name in Game.creeps) {\r\n let creep = Game.creeps[name];\r\n if (creep.memory.role == \"Harvester\") {\r\n Harvest(creep);\r\n } else if (creep.memory.role == \"Upgrader\") {\r\n Upgrade(creep);\r\n } else if (creep.memory.role == \"Builder\") {\r\n Build(creep);\r\n }\r\n }\r\n})"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","SourceMapConsumer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}