Go to file
Jason Aden fa974c7d4e fix(router): fix URL serialization so special characters are only encoded where needed (#22337)
This change brings Angular largely in line with how AngularJS previously serialized URLs. This is based on RFC 3986 and resolves issues such as the above #10280 where URLs could be parsed, re-serialized, then parsed again producing a different result on the second parsing.

Adjustments to be aware of in this commit:

* URI fragments will now serialize the same as query strings
* In the URI path or segments (portion prior to query string and/or fragment), the plus sign (`+`) and ampersand (`&`) will appear decoded
* In the URL path or segments, parentheses values (`(` and `)`) will now appear percent encoded as `%28` and `%29` respectively
* In the URL path or segments, semicolons will be encoded in their percent encoding `%3B`

NOTE: Parentheses and semicolons denoting auxillary routes or matrix params will still appear in their decoded form -- only parentheses and semicolons used as values in a segment or key/value pair for matrix params will be encoded.

While these changes are not considered breaking because applications should be decoding URLs and key/value pairs, it is possible that some unit tests will break if comparing hard-coded URLs in tests since that hard coded string will represent the old encoding. Therefore we are releasing this fix in the upcoming Angular v6 rather than adding it to a patch for v5.

Fixes: #10280

PR Close #22337
2018-03-06 06:58:08 -08:00
.circleci ci: speed up lint job on CircleCI (#22526) 2018-03-01 09:12:58 -08:00
.github ci: update github bot config (#22453) 2018-02-27 15:18:36 -08:00
aio fix(aio): tidy up embedded ToC styling (#22570) 2018-03-05 21:25:09 -08:00
docs docs: add info about the WebStorm plugin to BAZEL.md (#22572) 2018-03-05 21:24:23 -08:00
integration build: update to latest bazel rules (#22558) 2018-03-02 13:27:25 -08:00
modules refactor(ivy): rename `bindX()` functions to `interpolationX()` (#22229) 2018-02-15 14:20:53 -08:00
packages fix(router): fix URL serialization so special characters are only encoded where needed (#22337) 2018-03-06 06:58:08 -08:00
scripts build: add support for the "merge-assistance" label in merge-pr (#22414) 2018-02-23 12:58:30 -08:00
tools test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
.bowerrc chore(dgeni): clean up legacy typings bundle creation 2015-10-29 21:19:59 +00:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig chore(.editorconfig): include markdown config 2015-01-27 00:14:48 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build(common): extract i18n locale data from cldr (#18284) 2017-08-22 15:43:04 -05:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update node version number in .nvmrc (#20832) 2017-12-12 11:56:18 -08:00
.pullapprove.yml ci: mark PRs with rejection as not green (#21922) 2018-02-05 13:01:11 -08:00
.travis.yml ci: remove bazel job from Travis (#22170) 2018-02-13 10:25:51 -08:00
BUILD.bazel test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
CHANGELOG.md docs: correct changelog version for 6.0.0-beta.6 2018-03-01 06:05:24 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: correct grammar mistakes in CONTRIBUTING.md (#22285) 2018-02-18 13:27:23 -08:00
LICENSE docs(common): update copyright years (#21232) 2018-01-04 17:45:36 -05:00
README.md docs: remove broken issuestats.com badges (#21334) 2018-01-05 14:43:18 -05:00
WORKSPACE test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
bower.json docs: branding fixes (#14132) 2017-01-27 15:03:11 -06:00
browser-providers.conf.js build: remove required BrowserStack run as it fails with “Access denied” (#19769) 2017-10-17 15:51:40 -07:00
build.sh release: packageGroup should use scoped package names (#22538) 2018-03-02 14:05:59 -08:00
gulpfile.js test(packaging): added test for source map correctness 2017-09-12 16:59:32 -04:00
karma-js.conf.js test(upgrade): run tests against multiple AngularJS versions (#22167) 2018-02-25 10:06:14 -08:00
package.json release: cut the 6.0.0-beta.6 release 2018-02-28 15:23:54 -08:00
protractor-e2e.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
protractor-examples-e2e.conf.js refactor: format and lint code 2016-12-12 11:30:25 -08:00
protractor-perf.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js build: add bazel test rules for remainder of packages (#21053) 2017-12-22 13:10:51 -08:00
test.sh build: remove references to `tsc-wrapped` (#19298) 2017-09-21 13:55:52 -07:00
tslint.json build: add lint rule for global flags in rollup config (#20028) 2017-10-30 23:09:16 -04:00
yarn.lock test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
yarn.lock.readme.md build: switch from npm to yarn (#19328) 2017-09-22 13:20:52 -07:00

README.md

Build Status CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Sauce Test Status

Safari (7+), iOS (7+) and IE mobile (11) are tested on BrowserStack.

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.