diff --git a/Angular2-quickstart/.gitignore b/Angular2-quickstart/.gitignore
new file mode 100644
index 0000000..beb6ce3
--- /dev/null
+++ b/Angular2-quickstart/.gitignore
@@ -0,0 +1,70 @@
+
+# Created by https://www.gitignore.io/api/osx
+
+### OSX ###
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+
+
+# Created by https://www.gitignore.io/api/node
+
+### Node ###
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules
+jspm_packages
+
+# Optional npm cache directory
+.npm
+
+# Optional REPL history
+.node_repl_history
+
diff --git a/Angular2-quickstart/README.md b/Angular2-quickstart/README.md
new file mode 100644
index 0000000..42cd7a0
--- /dev/null
+++ b/Angular2-quickstart/README.md
@@ -0,0 +1,13 @@
+# Things That Were Learned
+
+- Name of project
+ Angular Intro
+- Build instructions
+ Same as on the Angular Website
+- What you learned
+ Better ideas as to import and inject Angular components
+- What you found difficult
+ Making sure sytax errors weren't a problem
+- Why are .gitignore files important
+ Removes excess bloat from your uploads
+
diff --git a/Angular2-quickstart/app/app.component.css b/Angular2-quickstart/app/app.component.css
new file mode 100644
index 0000000..b71b158
--- /dev/null
+++ b/Angular2-quickstart/app/app.component.css
@@ -0,0 +1,28 @@
+h1 {
+ font-size: 1.2em;
+ color: #999;
+ margin-bottom: 0;
+}
+h2 {
+ font-size: 2em;
+ margin-top: 0;
+ padding-top: 0;
+}
+nav a {
+ padding: 5px 10px;
+ text-decoration: none;
+ margin-top: 10px;
+ display: inline-block;
+ background-color: #eee;
+ border-radius: 4px;
+}
+nav a:visited, a:link {
+ color: #607D8B;
+}
+nav a:hover {
+ color: #039be5;
+ background-color: #CFD8DC;
+}
+nav a.router-link-active {
+ color: #039be5;
+}
diff --git a/Angular2-quickstart/app/app.component.js b/Angular2-quickstart/app/app.component.js
new file mode 100644
index 0000000..ae46f75
--- /dev/null
+++ b/Angular2-quickstart/app/app.component.js
@@ -0,0 +1,64 @@
+System.register(['angular2/core', 'angular2/router', './hero.service', './heroes.component', './hero-detail.component'], function(exports_1, context_1) {
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var core_1, router_1, hero_service_1, heroes_component_1, hero_detail_component_1;
+ var AppComponent;
+ return {
+ setters:[
+ function (core_1_1) {
+ core_1 = core_1_1;
+ },
+ function (router_1_1) {
+ router_1 = router_1_1;
+ },
+ function (hero_service_1_1) {
+ hero_service_1 = hero_service_1_1;
+ },
+ function (heroes_component_1_1) {
+ heroes_component_1 = heroes_component_1_1;
+ },
+ function (hero_detail_component_1_1) {
+ hero_detail_component_1 = hero_detail_component_1_1;
+ }],
+ execute: function() {
+ AppComponent = (function () {
+ function AppComponent() {
+ this.title = 'Tour of Heroes';
+ }
+ AppComponent = __decorate([
+ core_1.Component({
+ selector: 'my-app',
+ template: "\n
(resolve =>
+ setTimeout(()=>resolve(HEROES), 2000) // 2 seconds
+ );
+ }
+}
+
+getHero(id: number) {
+ return Promise.resolve(HEROES).then(
+ heroes => heroes.filter(hero => hero.id === id)[0]
+ );
+}
+
diff --git a/Angular2-quickstart/app/hero.ts b/Angular2-quickstart/app/hero.ts
new file mode 100644
index 0000000..e3eac51
--- /dev/null
+++ b/Angular2-quickstart/app/hero.ts
@@ -0,0 +1,4 @@
+export class Hero {
+ id: number;
+ name: string;
+}
diff --git a/Angular2-quickstart/app/heroes.component.css b/Angular2-quickstart/app/heroes.component.css
new file mode 100644
index 0000000..68a83e7
--- /dev/null
+++ b/Angular2-quickstart/app/heroes.component.css
@@ -0,0 +1,47 @@
+.selected {
+ background-color: #CFD8DC !important;
+ color: white;
+ }
+ .heroes {
+ margin: 0 0 2em 0;
+ list-style-type: none;
+ padding: 0;
+ width: 15em;
+ }
+ .heroes li {
+ cursor: pointer;
+ position: relative;
+ left: 0;
+ background-color: #EEE;
+ margin: .5em;
+ padding: .3em 0;
+ height: 1.6em;
+ border-radius: 4px;
+ }
+ .heroes li.selected:hover {
+ background-color: #BBD8DC !important;
+ color: white;
+ }
+ .heroes li:hover {
+ color: #607D8B;
+ background-color: #DDD;
+ left: .1em;
+ }
+ .heroes .text {
+ position: relative;
+ top: -3px;
+ }
+ .heroes .badge {
+ display: inline-block;
+ font-size: small;
+ color: white;
+ padding: 0.8em 0.7em 0 0.7em;
+ background-color: #607D8B;
+ line-height: 1em;
+ position: relative;
+ left: -1px;
+ top: -4px;
+ height: 1.8em;
+ margin-right: .8em;
+ border-radius: 4px 0 0 4px;
+ }
\ No newline at end of file
diff --git a/Angular2-quickstart/app/heroes.component.html b/Angular2-quickstart/app/heroes.component.html
new file mode 100644
index 0000000..f2462bf
--- /dev/null
+++ b/Angular2-quickstart/app/heroes.component.html
@@ -0,0 +1,15 @@
+{{title}}
+ My Heroes
+
+ -
+ {{hero.id}} {{hero.name}}
+
+
+
+
+ {{selectedHero.name | uppercase}} is my hero
+
+
+
\ No newline at end of file
diff --git a/Angular2-quickstart/app/heroes.component.js b/Angular2-quickstart/app/heroes.component.js
new file mode 100644
index 0000000..c08ee3e
--- /dev/null
+++ b/Angular2-quickstart/app/heroes.component.js
@@ -0,0 +1,58 @@
+System.register(['angular2/core', './hero-detail.component', './hero.service'], function(exports_1, context_1) {
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var core_1, hero_detail_component_1, hero_service_1;
+ var HeroesComponent;
+ return {
+ setters:[
+ function (core_1_1) {
+ core_1 = core_1_1;
+ },
+ function (hero_detail_component_1_1) {
+ hero_detail_component_1 = hero_detail_component_1_1;
+ },
+ function (hero_service_1_1) {
+ hero_service_1 = hero_service_1_1;
+ }],
+ execute: function() {
+ HeroesComponent = (function () {
+ function HeroesComponent(_router, _heroService) {
+ this._router = _router;
+ this._heroService = _heroService;
+ }
+ HeroesComponent.prototype.getHeroes = function () {
+ var _this = this;
+ this._heroService.getHeroes().then(function (heroes) { return _this.heroes = heroes; });
+ };
+ HeroesComponent.prototype.ngOnInit = function () {
+ this.getHeroes();
+ };
+ HeroesComponent.prototype.onSelect = function (hero) { this.selectedHero = hero; };
+ HeroesComponent.prototype.gotoDetail = function () {
+ this._router.navigate(['HeroDetail', { id: this.selectedHero.id }]);
+ };
+ HeroesComponent = __decorate([
+ core_1.Component({
+ selector: 'my-heroes',
+ templateUrl: 'app/heroes.component.html',
+ styleUrls: ['app/heroes.component.css'],
+ directives: [hero_detail_component_1.HeroDetailComponent]
+ }),
+ __metadata('design:paramtypes', [Object, hero_service_1.HeroService])
+ ], HeroesComponent);
+ return HeroesComponent;
+ }());
+ exports_1("HeroesComponent", HeroesComponent);
+ }
+ }
+});
+//# sourceMappingURL=heroes.component.js.map
\ No newline at end of file
diff --git a/Angular2-quickstart/app/heroes.component.js.map b/Angular2-quickstart/app/heroes.component.js.map
new file mode 100644
index 0000000..e8dd3a0
--- /dev/null
+++ b/Angular2-quickstart/app/heroes.component.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"heroes.component.js","sourceRoot":"","sources":["heroes.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;YAYA;gBAGE,yBACU,OAAe,EACf,YAAyB;oBADzB,YAAO,GAAP,OAAO,CAAQ;oBACf,iBAAY,GAAZ,YAAY,CAAa;gBAAI,CAAC;gBACxC,mCAAS,GAAT;oBAAA,iBAEC;oBADC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,MAAM,GAAG,MAAM,EAApB,CAAoB,CAAC,CAAC;gBACrE,CAAC;gBACD,kCAAQ,GAAR;oBACE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC;gBACD,kCAAQ,GAAR,UAAS,IAAU,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;gBAClD,oCAAU,GAAV;oBACE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAtBH;oBAAC,gBAAS,CAAC;wBACT,QAAQ,EAAE,WAAW;wBACrB,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAG,CAAC,0BAA0B,CAAC;wBACxC,UAAU,EAAE,CAAC,2CAAmB,CAAC;qBAClC,CAAC;;mCAAA;gBAkBF,sBAAC;YAAD,CAAC,AAhBD,IAgBC;YAhBD,6CAgBC,CAAA"}
\ No newline at end of file
diff --git a/Angular2-quickstart/app/heroes.component.ts b/Angular2-quickstart/app/heroes.component.ts
new file mode 100644
index 0000000..91ba25f
--- /dev/null
+++ b/Angular2-quickstart/app/heroes.component.ts
@@ -0,0 +1,30 @@
+import {Component, OnInit} from 'angular2/core';
+import {Hero} from './hero';
+import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';
+import {HeroDetailComponent} from './hero-detail.component';
+import {HeroService} from './hero.service';
+@Component({
+ selector: 'my-heroes',
+ templateUrl: 'app/heroes.component.html',
+ styleUrls: ['app/heroes.component.css'],
+ directives: [HeroDetailComponent]
+})
+
+export class HeroesComponent implements OnInit {
+ heroes: Hero[];
+ selectedHero: Hero;
+ constructor(
+ private _router: Router,
+ private _heroService: HeroService) { }
+ getHeroes() {
+ this._heroService.getHeroes().then(heroes => this.heroes = heroes);
+ }
+ ngOnInit() {
+ this.getHeroes();
+ }
+ onSelect(hero: Hero) { this.selectedHero = hero; }
+ gotoDetail() {
+ this._router.navigate(['HeroDetail', { id: this.selectedHero.id }]);
+ }
+}
+
diff --git a/Angular2-quickstart/app/main.js b/Angular2-quickstart/app/main.js
new file mode 100644
index 0000000..a4fa928
--- /dev/null
+++ b/Angular2-quickstart/app/main.js
@@ -0,0 +1,18 @@
+System.register(['angular2/platform/browser', './app.component'], function(exports_1, context_1) {
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ var browser_1, app_component_1;
+ return {
+ setters:[
+ function (browser_1_1) {
+ browser_1 = browser_1_1;
+ },
+ function (app_component_1_1) {
+ app_component_1 = app_component_1_1;
+ }],
+ execute: function() {
+ browser_1.bootstrap(app_component_1.AppComponent);
+ }
+ }
+});
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/Angular2-quickstart/app/main.js.map b/Angular2-quickstart/app/main.js.map
new file mode 100644
index 0000000..9942b50
--- /dev/null
+++ b/Angular2-quickstart/app/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":";;;;;;;;;;;;;YAGA,mBAAS,CAAC,4BAAY,CAAC,CAAC"}
\ No newline at end of file
diff --git a/Angular2-quickstart/app/main.ts b/Angular2-quickstart/app/main.ts
new file mode 100644
index 0000000..034c155
--- /dev/null
+++ b/Angular2-quickstart/app/main.ts
@@ -0,0 +1,4 @@
+import {bootstrap} from 'angular2/platform/browser'
+import {AppComponent} from './app.component'
+
+bootstrap(AppComponent);
diff --git a/Angular2-quickstart/app/mock-heroes.js b/Angular2-quickstart/app/mock-heroes.js
new file mode 100644
index 0000000..9aa4043
--- /dev/null
+++ b/Angular2-quickstart/app/mock-heroes.js
@@ -0,0 +1,23 @@
+System.register([], function(exports_1, context_1) {
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ var HEROES;
+ return {
+ setters:[],
+ execute: function() {
+ exports_1("HEROES", HEROES = [
+ { "id": 11, "name": "Mr. Nice" },
+ { "id": 12, "name": "Narco" },
+ { "id": 13, "name": "Bombasto" },
+ { "id": 14, "name": "Celeritas" },
+ { "id": 15, "name": "Magneta" },
+ { "id": 16, "name": "RubberMan" },
+ { "id": 17, "name": "Dynama" },
+ { "id": 18, "name": "Dr IQ" },
+ { "id": 19, "name": "Magma" },
+ { "id": 20, "name": "Tornado" }
+ ]);
+ }
+ }
+});
+//# sourceMappingURL=mock-heroes.js.map
\ No newline at end of file
diff --git a/Angular2-quickstart/app/mock-heroes.js.map b/Angular2-quickstart/app/mock-heroes.js.map
new file mode 100644
index 0000000..70ebf29
--- /dev/null
+++ b/Angular2-quickstart/app/mock-heroes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"mock-heroes.js","sourceRoot":"","sources":["mock-heroes.ts"],"names":[],"mappings":";;;QACW,MAAM;;;;YAAN,oBAAA,MAAM,GAAW;gBACxB,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAC;gBAC9B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAC;gBAC3B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAC;gBAC9B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAC;gBAC/B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC;gBAC7B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAC;gBAC/B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAC;gBAC5B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAC;gBAC3B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAC;gBAC3B,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC;aAChC,CAAA,CAAC"}
\ No newline at end of file
diff --git a/Angular2-quickstart/app/mock-heroes.ts b/Angular2-quickstart/app/mock-heroes.ts
new file mode 100644
index 0000000..a5cb381
--- /dev/null
+++ b/Angular2-quickstart/app/mock-heroes.ts
@@ -0,0 +1,13 @@
+import {Hero} from './hero';
+export var HEROES: Hero[] = [
+ {"id": 11, "name": "Mr. Nice"},
+ {"id": 12, "name": "Narco"},
+ {"id": 13, "name": "Bombasto"},
+ {"id": 14, "name": "Celeritas"},
+ {"id": 15, "name": "Magneta"},
+ {"id": 16, "name": "RubberMan"},
+ {"id": 17, "name": "Dynama"},
+ {"id": 18, "name": "Dr IQ"},
+ {"id": 19, "name": "Magma"},
+ {"id": 20, "name": "Tornado"}
+];
diff --git a/Angular2-quickstart/index.html b/Angular2-quickstart/index.html
new file mode 100644
index 0000000..e45e242
--- /dev/null
+++ b/Angular2-quickstart/index.html
@@ -0,0 +1,41 @@
+
+
+
+
+ Angular 2 QuickStart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Loading...
+
+
diff --git a/Angular2-quickstart/package.json b/Angular2-quickstart/package.json
new file mode 100644
index 0000000..5160703
--- /dev/null
+++ b/Angular2-quickstart/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "angular2-quickstart",
+ "version": "1.0.0",
+ "scripts": {
+ "start": "concurrently \"npm run tsc:w\" \"npm run lite\" ",
+ "tsc": "tsc",
+ "tsc:w": "tsc -w",
+ "lite": "lite-server",
+ "typings": "typings",
+ "postinstall": "typings install"
+ },
+ "license": "ISC",
+ "dependencies": {
+ "angular2": "2.0.0-beta.8",
+ "systemjs": "0.19.22",
+ "es6-promise": "^3.0.2",
+ "es6-shim": "^0.33.3",
+ "reflect-metadata": "0.1.2",
+ "rxjs": "5.0.0-beta.2",
+ "zone.js": "0.5.15"
+ },
+ "devDependencies": {
+ "concurrently": "^2.0.0",
+ "lite-server": "^2.1.0",
+ "typescript": "^1.8.2",
+ "typings":"^0.6.8"
+ }
+}
diff --git a/Angular2-quickstart/styles.css b/Angular2-quickstart/styles.css
new file mode 100644
index 0000000..8a31741
--- /dev/null
+++ b/Angular2-quickstart/styles.css
@@ -0,0 +1,33 @@
+h2 {
+ color: #444;
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: lighter;
+}
+body {
+ margin: 2em;
+}
+body, input[text], button {
+ color: #888;
+ font-family: Cambria, Georgia;
+}
+button {
+ font-family: Arial;
+ background-color: #eee;
+ border: none;
+ padding: 5px 10px;
+ border-radius: 4px;
+ cursor: pointer;
+ cursor: hand;
+}
+button:hover {
+ background-color: #cfd8dc;
+}
+button:disabled {
+ background-color: #eee;
+ color: #aaa;
+ cursor: auto;
+}
+/* everywhere else */
+* {
+ font-family: Arial, Helvetica, sans-serif;
+}
diff --git a/Angular2-quickstart/tsconfig.json b/Angular2-quickstart/tsconfig.json
new file mode 100644
index 0000000..9be71e4
--- /dev/null
+++ b/Angular2-quickstart/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "module": "system",
+ "moduleResolution": "node",
+ "sourceMap": true,
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "removeComments": false,
+ "noImplicitAny": false
+ },
+ "exclude": [
+ "node_modules",
+ "typings/main",
+ "typings/main.d.ts"
+ ]
+}
diff --git a/Angular2-quickstart/typings.json b/Angular2-quickstart/typings.json
new file mode 100644
index 0000000..f10b7c5
--- /dev/null
+++ b/Angular2-quickstart/typings.json
@@ -0,0 +1,6 @@
+{
+ "ambientDependencies": {
+ "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c",
+ "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#bc92442c075929849ec41d28ab618892ba493504"
+ }
+}
diff --git a/Angular2-quickstart/typings/browser.d.ts b/Angular2-quickstart/typings/browser.d.ts
new file mode 100644
index 0000000..5d213f7
--- /dev/null
+++ b/Angular2-quickstart/typings/browser.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/Angular2-quickstart/typings/browser/ambient/es6-shim/es6-shim.d.ts b/Angular2-quickstart/typings/browser/ambient/es6-shim/es6-shim.d.ts
new file mode 100644
index 0000000..50f2134
--- /dev/null
+++ b/Angular2-quickstart/typings/browser/ambient/es6-shim/es6-shim.d.ts
@@ -0,0 +1,670 @@
+// Compiled using typings@0.6.10
+// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/4de74cb527395c13ba20b438c3a7a419ad931f1c/es6-shim/es6-shim.d.ts
+// Type definitions for es6-shim v0.31.2
+// Project: https://github.com/paulmillr/es6-shim
+// Definitions by: Ron Buckton
+// Definitions: https://github.com/borisyankov/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