{"_id":"nurl","_rev":"17-077554493de52bf4f5147d2e36cd86bb","name":"nurl","description":"Module that provides a simple, immutable URL object for access and manipulation","dist-tags":{"latest":"1.0.0","stable":"0.1.2"},"versions":{"0.1.0":{"name":"nurl","description":"Module that provides a simple, immutable URL object for access and manipulation","version":"0.1.0","main":"./lib/nurl","directories":{"test":"./test"},"author":{"name":"David Winterbottom","email":"david.winterbottom@gmail.com"},"_id":"nurl@0.1.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"https://registry.npmjs.org/nurl/-/nurl-0.1.0.tgz","shasum":"1203b48ead2cb88da629c52942bcaa54f9c645bf","integrity":"sha512-fNEsaertXbAakAV9qszfPVl7OQRu7dabQam23LxJM+hh9aFgU34oMvjBWtck8XL9+IULVZsa20bgTZr+weklXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+nVdwEHh2ccqiO5cE+WydgYo9qqV0jW0xwZUSnUNHvAIgKLg46q2KzGyQJZ/V+N2sKDWVIb8P8cS4wgHz54eJx18="}]}},"0.1.1":{"name":"nurl","description":"Module that provides a simple, immutable URL object for access and manipulation","version":"0.1.1","main":"./lib/nurl","directories":{"test":"./test"},"author":{"name":"David Winterbottom","email":"david.winterbottom@gmail.com"},"_id":"nurl@0.1.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"https://registry.npmjs.org/nurl/-/nurl-0.1.1.tgz","shasum":"68cb5bc236a5f6286c1502d54af3f688091ae836","integrity":"sha512-Zg2TLdEjbWpRqgFWI+AHu/YQ7AcSdknsl3/YAdyQlcXXsrcwNHYOmn/nTS9JuUSCI/swSxwpDnMiyf6REMhZSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClaDnexaqkgWCeuAJzFH3/ULLkPjIKa2VWM5I1860jzAIgY5nMwr1Y9Df1C1bBvpSRs8LmJKb7aRNCfGzY+tEWMT0="}]}},"0.1.2":{"name":"nurl","description":"Module that provides a simple, immutable URL object for access and manipulation","version":"0.1.2","main":"./lib/nurl","directories":{"test":"./test"},"author":{"name":"David Winterbottom","email":"david.winterbottom@gmail.com"},"_id":"nurl@0.1.2","engines":{"node":"*"},"_nodeSupported":true,"dist":{"tarball":"https://registry.npmjs.org/nurl/-/nurl@0.1.2.tgz","shasum":"898ffa6a3fe79399ed7e5843f8eb167fdb4ec22b","integrity":"sha512-dBfzkfX+PJYzuZtt1pnoX6wlAuk68UPrYlfcqFVc2/UFKg8f1LrsVOaEs4v9/f3vRba6GlftNZmWvtrPI8sY1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIQ/7ZS+pqa8+T+0G2jvWgUM4zh8iLa1fewujgv2RrlAIgca+P6NBtgvjptfmdbASGyp248i4/9kcY9cySvrZyeTA="}]}},"1.0.0":{"name":"nurl","description":"Module that provides a simple, immutable URL object for access and manipulation","version":"1.0.0","main":"./lib/nurl.js","scripts":{"test":"vows test/url-vows.js"},"directories":{"test":"./test"},"author":{"name":"David Winterbottom","email":"david.winterbottom@gmail.com"},"devDependencies":{"vows":"0.8.3"},"gitHead":"330f6e7ef5b5ed939e327d78fca9dd7624e86f17","_id":"nurl@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"codeinthehole","email":"david.winterbottom@gmail.com"},"dist":{"integrity":"sha512-BH2XqmlIJy0KeEWWc5Lmgb13mTnOZjPpJTUceb9Nv6GoOQE3TurP0hRj92rIxkWhTcUvU3NPYaPjUK48CurErg==","shasum":"3d9bc287bc4eb396d27bf14bf60b9321f81f46c4","tarball":"https://registry.npmjs.org/nurl/-/nurl-1.0.0.tgz","fileCount":5,"unpackedSize":26359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSXO0CRA9TVsSAnZWagAAcpcP/05JiPW2lseSTpvEwZwi\nuJROppOzDOMEbgTxz5X/wQFAKC/a9g85slgan/vWUy9v4fIeIkNG2VfnlcCd\n3oCx8XkbvGbYUDe3c3uw91aO9Uu4CVH8Zfxdu/Zq80QAlIU8LqYUgSZjsTKB\nMm50uL3DmTajAVoMOh9fgHM9tZYMg9NVqmVOKEDt5pMZjfifqdyG/64RPj4i\nws/EPdbMXWDsET2dCxp38zAawCy9diaL5/AY9Nq2uhC4dl9dS1bVBJHY2gyP\n9zAMhM62cKTLJGncqTF8mjVL/5+0G/PNq4xuF7eOS6XHbPdp4MXx8xEuAaUm\nnM7E9C0fHcOQRwXEcPYZeY2rR9xv7KIZ96C/fSwH51dGHx1q1v2W64b9G9Bg\nhNKimcxZuf2v29KCfzTedSRCgk4MZpNsazBnjZvOFtb5V4epH1bgiDt+ZrRT\nhY35dU5y+Ts8W4WHFmQgbTu80TN2UgGs/KnM1bZgUKNYqj5BZOnCpr+GmAhl\n4/yau1zkV6cYFxGNu6kZN/iPMeOEBLJfvmfyQPq7M88u8dNctap4k0NNWAjI\nGqbvIXoqzlXQ/PN/9L2GVu847Shml8vke+o0dQGeP/FuvQctqrR5WSdAZnAg\nEhuyhftMD4iEh6RqTAQ60JHdKw2ll+7hzF/uHr6t6oKnl5oAQQohv1hH9POk\nNOvn\r\n=Y7XF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1RPEV4e35UKk6mRjgBUkUVdV9wZtuIaDN7GRwBYJq9AiEAmne6oPdrS0M/xej1aFPCnzPDDgWb8Vnn410TgWcwtGU="}]},"maintainers":[{"name":"codeinthehole","email":"david.winterbottom@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nurl_1.0.0_1581872052333_0.06091690614619383"},"_hasShrinkwrap":false}},"maintainers":[{"name":"codeinthehole","email":"david.winterbottom@gmail.com"}],"author":{"name":"David Winterbottom","email":"david.winterbottom@gmail.com"},"readme":"# nURL - A simple URL object for node.js\n\nThis module provides a simple URL object that provides a clean, easy-to-use interface to \naccessing a URLs values as well as for creating and manipulating URLs.  Each URL object is\nimmutable: whenever a value is altered, a new instance is returned leaving the original unchanged.\n\nThis module builds on top of the core 'url' and 'querystring' modules.\n\n## Installation\n\nNothing more than:\n\n    npm install nurl\n\n## Sample usage\n\t\nURLs are modelled as:\n\n    scheme://user:password@hostname:port/pathname?search#fragment\n\nNote that the `//` following the scheme is optional for certain schema (eg mailto).\t\n\nNow, starting with:\n\n    var nurl = require('nurl');\n\nyou can create a URL object using one of:\n\n    var u = nurls.parse('http://www.google.com/search?q=node.js#top');\n    var u = (new nurl.Url()).setScheme('http')\n\t\t\t\t\t\t    .setHostname('www.google.com')\n\t\t\t\t\t\t\t.setPathname('/search')\n\t\t\t\t\t\t\t.setQueryParam('q', 'node.js')\n\t\t\t\t\t\t\t.setFragment('top');\n\tvar u = new nurl.Url('http', Null, Null, 'www.google.com', Null, '/search', 'q=node.js', 'top');\n\nThe various components of `u` can be accessed through both read-only properties and getter methods:\n\n    u.protocol, u.scheme, u.getProtocol(), u.getScheme() // => 'http'\n\tu.getUser() // => Null\n\tu.getPassword() // => Null\n    u.auth, u.getAuth() // => Null\n    u.hostname, u.getHostname() // => 'www.google.com'\n    u.port, u.getPort() // => 80\n    u.pathname, u.getPathname() // => '/search'\n    u.search, u.getSearch() // => '?node.js'\n    u.fragment, u.hash, u.getFragment(), u.getHash() // => 'top'\n    u.href, u.getHref() // => 'http://www.google.com/search?q=node.js#top'\n\nNote that:\n\n- both the properties and getters return `Null` when the component has no value.\nw\n- some property names are aliases (such as 'protocol' and 'scheme')\n\nMore detailed interrogation can be performed using:\n\n    u.getSubdomains() // => ['www', 'google', 'com']\n    u.getSubdomain(0) // => 'www'\n    u.hasQueryParam('q') // => True\n    u.getQueryParam('q') // => 'node.js'\n    u.getPathSegments() // => ['search']\n    u.getPathSegment(0) // => 'search'\n    u.isRelative() // => False\n    u.isAbsolute() // => True\n\nSetters follow a similar pattern, each returning a new URL object:\n\n    u.setProtocol('https'), u.setScheme('https')\n    u.setAuth('user', 'secret')\n    u.setHostname('example.com')\n    u.setSubdomain(0, 'sample') // => 'sample.google.com'\n    u.setPort('80')\n    u.setPathname('/')\n    u.setPathSegment(1, 'extension') // => '/search/extension'\n    u.setPathSegments(['search', 'some query here'])\n    u.setQueryParam('q', 'testing')\n    u.setHash('top')\n\nURL objects can be merged to create a new object - the properties of the passed in\nURL will fill in any missing components:\n\n    var u1 = nurl.parse('http://www.google.com');\n\tvar u2 = nurl.parse('/search?q=test.js');\n\tu1.mergeWith(u2) // => 'http://www.google.com/search?q=test.js'\n\n\t\n## Testing\n\nAll tests are written in the excellent [vows](http://vowsjs.org/) library.  To run them, use\n\n    $ cd /path/to/nurl\n    $ vows --spec\n\n## Author\n\nDavid Winterbottom (david.winterbottom@gmail.com)","readmeFilename":"README.md","time":{"created":"2015-01-01T00:00:00.000Z","0.1.0":"2015-01-01T00:00:00.000Z","0.1.1":"2015-01-01T00:00:00.000Z","0.1.2":"2015-01-01T00:00:00.000Z","1.0.0":"2020-02-16T16:54:12.555Z","modified":"2022-06-22T13:57:36.574Z"}}