aboutsummaryrefslogtreecommitdiff
path: root/node_modules/source-map-resolve
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/source-map-resolve')
-rw-r--r--node_modules/source-map-resolve/.npmignore1
-rw-r--r--node_modules/source-map-resolve/LICENSE2
-rw-r--r--node_modules/source-map-resolve/bower.json2
-rw-r--r--node_modules/source-map-resolve/changelog.md13
-rw-r--r--node_modules/source-map-resolve/component.json2
-rw-r--r--node_modules/source-map-resolve/generate-source-map-resolve.js5
-rw-r--r--node_modules/source-map-resolve/lib/decode-uri-component.js11
-rw-r--r--node_modules/source-map-resolve/lib/source-map-resolve-node.js39
-rw-r--r--node_modules/source-map-resolve/package.json7
-rw-r--r--node_modules/source-map-resolve/source-map-resolve.js30
-rw-r--r--node_modules/source-map-resolve/source-map-resolve.js.template2
-rw-r--r--node_modules/source-map-resolve/test/common.js27
-rw-r--r--node_modules/source-map-resolve/test/source-map-resolve.js1124
-rw-r--r--node_modules/source-map-resolve/test/windows.js166
-rw-r--r--node_modules/source-map-resolve/x-package.json52
15 files changed, 88 insertions, 1345 deletions
diff --git a/node_modules/source-map-resolve/.npmignore b/node_modules/source-map-resolve/.npmignore
deleted file mode 100644
index 3c3629e64..000000000
--- a/node_modules/source-map-resolve/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/source-map-resolve/LICENSE b/node_modules/source-map-resolve/LICENSE
index c9a4e1bb4..748f42e87 100644
--- a/node_modules/source-map-resolve/LICENSE
+++ b/node_modules/source-map-resolve/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2014, 2015, 2016 Simon Lydell
+Copyright (c) 2014, 2015, 2016, 2017 Simon Lydell
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/source-map-resolve/bower.json b/node_modules/source-map-resolve/bower.json
index f1c32a8e5..552663be2 100644
--- a/node_modules/source-map-resolve/bower.json
+++ b/node_modules/source-map-resolve/bower.json
@@ -1,6 +1,6 @@
{
"name": "source-map-resolve",
- "version": "0.5.0",
+ "version": "0.5.1",
"author": "Simon Lydell",
"license": "MIT",
"description": "Resolve the source map and/or sources for a generated file.",
diff --git a/node_modules/source-map-resolve/changelog.md b/node_modules/source-map-resolve/changelog.md
index ac046f5a2..d730d3698 100644
--- a/node_modules/source-map-resolve/changelog.md
+++ b/node_modules/source-map-resolve/changelog.md
@@ -1,3 +1,16 @@
+### 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
diff --git a/node_modules/source-map-resolve/component.json b/node_modules/source-map-resolve/component.json
index 5aa9a37e6..c081ca0c2 100644
--- a/node_modules/source-map-resolve/component.json
+++ b/node_modules/source-map-resolve/component.json
@@ -1,6 +1,6 @@
{
"name": "source-map-resolve",
- "version": "0.5.0",
+ "version": "0.5.1",
"author": "Simon Lydell",
"license": "MIT",
"description": "Resolve the source map and/or sources for a generated file.",
diff --git a/node_modules/source-map-resolve/generate-source-map-resolve.js b/node_modules/source-map-resolve/generate-source-map-resolve.js
index cc869fd31..a37e393aa 100644
--- a/node_modules/source-map-resolve/generate-source-map-resolve.js
+++ b/node_modules/source-map-resolve/generate-source-map-resolve.js
@@ -1,4 +1,4 @@
-// Copyright 2014 Simon Lydell
+// Copyright 2014, 2017 Simon Lydell
// X11 (“MIT”) Licensed. (See LICENSE.)
var fs = require("fs")
@@ -14,6 +14,9 @@ nodeCode = nodeCode
// Remove `urix`.
.replace(/(\w+)\s*=\s*urix\(\1\)\s*/g, "")
+ // Remove `decode-uri-component`.
+ .replace(/(var readUrl = )decodeUriComponent\(([\w.]+)\)/g, "$1$2")
+
// Change `module.exports = {...}` to `return {...}`.
.replace(/module\.exports = (\{[^}]+\})\s*$/, "return $1")
diff --git a/node_modules/source-map-resolve/lib/decode-uri-component.js b/node_modules/source-map-resolve/lib/decode-uri-component.js
new file mode 100644
index 000000000..c7064ff4d
--- /dev/null
+++ b/node_modules/source-map-resolve/lib/decode-uri-component.js
@@ -0,0 +1,11 @@
+// Copyright 2017 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+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
diff --git a/node_modules/source-map-resolve/lib/source-map-resolve-node.js b/node_modules/source-map-resolve/lib/source-map-resolve-node.js
index f5904b229..f80953d5d 100644
--- a/node_modules/source-map-resolve/lib/source-map-resolve-node.js
+++ b/node_modules/source-map-resolve/lib/source-map-resolve-node.js
@@ -1,10 +1,11 @@
-// Copyright 2014, 2015, 2016 Simon Lydell
+// Copyright 2014, 2015, 2016, 2017 Simon Lydell
// X11 (“MIT”) Licensed. (See LICENSE.)
-var sourceMappingURL = require("source-map-url")
-var resolveUrl = require("./resolve-url")
-var urix = require("urix")
-var atob = require("atob")
+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")
@@ -22,8 +23,9 @@ function parseMapToJSON(string, data) {
}
function readSync(read, url, data) {
+ var readUrl = decodeUriComponent(url)
try {
- return String(read(url))
+ return String(read(readUrl))
} catch (error) {
error.sourceMapData = data
throw error
@@ -42,7 +44,8 @@ function resolveSourceMap(code, codeUrl, read, callback) {
if (!mapData || mapData.map) {
return callbackAsync(callback, null, mapData)
}
- read(mapData.url, function(error, result) {
+ var readUrl = decodeUriComponent(mapData.url)
+ read(readUrl, function(error, result) {
if (error) {
error.sourceMapData = mapData
return callback(error)
@@ -117,12 +120,17 @@ function resolveSources(map, mapUrl, read, options, callback) {
callback = options
options = {}
}
- var pending = map.sources.length
+ 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) {
@@ -136,7 +144,8 @@ function resolveSources(map, mapUrl, read, options, callback) {
result.sourcesContent[index] = sourceContent
callbackAsync(done, null)
} else {
- read(fullUrl, function(error, source) {
+ var readUrl = decodeUriComponent(fullUrl)
+ read(readUrl, function(error, source) {
result.sourcesContent[index] = error ? error : String(source)
done()
})
@@ -149,20 +158,27 @@ function resolveSourcesSync(map, mapUrl, read, options) {
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(fullUrl))
+ result.sourcesContent[index] = String(read(readUrl))
} catch (error) {
result.sourcesContent[index] = error
}
}
}
})
+
return result
}
@@ -211,7 +227,8 @@ function resolve(code, codeUrl, read, options, callback) {
sourcesRelativeTo: mapUrl,
map: null
}
- read(mapUrl, function(error, result) {
+ var readUrl = decodeUriComponent(mapUrl)
+ read(readUrl, function(error, result) {
if (error) {
error.sourceMapData = data
return callback(error)
diff --git a/node_modules/source-map-resolve/package.json b/node_modules/source-map-resolve/package.json
index 11d23fcf9..83fff6ea5 100644
--- a/node_modules/source-map-resolve/package.json
+++ b/node_modules/source-map-resolve/package.json
@@ -1,6 +1,6 @@
{
"name": "source-map-resolve",
- "version": "0.5.0",
+ "version": "0.5.1",
"author": "Simon Lydell",
"license": "MIT",
"description": "Resolve the source map and/or sources for a generated file.",
@@ -22,11 +22,12 @@
"browser": "source-map-resolve.js",
"scripts": {
"lint": "jshint lib/ test/",
- "unit": "node test/source-map-resolve.js && node test/windows.js",
+ "unit": "node test/source-map-resolve.js && node test/windows.js && node test/read.js",
"test": "npm run lint && npm run unit",
"build": "node generate-source-map-resolve.js"
},
"dependencies": {
+ "decode-uri-component": "^0.2.0",
"source-map-url": "^0.4.0",
"atob": "^2.0.0",
"urix": "^0.1.0",
@@ -52,4 +53,4 @@
"android-browser/4"
]
}
-} \ No newline at end of file
+}
diff --git a/node_modules/source-map-resolve/source-map-resolve.js b/node_modules/source-map-resolve/source-map-resolve.js
index 9979db2e5..387fc1970 100644
--- a/node_modules/source-map-resolve/source-map-resolve.js
+++ b/node_modules/source-map-resolve/source-map-resolve.js
@@ -1,4 +1,4 @@
-// Copyright 2014, 2015, 2016 Simon Lydell
+// Copyright 2014, 2015, 2016, 2017 Simon Lydell
// X11 (“MIT”) Licensed. (See LICENSE.)
// Note: source-map-resolve.js is generated from source-map-resolve-node.js and
@@ -31,8 +31,9 @@ void (function(root, factory) {
}
function readSync(read, url, data) {
+ var readUrl = url
try {
- return String(read(url))
+ return String(read(readUrl))
} catch (error) {
error.sourceMapData = data
throw error
@@ -51,7 +52,8 @@ void (function(root, factory) {
if (!mapData || mapData.map) {
return callbackAsync(callback, null, mapData)
}
- read(mapData.url, function(error, result) {
+ var readUrl = mapData.url
+ read(readUrl, function(error, result) {
if (error) {
error.sourceMapData = mapData
return callback(error)
@@ -124,12 +126,17 @@ void (function(root, factory) {
callback = options
options = {}
}
- var pending = map.sources.length
+ 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) {
@@ -143,7 +150,8 @@ void (function(root, factory) {
result.sourcesContent[index] = sourceContent
callbackAsync(done, null)
} else {
- read(fullUrl, function(error, source) {
+ var readUrl = fullUrl
+ read(readUrl, function(error, source) {
result.sourcesContent[index] = error ? error : String(source)
done()
})
@@ -156,20 +164,27 @@ void (function(root, factory) {
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(fullUrl))
+ result.sourcesContent[index] = String(read(readUrl))
} catch (error) {
result.sourcesContent[index] = error
}
}
}
})
+
return result
}
@@ -217,7 +232,8 @@ void (function(root, factory) {
sourcesRelativeTo: mapUrl,
map: null
}
- read(mapUrl, function(error, result) {
+ var readUrl = mapUrl
+ read(readUrl, function(error, result) {
if (error) {
error.sourceMapData = data
return callback(error)
diff --git a/node_modules/source-map-resolve/source-map-resolve.js.template b/node_modules/source-map-resolve/source-map-resolve.js.template
index 4553a255a..813198a1d 100644
--- a/node_modules/source-map-resolve/source-map-resolve.js.template
+++ b/node_modules/source-map-resolve/source-map-resolve.js.template
@@ -1,4 +1,4 @@
-// Copyright 2014, 2015, 2016 Simon Lydell
+// Copyright 2014, 2015, 2016, 2017 Simon Lydell
// X11 (“MIT”) Licensed. (See LICENSE.)
// Note: source-map-resolve.js is generated from source-map-resolve-node.js and
diff --git a/node_modules/source-map-resolve/test/common.js b/node_modules/source-map-resolve/test/common.js
deleted file mode 100644
index 8616c171d..000000000
--- a/node_modules/source-map-resolve/test/common.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2014 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-function u(url) {
- return "code\n/*# sourceMappingURL=" + url + " */"
-}
-
-function read(x) {
- return function() {
- return x
- }
-}
-
-function Throws(x) {
- throw new Error(x)
-}
-
-function identity(x) {
- return x
-}
-
-module.exports = {
- u: u,
- read: read,
- Throws: Throws,
- identity: identity
-}
diff --git a/node_modules/source-map-resolve/test/source-map-resolve.js b/node_modules/source-map-resolve/test/source-map-resolve.js
deleted file mode 100644
index b5aaea9e9..000000000
--- a/node_modules/source-map-resolve/test/source-map-resolve.js
+++ /dev/null
@@ -1,1124 +0,0 @@
-// Copyright 2014, 2015, 2016 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-var test = require("tape")
-var asyncify = require("simple-asyncify")
-var common = require("./common")
-var u = common.u
-var read = common.read
-var Throws = common.Throws
-var identity = common.identity
-
-var sourceMapResolve = require("../")
-
-// Polyfills.
-require("setimmediate")
-if (typeof window !== "undefined" && !window.atob) {
- window.atob = require("Base64").atob
-}
-
-"use strict"
-
-var map = {
- simple: {
- mappings: "AAAA",
- sources: ["foo.js"],
- names: []
- },
- sourceRoot: {
- mappings: "AAAA",
- sourceRoot: "/static/js/app/",
- sources: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- names: []
- },
- sourceRootNoSlash: {
- mappings: "AAAA",
- sourceRoot: "/static/js/app",
- sources: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- names: []
- },
- sourceRootEmpty: {
- mappings: "AAAA",
- sourceRoot: "",
- sources: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- names: []
- },
- sourcesContent: {
- mappings: "AAAA",
- sourceRoot: "/static/js/app/",
- sources: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- sourcesContent: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- names: []
- },
- mixed: {
- mappings: "AAAA",
- sources: ["foo.js", "lib/bar.js", "../vendor/dom.js", "/version.js", "//foo.org/baz.js"],
- sourcesContent: ["foo.js", null , null , "/version.js", "//foo.org/baz.js"],
- names: []
- }
-}
-map.simpleString = JSON.stringify(map.simple)
-map.XSSIsafe = ")]}'" + map.simpleString
-
-var code = {
- fileRelative: u("foo.js.map"),
- domainRelative: u("/foo.js.map"),
- schemeRelative: u("//foo.org/foo.js.map"),
- absolute: u("https://foo.org/foo.js.map"),
- dataUri: u("data:application/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D"),
- base64: u("data:application/json;base64," +
- "eyJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W119"),
- dataUriText: u("data:text/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D"),
- dataUriParameter: u("data:application/json;charset=UTF-8;foo=bar," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D"),
- dataUriNoMime: u("data:,foo"),
- dataUriInvalidMime: u("data:text/html,foo"),
- dataUriInvalidJSON: u("data:application/json,foo"),
- dataUriXSSIsafe: u("data:application/json," + ")%5D%7D%27" +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D"),
- dataUriEmpty: u("data:"),
- noMap: ""
-}
-
-
-function testResolveSourceMap(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
-
- var codeUrl = "http://example.com/a/b/c/foo.js"
-
- t.plan(1 + 12*3 + 6*4)
-
- t.equal(typeof method, "function", "is a function")
-
- if (sync) {
- method = asyncify(method)
- }
-
- var next = false
- function isAsync() { t.ok(next, "is async") }
-
- method(code.fileRelative, codeUrl, wrap(read(map.simpleString)), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "foo.js.map",
- url: "http://example.com/a/b/c/foo.js.map",
- sourcesRelativeTo: "http://example.com/a/b/c/foo.js.map",
- map: map.simple
- }, "fileRelative")
- isAsync()
- })
-
- method(code.domainRelative, codeUrl, wrap(read(map.simpleString)), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "/foo.js.map",
- url: "http://example.com/foo.js.map",
- sourcesRelativeTo: "http://example.com/foo.js.map",
- map: map.simple
- }, "domainRelative")
- isAsync()
- })
-
- method(code.schemeRelative, codeUrl, wrap(read(map.simpleString)), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "//foo.org/foo.js.map",
- url: "http://foo.org/foo.js.map",
- sourcesRelativeTo: "http://foo.org/foo.js.map",
- map: map.simple
- }, "schemeRelative")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read(map.simpleString)), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple
- }, "absolute")
- isAsync()
- })
-
- method(code.dataUri, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple
- }, "dataUri")
- isAsync()
- })
-
- method(code.base64, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json;base64," +
- "eyJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W119",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple
- }, "base64")
- isAsync()
- })
-
- method(code.dataUriText, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:text/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple
- }, "dataUriText")
- isAsync()
- })
-
- method(code.dataUriParameter, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json;charset=UTF-8;foo=bar," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple
- }, "dataUriParameter")
- isAsync()
- })
-
- method(code.dataUriNoMime, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriNoMime .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/plain/), "dataUriNoMime")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriInvalidMime, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:text/html,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriInvalidMime .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/html/), "dataUriInvalidMime")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriInvalidJSON, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:application/json,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriInvalidJSON .sourceMapData")
- t.ok(error instanceof SyntaxError && error.message !== "data:application/json,foo",
- "dataUriInvalidJSON")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriXSSIsafe, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json," + ")%5D%7D%27" +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple
- }, "dataUriXSSIsafe")
- isAsync()
- })
-
- method(code.dataUriEmpty, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: ""
- }, "dataUriEmpty .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/plain/), "dataUriEmpty")
- t.notOk(result)
- isAsync()
- })
-
- method(code.noMap, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.equal(result, null, "noMap")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read([map.simpleString])), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple
- }, "read non-string")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read("invalid JSON")), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: "invalid JSON"
- }, "read invalid JSON .sourceMapData")
- t.ok(error instanceof SyntaxError, "read invalid JSON")
- t.notOk(result)
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read(map.XSSIsafe)), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple
- }, "XSSIsafe map")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: null
- }, "read throws .sourceMapData")
- t.equal(error.message, "https://foo.org/foo.js.map", "read throws")
- t.notOk(result)
- isAsync()
- })
-
- next = true
- }
-}
-
-test(".resolveSourceMap", testResolveSourceMap(sourceMapResolve.resolveSourceMap, false))
-
-test(".resolveSourceMapSync", testResolveSourceMap(sourceMapResolve.resolveSourceMapSync, true))
-
-
-function testResolveSources(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
-
- var mapUrl = "http://example.com/a/b/c/foo.js.map"
-
- t.plan(1 + 9*3 + 4)
-
- t.equal(typeof method, "function", "is a function")
-
- if (sync) {
- method = asyncify(method)
- }
-
- var next = false
- function isAsync() { t.ok(next, "is async") }
-
- var options
-
- method(map.simple, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "simple")
- isAsync()
- })
-
- method(map.sourceRoot, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ]
- }, "sourceRoot")
- isAsync()
- })
-
- options = {sourceRoot: false}
- method(map.sourceRoot, mapUrl, wrap(identity), options, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ]
- }, "ignore sourceRoot")
- isAsync()
- })
-
- options = {sourceRoot: "/static/js/"}
- method(map.sourceRoot, mapUrl, wrap(identity), options, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ]
- }, "custom sourceRoot")
- isAsync()
- })
-
- method(map.sourceRootNoSlash, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ]
- }, "sourceRootNoSlash")
- isAsync()
- })
-
- method(map.sourceRootEmpty, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ]
- }, "sourceRootEmpty")
- isAsync()
- })
-
- method(map.sourcesContent, mapUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "foo.js",
- "lib/bar.js",
- "../vendor/dom.js",
- "/version.js",
- "//foo.org/baz.js"
- ]
- }, "sourcesContent")
- isAsync()
- })
-
- method(map.mixed, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: [
- "foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "/version.js",
- "//foo.org/baz.js"
- ]
- }, "mixed")
- isAsync()
- })
-
- method(map.simple, mapUrl, wrap(read(["non", "string"])), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["non,string"]
- }, "read non-string")
- isAsync()
- })
-
- method(map.mixed, mapUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "read throws .sourcesResolved")
- var sourcesContent = result.sourcesContent
- for (var index = 0, len = sourcesContent.length; index < len; index++) {
- var item = sourcesContent[index]
- if (item instanceof Error) {
- sourcesContent[index] = null
- }
- }
- t.deepEqual(sourcesContent, [
- "foo.js",
- null,
- null,
- "/version.js",
- "//foo.org/baz.js"
- ], "read throws .sourcesContent")
- isAsync()
- })
-
- next = true
- }
-}
-
-test(".resolveSources", testResolveSources(sourceMapResolve.resolveSources, false))
-
-test(".resolveSourcesSync", testResolveSources(sourceMapResolve.resolveSourcesSync, true))
-
-test(".resolveSourcesSync no read", function(t) {
- t.plan(1)
-
- var mapUrl = "http://example.com/a/b/c/foo.js.map"
- var result = sourceMapResolve.resolveSourcesSync(map.mixed, mapUrl, null)
-
- t.deepEqual(result, {
- sourcesResolved: [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ],
- sourcesContent: []
- })
-})
-
-
-function testResolve(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
- var wrapMap = function(mapFn, fn) {
- return wrap(function(url) {
- if (/\.map$/.test(url)) {
- return mapFn(url)
- }
- return fn(url)
- })
- }
-
- var codeUrl = "http://example.com/a/b/c/foo.js"
-
- t.plan(1 + 15*3 + 19*4 + 4)
-
- t.equal(typeof method, "function", "is a function")
-
- if (sync) {
- method = asyncify(method)
- }
-
- var next = false
- function isAsync() { t.ok(next, "is async") }
-
- var readSimple = wrapMap(read(map.simpleString), identity)
-
- method(code.fileRelative, codeUrl, readSimple, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "foo.js.map",
- url: "http://example.com/a/b/c/foo.js.map",
- sourcesRelativeTo: "http://example.com/a/b/c/foo.js.map",
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "fileRelative")
- isAsync()
- })
-
- method(code.domainRelative, codeUrl, readSimple, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "/foo.js.map",
- url: "http://example.com/foo.js.map",
- sourcesRelativeTo: "http://example.com/foo.js.map",
- map: map.simple,
- sourcesResolved: ["http://example.com/foo.js"],
- sourcesContent: ["http://example.com/foo.js"]
- }, "domainRelative")
- isAsync()
- })
-
- method(code.schemeRelative, codeUrl, readSimple, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "//foo.org/foo.js.map",
- url: "http://foo.org/foo.js.map",
- sourcesRelativeTo: "http://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["http://foo.org/foo.js"],
- sourcesContent: ["http://foo.org/foo.js"]
- }, "schemeRelative")
- isAsync()
- })
-
- method(code.absolute, codeUrl, readSimple, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: ["https://foo.org/foo.js"]
- }, "absolute")
- isAsync()
- })
-
- method(code.dataUri, codeUrl, wrapMap(Throws, identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "dataUri")
- isAsync()
- })
-
- method(code.base64, codeUrl, wrapMap(Throws, identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json;base64," +
- "eyJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W119",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "base64")
- isAsync()
- })
-
- method(code.dataUriText, codeUrl, wrapMap(Throws, identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:text/json," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "dataUriText")
- isAsync()
- })
-
- method(code.dataUriParameter, codeUrl, wrapMap(Throws, identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json;charset=UTF-8;foo=bar," +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "dataUriParameter")
- isAsync()
- })
-
- method(code.dataUriNoMime, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriNoMime .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/plain/), "dataUriNoMime")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriInvalidMime, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:text/html,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriInvalidMime .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/html/), "dataUriInvalidMime")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriInvalidJSON, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:application/json,foo",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: "foo"
- }, "dataUriInvalidJSON .sourceMapData")
- t.ok(error instanceof SyntaxError && error.message !== "data:application/json,foo",
- "dataUriInvalidJSON")
- t.notOk(result)
- isAsync()
- })
-
- method(code.dataUriXSSIsafe, codeUrl, wrapMap(Throws, identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "data:application/json," + ")%5D%7D%27" +
- "%7B%22mappings%22%3A%22AAAA%22%2C%22sources%22%3A%5B%22" +
- "foo.js%22%5D%2C%22names%22%3A%5B%5D%7D",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: map.simple,
- sourcesResolved: ["http://example.com/a/b/c/foo.js"],
- sourcesContent: ["http://example.com/a/b/c/foo.js"]
- }, "dataUriXSSIsafe")
- isAsync()
- })
-
- method(code.dataUriEmpty, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "data:",
- url: null,
- sourcesRelativeTo: codeUrl,
- map: ""
- }, "dataUriEmpty .sourceMapData")
- t.ok(error.message.match(/mime type.+text\/plain/), "dataUriEmpty")
- t.notOk(result)
- isAsync()
- })
-
- method(code.noMap, codeUrl, wrap(Throws), function(error, result) {
- t.error(error)
- t.equal(result, null, "noMap")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read([map.simpleString])), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: [map.simpleString]
- }, "read non-string")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(read("invalid JSON")), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: "invalid JSON"
- }, "read invalid JSON .sourceMapData")
- t.ok(error instanceof SyntaxError, "read invalid JSON")
- t.notOk(result)
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrapMap(read(map.XSSIsafe), identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: ["https://foo.org/foo.js"]
- }, "XSSIsafe map")
- isAsync()
- })
-
- method(code.absolute, codeUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: "https://foo.org/foo.js.map",
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: null
- }, "read throws .sourceMapData")
- t.equal(error.message, "https://foo.org/foo.js.map", "read throws")
- t.notOk(result)
- isAsync()
- })
-
- function readMap(what) {
- return wrapMap(read(JSON.stringify(what)), identity)
- }
-
- var options
-
- method(code.fileRelative, codeUrl, readMap(map.simple), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, ["http://example.com/a/b/c/foo.js"], "simple")
- t.deepEqual(result.sourcesContent, ["http://example.com/a/b/c/foo.js"], "simple")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, readMap(map.sourceRoot), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRoot")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRoot")
- isAsync()
- })
-
- options = {sourceRoot: false}
- method(code.fileRelative, codeUrl, readMap(map.sourceRoot), options, function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "ignore sourceRoot")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "ignore sourceRoot")
- isAsync()
- })
-
- options = {sourceRoot: "/static/js/"}
- method(code.fileRelative, codeUrl, readMap(map.sourceRoot), options, function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "custom sourceRoot")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "custom sourceRoot")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, readMap(map.sourceRootNoSlash), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRootNoSlash")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRootNoSlash")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, readMap(map.sourceRootEmpty), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRootEmpty")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourceRootEmpty")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, readMap(map.sourcesContent), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/static/js/app/foo.js",
- "http://example.com/static/js/app/lib/bar.js",
- "http://example.com/static/js/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "sourcesContent")
- t.deepEqual(result.sourcesContent, [
- "foo.js",
- "lib/bar.js",
- "../vendor/dom.js",
- "/version.js",
- "//foo.org/baz.js"
- ], "sourcesContent")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, readMap(map.mixed), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "mixed")
- t.deepEqual(result.sourcesContent, [
- "foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "/version.js",
- "//foo.org/baz.js"
- ], "mixed")
- isAsync()
- })
-
- method(code.fileRelative, codeUrl, wrap(read([map.simpleString])), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, ["http://example.com/a/b/c/foo.js"], "read non-string")
- t.deepEqual(result.sourcesContent, [map.simpleString], "read non-string")
- isAsync()
- })
-
- function ThrowsMap(what) {
- return wrapMap(read(JSON.stringify(what)), Throws)
- }
-
- method(code.fileRelative, codeUrl, ThrowsMap(map.mixed), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "read throws .sourcesResolved")
- var sourcesContent = result.sourcesContent
- for (var index = 0, len = sourcesContent.length; index < len; index++) {
- var item = sourcesContent[index]
- if (item instanceof Error) {
- sourcesContent[index] = null
- }
- }
- t.deepEqual(sourcesContent, [
- "foo.js",
- null,
- null,
- "/version.js",
- "//foo.org/baz.js"
- ], "read throws .sourcesContent")
- isAsync()
- })
-
- var mapUrl = "https://foo.org/foo.js.map"
-
- method(null, mapUrl, readSimple, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: null,
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: ["https://foo.org/foo.js"]
- }, "mapUrl simple")
- isAsync()
- })
-
- method(null, mapUrl, wrap(read([map.simpleString])), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: null,
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: [map.simpleString]
- }, "mapUrl read non-string")
- isAsync()
- })
-
- method(null, mapUrl, wrap(read("invalid JSON")), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: null,
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: "invalid JSON"
- }, "mapUrl read invalid JSON .sourceMapData")
- t.ok(error instanceof SyntaxError, "mapUrl read invalid JSON")
- t.notOk(result)
- isAsync()
- })
-
- method(null, mapUrl, wrapMap(read(map.XSSIsafe), identity), function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: null,
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: map.simple,
- sourcesResolved: ["https://foo.org/foo.js"],
- sourcesContent: ["https://foo.org/foo.js"]
- }, "mapUrl XSSIsafe map")
- isAsync()
- })
-
- method(null, mapUrl, wrap(Throws), function(error, result) {
- t.deepEqual(error.sourceMapData, {
- sourceMappingURL: null,
- url: "https://foo.org/foo.js.map",
- sourcesRelativeTo: "https://foo.org/foo.js.map",
- map: null
- }, "mapUrl read throws .sourceMapData")
- t.equal(error.message, "https://foo.org/foo.js.map", "mapUrl read throws")
- t.notOk(result)
- isAsync()
- })
-
- mapUrl = "http://example.com/a/b/c/foo.js.map"
-
- options = {sourceRoot: "/static/js/"}
- method(null, mapUrl, readMap(map.sourceRoot), options, function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "mapUrl custom sourceRoot")
- t.deepEqual(result.sourcesContent, [
- "http://example.com/static/js/foo.js",
- "http://example.com/static/js/lib/bar.js",
- "http://example.com/static/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "mapUrl custom sourceRoot")
- isAsync()
- })
-
- method(null, mapUrl, readMap(map.mixed), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, [
- "http://example.com/a/b/c/foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "http://example.com/version.js",
- "http://foo.org/baz.js"
- ], "mapUrl mixed")
- t.deepEqual(result.sourcesContent, [
- "foo.js",
- "http://example.com/a/b/c/lib/bar.js",
- "http://example.com/a/b/vendor/dom.js",
- "/version.js",
- "//foo.org/baz.js"
- ], "mapUrl mixed")
- isAsync()
- })
-
- next = true
- }
-}
-
-test(".resolve", testResolve(sourceMapResolve.resolve, false))
-
-test(".resolveSync", testResolve(sourceMapResolve.resolveSync, true))
-
-test(".parseMapToJSON", function(t) {
- t.plan(1)
- t.deepEqual(sourceMapResolve.parseMapToJSON(map.XSSIsafe), map.simple)
-})
diff --git a/node_modules/source-map-resolve/test/windows.js b/node_modules/source-map-resolve/test/windows.js
deleted file mode 100644
index 611ec7dcd..000000000
--- a/node_modules/source-map-resolve/test/windows.js
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2014 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-var path = require("path")
-var test = require("tape")
-var asyncify = require("simple-asyncify")
-var common = require("./common")
-var u = common.u
-var read = common.read
-var identity = common.identity
-
-var sourceMapResolve = require("../")
-
-path.sep = "\\"
-
-
-function testResolveSourceMap(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
-
- var codeUrl = "c:\\a\\b\\c\\foo.js"
-
- t.plan(3 * 2)
-
- if (sync) {
- method = asyncify(method)
- }
-
- var map = {}
- var readMap = wrap(read(JSON.stringify(map)))
-
- method(u("foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "foo.js.map",
- url: "/a/b/c/foo.js.map",
- sourcesRelativeTo: "/a/b/c/foo.js.map",
- map: map
- })
- })
-
- method(u("/foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "/foo.js.map",
- url: "/foo.js.map",
- sourcesRelativeTo: "/foo.js.map",
- map: map
- })
- })
-
- method(u("../foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "../foo.js.map",
- url: "/a/b/foo.js.map",
- sourcesRelativeTo: "/a/b/foo.js.map",
- map: map
- })
- })
-
- }
-}
-
-test(".resolveSourceMap", testResolveSourceMap(sourceMapResolve.resolveSourceMap, false))
-
-test(".resolveSourceMapSync", testResolveSourceMap(sourceMapResolve.resolveSourceMapSync, true))
-
-
-function testResolveSources(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
-
- var mapUrl = "c:\\a\\b\\c\\foo.js.map"
-
- t.plan(1 * 3)
-
- if (sync) {
- method = asyncify(method)
- }
-
- var map = {
- sources: ["foo.js", "/foo.js", "../foo.js"]
- }
-
- method(map, mapUrl, wrap(identity), function(error, result) {
- t.error(error)
- t.deepEqual(result.sourcesResolved, ["/a/b/c/foo.js", "/foo.js", "/a/b/foo.js"])
- t.deepEqual(result.sourcesContent, ["/a/b/c/foo.js", "/foo.js", "/a/b/foo.js"])
- })
-
- }
-}
-
-test(".resolveSources", testResolveSources(sourceMapResolve.resolveSources, false))
-
-test(".resolveSourcesSync", testResolveSources(sourceMapResolve.resolveSourcesSync, true))
-
-
-function testResolve(method, sync) {
- return function(t) {
- var wrap = (sync ? identity : asyncify)
- var wrapMap = function(mapFn, fn) {
- return wrap(function(url) {
- if (/\.map$/.test(url)) {
- return mapFn(url)
- }
- return fn(url)
- })
- }
-
- var codeUrl = "c:\\a\\b\\c\\foo.js"
-
- t.plan(3 * 2)
-
- if (sync) {
- method = asyncify(method)
- }
-
- var map = {
- sources: ["foo.js", "/foo.js", "../foo.js"]
- }
- var readMap = wrapMap(read(JSON.stringify(map)), identity)
-
- method(u("foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "foo.js.map",
- url: "/a/b/c/foo.js.map",
- sourcesRelativeTo: "/a/b/c/foo.js.map",
- map: map,
- sourcesResolved: ["/a/b/c/foo.js", "/foo.js", "/a/b/foo.js"],
- sourcesContent: ["/a/b/c/foo.js", "/foo.js", "/a/b/foo.js"]
- })
- })
-
- method(u("/foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "/foo.js.map",
- url: "/foo.js.map",
- sourcesRelativeTo: "/foo.js.map",
- map: map,
- sourcesResolved: ["/foo.js", "/foo.js", "/foo.js"],
- sourcesContent: ["/foo.js", "/foo.js", "/foo.js"]
- })
- })
-
- method(u("../foo.js.map"), codeUrl, readMap, function(error, result) {
- t.error(error)
- t.deepEqual(result, {
- sourceMappingURL: "../foo.js.map",
- url: "/a/b/foo.js.map",
- sourcesRelativeTo: "/a/b/foo.js.map",
- map: map,
- sourcesResolved: ["/a/b/foo.js", "/foo.js", "/a/foo.js"],
- sourcesContent: ["/a/b/foo.js", "/foo.js", "/a/foo.js"]
- })
- })
-
- }
-}
-
-test(".resolve", testResolve(sourceMapResolve.resolve, false))
-
-test(".resolveSync", testResolve(sourceMapResolve.resolveSync, true))
diff --git a/node_modules/source-map-resolve/x-package.json5 b/node_modules/source-map-resolve/x-package.json5
index fb03d6e4e..957399f3c 100644
--- a/node_modules/source-map-resolve/x-package.json5
+++ b/node_modules/source-map-resolve/x-package.json5
@@ -1,6 +1,6 @@
{
name: "source-map-resolve",
- version: "0.5.0",
+ version: "0.5.1",
author: "Simon Lydell",
license: "MIT",
description: "Resolve the source map and/or sources for a generated file.",