diff options
Diffstat (limited to 'node_modules/parseuri')
-rw-r--r-- | node_modules/parseuri/.npmignore | 2 | ||||
-rw-r--r-- | node_modules/parseuri/History.md | 5 | ||||
-rw-r--r-- | node_modules/parseuri/LICENSE | 21 | ||||
-rw-r--r-- | node_modules/parseuri/Makefile | 3 | ||||
-rw-r--r-- | node_modules/parseuri/README.md | 2 | ||||
-rw-r--r-- | node_modules/parseuri/index.js | 39 | ||||
-rw-r--r-- | node_modules/parseuri/package.json | 86 | ||||
-rw-r--r-- | node_modules/parseuri/test.js | 51 |
8 files changed, 209 insertions, 0 deletions
diff --git a/node_modules/parseuri/.npmignore b/node_modules/parseuri/.npmignore new file mode 100644 index 0000000..4da89cf --- /dev/null +++ b/node_modules/parseuri/.npmignore @@ -0,0 +1,2 @@ +.DS_Store +.node_modules/*
\ No newline at end of file diff --git a/node_modules/parseuri/History.md b/node_modules/parseuri/History.md new file mode 100644 index 0000000..c33a1bf --- /dev/null +++ b/node_modules/parseuri/History.md @@ -0,0 +1,5 @@ + +n.n.n / 2014-02-09 +================== + + * parseuri first commit diff --git a/node_modules/parseuri/LICENSE b/node_modules/parseuri/LICENSE new file mode 100644 index 0000000..c32368d --- /dev/null +++ b/node_modules/parseuri/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Gal Koren + +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/parseuri/Makefile b/node_modules/parseuri/Makefile new file mode 100644 index 0000000..1d90629 --- /dev/null +++ b/node_modules/parseuri/Makefile @@ -0,0 +1,3 @@ + +test: + @./node_modules/.bin/mocha test.js diff --git a/node_modules/parseuri/README.md b/node_modules/parseuri/README.md new file mode 100644 index 0000000..5c663ed --- /dev/null +++ b/node_modules/parseuri/README.md @@ -0,0 +1,2 @@ +# parseuri +Module for parsing URI's in engine.io-client diff --git a/node_modules/parseuri/index.js b/node_modules/parseuri/index.js new file mode 100644 index 0000000..438d6e6 --- /dev/null +++ b/node_modules/parseuri/index.js @@ -0,0 +1,39 @@ +/** + * Parses an URI + * + * @author Steven Levithan <stevenlevithan.com> (MIT license) + * @api private + */ + +var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; + +var parts = [ + 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor' +]; + +module.exports = function parseuri(str) { + var src = str, + b = str.indexOf('['), + e = str.indexOf(']'); + + if (b != -1 && e != -1) { + str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length); + } + + var m = re.exec(str || ''), + uri = {}, + i = 14; + + while (i--) { + uri[parts[i]] = m[i] || ''; + } + + if (b != -1 && e != -1) { + uri.source = src; + uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':'); + uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':'); + uri.ipv6uri = true; + } + + return uri; +}; diff --git a/node_modules/parseuri/package.json b/node_modules/parseuri/package.json new file mode 100644 index 0000000..7d2edb8 --- /dev/null +++ b/node_modules/parseuri/package.json @@ -0,0 +1,86 @@ +{ + "_args": [ + [ + { + "raw": "parseuri@0.0.5", + "scope": null, + "escapedName": "parseuri", + "name": "parseuri", + "rawSpec": "0.0.5", + "spec": "0.0.5", + "type": "version" + }, + "/mnt/e/Yaroslav/Documents/Webs/nodejs/checkers/node_modules/socket.io-client" + ] + ], + "_from": "parseuri@0.0.5", + "_id": "parseuri@0.0.5", + "_inCache": true, + "_location": "/parseuri", + "_nodeVersion": "6.9.1", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/parseuri-0.0.5.tgz_1477582137634_0.3768787120934576" + }, + "_npmUser": { + "name": "gal", + "email": "koren@mit.edu" + }, + "_npmVersion": "3.10.8", + "_phantomChildren": {}, + "_requested": { + "raw": "parseuri@0.0.5", + "scope": null, + "escapedName": "parseuri", + "name": "parseuri", + "rawSpec": "0.0.5", + "spec": "0.0.5", + "type": "version" + }, + "_requiredBy": [ + "/engine.io-client", + "/socket.io-client" + ], + "_resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "_shasum": "80204a50d4dbb779bfdc6ebe2778d90e4bce320a", + "_shrinkwrap": null, + "_spec": "parseuri@0.0.5", + "_where": "/mnt/e/Yaroslav/Documents/Webs/nodejs/checkers/node_modules/socket.io-client", + "author": "", + "bugs": { + "url": "https://github.com/get/parseuri/issues" + }, + "dependencies": { + "better-assert": "~1.0.0" + }, + "description": "Method that parses a URI and returns an array of its components", + "devDependencies": { + "better-assert": "1.0.0", + "mocha": "1.17.1" + }, + "directories": {}, + "dist": { + "shasum": "80204a50d4dbb779bfdc6ebe2778d90e4bce320a", + "tarball": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" + }, + "gitHead": "792c9a63162a4484eb6b4f95fc611ccf224a24b6", + "homepage": "https://github.com/get/parseuri", + "license": "MIT", + "maintainers": [ + { + "name": "gal", + "email": "koren@mit.edu" + } + ], + "name": "parseuri", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/get/parseuri.git" + }, + "scripts": { + "test": "make test" + }, + "version": "0.0.5" +} diff --git a/node_modules/parseuri/test.js b/node_modules/parseuri/test.js new file mode 100644 index 0000000..50a361d --- /dev/null +++ b/node_modules/parseuri/test.js @@ -0,0 +1,51 @@ +var assert = require('better-assert'); +var expect = require('expect.js'); +var parseuri = require('./index.js'); + +describe('my suite', function(){ + it('should parse an uri', function () { + var http = parseuri('http://google.com') + , https = parseuri('https://www.google.com:80') + , query = parseuri('google.com:8080/foo/bar?foo=bar') + , localhost = parseuri('localhost:8080') + , ipv6 = parseuri('2001:0db8:85a3:0042:1000:8a2e:0370:7334') + , ipv6short = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334') + , ipv6port = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334:80') + , ipv6abbrev = parseuri('2001::7334:a:80') + , ipv6http = parseuri('http://[2001::7334:a]:80') + , ipv6query = parseuri('http://[2001::7334:a]:80/foo/bar?foo=bar') + + expect(http.protocol).to.be('http'); + expect(http.port).to.be(''); + expect(http.host).to.be('google.com'); + expect(https.protocol).to.be('https'); + expect(https.port).to.be('80'); + expect(https.host).to.be('www.google.com'); + expect(query.port).to.be('8080'); + expect(query.query).to.be('foo=bar'); + expect(query.path).to.be('/foo/bar'); + expect(query.relative).to.be('/foo/bar?foo=bar'); + expect(localhost.protocol).to.be(''); + expect(localhost.host).to.be('localhost'); + expect(localhost.port).to.be('8080'); + expect(ipv6.protocol).to.be(''); + expect(ipv6.host).to.be('2001:0db8:85a3:0042:1000:8a2e:0370:7334'); + expect(ipv6.port).to.be(''); + expect(ipv6short.protocol).to.be(''); + expect(ipv6short.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334'); + expect(ipv6short.port).to.be(''); + expect(ipv6port.protocol).to.be(''); + expect(ipv6port.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334'); + expect(ipv6port.port).to.be('80'); + expect(ipv6abbrev.protocol).to.be(''); + expect(ipv6abbrev.host).to.be('2001::7334:a:80'); + expect(ipv6abbrev.port).to.be(''); + expect(ipv6http.protocol).to.be('http'); + expect(ipv6http.port).to.be('80'); + expect(ipv6http.host).to.be('2001::7334:a'); + expect(ipv6query.protocol).to.be('http'); + expect(ipv6query.port).to.be('80'); + expect(ipv6query.host).to.be('2001::7334:a'); + expect(ipv6query.relative).to.be('/foo/bar?foo=bar'); + }); +}); |