progress on migrating to heex templates and font-icons
This commit is contained in:
parent
d43daafdb7
commit
3eff955672
21793 changed files with 2161968 additions and 16895 deletions
assets_old/node_modules/source-map-resolve
22
assets_old/node_modules/source-map-resolve/LICENSE
generated
vendored
Normal file
22
assets_old/node_modules/source-map-resolve/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019 Simon Lydell
|
||||
Copyright (c) 2019 ZHAO Jinxiang
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
108
assets_old/node_modules/source-map-resolve/changelog.md
generated
vendored
Normal file
108
assets_old/node_modules/source-map-resolve/changelog.md
generated
vendored
Normal file
|
@ -0,0 +1,108 @@
|
|||
### Version 0.5.3 (2019-12-28) ###
|
||||
|
||||
- Fixed: base64 encoded source maps now correctly decodes as utf-8. Previously,
|
||||
non-ASCII characters could end up garbled. Thanks to ZHAO Jinxiang
|
||||
(@xiaoxiangmoe)! (Note: This fix does not work in old evironments not
|
||||
supporting both `TextDecoder` and `Uint8Array`.)
|
||||
- Improved: Reduced size of the npm package.
|
||||
|
||||
### Version 0.5.2 (2018-05-10) ###
|
||||
|
||||
- Improved: Updated the version range of `atob` to disallow depending on `2.0.3`
|
||||
which as a [security
|
||||
vulnerability](https://snyk.io/test/npm/atob/2.0.3?severity=high&severity=medium&severity=low).
|
||||
|
||||
### Version 0.5.1 (2017-10-21) ###
|
||||
|
||||
- Fixed: URLs are now decoded before being passed to `read` in Node.js. This
|
||||
allows reading files with spaces, for example.
|
||||
- Fixed: Missing or empty `sources` fields (such as `sources: []`) in source
|
||||
maps are now handled. Previously, such source maps would cause crashes or
|
||||
callbacks never bing called. Now, an empty result is produced:
|
||||
|
||||
```js
|
||||
sourcesResolved: [],
|
||||
sourcesContent: []
|
||||
```
|
||||
|
||||
### Version 0.5.0 (2016-02-28) ###
|
||||
|
||||
- Improved: Errors now have a `sourceMapData` property that contain as much as
|
||||
possible of the intended result of the function up until the error occurred.
|
||||
- Changed: `resolveSources` and `resolve`, as well as their `*Sync`
|
||||
alternatives, no longer fail when one single source fails to be fetched.
|
||||
Instead, the `sourcesContent` array in the result object will contain error
|
||||
objects for all failed sources, and strings otherwise. (Backwards-incompatible
|
||||
change.)
|
||||
|
||||
### Version 0.4.0 (2015-08-29) ###
|
||||
|
||||
- Removed: The `ignoreSourceRoot` option of `resolveSources`. It has been
|
||||
replaced with `sourceRoot: false`. (Backwards-incompatible change.)
|
||||
- Added: The `sourceRoot` option of `resolveSources`. It not only allows to
|
||||
ignore the source root, it also lets you replace it.
|
||||
- Added: The `parseMapToJSON` method.
|
||||
- Added: The `resolve` method now accepts `null, mapUrl, ...` as arguments, in
|
||||
addition to the existing signature, which will read `mapUrl` instead of
|
||||
looking for a sourceMappingURL in the code.
|
||||
|
||||
### Version 0.3.1 (2014-08-16) ###
|
||||
|
||||
- Improved: Updated the source-map-url dependency to 0.3.0.
|
||||
|
||||
|
||||
### Version 0.3.0 (2014-07-02) ###
|
||||
|
||||
- Removed: Argument checking. It’s not worth it. (Possibly
|
||||
backwards-incompatible change.)
|
||||
- Added: The `sourceRoot` property of source maps may now be ignored, which can
|
||||
be useful when resolving sources outside of the browser.
|
||||
- Added: It is now possible to resolve only the URLs of sources, without
|
||||
reading them.
|
||||
|
||||
|
||||
### Version 0.2.0 (2014-06-22) ###
|
||||
|
||||
- Changed: The result of `resolveSources` is now an object, not an array. The
|
||||
old result array is available in the `sourcesContent` property.
|
||||
(Backwards-incompatible change.)
|
||||
- Changed: `sources` has been renamed to `sourcesContent` in the result object
|
||||
of `resolve`. (Backwards-incompatible change.)
|
||||
- Added: `resolveSources` now also returns all sources fully resolved, in the
|
||||
`sourcesResolved` property.
|
||||
- Added: The result object of `resolve` now contains the `sourcesResolved`
|
||||
property from `resolveSources`.
|
||||
|
||||
|
||||
### Version 0.1.4 (2014-06-16) ###
|
||||
|
||||
- Fixed: `sourcesContent` was mis-typed as `sourceContents`, which meant that
|
||||
the `sourcesContent` property of source maps never was used when resolving
|
||||
sources.
|
||||
|
||||
|
||||
### Version 0.1.3 (2014-05-06) ###
|
||||
|
||||
- Only documentation and meta-data changes.
|
||||
|
||||
|
||||
### Version 0.1.2 (2014-03-23) ###
|
||||
|
||||
- Improved: Source maps starting with `)]}'` are now parsed correctly. The spec
|
||||
allows source maps to start with that character sequence to prevent XSSI
|
||||
attacks.
|
||||
|
||||
|
||||
### Version 0.1.1 (2014-03-06) ###
|
||||
|
||||
- Improved: Make sourceRoot resolving more sensible.
|
||||
|
||||
A source root such as `/scripts/subdir` is now treated as `/scripts/subdir/`
|
||||
— that is, as a directory called “subdir”, not a file called “subdir”.
|
||||
Pointing to a file as source root does not makes sense.
|
||||
|
||||
|
||||
|
||||
### Version 0.1.0 (2014-03-03) ###
|
||||
|
||||
- Initial release.
|
8
assets_old/node_modules/source-map-resolve/lib/decode-uri-component.js
generated
vendored
Normal file
8
assets_old/node_modules/source-map-resolve/lib/decode-uri-component.js
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
var decodeUriComponent = require("decode-uri-component")
|
||||
|
||||
function customDecodeUriComponent(string) {
|
||||
// `decodeUriComponent` turns `+` into ` `, but that's not wanted.
|
||||
return decodeUriComponent(string.replace(/\+/g, "%2B"))
|
||||
}
|
||||
|
||||
module.exports = customDecodeUriComponent
|
9
assets_old/node_modules/source-map-resolve/lib/resolve-url.js
generated
vendored
Normal file
9
assets_old/node_modules/source-map-resolve/lib/resolve-url.js
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
var url = require("url")
|
||||
|
||||
function resolveUrl(/* ...urls */) {
|
||||
return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) {
|
||||
return url.resolve(resolved, nextUrl)
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = resolveUrl
|
342
assets_old/node_modules/source-map-resolve/lib/source-map-resolve-node.js
generated
vendored
Normal file
342
assets_old/node_modules/source-map-resolve/lib/source-map-resolve-node.js
generated
vendored
Normal file
|
@ -0,0 +1,342 @@
|
|||
var sourceMappingURL = require("source-map-url")
|
||||
|
||||
var resolveUrl = require("./resolve-url")
|
||||
var decodeUriComponent = require("./decode-uri-component")
|
||||
var urix = require("urix")
|
||||
var atob = require("atob")
|
||||
|
||||
|
||||
|
||||
function callbackAsync(callback, error, result) {
|
||||
setImmediate(function() { callback(error, result) })
|
||||
}
|
||||
|
||||
function parseMapToJSON(string, data) {
|
||||
try {
|
||||
return JSON.parse(string.replace(/^\)\]\}'/, ""))
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
function readSync(read, url, data) {
|
||||
var readUrl = decodeUriComponent(url)
|
||||
try {
|
||||
return String(read(readUrl))
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolveSourceMap(code, codeUrl, read, callback) {
|
||||
var mapData
|
||||
try {
|
||||
mapData = resolveSourceMapHelper(code, codeUrl)
|
||||
} catch (error) {
|
||||
return callbackAsync(callback, error)
|
||||
}
|
||||
if (!mapData || mapData.map) {
|
||||
return callbackAsync(callback, null, mapData)
|
||||
}
|
||||
var readUrl = decodeUriComponent(mapData.url)
|
||||
read(readUrl, function(error, result) {
|
||||
if (error) {
|
||||
error.sourceMapData = mapData
|
||||
return callback(error)
|
||||
}
|
||||
mapData.map = String(result)
|
||||
try {
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
} catch (error) {
|
||||
return callback(error)
|
||||
}
|
||||
callback(null, mapData)
|
||||
})
|
||||
}
|
||||
|
||||
function resolveSourceMapSync(code, codeUrl, read) {
|
||||
var mapData = resolveSourceMapHelper(code, codeUrl)
|
||||
if (!mapData || mapData.map) {
|
||||
return mapData
|
||||
}
|
||||
mapData.map = readSync(read, mapData.url, mapData)
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
return mapData
|
||||
}
|
||||
|
||||
var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/
|
||||
|
||||
/**
|
||||
* The media type for JSON text is application/json.
|
||||
*
|
||||
* {@link https://tools.ietf.org/html/rfc8259#section-11 | IANA Considerations }
|
||||
*
|
||||
* `text/json` is non-standard media type
|
||||
*/
|
||||
var jsonMimeTypeRegex = /^(?:application|text)\/json$/
|
||||
|
||||
/**
|
||||
* JSON text exchanged between systems that are not part of a closed ecosystem
|
||||
* MUST be encoded using UTF-8.
|
||||
*
|
||||
* {@link https://tools.ietf.org/html/rfc8259#section-8.1 | Character Encoding}
|
||||
*/
|
||||
var jsonCharacterEncoding = "utf-8"
|
||||
|
||||
function base64ToBuf(b64) {
|
||||
var binStr = atob(b64)
|
||||
var len = binStr.length
|
||||
var arr = new Uint8Array(len)
|
||||
for (var i = 0; i < len; i++) {
|
||||
arr[i] = binStr.charCodeAt(i)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
function decodeBase64String(b64) {
|
||||
if (typeof TextDecoder === "undefined" || typeof Uint8Array === "undefined") {
|
||||
return atob(b64)
|
||||
}
|
||||
var buf = base64ToBuf(b64);
|
||||
// Note: `decoder.decode` method will throw a `DOMException` with the
|
||||
// `"EncodingError"` value when an coding error is found.
|
||||
var decoder = new TextDecoder(jsonCharacterEncoding, {fatal: true})
|
||||
return decoder.decode(buf);
|
||||
}
|
||||
|
||||
function resolveSourceMapHelper(code, codeUrl) {
|
||||
codeUrl = urix(codeUrl)
|
||||
|
||||
var url = sourceMappingURL.getFrom(code)
|
||||
if (!url) {
|
||||
return null
|
||||
}
|
||||
|
||||
var dataUri = url.match(dataUriRegex)
|
||||
if (dataUri) {
|
||||
var mimeType = dataUri[1] || "text/plain"
|
||||
var lastParameter = dataUri[2] || ""
|
||||
var encoded = dataUri[3] || ""
|
||||
var data = {
|
||||
sourceMappingURL: url,
|
||||
url: null,
|
||||
sourcesRelativeTo: codeUrl,
|
||||
map: encoded
|
||||
}
|
||||
if (!jsonMimeTypeRegex.test(mimeType)) {
|
||||
var error = new Error("Unuseful data uri mime type: " + mimeType)
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
try {
|
||||
data.map = parseMapToJSON(
|
||||
lastParameter === ";base64" ? decodeBase64String(encoded) : decodeURIComponent(encoded),
|
||||
data
|
||||
)
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
var mapUrl = resolveUrl(codeUrl, url)
|
||||
return {
|
||||
sourceMappingURL: url,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolveSources(map, mapUrl, read, options, callback) {
|
||||
if (typeof options === "function") {
|
||||
callback = options
|
||||
options = {}
|
||||
}
|
||||
var pending = map.sources ? map.sources.length : 0
|
||||
var result = {
|
||||
sourcesResolved: [],
|
||||
sourcesContent: []
|
||||
}
|
||||
|
||||
if (pending === 0) {
|
||||
callbackAsync(callback, null, result)
|
||||
return
|
||||
}
|
||||
|
||||
var done = function() {
|
||||
pending--
|
||||
if (pending === 0) {
|
||||
callback(null, result)
|
||||
}
|
||||
}
|
||||
|
||||
resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
|
||||
result.sourcesResolved[index] = fullUrl
|
||||
if (typeof sourceContent === "string") {
|
||||
result.sourcesContent[index] = sourceContent
|
||||
callbackAsync(done, null)
|
||||
} else {
|
||||
var readUrl = decodeUriComponent(fullUrl)
|
||||
read(readUrl, function(error, source) {
|
||||
result.sourcesContent[index] = error ? error : String(source)
|
||||
done()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function resolveSourcesSync(map, mapUrl, read, options) {
|
||||
var result = {
|
||||
sourcesResolved: [],
|
||||
sourcesContent: []
|
||||
}
|
||||
|
||||
if (!map.sources || map.sources.length === 0) {
|
||||
return result
|
||||
}
|
||||
|
||||
resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
|
||||
result.sourcesResolved[index] = fullUrl
|
||||
if (read !== null) {
|
||||
if (typeof sourceContent === "string") {
|
||||
result.sourcesContent[index] = sourceContent
|
||||
} else {
|
||||
var readUrl = decodeUriComponent(fullUrl)
|
||||
try {
|
||||
result.sourcesContent[index] = String(read(readUrl))
|
||||
} catch (error) {
|
||||
result.sourcesContent[index] = error
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
var endingSlash = /\/?$/
|
||||
|
||||
function resolveSourcesHelper(map, mapUrl, options, fn) {
|
||||
options = options || {}
|
||||
mapUrl = urix(mapUrl)
|
||||
var fullUrl
|
||||
var sourceContent
|
||||
var sourceRoot
|
||||
for (var index = 0, len = map.sources.length; index < len; index++) {
|
||||
sourceRoot = null
|
||||
if (typeof options.sourceRoot === "string") {
|
||||
sourceRoot = options.sourceRoot
|
||||
} else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) {
|
||||
sourceRoot = map.sourceRoot
|
||||
}
|
||||
// If the sourceRoot is the empty string, it is equivalent to not setting
|
||||
// the property at all.
|
||||
if (sourceRoot === null || sourceRoot === '') {
|
||||
fullUrl = resolveUrl(mapUrl, map.sources[index])
|
||||
} else {
|
||||
// Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes
|
||||
// `/scripts/subdir/<source>`, not `/scripts/<source>`. Pointing to a file as source root
|
||||
// does not make sense.
|
||||
fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index])
|
||||
}
|
||||
sourceContent = (map.sourcesContent || [])[index]
|
||||
fn(fullUrl, sourceContent, index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolve(code, codeUrl, read, options, callback) {
|
||||
if (typeof options === "function") {
|
||||
callback = options
|
||||
options = {}
|
||||
}
|
||||
if (code === null) {
|
||||
var mapUrl = codeUrl
|
||||
var data = {
|
||||
sourceMappingURL: null,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
var readUrl = decodeUriComponent(mapUrl)
|
||||
read(readUrl, function(error, result) {
|
||||
if (error) {
|
||||
error.sourceMapData = data
|
||||
return callback(error)
|
||||
}
|
||||
data.map = String(result)
|
||||
try {
|
||||
data.map = parseMapToJSON(data.map, data)
|
||||
} catch (error) {
|
||||
return callback(error)
|
||||
}
|
||||
_resolveSources(data)
|
||||
})
|
||||
} else {
|
||||
resolveSourceMap(code, codeUrl, read, function(error, mapData) {
|
||||
if (error) {
|
||||
return callback(error)
|
||||
}
|
||||
if (!mapData) {
|
||||
return callback(null, null)
|
||||
}
|
||||
_resolveSources(mapData)
|
||||
})
|
||||
}
|
||||
|
||||
function _resolveSources(mapData) {
|
||||
resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) {
|
||||
if (error) {
|
||||
return callback(error)
|
||||
}
|
||||
mapData.sourcesResolved = result.sourcesResolved
|
||||
mapData.sourcesContent = result.sourcesContent
|
||||
callback(null, mapData)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function resolveSync(code, codeUrl, read, options) {
|
||||
var mapData
|
||||
if (code === null) {
|
||||
var mapUrl = codeUrl
|
||||
mapData = {
|
||||
sourceMappingURL: null,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
mapData.map = readSync(read, mapUrl, mapData)
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
} else {
|
||||
mapData = resolveSourceMapSync(code, codeUrl, read)
|
||||
if (!mapData) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options)
|
||||
mapData.sourcesResolved = result.sourcesResolved
|
||||
mapData.sourcesContent = result.sourcesContent
|
||||
return mapData
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = {
|
||||
resolveSourceMap: resolveSourceMap,
|
||||
resolveSourceMapSync: resolveSourceMapSync,
|
||||
resolveSources: resolveSources,
|
||||
resolveSourcesSync: resolveSourcesSync,
|
||||
resolve: resolve,
|
||||
resolveSync: resolveSync,
|
||||
parseMapToJSON: parseMapToJSON
|
||||
}
|
47
assets_old/node_modules/source-map-resolve/package.json
generated
vendored
Normal file
47
assets_old/node_modules/source-map-resolve/package.json
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"name": "source-map-resolve",
|
||||
"version": "0.5.3",
|
||||
"author": "Simon Lydell",
|
||||
"license": "MIT",
|
||||
"description": "Resolve the source map and/or sources for a generated file.",
|
||||
"keywords": [
|
||||
"source map",
|
||||
"sourcemap",
|
||||
"source",
|
||||
"map",
|
||||
"sourceMappingURL",
|
||||
"resolve",
|
||||
"resolver",
|
||||
"locate",
|
||||
"locator",
|
||||
"find",
|
||||
"finder"
|
||||
],
|
||||
"repository": "lydell/source-map-resolve",
|
||||
"main": "lib/source-map-resolve-node.js",
|
||||
"browser": "source-map-resolve.js",
|
||||
"files": [
|
||||
"lib",
|
||||
"source-map-resolve.js"
|
||||
],
|
||||
"scripts": {
|
||||
"lint": "jshint lib/ test/",
|
||||
"unit": "node test/source-map-resolve.js && node test/windows.js",
|
||||
"test": "npm run lint && npm run unit",
|
||||
"build": "node generate-source-map-resolve.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"atob": "^2.1.2",
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"resolve-url": "^0.2.1",
|
||||
"source-map-url": "^0.4.0",
|
||||
"urix": "^0.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"Base64": "1.1.0",
|
||||
"jshint": "2.10.3",
|
||||
"setimmediate": "1.0.5",
|
||||
"simple-asyncify": "1.0.0",
|
||||
"tape": "4.12.1"
|
||||
}
|
||||
}
|
231
assets_old/node_modules/source-map-resolve/readme.md
generated
vendored
Normal file
231
assets_old/node_modules/source-map-resolve/readme.md
generated
vendored
Normal file
|
@ -0,0 +1,231 @@
|
|||
Overview [](https://travis-ci.org/lydell/source-map-resolve)
|
||||
========
|
||||
|
||||
Resolve the source map and/or sources for a generated file.
|
||||
|
||||
```js
|
||||
var sourceMapResolve = require("source-map-resolve")
|
||||
var sourceMap = require("source-map")
|
||||
|
||||
var code = [
|
||||
"!function(){...}();",
|
||||
"/*# sourceMappingURL=foo.js.map */"
|
||||
].join("\n")
|
||||
|
||||
sourceMapResolve.resolveSourceMap(code, "/js/foo.js", fs.readFile, function(error, result) {
|
||||
if (error) {
|
||||
return notifyFailure(error)
|
||||
}
|
||||
result
|
||||
// {
|
||||
// map: {file: "foo.js", mappings: "...", sources: ["/coffee/foo.coffee"], names: []},
|
||||
// url: "/js/foo.js.map",
|
||||
// sourcesRelativeTo: "/js/foo.js.map",
|
||||
// sourceMappingURL: "foo.js.map"
|
||||
// }
|
||||
|
||||
sourceMapResolve.resolveSources(result.map, result.sourcesRelativeTo, fs.readFile, function(error, result) {
|
||||
if (error) {
|
||||
return notifyFailure(error)
|
||||
}
|
||||
result
|
||||
// {
|
||||
// sourcesResolved: ["/coffee/foo.coffee"],
|
||||
// sourcesContent: ["<contents of /coffee/foo.coffee>"]
|
||||
// }
|
||||
})
|
||||
})
|
||||
|
||||
sourceMapResolve.resolve(code, "/js/foo.js", fs.readFile, function(error, result) {
|
||||
if (error) {
|
||||
return notifyFailure(error)
|
||||
}
|
||||
result
|
||||
// {
|
||||
// map: {file: "foo.js", mappings: "...", sources: ["/coffee/foo.coffee"], names: []},
|
||||
// url: "/js/foo.js.map",
|
||||
// sourcesRelativeTo: "/js/foo.js.map",
|
||||
// sourceMappingURL: "foo.js.map",
|
||||
// sourcesResolved: ["/coffee/foo.coffee"],
|
||||
// sourcesContent: ["<contents of /coffee/foo.coffee>"]
|
||||
// }
|
||||
result.map.sourcesContent = result.sourcesContent
|
||||
var map = new sourceMap.sourceMapConsumer(result.map)
|
||||
map.sourceContentFor("/coffee/foo.coffee")
|
||||
// "<contents of /coffee/foo.coffee>"
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- `npm install source-map-resolve`
|
||||
- `bower install source-map-resolve`
|
||||
- `component install lydell/source-map-resolve`
|
||||
|
||||
Works with CommonJS, AMD and browser globals, through UMD.
|
||||
|
||||
Note: This module requires `setImmediate` and `atob`.
|
||||
Use polyfills if needed, such as:
|
||||
|
||||
- <https://github.com/NobleJS/setImmediate>
|
||||
- <https://github.com/davidchambers/Base64.js>
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
### `sourceMapResolve.resolveSourceMap(code, codeUrl, read, callback)` ###
|
||||
|
||||
- `code` is a string of code that may or may not contain a sourceMappingURL
|
||||
comment. Such a comment is used to resolve the source map.
|
||||
- `codeUrl` is the url to the file containing `code`. If the sourceMappingURL
|
||||
is relative, it is resolved against `codeUrl`.
|
||||
- `read(url, callback)` is a function that reads `url` and responds using
|
||||
`callback(error, content)`. In Node.js you might want to use `fs.readFile`,
|
||||
while in the browser you might want to use an asynchronus `XMLHttpRequest`.
|
||||
- `callback(error, result)` is a function that is invoked with either an error
|
||||
or `null` and the result.
|
||||
|
||||
The result is an object with the following properties:
|
||||
|
||||
- `map`: The source map for `code`, as an object (not a string).
|
||||
- `url`: The url to the source map. If the source map came from a data uri,
|
||||
this property is `null`, since then there is no url to it.
|
||||
- `sourcesRelativeTo`: The url that the sources of the source map are relative
|
||||
to. Since the sources are relative to the source map, and the url to the
|
||||
source map is provided as the `url` property, this property might seem
|
||||
superfluos. However, remember that the `url` property can be `null` if the
|
||||
source map came from a data uri. If so, the sources are relative to the file
|
||||
containing the data uri—`codeUrl`. This property will be identical to the
|
||||
`url` property or `codeUrl`, whichever is appropriate. This way you can
|
||||
conveniently resolve the sources without having to think about where the
|
||||
source map came from.
|
||||
- `sourceMappingURL`: The url of the sourceMappingURL comment in `code`.
|
||||
|
||||
If `code` contains no sourceMappingURL, the result is `null`.
|
||||
|
||||
### `sourceMapResolve.resolveSources(map, mapUrl, read, [options], callback)` ###
|
||||
|
||||
- `map` is a source map, as an object (not a string).
|
||||
- `mapUrl` is the url to the file containing `map`. Relative sources in the
|
||||
source map, if any, are resolved against `mapUrl`.
|
||||
- `read(url, callback)` is a function that reads `url` and responds using
|
||||
`callback(error, content)`. In Node.js you might want to use `fs.readFile`,
|
||||
while in the browser you might want to use an asynchronus `XMLHttpRequest`.
|
||||
- `options` is an optional object with any of the following properties:
|
||||
- `sourceRoot`: Override the `sourceRoot` property of the source map, which
|
||||
might only be relevant when resolving sources in the browser. This lets you
|
||||
bypass it when using the module outside of a browser, if needed. Pass a
|
||||
string to replace the `sourceRoot` property with, or `false` to ignore it.
|
||||
Defaults to `undefined`.
|
||||
- `callback(error, result)` is a function that is invoked with either an error
|
||||
or `null` and the result.
|
||||
|
||||
The result is an object with the following properties:
|
||||
|
||||
- `sourcesResolved`: The same as `map.sources`, except all the sources are
|
||||
fully resolved.
|
||||
- `sourcesContent`: An array with the contents of all sources in `map.sources`,
|
||||
in the same order as `map.sources`. If getting the contents of a source fails,
|
||||
an error object is put into the array instead.
|
||||
|
||||
### `sourceMapResolve.resolve(code, codeUrl, read, [options], callback)` ###
|
||||
|
||||
The arguments are identical to `sourceMapResolve.resolveSourceMap`, except that
|
||||
you may also provide the same `options` as in `sourceMapResolve.resolveSources`.
|
||||
|
||||
This is a convenience method that first resolves the source map and then its
|
||||
sources. You could also do this by first calling
|
||||
`sourceMapResolve.resolveSourceMap` and then `sourceMapResolve.resolveSources`.
|
||||
|
||||
The result is identical to `sourceMapResolve.resolveSourceMap`, with the
|
||||
properties from `sourceMapResolve.resolveSources` merged into it.
|
||||
|
||||
There is one extra feature available, though. If `code` is `null`, `codeUrl` is
|
||||
treated as a url to the source map instead of to `code`, and will be read. This
|
||||
is handy if you _sometimes_ get the source map url from the `SourceMap: <url>`
|
||||
header (see the [Notes] section). In this case, the `sourceMappingURL` property
|
||||
of the result is `null`.
|
||||
|
||||
|
||||
[Notes]: #notes
|
||||
|
||||
### `sourceMapResolve.*Sync()` ###
|
||||
|
||||
There are also sync versions of the three previous functions. They are identical
|
||||
to the async versions, except:
|
||||
|
||||
- They expect a sync reading function. In Node.js you might want to use
|
||||
`fs.readFileSync`, while in the browser you might want to use a synchronus
|
||||
`XMLHttpRequest`.
|
||||
- They throw errors and return the result instead of using a callback.
|
||||
|
||||
`sourceMapResolve.resolveSourcesSync` also accepts `null` as the `read`
|
||||
parameter. The result is the same as when passing a function as the `read
|
||||
parameter`, except that the `sourcesContent` property of the result will be an
|
||||
empty array. In other words, the sources aren’t read. You only get the
|
||||
`sourcesResolved` property. (This only supported in the synchronus version, since
|
||||
there is no point doing it asynchronusly.)
|
||||
|
||||
### `sourceMapResolve.parseMapToJSON(string, [data])` ###
|
||||
|
||||
The spec says that if a source map (as a string) starts with `)]}'`, it should
|
||||
be stripped off. This is to prevent XSSI attacks. This function does that and
|
||||
returns the result of `JSON.parse`ing what’s left.
|
||||
|
||||
If this function throws `error`, `error.sourceMapData === data`.
|
||||
|
||||
### Errors
|
||||
|
||||
All errors passed to callbacks or thrown by this module have a `sourceMapData`
|
||||
property that contain as much as possible of the intended result of the function
|
||||
up until the error occurred.
|
||||
|
||||
Note that while the `map` property of result objects always is an object,
|
||||
`error.sourceMapData.map` will be a string if parsing that string fails.
|
||||
|
||||
|
||||
Note
|
||||
====
|
||||
|
||||
This module resolves the source map for a given generated file by looking for a
|
||||
sourceMappingURL comment. The spec defines yet a way to provide the URL to the
|
||||
source map: By sending the `SourceMap: <url>` header along with the generated
|
||||
file. Since this module doesn’t retrive the generated code for you (instead
|
||||
_you_ give the generated code to the module), it’s up to you to look for such a
|
||||
header when you retrieve the file (should the need arise).
|
||||
|
||||
|
||||
Development
|
||||
===========
|
||||
|
||||
Tests
|
||||
-----
|
||||
|
||||
First off, run `npm install` to install testing modules and browser polyfills.
|
||||
|
||||
`npm test` lints the code and runs the test suite in Node.js.
|
||||
|
||||
x-package.json5
|
||||
---------------
|
||||
|
||||
package.json, component.json and bower.json are all generated from
|
||||
x-package.json5 by using [`xpkg`]. Only edit x-package.json5, and remember to
|
||||
run `xpkg` before commiting!
|
||||
|
||||
[`xpkg`]: https://github.com/kof/node-xpkg
|
||||
|
||||
Generating the browser version
|
||||
------------------------------
|
||||
|
||||
source-map-resolve.js is generated from source-map-resolve-node.js and
|
||||
source-map-resolve-template.js. Only edit the two latter files, _not_
|
||||
source-map-resolve.js! To generate it, run `npm run build`.
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
[MIT](LICENSE).
|
348
assets_old/node_modules/source-map-resolve/source-map-resolve.js
generated
vendored
Normal file
348
assets_old/node_modules/source-map-resolve/source-map-resolve.js
generated
vendored
Normal file
|
@ -0,0 +1,348 @@
|
|||
// Note: source-map-resolve.js is generated from source-map-resolve-node.js and
|
||||
// source-map-resolve-template.js. Only edit the two latter files, _not_
|
||||
// source-map-resolve.js!
|
||||
|
||||
void (function(root, factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define(["source-map-url", "resolve-url"], factory)
|
||||
} else if (typeof exports === "object") {
|
||||
var sourceMappingURL = require("source-map-url")
|
||||
var resolveUrl = require("resolve-url")
|
||||
module.exports = factory(sourceMappingURL, resolveUrl)
|
||||
} else {
|
||||
root.sourceMapResolve = factory(root.sourceMappingURL, root.resolveUrl)
|
||||
}
|
||||
}(this, function(sourceMappingURL, resolveUrl) {
|
||||
|
||||
function callbackAsync(callback, error, result) {
|
||||
setImmediate(function() { callback(error, result) })
|
||||
}
|
||||
|
||||
function parseMapToJSON(string, data) {
|
||||
try {
|
||||
return JSON.parse(string.replace(/^\)\]\}'/, ""))
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
function readSync(read, url, data) {
|
||||
var readUrl = url
|
||||
try {
|
||||
return String(read(readUrl))
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolveSourceMap(code, codeUrl, read, callback) {
|
||||
var mapData
|
||||
try {
|
||||
mapData = resolveSourceMapHelper(code, codeUrl)
|
||||
} catch (error) {
|
||||
return callbackAsync(callback, error)
|
||||
}
|
||||
if (!mapData || mapData.map) {
|
||||
return callbackAsync(callback, null, mapData)
|
||||
}
|
||||
var readUrl = mapData.url
|
||||
read(readUrl, function(error, result) {
|
||||
if (error) {
|
||||
error.sourceMapData = mapData
|
||||
return callback(error)
|
||||
}
|
||||
mapData.map = String(result)
|
||||
try {
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
} catch (error) {
|
||||
return callback(error)
|
||||
}
|
||||
callback(null, mapData)
|
||||
})
|
||||
}
|
||||
|
||||
function resolveSourceMapSync(code, codeUrl, read) {
|
||||
var mapData = resolveSourceMapHelper(code, codeUrl)
|
||||
if (!mapData || mapData.map) {
|
||||
return mapData
|
||||
}
|
||||
mapData.map = readSync(read, mapData.url, mapData)
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
return mapData
|
||||
}
|
||||
|
||||
var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/
|
||||
|
||||
/**
|
||||
* The media type for JSON text is application/json.
|
||||
*
|
||||
* {@link https://tools.ietf.org/html/rfc8259#section-11 | IANA Considerations }
|
||||
*
|
||||
* `text/json` is non-standard media type
|
||||
*/
|
||||
var jsonMimeTypeRegex = /^(?:application|text)\/json$/
|
||||
|
||||
/**
|
||||
* JSON text exchanged between systems that are not part of a closed ecosystem
|
||||
* MUST be encoded using UTF-8.
|
||||
*
|
||||
* {@link https://tools.ietf.org/html/rfc8259#section-8.1 | Character Encoding}
|
||||
*/
|
||||
var jsonCharacterEncoding = "utf-8"
|
||||
|
||||
function base64ToBuf(b64) {
|
||||
var binStr = atob(b64)
|
||||
var len = binStr.length
|
||||
var arr = new Uint8Array(len)
|
||||
for (var i = 0; i < len; i++) {
|
||||
arr[i] = binStr.charCodeAt(i)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
function decodeBase64String(b64) {
|
||||
if (typeof TextDecoder === "undefined" || typeof Uint8Array === "undefined") {
|
||||
return atob(b64)
|
||||
}
|
||||
var buf = base64ToBuf(b64);
|
||||
// Note: `decoder.decode` method will throw a `DOMException` with the
|
||||
// `"EncodingError"` value when an coding error is found.
|
||||
var decoder = new TextDecoder(jsonCharacterEncoding, {fatal: true})
|
||||
return decoder.decode(buf);
|
||||
}
|
||||
|
||||
function resolveSourceMapHelper(code, codeUrl) {
|
||||
var url = sourceMappingURL.getFrom(code)
|
||||
if (!url) {
|
||||
return null
|
||||
}
|
||||
|
||||
var dataUri = url.match(dataUriRegex)
|
||||
if (dataUri) {
|
||||
var mimeType = dataUri[1] || "text/plain"
|
||||
var lastParameter = dataUri[2] || ""
|
||||
var encoded = dataUri[3] || ""
|
||||
var data = {
|
||||
sourceMappingURL: url,
|
||||
url: null,
|
||||
sourcesRelativeTo: codeUrl,
|
||||
map: encoded
|
||||
}
|
||||
if (!jsonMimeTypeRegex.test(mimeType)) {
|
||||
var error = new Error("Unuseful data uri mime type: " + mimeType)
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
try {
|
||||
data.map = parseMapToJSON(
|
||||
lastParameter === ";base64" ? decodeBase64String(encoded) : decodeURIComponent(encoded),
|
||||
data
|
||||
)
|
||||
} catch (error) {
|
||||
error.sourceMapData = data
|
||||
throw error
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
var mapUrl = resolveUrl(codeUrl, url)
|
||||
return {
|
||||
sourceMappingURL: url,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolveSources(map, mapUrl, read, options, callback) {
|
||||
if (typeof options === "function") {
|
||||
callback = options
|
||||
options = {}
|
||||
}
|
||||
var pending = map.sources ? map.sources.length : 0
|
||||
var result = {
|
||||
sourcesResolved: [],
|
||||
sourcesContent: []
|
||||
}
|
||||
|
||||
if (pending === 0) {
|
||||
callbackAsync(callback, null, result)
|
||||
return
|
||||
}
|
||||
|
||||
var done = function() {
|
||||
pending--
|
||||
if (pending === 0) {
|
||||
callback(null, result)
|
||||
}
|
||||
}
|
||||
|
||||
resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
|
||||
result.sourcesResolved[index] = fullUrl
|
||||
if (typeof sourceContent === "string") {
|
||||
result.sourcesContent[index] = sourceContent
|
||||
callbackAsync(done, null)
|
||||
} else {
|
||||
var readUrl = fullUrl
|
||||
read(readUrl, function(error, source) {
|
||||
result.sourcesContent[index] = error ? error : String(source)
|
||||
done()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function resolveSourcesSync(map, mapUrl, read, options) {
|
||||
var result = {
|
||||
sourcesResolved: [],
|
||||
sourcesContent: []
|
||||
}
|
||||
|
||||
if (!map.sources || map.sources.length === 0) {
|
||||
return result
|
||||
}
|
||||
|
||||
resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
|
||||
result.sourcesResolved[index] = fullUrl
|
||||
if (read !== null) {
|
||||
if (typeof sourceContent === "string") {
|
||||
result.sourcesContent[index] = sourceContent
|
||||
} else {
|
||||
var readUrl = fullUrl
|
||||
try {
|
||||
result.sourcesContent[index] = String(read(readUrl))
|
||||
} catch (error) {
|
||||
result.sourcesContent[index] = error
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
var endingSlash = /\/?$/
|
||||
|
||||
function resolveSourcesHelper(map, mapUrl, options, fn) {
|
||||
options = options || {}
|
||||
var fullUrl
|
||||
var sourceContent
|
||||
var sourceRoot
|
||||
for (var index = 0, len = map.sources.length; index < len; index++) {
|
||||
sourceRoot = null
|
||||
if (typeof options.sourceRoot === "string") {
|
||||
sourceRoot = options.sourceRoot
|
||||
} else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) {
|
||||
sourceRoot = map.sourceRoot
|
||||
}
|
||||
// If the sourceRoot is the empty string, it is equivalent to not setting
|
||||
// the property at all.
|
||||
if (sourceRoot === null || sourceRoot === '') {
|
||||
fullUrl = resolveUrl(mapUrl, map.sources[index])
|
||||
} else {
|
||||
// Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes
|
||||
// `/scripts/subdir/<source>`, not `/scripts/<source>`. Pointing to a file as source root
|
||||
// does not make sense.
|
||||
fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index])
|
||||
}
|
||||
sourceContent = (map.sourcesContent || [])[index]
|
||||
fn(fullUrl, sourceContent, index)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function resolve(code, codeUrl, read, options, callback) {
|
||||
if (typeof options === "function") {
|
||||
callback = options
|
||||
options = {}
|
||||
}
|
||||
if (code === null) {
|
||||
var mapUrl = codeUrl
|
||||
var data = {
|
||||
sourceMappingURL: null,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
var readUrl = mapUrl
|
||||
read(readUrl, function(error, result) {
|
||||
if (error) {
|
||||
error.sourceMapData = data
|
||||
return callback(error)
|
||||
}
|
||||
data.map = String(result)
|
||||
try {
|
||||
data.map = parseMapToJSON(data.map, data)
|
||||
} catch (error) {
|
||||
return callback(error)
|
||||
}
|
||||
_resolveSources(data)
|
||||
})
|
||||
} else {
|
||||
resolveSourceMap(code, codeUrl, read, function(error, mapData) {
|
||||
if (error) {
|
||||
return callback(error)
|
||||
}
|
||||
if (!mapData) {
|
||||
return callback(null, null)
|
||||
}
|
||||
_resolveSources(mapData)
|
||||
})
|
||||
}
|
||||
|
||||
function _resolveSources(mapData) {
|
||||
resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) {
|
||||
if (error) {
|
||||
return callback(error)
|
||||
}
|
||||
mapData.sourcesResolved = result.sourcesResolved
|
||||
mapData.sourcesContent = result.sourcesContent
|
||||
callback(null, mapData)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function resolveSync(code, codeUrl, read, options) {
|
||||
var mapData
|
||||
if (code === null) {
|
||||
var mapUrl = codeUrl
|
||||
mapData = {
|
||||
sourceMappingURL: null,
|
||||
url: mapUrl,
|
||||
sourcesRelativeTo: mapUrl,
|
||||
map: null
|
||||
}
|
||||
mapData.map = readSync(read, mapUrl, mapData)
|
||||
mapData.map = parseMapToJSON(mapData.map, mapData)
|
||||
} else {
|
||||
mapData = resolveSourceMapSync(code, codeUrl, read)
|
||||
if (!mapData) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options)
|
||||
mapData.sourcesResolved = result.sourcesResolved
|
||||
mapData.sourcesContent = result.sourcesContent
|
||||
return mapData
|
||||
}
|
||||
|
||||
|
||||
|
||||
return {
|
||||
resolveSourceMap: resolveSourceMap,
|
||||
resolveSourceMapSync: resolveSourceMapSync,
|
||||
resolveSources: resolveSources,
|
||||
resolveSourcesSync: resolveSourcesSync,
|
||||
resolve: resolve,
|
||||
resolveSync: resolveSync,
|
||||
parseMapToJSON: parseMapToJSON
|
||||
}
|
||||
|
||||
}));
|
Loading…
Add table
Add a link
Reference in a new issue