CHANGELOG.md
31.7 KB
URI.js - Changelog
The release notes tracked in this document are also made available on the releases page
1.19.0 (October 1st 2017)
- adding
.setFragment()
to query fragment plugin - Issue #338, PR #356 - adding setting
URI.preventInvalidHostname
to control if an error should be thrown on invalid input - Issue #352, Issue #354, Issue #355 - effectively making the changes of version 1.18.11 opt-in rather than default.
1.18.12 (August 9th 2017)
- making
URI.parse()
allow_
in hostname - Issue #347, PR #348 - fixing
URI.parse()
to not useNumber.isNumber()
for IE compatibility - Issue #350, PR #351
1.18.11 (August 8th 2017)
- making
URI.parse()
throw on invalid port and hostname - Issue #344, PR #345
1.18.10 (March 30th 2017)
- adding support for CentralNic Second Level Domains - Issue #333
1.18.9 (March 6th 2017)
- adding option
strict
toURITemplate()
in order to throw an exception in case a placeholder could not be replaced - PR #330
1.18.8 (February 27th 2017)
- fixing
.absoluteTo()
to not resolve URIs containing a scheme - Issue #328
1.18.7 (February 13th 2017)
- fixing
URI.withinString()
to ignorewww.
andhttp://.
- Issue #327
1.18.6 (February 10th 2017)
- fixing
URITemplate()
to allow'
(single quotes) in literals - PR #326
1.18.5 (January 30th 2017)
- prevent
new URI(null)
from blowing up - PR #321 - fixing
URI.withinString()
to properly handle fully contained parentheses - Issue #325
1.18.4 (December 4th 2016)
- fixing
URI.withinString()
to capture balanced parentheses - Issue #247
1.18.3 (November 17th 2016)
- fixing UMD wrappers to properly detect CommonJS - Issue #318, PR #319
1.18.2 (September 25th 2016)
- fixing
URI.withinString()
to allow callback to returnundefined
orstring
- Issue #303 - fixing
.absoluteTo()
to properly resolve relative paths for fragment-only URLs
1.18.1 (May 29th 2016)
- fixing UMD wrapper of
jquery.URI.js
- Issue #295
1.18.0 (April 30th 2016)
- adding
URI.joinPaths()
to compose paths from directory tokens - Issue #285 - fixing
URITemplate()
to allow.
in variable names - PR #287 - fixing
URITemplate()
to reject invalid literals - PR #289 - fixing
URITemplate()
to reject prefix modifier on composite values - PR #290 - fixing
URI.buildUserinfo()
to properly serialize password-only values - PR #293
1.17.1 (February 25th 2016)
- fixing
.normalizePath()
to properly handle percent-encoded dot segments and leading dots in basename - Issue #264, by JordanMilne - fixing
.hasQuery()
to acceptRegExp
for name argument - Issue #274, Issue #277 by mbrodala
1.17.0 (November 13th 2015)
- fixing
URI.removeQuery()
to cast values to string before matching - Issue #250, Issue #252, by ryanelian and Siltaar - fixing
.segment()
to allow appending an empty element - Issue #236, Issue #253, by orlando - adding
.origin()
to get protocol and authority, counter-part to.resource()
- Issue #210, Issue #263, by justinmchase
1.16.1 (September 19th 2015)
Package Management Cleanup - no changes to source code!
- renaming package to "urijs", was "URIjs" (because npm decided to go lower-case at some point and maintaining capitals in your package name poses all sorts of stupid issues)
- removing jam, spm,
component.json
andURI.jquery.json
as nobody cared that URI.js was stuck on 1.14 for a year
1.16.0 (July 24th 2015)
-
SECURITY fixing
URI.parseHost()
to rewrite\
to/
as Node and Browsers do - Issue #233 - fixing
.host()
and.authority()
to raise an error if they contain a path segment (extending Issue #233)
1.15.2 (July 2nd 2015)
- fixing
URI.parseQuery()
to accept?foo&foo=bar
- Issue #220 - fixing
.segmentCoded()
to encode (instead of decode) array input - Issue #223 - fixing
.normalizePath()
to properly resolve/foo/..
to/
- Issue #224 - fixing
.relativeTo()
to resolve/foo/
and/foo/bar
to./
instead of empty string - Issue #226 - fixing
bower.json
's"main": "src/URI.js"
- Issue #227
1.15.1 (April 5th 2015)
- fixing
URI()
to match behavior ofnew URI()
(caused by #196) - Issue #205 - fixing
URI.removeQuery()
to accept RegExp for name and value arguments - (Issue #204, peterwillis)
1.15.0 (April 1st 2015 - no joke, promise!)
- fixing
URI(undefined)
to throw TypeError - (Issue #189, Issue #196, eakron) - tiny backward-compatibility-break - fixing
.absoluteTo()
- (Issue #200, giltayar) - fixing
.pathname()
to properly en/decode URN paths - (Issue #201, mlefoster) - fixing URI normalization to properly handle URN paths based on RFC 2141 syntax - (Issue #201, mlefoster)
- fixing
.normalize()
and.normalizePath()
to properly normalize URN paths - adding
URI.encodeUrnPathSegment()
- adding
URI.decodeUrnPathSegment()
- adding
URI.decodeUrnPath()
- adding
URI.recodeUrnPath()
- fixing
1.14.2 (February 25th 2015)
- fixing inclusion of LICENSE in packages - (Issue #174)
- fixing
URI.parseHost()
to not interpret colon in path as IPv6 hostname - (Issue #190) - adding meta data for SPM package manager - (Issue #176)
- adding license meta to
bower.json
1.14.1 (October 1st 2014)
- fixing handling of String instances (not string primitives) - (Issue #146)
- fixing Firefox
.watch()
interfering with.parseQuery()
- (Issue #169) - fixing
addQuery()
to not throw error on null value - (Issue #171)
1.14.0 (September 8th 2014)
- adding Hungarian second level domains - (Issue #159)
- adding
<audio src="…">
and<video src="…">
to supported DOM attributes - (Issue #160), (Issue #161) - fixing
file://hostname/path
parsing - (Issue #158) - fixing
.decodePathSegment()
to not throw malformed URI error - (Issue #163)
1.13.2 (May 29th 2014)
- changes to package management manifests only
1.13.1 (April 16th 2014)
- fixing IPv6 normalization (bad variable name) - (Issue #145)
- adding grunt and jshint
- changing code style to 2 spaces indentation, single quote strings
- applying
'use strict';
everywhere - fixing jshint warnings
1.13.0 (April 15th 2014)
- fixing
URI.parseHost()
andURI.buildHost()
to properly parse and build the IPv6 examples given in RFC2732 Format for Literal IPv6 Addresses in URL's - (Issue #144) - adding performance improvements to SecondLevelDomain - (PR #122, gorhill)
1.12.1 (March 8th 2014)
- fixing
.encodeQuery()
and.decodeQuery()
to respectURI.escapeQuerySpace
- (Issue #137) - fixing fragment plugins to return URI for simpler loading - (Issue #139)
1.12.0 (January 23rd 2014)
- fixing
.absoluteTo()
to comply with RFC3986 Reference Resolution Examples - (Issue #113) - fixing
.normalizePath()
to maintain leading parent references (../
) for relative paths, while removing them for absolute paths - (Issue #133) - fixing
URI.protocol_expression
to properly accept.
in compliance with RFC 3986 - Scheme - (Issue #132) - fixing
URI.withinString()
to not use backtracking prone regular expressionURI.find_uri_expression
anymore - (Issue #131) - fixing
URI.withinString()
to accept optionsignore
andignoreHtml
to allow better control over which detected URLs get handled - (Issue #117) - fixing
URI.withinString()
to accept optionstart
to specify the RegExp used for finding the beginning of an URL (defaults to/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi
) - (Issue #115)
1.11.2 (August 14th 2013)
- fixing regression for Node.js introduced by
fixing unsafe eval by using UMD's root
- (Issue #107) - fixing parser to accept malformed userinfo (non-encoded email address) - (Issue #108)
1.11.1 (August 13th 2013)
- fixing inconsistent
.relativeTo()
results caused by inconsistent URI component handling - (Issue #103) - fixing unsafe eval by using UMD's root - (Issue #105)
- fixing
.segment()
to allow appending an empty element - (Issue #106) - fixing
.segment()
to collapse empty elements in array notation
1.11.0 (August 6th 2013)
- adding
.segmentCoded()
to provide en/decoding interface to.segment()
- (Issue #79) - optimize
.relativeTo()
results - (Issue #78, Issue #95) - removing obsolete code fragments from
URI.parse()
andrelativeTo()
- (Issue #100) - adding setting
URI.escapeQuerySpace
to control if query string should escape spaces using+
or%20
- (Issue #74) - updating Punycode.js to version 1.2.3
- fixing internal
strictEncodeURIComponent()
to work in Firefox 3.6 - (Issue #91) - fixing
.normalizePath()
to properly resolve/.
and/.//
to/
- (Issue #97) - fixing
.path()
to return empty string if there is no path - (Issue #82) - fixing crashing of
URI.decodeQuery()
on malformed input - now returns original undecoded data - (Issue #87, Issue #92) - fixing build tool - (Issue #83)
- fixing for-loop to make closure compiler happy - (Issue #93)
- adding
URI.noConflict()
- (Issue #84) - fixing whitespace in code - (Issue #84)
- fixing
.readable()
to decode the hash value as well - (Issue #90) - prevent
jquery.URI.js
from temporarily usingwindow.location
as thehref
of an empty attribute of a DOM element - (Issue #94) - fixing internal
getType()
for IE8 with undefined value - (Issue #96) - adding DOM elements to URI constructor - (Issue #77):
- optimize
jquery.URI.js
to use new DOM element infrastructure
1.10.2 (April 15th 2013)
- fixing
relativeTo()
- (Issue #75) - fixing
normalizePath()
to not prepend./
to relative paths - (Issue #76)
1.10.1 (April 2nd 2013)
- adding
absoluteTo()
to properly resolve relative scheme - (Issue #71)
1.10.0 (March 16th 2013)
- adding
hasQuery()
- (Issue #71) - fixing URI property detection to return 'src' if none was detected (
jquery.URI.js
) - (Issue #69)
1.9.1 (February 12th 2013)
- fixing IE9 compatibility with location import:
URI(location)
- fixing string character access for IE7 - (Issue #67), (Issue #68)
1.9.0 (February 11th 2013)
- adding
.setQuery()
- (Issue #64) - adding callback argument to
.query()
- adding jQuery 1.9.1 to the test suite
1.8.3 (January 9th 2013)
1.8.2 (December 27th 2012)
- adding
.fragmentPrefix()
to configure prefix of fragmentURI and fragmentQuery extensions - (Issue #55) - adding docs for
.toString()
,.valueOf()
and.href()
- (Issue #56) - fixing
.relativeTo()
for descendants - (Issue #57)
1.8.1 (November 15th 2012)
- fixing build() to properly omit empty query and fragment (Issue #53)
1.8.0 (November 13th 2012)
- adding
.resource()
as compound of [path, query, fragment] - adding jQuery 1.8.x compatibility for jQuery.URI.js (remaining backwards compatibility!)
- adding default ports for gopher, ws, wss
- adding
.duplicateQueryParameters()
to control ifkey=value
duplicates have to be preserved or reduced (Issue #51) - updating Punycode.js to version 1.1.1
- improving AMD/Node using UMD returnExports - (Issue #44, Issue #47)
- fixing
.addQuery("empty")
to properly add?empty
- (Issue #46) - fixing parsing of badly formatted userinfo
http://username:pass:word@hostname
- fixing parsing of Windows-Drive-Letter paths
file://C:/WINDOWS/foo.txt
- fixing
URI(location)
to properly parse the URL - (Issue #52) - fixing type error for fragment abuse demos - (Issue #50)
- adding documentation for various encode/decode functions
- adding some pointers on possible problems with URLs to About URIs
- adding tests for fragment abuse and splitting tests into separate scopes
- adding meta-data for Jam and Bower
Note: QUnit seems to be having some difficulties on IE8. While the jQuery-plugin tests fail, the plugin itself works. We're still trying to figure out what's making QUnit "lose its config state".
1.7.4 (October 21st 2012)
- fixing parsing of
/wiki/Help:IPA
- (Issue #49)
1.7.3 (October 11th 2012)
- fixing
strictEncodeURIComponent()
to properly encode*
to%2A
- fixing IE9's incorrect report of
img.href
being available - (Issue #48)
1.7.2 (August 28th 2012)
- fixing SLD detection in
.tld()
-foot.se
would detectt.se
- (Issue #42) - fixing
.absoluteTo()
to comply with RFC 3986 Section 5.2.2 - (Issue #41) - fixing
location
not being available in non-browser environments like node.js (Issue #45 grimen)
1.7.1 (August 14th 2012)
- fixing
.segment()
's append operation - (Issue #39)
1.7.0 (August 11th 2012)
- fixing URI() constructor passing of
base
- (Issue #33 LarryBattle) - adding
.segment()
accessor - (Issue #34) - upgrading
URI.encode()
to strict URI encoding according to RFC3986 - adding
URI.encodeReserved()
to exclude reserved characters (according to RFC3986) from being encoded - adding URI Template (RFC 6570) support with
URITemplate()
1.6.3 (June 24th 2012)
- fixing
.absoluteTo()
to join two relative paths properly - (Issue #29) - adding
.clone()
to copy an URI instance
1.6.2 (June 23rd 2012)
-
.directory()
now returns empty string if there is no directory - fixing
.absoluteTo()
to join two relative paths properly - (Issue #29)
1.6.1 (May 19th 2012)
1.6.0 (March 19th 2012)
- adding URN (
javascript:
,mailto:
, ...) support - adding
.scheme()
as alias of.protocol()
- adding
.userinfo()
to comply with terminology of RFC 3986 - adding jQuery Plugin
src/jquery.URI.js
- fixing relative scheme URLs - (Issue #19 byroot)
1.5.0 (February 19th 2012)
- adding Second Level Domain (SLD) Support - (Issue #17)
1.4.3 (January 28th 2012)
- fixing global scope leakage - (Issue #15 mark-rushakoff)
1.4.2 (January 25th 2012)
1.4.1 (January 21st 2012)
- adding CommonJS compatibility - (Issue #11, Evangenieur)
1.4.0 (January 12th 2012)
- adding
URI.iso8859()
andURI.unicode()
to switch base charsets - (Issue #10, mortenn) - adding
.iso8859()
and.unicode()
to convert an URI's escape encoding
1.3.1 (January 3rd 2011)
- updating Punycode.js to version 0.3.0
- adding edge-case tests ("jim")
- fixing edge-cases in .protocol(), .port(), .subdomain(), .domain(), .tld(), .filename()
- fixing parsing of hostname in
.hostname()
1.3.0 (December 30th 2011)
- adding
.subdomain()
convenience accessor - improving internal deferred build handling
- fixing thrown Error for
URI("http://example.org").query(true)
- (Issue #6) - adding examples for extending URI.js for fragment abuse, see src/URI.fragmentQuery.js and src/URI.fragmentURI.js - (Issue #2)
1.2.0 (December 29th 2011)
- adding
.equals()
for URL comparison - fixing encoding/decoding for
.pathname()
,.directory()
,.filename()
and.suffix()
according to RFC 3986 3.3 - fixing escape spaces in query strings with
+
according to application/x-www-form-urlencoded - fixing to allow
URI.buildQuery()
to build duplicate key=value combinations - fixing
URI(string, string)
constructor to conform with the specification - adding
.readable()
for humanly readable representation of encoded URIs - fixing bug where @ in pathname would be parsed as part of the authority
1.1.0 (December 28th 2011)
- adding
URI.withinString()
- adding
.normalizeProtocol()
to lowercase protocols - fixing
.normalizeHostname()
to lowercase hostnames - fixing String.substr() to be replaced by String.substring() - (Issue #1)
- fixing parsing "?foo" to
{foo: null}
Algorithm for collecting URL parameters - fixing building
{foo: null, bar: ""}
to "?foo&bar=" Algorithm for serializing URL parameters - fixing RegExp escaping
1.0.0 (December 27th 2011)
- Initial URI.js