diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f451d1f1..3d333d9e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,73 @@
+
+# [1.0.0-beta.3](https://github.com/angular-ui/ui-router/compare/1.0.0-beta.2...v1.0.0-beta.3) (2016-09-23)
+
+[Read more on the blog](https://ui-router-github.io/uirouter-1.0.0-beta.3/)
+
+This release adds Angular 2.0.0 final support.
+It changes the NgModule mechanism to use `UIRouterModule.forRoot()` and `UIRouterModule.forChild()`.
+See the blog and the breaking changes section.
+
+### Bug Fixes
+
+This release fixes bugs for both ng1 and ng2
+
+* **common:** Remove `url()` from LocationService interface ([#2990](https://github.com/angular-ui/ui-router/issues/2990)) ([d6c2580](https://github.com/angular-ui/ui-router/commit/d6c2580))
+* **lazyLoad:** Always delete the lazy load promise after it settles. ([dd2f101](https://github.com/angular-ui/ui-router/commit/dd2f101))
+* **ng1.StateProvider:** Export StateProvider class so type can be used ([167770d](https://github.com/angular-ui/ui-router/commit/167770d))
+* **ng1.uiView:** Remove deprecated jquery functions bind/unbind in favor of on/off ([60ebd44](https://github.com/angular-ui/ui-router/commit/60ebd44))
+* **ng2:** Angular 2.0.0 final compatibility ([7c54b75](https://github.com/angular-ui/ui-router/commit/7c54b75)), closes [#2991](https://github.com/angular-ui/ui-router/issues/2991)
+* **ng2.NgModule:** Allow apps with no forChild modules ([d3bd332](https://github.com/angular-ui/ui-router/commit/d3bd332)), closes [#3009](https://github.com/angular-ui/ui-router/issues/3009)
+* **ng2.uiView:** Use ReflectorReader to get component inputs
+* **resolve:** Don't re-resolve data when redirected to same state, but only dynamic params changed. ([98cd2d2](https://github.com/angular-ui/ui-router/commit/98cd2d2)), closes [#3033](https://github.com/angular-ui/ui-router/issues/3033)
+* **trace:** Show function definition during logging of trace.enable('HOOK') ([190d122](https://github.com/angular-ui/ui-router/commit/190d122))
+* **transition:** Fail a transition if a new one has started while resolves are loading ([bc87d9e](https://github.com/angular-ui/ui-router/commit/bc87d9e)), closes [#2972](https://github.com/angular-ui/ui-router/issues/2972)
+* **urlMatcherFactory:** fix tilde edge case with "string" encoding ([#3018](https://github.com/angular-ui/ui-router/issues/3018)) ([a201906](https://github.com/angular-ui/ui-router/commit/a201906))
+* **viewService:** Allow root ui-view to be wrapped in ng-if ([32f718a](https://github.com/angular-ui/ui-router/commit/32f718a)), closes [#3004](https://github.com/angular-ui/ui-router/issues/3004)
+
+### Features
+
+* **StateBuilder:** Calculate parent state name when ends in two wildcards `**` ([b4621f3](https://github.com/angular-ui/ui-router/commit/b4621f3))
+
+
+### BREAKING CHANGES
+
+* Remove `UIInjector.native` infavor of `UIInjector.getNative()` ([d11b7dc](https://github.com/angular-ui/ui-router/commit/d11b7dc))
+* Remove `stateProvider` from ui-router-core. Use `stateRegistry` and `stateService` in 88c6494
+
+#### Angular 2
+
+Major breaking changes for Angular 2 bootstrap between beta.2 and beta.3
+
+- Removed `@UIRouterModule` decorator.
+- Added `UIRouterModule.forRoot()` and `UIRouterModule.forChild()` factory methods
+- See https://ui-router.github.io/docs/latest/classes/ng2.uiroutermodule.html
+
+@NgModule({
+ imports: [
+ UIRouterModule.forRoot({
+ states: INITIAL_STATES,
+ useHash: true,
+ configClass: MyUIRouterConfig
+ }),
+ BrowserModule,
+ FeatureModule,
+ ],
+ declarations: INITIAL_COMPONENTS
+})
+class RootAppModule {}
+
+@NgModule({
+ imports: [
+ UIRouterModule.forChild({
+ states: FEATURE_STATES,
+ configClass: FeatureConfig
+ }),
+ CommonModule,
+ ],
+ declarations: FEATURE_COMPONENTS
+})
+
+
# [1.0.0-beta.2](https://github.com/angular-ui/ui-router/compare/1.0.0-alpha.5...v1.0.0-beta.2) (2016-09-09)
diff --git a/package.json b/package.json
index 56361def7..8e54f6abd 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
"version": "1.0.0-beta.3",
"scripts": {
"test": "npm run test:integrate",
+ "build": "node ./scripts/package.js core && node ./scripts/package.js ng1 && node ./scripts/package.js ng2",
"watch": "node_modules/watch/cli.js 'npm run test' src test",
"test:core": "karma start config/karma.core.js",
"debug:core": "karma start config/karma.core.js --singleRun=false --browsers=Chrome --autoWatch=true --autoWatchInterval=1",
@@ -15,7 +16,6 @@
"test:ng14": "karma start config/karma.ng14.js",
"test:ng15": "karma start config/karma.ng15.js",
"test:integrate": "tsc && npm run test:core && npm run test:ng12 && npm run test:ng13 && npm run test:ng14 && npm run test:ng15",
- "build": "node ./scripts/package.js core && node ./scripts/package.js ng1 && node ./scripts/package.js ng2",
"docs": "./scripts/docs.sh"
},
"homepage": "https://ui-router.github.io",
diff --git a/scripts/docs.sh b/scripts/docs.sh
index 4c2cbb08a..bc25ba724 100755
--- a/scripts/docs.sh
+++ b/scripts/docs.sh
@@ -1,6 +1,13 @@
#!/bin/sh
SCRIPTDIR=`dirname $0`;
BASEDIR="$SCRIPTDIR/..";
+
+pushd $BASEDIR;
+typings install --global dt~es6-shim
+typings install --global dt~angular
+typings install --global dt~jquery
+popd
+
$BASEDIR/node_modules/typedoc/bin/typedoc $* \
--experimentalDecorators \
--readme $BASEDIR/README.md \
@@ -10,4 +17,6 @@ $BASEDIR/node_modules/typedoc/bin/typedoc $* \
--module commonjs \
--target es5 \
--out $BASEDIR/_doc \
- $BASEDIR/src $BASEDIR/typings/es6-shim/es6-shim.d.ts $BASEDIR/typings/angularjs/angular.d.ts
+ $BASEDIR/src $BASEDIR/typings/index.d.ts
+
+ rm -rf $BASEDIR/typings
diff --git a/src/ng1/directives/viewDirective.ts b/src/ng1/directives/viewDirective.ts
index 1eddfe1ed..5ff949206 100644
--- a/src/ng1/directives/viewDirective.ts
+++ b/src/ng1/directives/viewDirective.ts
@@ -450,5 +450,5 @@ function registerControllerCallbacks($transitions: TransitionService, controller
}
}
-angular.module('ui.router.state').directive('uiView', uiView);
-angular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);
+angular.module('ui.router.state').directive('uiView', uiView);
+angular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);