diff --git a/samples/angular/MusicStore/Views/Home/Index.cshtml b/samples/angular/MusicStore/Views/Home/Index.cshtml
index 68d2c2c..9ac9f01 100755
--- a/samples/angular/MusicStore/Views/Home/Index.cshtml
+++ b/samples/angular/MusicStore/Views/Home/Index.cshtml
@@ -3,15 +3,12 @@
}
-
- Loading...
-
+ Loading...
+ @await Html.PrimeCache(Url.Action("GenreMenuList", "GenresApi"))
+ @await Html.PrimeCache(Url.Action("MostPopular", "AlbumsApi"))
@section scripts {
- @await Html.PrimeCache(Url.Action("GenreMenuList", "GenresApi"))
- @await Html.PrimeCache(Url.Action("MostPopular", "AlbumsApi"))
-
@@ -22,5 +19,5 @@
-
+
}
diff --git a/samples/angular/MusicStore/Views/_ViewImports.cshtml b/samples/angular/MusicStore/Views/_ViewImports.cshtml
index 15f1095..17fd71c 100755
--- a/samples/angular/MusicStore/Views/_ViewImports.cshtml
+++ b/samples/angular/MusicStore/Views/_ViewImports.cshtml
@@ -1,4 +1,4 @@
@using MusicStore
@using Microsoft.AspNet.AngularServices
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
-@addTagHelper "*, Microsoft.AspNet.AngularServices"
+@addTagHelper "*, Microsoft.AspNet.SpaServices"
diff --git a/samples/angular/MusicStore/gulpfile.js b/samples/angular/MusicStore/gulpfile.js
index 1605499..15a2938 100755
--- a/samples/angular/MusicStore/gulpfile.js
+++ b/samples/angular/MusicStore/gulpfile.js
@@ -38,7 +38,7 @@ gulp.task('build.lib', function () {
gulp.task('build', ['build.lib'], function () {
var tsProject = typescript.createProject('./tsconfig.json', { typescript: require('typescript') });
- var tsSrcInlined = gulp.src([webroot + '**/*.ts'], { base: webroot })
+ var tsSrcInlined = gulp.src([webroot + '**/*.ts', 'typings/**/*.d.ts'], { base: webroot })
.pipe(inlineNg2Template({ base: webroot }));
return tsSrcInlined
.pipe(sourcemaps.init())
diff --git a/samples/angular/MusicStore/package.json b/samples/angular/MusicStore/package.json
index 6ca76c5..3283a2b 100644
--- a/samples/angular/MusicStore/package.json
+++ b/samples/angular/MusicStore/package.json
@@ -2,18 +2,22 @@
"name": "MusicStore",
"version": "0.0.0",
"dependencies": {
- "angular2": "2.0.0-beta.1",
- "angular2-aspnet": "^0.0.4",
- "angular2-universal-preview": "^0.32.2",
+ "angular2": "2.0.0-beta.13",
+ "angular2-aspnet": "^0.0.5",
+ "angular2-universal": "0.90.1",
+ "aspnet-prerendering": "^1.0.0",
"bootstrap": "^3.3.5",
- "es6-module-loader": "^0.15.0",
+ "css": "^2.2.1",
+ "es6-module-loader": "0.15.0",
+ "es6-shim": "^0.35.0",
+ "isomorphic-fetch": "^2.2.1",
"jquery": "^2.1.4",
"less": "^2.5.3",
- "lodash": "^3.10.1",
- "reflect-metadata": "0.1.2",
- "rxjs": "5.0.0-beta.0",
+ "preboot": "^2.0.5",
+ "rxjs": "5.0.0-beta.2",
"systemjs": "^0.19.3",
- "traceur": "0.0.91"
+ "traceur": "0.0.106",
+ "zone.js": "^0.6.10"
},
"devDependencies": {
"del": "^2.0.2",
diff --git a/samples/angular/MusicStore/tsd.json b/samples/angular/MusicStore/tsd.json
new file mode 100644
index 0000000..dc2f967
--- /dev/null
+++ b/samples/angular/MusicStore/tsd.json
@@ -0,0 +1,12 @@
+{
+ "version": "v4",
+ "repo": "borisyankov/DefinitelyTyped",
+ "ref": "master",
+ "path": "typings",
+ "bundle": "typings/tsd.d.ts",
+ "installed": {
+ "es6-shim/es6-shim.d.ts": {
+ "commit": "ec9eb4b28c74665a602c22db3457f0a76fa0fa23"
+ }
+ }
+}
diff --git a/samples/angular/MusicStore/typings/es6-shim/es6-shim.d.ts b/samples/angular/MusicStore/typings/es6-shim/es6-shim.d.ts
new file mode 100644
index 0000000..1c3df0e
--- /dev/null
+++ b/samples/angular/MusicStore/typings/es6-shim/es6-shim.d.ts
@@ -0,0 +1,668 @@
+// Type definitions for es6-shim v0.31.2
+// Project: https://github.com/paulmillr/es6-shim
+// Definitions by: Ron Buckton
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare type PropertyKey = string | number | symbol;
+
+interface IteratorResult {
+ done: boolean;
+ value?: T;
+}
+
+interface IterableShim {
+ /**
+ * Shim for an ES6 iterable. Not intended for direct use by user code.
+ */
+ "_es6-shim iterator_"(): Iterator;
+}
+
+interface Iterator {
+ next(value?: any): IteratorResult;
+ return?(value?: any): IteratorResult;
+ throw?(e?: any): IteratorResult;
+}
+
+interface IterableIteratorShim extends IterableShim, Iterator {
+ /**
+ * Shim for an ES6 iterable iterator. Not intended for direct use by user code.
+ */
+ "_es6-shim iterator_"(): IterableIteratorShim;
+}
+
+interface StringConstructor {
+ /**
+ * Return the String value whose elements are, in order, the elements in the List elements.
+ * If length is 0, the empty string is returned.
+ */
+ fromCodePoint(...codePoints: number[]): string;
+
+ /**
+ * String.raw is intended for use as a tag function of a Tagged Template String. When called
+ * as such the first argument will be a well formed template call site object and the rest
+ * parameter will contain the substitution values.
+ * @param template A well-formed template string call site representation.
+ * @param substitutions A set of substitution values.
+ */
+ raw(template: TemplateStringsArray, ...substitutions: any[]): string;
+}
+
+interface String {
+ /**
+ * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
+ * value of the UTF-16 encoded code point starting at the string element at position pos in
+ * the String resulting from converting this object to a String.
+ * If there is no element at that position, the result is undefined.
+ * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.
+ */
+ codePointAt(pos: number): number;
+
+ /**
+ * Returns true if searchString appears as a substring of the result of converting this
+ * object to a String, at one or more positions that are
+ * greater than or equal to position; otherwise, returns false.
+ * @param searchString search string
+ * @param position If position is undefined, 0 is assumed, so as to search all of the String.
+ */
+ includes(searchString: string, position?: number): boolean;
+
+ /**
+ * Returns true if the sequence of elements of searchString converted to a String is the
+ * same as the corresponding elements of this object (converted to a String) starting at
+ * endPosition – length(this). Otherwise returns false.
+ */
+ endsWith(searchString: string, endPosition?: number): boolean;
+
+ /**
+ * Returns a String value that is made from count copies appended together. If count is 0,
+ * T is the empty String is returned.
+ * @param count number of copies to append
+ */
+ repeat(count: number): string;
+
+ /**
+ * Returns true if the sequence of elements of searchString converted to a String is the
+ * same as the corresponding elements of this object (converted to a String) starting at
+ * position. Otherwise returns false.
+ */
+ startsWith(searchString: string, position?: number): boolean;
+
+ /**
+ * Returns an HTML anchor element and sets the name attribute to the text value
+ * @param name
+ */
+ anchor(name: string): string;
+
+ /** Returns a HTML element */
+ big(): string;
+
+ /** Returns a