diff options
Diffstat (limited to 'node_modules/resolve-url')
-rw-r--r-- | node_modules/resolve-url/.jshintrc | 44 | ||||
-rw-r--r-- | node_modules/resolve-url/LICENSE | 21 | ||||
-rw-r--r-- | node_modules/resolve-url/bower.json | 15 | ||||
-rw-r--r-- | node_modules/resolve-url/changelog.md | 15 | ||||
-rw-r--r-- | node_modules/resolve-url/component.json | 15 | ||||
-rw-r--r-- | node_modules/resolve-url/package.json | 72 | ||||
-rw-r--r-- | node_modules/resolve-url/readme.md | 83 | ||||
-rw-r--r-- | node_modules/resolve-url/resolve-url.js | 47 | ||||
-rw-r--r-- | node_modules/resolve-url/test/resolve-url.js | 70 |
9 files changed, 382 insertions, 0 deletions
diff --git a/node_modules/resolve-url/.jshintrc b/node_modules/resolve-url/.jshintrc new file mode 100644 index 0000000..aaf3358 --- /dev/null +++ b/node_modules/resolve-url/.jshintrc @@ -0,0 +1,44 @@ +{
+ "bitwise": true,
+ "camelcase": true,
+ "curly": false,
+ "eqeqeq": true,
+ "es3": true,
+ "forin": true,
+ "immed": false,
+ "indent": false,
+ "latedef": "nofunc",
+ "newcap": false,
+ "noarg": true,
+ "noempty": true,
+ "nonew": false,
+ "plusplus": false,
+ "quotmark": false,
+ "undef": true,
+ "unused": "vars",
+ "strict": false,
+ "trailing": true,
+ "maxparams": 5,
+ "maxdepth": false,
+ "maxstatements": false,
+ "maxcomplexity": false,
+ "maxlen": 100,
+
+ "asi": true,
+ "expr": true,
+ "globalstrict": true,
+ "smarttabs": true,
+ "sub": true,
+
+ "node": true,
+ "browser": true,
+ "globals": {
+ "describe": false,
+ "it": false,
+ "before": false,
+ "beforeEach": false,
+ "after": false,
+ "afterEach": false,
+ "define": false
+ }
+}
diff --git a/node_modules/resolve-url/LICENSE b/node_modules/resolve-url/LICENSE new file mode 100644 index 0000000..0595be3 --- /dev/null +++ b/node_modules/resolve-url/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 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 +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. diff --git a/node_modules/resolve-url/bower.json b/node_modules/resolve-url/bower.json new file mode 100644 index 0000000..31aa6f4 --- /dev/null +++ b/node_modules/resolve-url/bower.json @@ -0,0 +1,15 @@ +{ + "name": "resolve-url", + "version": "0.2.1", + "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.", + "authors": ["Simon Lydell"], + "license": "MIT", + "main": "resolve-url.js", + "keywords": [ + "resolve", + "url" + ], + "ignore": [ + ".*" + ] +} diff --git a/node_modules/resolve-url/changelog.md b/node_modules/resolve-url/changelog.md new file mode 100644 index 0000000..2a4a630 --- /dev/null +++ b/node_modules/resolve-url/changelog.md @@ -0,0 +1,15 @@ +### Version 0.2.1 (2014-02-25) ### + +- Fix edge case when (accidentally) supplying only one argument, and that + argument happens to be a falsy value such as `undefined` or `null`. + + +### Version 0.2.0 (2014-02-24) ### + +- Disallow passing 0 arguments. It’s weird and inconsistent between browsers. + (Backwards incompatible change.) + + +### Version 0.1.0 (2014-02-23) ### + +- Initial release. diff --git a/node_modules/resolve-url/component.json b/node_modules/resolve-url/component.json new file mode 100644 index 0000000..f37cf00 --- /dev/null +++ b/node_modules/resolve-url/component.json @@ -0,0 +1,15 @@ +{ + "name": "resolve-url", + "version": "0.2.1", + "license": "MIT", + "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.", + "main": "resolve-url.js", + "repo": "lydell/resolve-url", + "keywords": [ + "resolve", + "url" + ], + "scripts": [ + "resolve-url.js" + ] +} diff --git a/node_modules/resolve-url/package.json b/node_modules/resolve-url/package.json new file mode 100644 index 0000000..97b1185 --- /dev/null +++ b/node_modules/resolve-url/package.json @@ -0,0 +1,72 @@ +{ + "_args": [ + [ + "[email protected]", + "/home/dstaesse/git/website" + ] + ], + "_development": true, + "_from": "[email protected]", + "_id": "[email protected]", + "_inBundle": false, + "_integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "_location": "/resolve-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "[email protected]", + "name": "resolve-url", + "escapedName": "resolve-url", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "/home/dstaesse/git/website", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/resolve-url/issues" + }, + "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.", + "devDependencies": { + "jshint": "~2.4.3", + "tape": "~2.5.0", + "testling": "~1.6.0" + }, + "homepage": "https://github.com/lydell/resolve-url#readme", + "keywords": [ + "resolve", + "url" + ], + "license": "MIT", + "main": "resolve-url.js", + "name": "resolve-url", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/resolve-url.git" + }, + "scripts": { + "test": "jshint resolve-url.js test/ && testling -u" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "chrome/latest", + "firefox/latest", + "opera/12", + "opera/latest", + "safari/5", + "iphone/6", + "android-browser/4" + ] + }, + "version": "0.2.1" +} diff --git a/node_modules/resolve-url/readme.md b/node_modules/resolve-url/readme.md new file mode 100644 index 0000000..edfff73 --- /dev/null +++ b/node_modules/resolve-url/readme.md @@ -0,0 +1,83 @@ +Overview
+========
+
+[![browser support](https://ci.testling.com/lydell/resolve-url.png)](https://ci.testling.com/lydell/resolve-url)
+
+Like Node.js’ [`path.resolve`]/[`url.resolve`] for the browser.
+
+```js
+var resolveUrl = require("resolve-url")
+
+window.location
+// https://example.com/articles/resolving-urls/edit
+
+resolveUrl("remove")
+// https://example.com/articles/resolving-urls/remove
+
+resolveUrl("/static/scripts/app.js")
+// https://example.com/static/scripts/app.js
+
+// Imagine /static/scripts/app.js contains `//# sourceMappingURL=../source-maps/app.js.map`
+resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map")
+// https://example.com/static/source-maps/app.js.map
+
+resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee")
+// https://example.com/static/coffee/app.coffee
+
+resolveUrl("//cdn.example.com/jquery.js")
+// https://cdn.example.com/jquery.js
+
+resolveUrl("http://foo.org/")
+// http://foo.org/
+```
+
+
+Installation
+============
+
+- `npm install resolve-url`
+- `bower install resolve-url`
+- `component install lydell/resolve-url`
+
+Works with CommonJS, AMD and browser globals, through UMD.
+
+
+Usage
+=====
+
+### `resolveUrl(...urls)` ###
+
+Pass one or more urls. Resolves the last one to an absolute url, using the
+previous ones and `window.location`.
+
+It’s like starting out on `window.location`, and then clicking links with the
+urls as `href` attributes in order, from left to right.
+
+Unlike Node.js’ [`path.resolve`], this function always goes through all of the
+arguments, from left to right. `path.resolve` goes from right to left and only
+in the worst case goes through them all. Should that matter.
+
+Actually, the function is _really_ like clicking a lot of links in series: An
+actual `<a>` gets its `href` attribute set for each url! This means that the
+url resolution of the browser is used, which makes this module really
+light-weight.
+
+Also note that this functions deals with urls, not paths, so in that respect it
+has more in common with Node.js’ [`url.resolve`]. But the arguments are more
+like [`path.resolve`].
+
+[`path.resolve`]: http://nodejs.org/api/path.html#path_path_resolve_from_to
+[`url.resolve`]: http://nodejs.org/api/url.html#url_url_resolve_from_to
+
+
+Tests
+=====
+
+Run `npm test`, which lints the code and then gives you a link to open in a
+browser of choice (using `testling`).
+
+
+License
+=======
+
+[The X11 (“MIT”) License](LICENSE).
diff --git a/node_modules/resolve-url/resolve-url.js b/node_modules/resolve-url/resolve-url.js new file mode 100644 index 0000000..19e8d04 --- /dev/null +++ b/node_modules/resolve-url/resolve-url.js @@ -0,0 +1,47 @@ +// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+void (function(root, factory) {
+ if (typeof define === "function" && define.amd) {
+ define(factory)
+ } else if (typeof exports === "object") {
+ module.exports = factory()
+ } else {
+ root.resolveUrl = factory()
+ }
+}(this, function() {
+
+ function resolveUrl(/* ...urls */) {
+ var numUrls = arguments.length
+
+ if (numUrls === 0) {
+ throw new Error("resolveUrl requires at least one argument; got none.")
+ }
+
+ var base = document.createElement("base")
+ base.href = arguments[0]
+
+ if (numUrls === 1) {
+ return base.href
+ }
+
+ var head = document.getElementsByTagName("head")[0]
+ head.insertBefore(base, head.firstChild)
+
+ var a = document.createElement("a")
+ var resolved
+
+ for (var index = 1; index < numUrls; index++) {
+ a.href = arguments[index]
+ resolved = a.href
+ base.href = resolved
+ }
+
+ head.removeChild(base)
+
+ return resolved
+ }
+
+ return resolveUrl
+
+}));
diff --git a/node_modules/resolve-url/test/resolve-url.js b/node_modules/resolve-url/test/resolve-url.js new file mode 100644 index 0000000..18532ed --- /dev/null +++ b/node_modules/resolve-url/test/resolve-url.js @@ -0,0 +1,70 @@ +// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+var test = require("tape")
+
+var resolveUrl = require("../")
+
+"use strict"
+
+test("resolveUrl", function(t) {
+
+ t.plan(7)
+
+ t.equal(typeof resolveUrl, "function", "is a function")
+
+ t.equal(
+ resolveUrl("https://example.com/"),
+ "https://example.com/"
+ )
+
+ var loc = "https://example.com/articles/resolving-urls/edit"
+
+ t.equal(
+ resolveUrl(loc, "remove"),
+ "https://example.com/articles/resolving-urls/remove"
+ )
+
+ t.equal(
+ resolveUrl(loc, "/static/scripts/app.js"),
+ "https://example.com/static/scripts/app.js"
+ )
+
+ t.equal(
+ resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map"),
+ "https://example.com/static/source-maps/app.js.map"
+ )
+
+ t.equal(
+ resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee"),
+ "https://example.com/static/coffee/app.coffee"
+ )
+
+ t.equal(
+ resolveUrl(loc, "//cdn.example.com/jquery.js"),
+ "https://cdn.example.com/jquery.js"
+ )
+
+})
+
+test("edge cases", function(t) {
+
+ t.plan(4)
+
+ t["throws"](resolveUrl, /at least one argument/, "throws with no arguments")
+
+ var accidentallyUndefined
+ var result
+ t.doesNotThrow(
+ function() { result = resolveUrl(accidentallyUndefined) },
+ "undefined is still an argument"
+ )
+ t.ok(result.match(/\/undefined$/), "undefined is stringified")
+
+ t.equal(
+ resolveUrl("http://foo.org/test", undefined, {}, ["a/b"], null),
+ "http://foo.org/a/null",
+ "arguments are stringified"
+ )
+
+})
|