Project

General

Profile

« Previous | Next » 

Revision 52738

added interceptor with routing to 403 page

View differences:

modules/uoa-repository-dashboard-gui/trunk/app/services/authentication-interceptor.ts
1
/**
2
 * Created by stefania on 04/05/2018.
3
 */
4
import 'rxjs/add/operator/do';
5
import {
6
    HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest,
7
    HttpResponse
8
} from "@angular/common/http";
9
import { Observable } from "rxjs/Observable";
10
import { Router } from "@angular/router";
11
import { Injectable } from "@angular/core";
12
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
13

  
14
@Injectable()
15
export class AuthenticationInterceptor implements HttpInterceptor {
16

  
17
    constructor(private router: Router) {}
18

  
19
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
20

  
21
        return next.handle(request).do((event: HttpEvent<any>) => {
22
            if (event instanceof HttpResponse) {
23
                // do stuff with response if you want
24
            }
25
        }, (err: any) => {
26
            if (err instanceof HttpErrorResponse) {
27
                console.log(err);
28
                if (err.status === 403) {
29
                    console.log('Unauthorised!!', err);
30
                    this.router.navigateByUrl('/403-forbidden', { skipLocationChange: true });
31
                } else {
32
                    this.handleError(err);
33
                }
34
            }
35
        });
36
    }
37

  
38
    /*handleError function as provided by angular.io (copied on 27/4/2018)*/
39
    private handleError(error: HttpErrorResponse) {
40
        console.log(error);
41
        if (error.error instanceof ErrorEvent) {
42
            // A client-side or network error occurred. Handle it accordingly.
43
            console.error('An error occurred:', error.error.message);
44
        } else {
45
            // The backend returned an unsuccessful response code.
46
            // The response body may contain clues as to what went wrong,
47
            console.error(
48
                `Backend returned code ${error.status}, ` +
49
                `body was: ${error.error}`);
50
        }
51
        // return an ErrorObservable with a user-facing error message
52
        return new ErrorObservable(
53
            'Something bad happened; please try again later.');
54
    }
55
}
modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/403-forbidden-page.component.ts
1
/**
2
 * Created by stefania on 20/04/2018.
3
 */
4
import { Component } from "@angular/core";
5

  
6
@Component({
7
    selector: 'forbidden-page',
8
    templateUrl: './403-forbidden-page.component.html',
9
})
10
export class ForbiddenPageComponent {
11
}
modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/reusable-components.module.ts
18 18
import { MyFormDirective } from './forms/my-form.directive';
19 19
import { RouterModule } from '@angular/router';
20 20
import {HttpClientModule} from "@angular/common/http";
21
import {ForbiddenPageComponent} from "./403-forbidden-page.component";
21 22

  
22 23
const myGroups = [
23 24
  MyGroup,
......
51 52
    AsideHelpContentComponent,
52 53
    ConfirmationDialogComponent,
53 54
    RepositoryTilesComponent,
55
    ForbiddenPageComponent,
54 56
    ...myGroups
55 57
/*
56 58
    MyChoiceWrapper,
modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/403-forbidden-page.component.html
1
<div class="uk-section-default uk-section uk-section-small uk-padding-remove-bottom" style="min-height: 325px">
2
  <div class="uk-container">
3
    <div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
4
      <div class="uk-width-1-1@m uk-first-column">
5

  
6
        <h1 class="uk-h2 uk-text-center">Error: 403 Forbidden</h1>
7

  
8
        <!-- TOP HELP CONTENT -->
9
        <help-content #topHelperContent [position]="'top'"
10
                      [ngClass]="topHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'">
11
        </help-content>
12

  
13
        <div class="uk-container uk-margin-large-bottom">
14
          <div class="uk-grid">
15

  
16
            <!-- LEFT HELP CONTENT -->
17
            <aside-help-content #leftHelperContent [position]="'left'"
18
                                [ngClass]="leftHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'">
19
            </aside-help-content>
20

  
21
            <!-- MIDDLE -->
22
            <div class=" uk-width-expand@m">
23

  
24
              <div style="font-size: 180px; color: #0055b9; line-height: 1.2;" class="uk-text-center">
25
                <strong>403</strong>
26
              </div>
27

  
28
              <div class="uk-text-center">
29
                Sorry, access to this resource on the server is forbidden.<br>
30
                Either check the URL, <a href="/home">go home</a>, or feel free to <a href="http://openminted.eu/support/">report this issue</a>.
31
              </div>
32

  
33
            </div>
34

  
35
            <!-- RIGHT HELP CONTENT -->
36
            <aside-help-content #rightHelperContent [position]="'right'"
37
                                [ngClass]="rightHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'">
38
            </aside-help-content>
39

  
40
          </div>
41
        </div>
42

  
43

  
44
        <!-- BOTTOM HELP CONTENT -->
45
        <help-content #bottomHelperContent [position]="'bottom'"
46
                      [ngClass]="bottomHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'">
47
        </help-content>
48

  
49

  
50
      </div>
51
    </div>
52
  </div>
53
</div>
modules/uoa-repository-dashboard-gui/trunk/app/app.module.ts
27 27
import {LandingComponent} from "./pages/landing/landing.component";
28 28
import {DashboardComponent} from "./pages/dashboard/dashboard.component";
29 29
import { UsagestatsService } from './services/usagestats.service';
30
import {AuthenticationInterceptor} from "./services/authentication-interceptor";
31
import {HTTP_INTERCEPTORS} from "@angular/common/http";
30 32

  
31 33

  
32 34
@NgModule({
......
54 56
    DashboardComponent
55 57
  ],
56 58
  providers: [
57
//    appRoutingProviders
59
    {
60
      provide: HTTP_INTERCEPTORS,
61
      useClass: AuthenticationInterceptor,
62
      multi: true
63
    },
58 64
    BrokerService,
59 65
    MonitorService,
60 66
    PiwikService,
modules/uoa-repository-dashboard-gui/trunk/app/app.routing.ts
5 5
import {DashboardComponent} from "./pages/dashboard/dashboard.component";
6 6
import {AuthGuardService} from "./services/auth-guard.service";
7 7
import {MetricsModule} from "./pages/metrics/metrics.module";
8
import {ForbiddenPageComponent} from "./shared/reusablecomponents/403-forbidden-page.component";
8 9

  
9 10
const appRoutes: Routes = [
10 11
  {
......
48 49
    canLoad: [AuthGuardService]
49 50
  },
50 51
  {
52
    path: '403-forbidden',
53
    component: ForbiddenPageComponent
54
  },
55
  {
51 56
    path: '**',
52 57
    redirectTo: '/landing'
53 58
  }
modules/uoa-repository-dashboard-gui/trunk/package.json
9 9
    "deploy:server": "docker rm -f uoa-repository-dashboard-gui && docker run --name uoa-repository-dashboard-gui -d -p 80:80 uoa-repository-dashboard-gui",
10 10
    "deploy:complete": "npm run build:docker && npm run deploy:server",
11 11
    "watch": "npm run build -- --watch",
12
    "server": "webpack-dev-server --inline --progress --port 4200 --host aleka.athenarc.gr --content-base .",
12
    "server": "webpack-dev-server --inline --progress --port 4200 --host koulis.athenarc.gr --content-base .",
13 13
    "start": "npm run server",
14 14
    "stats": "webpack --progress -p --profile --env.release=true --json > stats.json"
15 15
  },
......
51 51
    "css-loader": "^0.28.10",
52 52
    "html-webpack-plugin": "^2.30.1",
53 53
    "jquery": "^3.3.1",
54
    "lite-server": "^2.2.2",
55
    "node-sass": "^4.7.2",
54
    "lite-server": "^2.4.0",
55
    "node-sass": "^4.9.1",
56 56
    "raw-loader": "^0.5.1",
57 57
    "resolve-url-loader": "^2.2.1",
58 58
    "sass-loader": "^6.0.6",
modules/uoa-repository-dashboard-gui/trunk/package-lock.json
10 10
      "integrity": "sha1-YxmULBol+4TjKUID6fejJmMvzlA=",
11 11
      "dev": true,
12 12
      "requires": {
13
        "@angular/tsc-wrapped": "0.5.2",
14
        "denodeify": "1.2.1",
15
        "rxjs": "5.1.0",
16
        "typescript": "2.0.10"
13
        "@angular/tsc-wrapped": "^0.5.0",
14
        "denodeify": "^1.2.1",
15
        "rxjs": "^5.0.1",
16
        "typescript": "~2.0.3"
17 17
      },
18 18
      "dependencies": {
19 19
        "@angular/tsc-wrapped": {
......
22 22
          "integrity": "sha1-Lt30csRn/LM06pTe3aqnGZDFpII=",
23 23
          "dev": true,
24 24
          "requires": {
25
            "tsickle": "0.2.5"
25
            "tsickle": "^0.2"
26 26
          }
27 27
        },
28 28
        "denodeify": {
......
60 60
          "integrity": "sha1-CqkBi39EC1BfpCvXQrZzi+VQ5yA=",
61 61
          "dev": true,
62 62
          "requires": {
63
            "symbol-observable": "1.0.4"
63
            "symbol-observable": "^1.0.1"
64 64
          }
65 65
        },
66 66
        "source-map": {
......
75 75
          "integrity": "sha1-ZH+TmXizhTWQlTCIUwPa8jJ58yI=",
76 76
          "dev": true,
77 77
          "requires": {
78
            "source-map": "0.5.6"
78
            "source-map": "^0.5.3"
79 79
          }
80 80
        },
81 81
        "symbol-observable": {
......
90 90
          "integrity": "sha1-YNjhJGLm+PvayS1fX+rSv0kIXYI=",
91 91
          "dev": true,
92 92
          "requires": {
93
            "minimist": "1.2.0",
94
            "mkdirp": "0.5.1",
95
            "source-map": "0.5.6",
96
            "source-map-support": "0.4.11"
93
            "minimist": "^1.2.0",
94
            "mkdirp": "^0.5.1",
95
            "source-map": "^0.5.6",
96
            "source-map-support": "^0.4.2"
97 97
          }
98 98
        },
99 99
        "typescript": {
......
111 111
      "dev": true
112 112
    },
113 113
    "@angular/common": {
114
      "version": "4.4.6",
115
      "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.6.tgz",
116
      "integrity": "sha1-S4FCByTggooOg5uVpV6xp+g5GPI=",
114
      "version": "4.4.7",
115
      "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.7.tgz",
116
      "integrity": "sha512-5R0POjbT4CR+8vXS7P33SiozJpTEKDsHq07EMm90OCwoofU5DIKDLNyEqr362zsbpzGUTmhGbSiLZib5Qt4djA==",
117 117
      "requires": {
118
        "tslib": "1.8.0"
118
        "tslib": "^1.7.1"
119 119
      }
120 120
    },
121 121
    "@angular/compiler": {
122
      "version": "4.4.6",
123
      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.6.tgz",
124
      "integrity": "sha1-LuH68lt1fh0SiXkHS+f65SmzvCA=",
122
      "version": "4.4.7",
123
      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.7.tgz",
124
      "integrity": "sha512-aiRh86RqHMTgJ7xckQWzG2UTnq23+WuDVhYh/QL19R43areZLglqgtKSkfezg9aatO5CGzxDA3qL5WGhccQ5EQ==",
125 125
      "dev": true,
126 126
      "requires": {
127
        "tslib": "1.8.0"
127
        "tslib": "^1.7.1"
128 128
      }
129 129
    },
130 130
    "@angular/compiler-cli": {
131
      "version": "4.4.6",
132
      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.6.tgz",
133
      "integrity": "sha1-uv09HiYOmQh+uajPdTLb1gOrubE=",
131
      "version": "4.4.7",
132
      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.7.tgz",
133
      "integrity": "sha512-vzphs9galtMV29CW+ihp6v0HwSQrjAFqs04swqt9o0jEJET6/mPi1EFjJRNZiFn6ghh6lxUPr3vThy7CrSNxHg==",
134 134
      "dev": true,
135 135
      "requires": {
136
        "@angular/tsc-wrapped": "4.4.6",
137
        "minimist": "1.2.0",
138
        "reflect-metadata": "0.1.12"
136
        "@angular/tsc-wrapped": "4.4.7",
137
        "minimist": "^1.2.0",
138
        "reflect-metadata": "^0.1.2"
139 139
      }
140 140
    },
141 141
    "@angular/core": {
142
      "version": "4.4.6",
143
      "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.6.tgz",
144
      "integrity": "sha1-EwMf0Q3P5DiHVBmzjyESCVi8I1Q=",
142
      "version": "4.4.7",
143
      "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.7.tgz",
144
      "integrity": "sha512-Jxs6gNTl5KjXflg5vi5rlnokq1johFccN94qSOgDv+Mg1iuGF2i9p7EHkw3Y8jBCVaSLw1qgHE+wMb6KTlJDLA==",
145 145
      "requires": {
146
        "tslib": "1.8.0"
146
        "tslib": "^1.7.1"
147 147
      }
148 148
    },
149 149
    "@angular/forms": {
150
      "version": "4.4.6",
151
      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.6.tgz",
152
      "integrity": "sha1-/mSs5CQ1wbgPSQNLfEHOjK8UpEo=",
150
      "version": "4.4.7",
151
      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.7.tgz",
152
      "integrity": "sha512-EXGutI4GNBptpwkCQdCTxWAlJll8aCV7m3cA1FHZgFP7VNSgYF0pD+PscM5jSeajG30cRjaKxgL4cqj6yMMtww==",
153 153
      "requires": {
154
        "tslib": "1.8.0"
154
        "tslib": "^1.7.1"
155 155
      }
156 156
    },
157 157
    "@angular/http": {
158
      "version": "4.4.6",
159
      "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.6.tgz",
160
      "integrity": "sha1-CvaAxnEL3AJtlA4iXP0PalwAXQw=",
158
      "version": "4.4.7",
159
      "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.7.tgz",
160
      "integrity": "sha512-9XrvXFVuHsAfVlIbM6Em2EouKiRyV2y4nPA+dAUd/9uB9i/i+FzZlmmeSIvP7ePnm6QyAC6nlvy9FMQYwvrtNA==",
161 161
      "requires": {
162
        "tslib": "1.8.0"
162
        "tslib": "^1.7.1"
163 163
      }
164 164
    },
165 165
    "@angular/platform-browser": {
166
      "version": "4.4.6",
167
      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.6.tgz",
168
      "integrity": "sha1-qYOcVH4bZU+h0kqJeAyLpquNzOA=",
166
      "version": "4.4.7",
167
      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.7.tgz",
168
      "integrity": "sha512-5WGMhUbaepmNoE597N/6R4jDdSqe4wwJblfi6bOJI34QStmD6QRnmg3H7ujr8lLhRBo9P3zH+hn7bM3RxUIEJg==",
169 169
      "requires": {
170
        "tslib": "1.8.0"
170
        "tslib": "^1.7.1"
171 171
      }
172 172
    },
173 173
    "@angular/platform-browser-dynamic": {
174
      "version": "4.4.6",
175
      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.6.tgz",
176
      "integrity": "sha1-TT2aanvyzz3kBYphWuBZ7/ZB+jY=",
174
      "version": "4.4.7",
175
      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.7.tgz",
176
      "integrity": "sha512-or6CB+LzK8zYn7K4rif32UvVadnbdrqBiT+5Yai1szNUUKuseqx2h1dsEgJQamkajsOUM7zjLYq4LrKJEEcm8A==",
177 177
      "requires": {
178
        "tslib": "1.8.0"
178
        "tslib": "^1.7.1"
179 179
      }
180 180
    },
181 181
    "@angular/router": {
182
      "version": "4.4.6",
183
      "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.6.tgz",
184
      "integrity": "sha1-D2rSmuD/jSyeo3m9MgRHIXt+yGY=",
182
      "version": "4.4.7",
183
      "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.7.tgz",
184
      "integrity": "sha512-WaVnBP41UdrUwReSUgB5YE6C37PrYFSaiFAoPRTx4RC0jeRE+ncFWwessVIh0kvfEK4ROkO3QK2BtLzMUY5GNg==",
185 185
      "requires": {
186
        "tslib": "1.8.0"
186
        "tslib": "^1.7.1"
187 187
      }
188 188
    },
189 189
    "@angular/tsc-wrapped": {
190
      "version": "4.4.6",
191
      "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.6.tgz",
192
      "integrity": "sha1-Fnh8u/UL3H5zgSOxnDJSfyROF40=",
190
      "version": "4.4.7",
191
      "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.7.tgz",
192
      "integrity": "sha512-R9w7sTU+HSTMPOa4NgvPL753qB6aqnPc1AVh2rwSl5FOpLS/AeeyzIhRnBsVXGrZrTcBQVLp/Cxg1oUSXE2k4Q==",
193 193
      "dev": true,
194 194
      "requires": {
195
        "tsickle": "0.21.6"
195
        "tsickle": "^0.21.0"
196 196
      }
197 197
    },
198 198
    "@angular/upgrade": {
199
      "version": "4.4.6",
200
      "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-4.4.6.tgz",
201
      "integrity": "sha1-x4iiawkicycKJd22+k09Xp89SYk=",
199
      "version": "4.4.7",
200
      "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-4.4.7.tgz",
201
      "integrity": "sha512-qVQHpu8mod/ibSDDp7W9F18uXKKOBkUkAga9e4jCTCzUNKMj5dVQETsJCtLVx1CTzYjQRa63Wz8ONTv7vUOISw==",
202 202
      "requires": {
203
        "tslib": "1.8.0"
203
        "tslib": "^1.7.1"
204 204
      }
205 205
    },
206 206
    "@ngtools/webpack": {
207
      "version": "1.10.1",
208
      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.10.1.tgz",
209
      "integrity": "sha512-Pa2FUy9n2Pu7kkTho6ADfHyypTmDMY8/HT7y9G3tZdaEsS7CjFMdchN5Dx+TCATGVh+G6FLS2mjgXBiGVTmbWw==",
207
      "version": "1.10.2",
208
      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.10.2.tgz",
209
      "integrity": "sha512-3u2zg2rarG3qNLSukBClGADWuq/iNn5SQtlSeAbfKzwBeyLGbF0gN1z1tVx1Bcr8YwFzR6NdRePQmJGcoqq1fg==",
210 210
      "dev": true,
211 211
      "requires": {
212
        "chalk": "2.2.2",
213
        "enhanced-resolve": "3.4.1",
214
        "loader-utils": "1.1.0",
215
        "magic-string": "0.22.4",
216
        "semver": "5.4.1",
217
        "source-map": "0.5.7",
218
        "tree-kill": "1.2.0",
219
        "webpack-sources": "1.1.0"
220
      },
221
      "dependencies": {
222
        "ansi-styles": {
223
          "version": "3.2.0",
224
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
225
          "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
226
          "dev": true,
227
          "requires": {
228
            "color-convert": "1.9.0"
229
          }
230
        },
231
        "chalk": {
232
          "version": "2.2.2",
233
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz",
234
          "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==",
235
          "dev": true,
236
          "requires": {
237
            "ansi-styles": "3.2.0",
238
            "escape-string-regexp": "1.0.5",
239
            "supports-color": "4.5.0"
240
          }
241
        },
242
        "has-flag": {
243
          "version": "2.0.0",
244
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
245
          "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
246
          "dev": true
247
        },
248
        "supports-color": {
249
          "version": "4.5.0",
250
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
251
          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
252
          "dev": true,
253
          "requires": {
254
            "has-flag": "2.0.0"
255
          }
256
        },
257
        "webpack-sources": {
258
          "version": "1.1.0",
259
          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
260
          "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
261
          "dev": true,
262
          "requires": {
263
            "source-list-map": "2.0.0",
264
            "source-map": "0.6.1"
265
          },
266
          "dependencies": {
267
            "source-map": {
268
              "version": "0.6.1",
269
              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
270
              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
271
              "dev": true
272
            }
273
          }
274
        }
212
        "chalk": "~2.2.0",
213
        "enhanced-resolve": "^3.1.0",
214
        "loader-utils": "^1.0.2",
215
        "magic-string": "^0.22.3",
216
        "semver": "^5.3.0",
217
        "source-map": "^0.5.6",
218
        "tree-kill": "^1.0.0",
219
        "webpack-sources": "^1.1.0"
275 220
      }
276 221
    },
277 222
    "abbrev": {
......
281 226
      "dev": true
282 227
    },
283 228
    "accepts": {
284
      "version": "1.3.4",
285
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
286
      "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
229
      "version": "1.3.5",
230
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
231
      "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
287 232
      "dev": true,
288 233
      "requires": {
289
        "mime-types": "2.1.17",
234
        "mime-types": "~2.1.18",
290 235
        "negotiator": "0.6.1"
291 236
      }
292 237
    },
293 238
    "acorn": {
294
      "version": "5.1.2",
295
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
296
      "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==",
239
      "version": "3.3.0",
240
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
241
      "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
297 242
      "dev": true
298 243
    },
299 244
    "acorn-dynamic-import": {
......
302 247
      "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
303 248
      "dev": true,
304 249
      "requires": {
305
        "acorn": "4.0.13"
250
        "acorn": "^4.0.3"
306 251
      },
307 252
      "dependencies": {
308 253
        "acorn": {
......
314 259
      }
315 260
    },
316 261
    "adjust-sourcemap-loader": {
317
      "version": "1.1.0",
318
      "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz",
319
      "integrity": "sha1-QS2SQE62HkETY1ASy6U6M9AI4OI=",
262
      "version": "1.2.0",
263
      "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz",
264
      "integrity": "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ==",
320 265
      "dev": true,
321 266
      "requires": {
322
        "assert": "1.4.1",
323
        "camelcase": "1.2.1",
324
        "loader-utils": "1.1.0",
325
        "lodash.assign": "4.2.0",
326
        "lodash.defaults": "3.1.2",
327
        "object-path": "0.9.2",
328
        "regex-parser": "2.2.9"
267
        "assert": "^1.3.0",
268
        "camelcase": "^1.2.1",
269
        "loader-utils": "^1.1.0",
270
        "lodash.assign": "^4.0.1",
271
        "lodash.defaults": "^3.1.2",
272
        "object-path": "^0.9.2",
273
        "regex-parser": "^2.2.9"
329 274
      },
330 275
      "dependencies": {
331 276
        "lodash.assign": {
......
340 285
          "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=",
341 286
          "dev": true,
342 287
          "requires": {
343
            "lodash.assign": "3.2.0",
344
            "lodash.restparam": "3.6.1"
288
            "lodash.assign": "^3.0.0",
289
            "lodash.restparam": "^3.0.0"
345 290
          },
346 291
          "dependencies": {
347 292
            "lodash.assign": {
......
350 295
              "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=",
351 296
              "dev": true,
352 297
              "requires": {
353
                "lodash._baseassign": "3.2.0",
354
                "lodash._createassigner": "3.1.1",
355
                "lodash.keys": "3.1.2"
298
                "lodash._baseassign": "^3.0.0",
299
                "lodash._createassigner": "^3.0.0",
300
                "lodash.keys": "^3.0.0"
356 301
              }
357 302
            }
358 303
          }
......
366 311
      "dev": true
367 312
    },
368 313
    "after": {
369
      "version": "0.8.1",
370
      "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
371
      "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=",
314
      "version": "0.8.2",
315
      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
316
      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
372 317
      "dev": true
373 318
    },
374 319
    "agent-base": {
......
377 322
      "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
378 323
      "dev": true,
379 324
      "requires": {
380
        "extend": "3.0.1",
381
        "semver": "5.0.3"
325
        "extend": "~3.0.0",
326
        "semver": "~5.0.1"
382 327
      },
383 328
      "dependencies": {
384 329
        "semver": {
......
390 335
      }
391 336
    },
392 337
    "ajv": {
393
      "version": "4.11.8",
394
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
395
      "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
338
      "version": "5.5.2",
339
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
340
      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
396 341
      "dev": true,
397 342
      "requires": {
398
        "co": "4.6.0",
399
        "json-stable-stringify": "1.0.1"
343
        "co": "^4.6.0",
344
        "fast-deep-equal": "^1.0.0",
345
        "fast-json-stable-stringify": "^2.0.0",
346
        "json-schema-traverse": "^0.3.0"
400 347
      }
401 348
    },
402 349
    "ajv-keywords": {
......
411 358
      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
412 359
      "dev": true,
413 360
      "requires": {
414
        "kind-of": "3.2.2",
415
        "longest": "1.0.1",
416
        "repeat-string": "1.6.1"
417
      },
418
      "dependencies": {
419
        "kind-of": {
420
          "version": "3.2.2",
421
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
422
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
423
          "dev": true,
424
          "requires": {
425
            "is-buffer": "1.1.5"
426
          }
427
        }
361
        "kind-of": "^3.0.2",
362
        "longest": "^1.0.1",
363
        "repeat-string": "^1.5.2"
428 364
      }
429 365
    },
430 366
    "alphanum-sort": {
......
445 381
      "integrity": "sha1-7+qJsX3L10yju35Ka7rKv1ZeYQ8=",
446 382
      "dev": true,
447 383
      "requires": {
448
        "@angular-cli/ast-tools": "1.0.16",
449
        "@angular-cli/base-href-webpack": "1.0.16",
384
        "@angular-cli/ast-tools": "^1.0.1",
385
        "@angular-cli/base-href-webpack": "^1.0.0",
450 386
        "@angular/compiler": "2.2.3",
451 387
        "@angular/compiler-cli": "2.2.3",
452 388
        "@angular/core": "2.2.3",
453
        "@ngtools/webpack": "1.10.1",
454
        "angular2-template-loader": "0.5.0",
455
        "chalk": "1.1.3",
456
        "common-tags": "1.7.2",
457
        "compression-webpack-plugin": "0.3.2",
458
        "configstore": "2.1.0",
459
        "core-js": "2.5.3",
460
        "css-loader": "0.23.1",
461
        "debug": "2.6.9",
462
        "denodeify": "1.2.1",
463
        "diff": "2.2.3",
464
        "ember-cli-normalize-entity-name": "1.0.0",
465
        "ember-cli-preprocess-registry": "2.0.0",
466
        "ember-cli-string-utils": "1.1.0",
467
        "enhanced-resolve": "2.3.0",
389
        "@ngtools/webpack": "^1.0.0",
390
        "angular2-template-loader": "^0.5.0",
391
        "chalk": "^1.1.3",
392
        "common-tags": "^1.3.1",
393
        "compression-webpack-plugin": "^0.3.2",
394
        "configstore": "^2.0.0",
395
        "core-js": "^2.4.0",
396
        "css-loader": "^0.23.1",
397
        "debug": "^2.1.3",
398
        "denodeify": "^1.2.1",
399
        "diff": "^2.2.2",
400
        "ember-cli-normalize-entity-name": "^1.0.0",
401
        "ember-cli-preprocess-registry": "^2.0.0",
402
        "ember-cli-string-utils": "^1.0.0",
403
        "enhanced-resolve": "^2.3.0",
468 404
        "exists-sync": "0.0.3",
469
        "extract-text-webpack-plugin": "2.1.2",
470
        "file-loader": "0.8.5",
405
        "extract-text-webpack-plugin": "^2.0.0-beta.4",
406
        "file-loader": "^0.8.5",
471 407
        "findup": "0.1.5",
472
        "fs-extra": "0.30.0",
473
        "get-caller-file": "1.0.2",
474
        "git-repo-info": "1.4.1",
475
        "glob": "7.1.2",
476
        "html-webpack-plugin": "2.30.1",
477
        "inflection": "1.12.0",
478
        "inquirer": "0.12.0",
479
        "is-git-url": "0.2.3",
480
        "isbinaryfile": "2.0.4",
481
        "istanbul-instrumenter-loader": "0.2.0",
482
        "json-loader": "0.5.7",
483
        "karma-sourcemap-loader": "0.3.7",
484
        "karma-webpack": "1.8.1",
408
        "fs-extra": "^0.30.0",
409
        "get-caller-file": "^1.0.0",
410
        "git-repo-info": "^1.0.4",
411
        "glob": "^7.0.3",
412
        "html-webpack-plugin": "^2.19.0",
413
        "inflection": "^1.7.0",
414
        "inquirer": "^0.12.0",
415
        "is-git-url": "^0.2.0",
416
        "isbinaryfile": "^2.0.3",
417
        "istanbul-instrumenter-loader": "^0.2.0",
418
        "json-loader": "^0.5.4",
419
        "karma-sourcemap-loader": "^0.3.7",
420
        "karma-webpack": "^1.8.0",
485 421
        "leek": "0.0.21",
486
        "less": "2.7.3",
487
        "less-loader": "2.2.3",
488
        "lodash": "4.17.4",
422
        "less": "^2.7.1",
423
        "less-loader": "^2.2.3",
424
        "lodash": "^4.11.1",
489 425
        "markdown-it": "4.3.0",
490 426
        "markdown-it-terminal": "0.0.3",
491
        "minimatch": "3.0.4",
492
        "mkdirp": "0.5.1",
493
        "node-modules-path": "1.0.1",
494
        "node-sass": "3.13.1",
495
        "nopt": "3.0.6",
496
        "npm-run-all": "3.1.2",
497
        "offline-plugin": "3.4.2",
427
        "minimatch": "^3.0.0",
428
        "mkdirp": "^0.5.1",
429
        "node-modules-path": "^1.0.0",
430
        "node-sass": "^3.10.1",
431
        "nopt": "^3.0.1",
432
        "npm-run-all": "^3.0.0",
433
        "offline-plugin": "^3.4.1",
498 434
        "opn": "4.0.1",
499
        "ora": "0.2.3",
500
        "parse5": "2.2.3",
435
        "ora": "^0.2.0",
436
        "parse5": "^2.1.5",
501 437
        "portfinder": "1.0.9",
502
        "postcss-loader": "0.9.1",
503
        "protractor": "3.3.0",
438
        "postcss-loader": "^0.9.1",
439
        "protractor": "^3.3.0",
504 440
        "quick-temp": "0.1.5",
505
        "raw-loader": "0.5.1",
441
        "raw-loader": "^0.5.1",
506 442
        "readline2": "0.1.1",
507
        "reflect-metadata": "0.1.12",
508
        "remap-istanbul": "0.6.4",
509
        "resolve": "1.4.0",
510
        "rimraf": "2.6.2",
511
        "rsvp": "3.6.2",
443
        "reflect-metadata": "^0.1.8",
444
        "remap-istanbul": "^0.6.4",
445
        "resolve": "^1.1.7",
446
        "rimraf": "^2.5.3",
447
        "rsvp": "^3.0.17",
512 448
        "rxjs": "5.0.0-beta.12",
513
        "sass-loader": "3.2.3",
514
        "script-loader": "0.7.2",
515
        "semver": "5.4.1",
516
        "silent-error": "1.1.0",
517
        "source-map-loader": "0.1.6",
518
        "sourcemap-istanbul-instrumenter-loader": "0.2.0",
519
        "string-replace-loader": "1.3.0",
520
        "style-loader": "0.13.2",
521
        "stylus": "0.54.5",
522
        "stylus-loader": "2.5.1",
449
        "sass-loader": "^3.2.0",
450
        "script-loader": "^0.7.0",
451
        "semver": "^5.1.0",
452
        "silent-error": "^1.0.0",
453
        "source-map-loader": "^0.1.5",
454
        "sourcemap-istanbul-instrumenter-loader": "^0.2.0",
455
        "string-replace-loader": "^1.0.3",
456
        "style-loader": "^0.13.1",
457
        "stylus": "^0.54.5",
458
        "stylus-loader": "^2.1.0",
523 459
        "temp": "0.8.3",
524
        "through": "2.3.8",
525
        "ts-loader": "0.8.2",
526
        "tslint": "3.15.1",
527
        "tslint-loader": "2.1.5",
528
        "typescript": "2.0.10",
529
        "url-loader": "0.5.9",
530
        "uuid": "3.1.0",
531
        "walk-sync": "0.2.7",
460
        "through": "^2.3.6",
461
        "ts-loader": "^0.8.2",
462
        "tslint": "^3.15.1",
463
        "tslint-loader": "^2.1.4",
464
        "typescript": "~2.0.3",
465
        "url-loader": "^0.5.7",
466
        "uuid": "^3.0.0",
467
        "walk-sync": "^0.2.6",
532 468
        "webpack": "2.1.0-beta.25",
533 469
        "webpack-dev-server": "2.1.0-beta.9",
534 470
        "webpack-md5-hash": "0.0.5",
535
        "webpack-merge": "0.14.1",
471
        "webpack-merge": "^0.14.0",
536 472
        "yam": "0.0.18",
537
        "zone.js": "0.6.26"
473
        "zone.js": "^0.6.23"
538 474
      },
539 475
      "dependencies": {
540 476
        "@angular/compiler": {
......
549 485
          "integrity": "sha1-1jK7+FaAKiD8VYnLRy+Y/vXwEcQ=",
550 486
          "dev": true,
551 487
          "requires": {
552
            "@angular/tsc-wrapped": "0.3.0",
553
            "minimist": "1.2.0",
554
            "reflect-metadata": "0.1.12"
488
            "@angular/tsc-wrapped": "^0.3.0",
489
            "minimist": "^1.2.0",
490
            "reflect-metadata": "^0.1.2"
555 491
          }
556 492
        },
557 493
        "@angular/core": {
......
566 502
          "integrity": "sha1-mM3rXDjRRbGHwK0Dl6jZiyF/M/I=",
567 503
          "dev": true,
568 504
          "requires": {
569
            "tsickle": "0.1.7"
505
            "tsickle": "^0.1.7"
570 506
          }
571 507
        },
572
        "acorn": {
573
          "version": "3.3.0",
574
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
575
          "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
576
          "dev": true
508
        "ajv": {
509
          "version": "4.11.8",
510
          "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
511
          "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
512
          "dev": true,
513
          "requires": {
514
            "co": "^4.6.0",
515
            "json-stable-stringify": "^1.0.1"
516
          }
577 517
        },
578 518
        "angular2-template-loader": {
579 519
          "version": "0.5.0",
......
581 521
          "integrity": "sha1-oW2xkPqvn46OlBDzxGg3DedRJ6Y=",
582 522
          "dev": true,
583 523
          "requires": {
584
            "codecov": "1.0.1",
585
            "loader-utils": "0.2.17"
524
            "codecov": "^1.0.1",
525
            "loader-utils": "^0.2.15"
586 526
          }
587 527
        },
588
        "cliui": {
589
          "version": "2.1.0",
590
          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
591
          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
528
        "ansi-styles": {
529
          "version": "2.2.1",
530
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
531
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
532
          "dev": true
533
        },
534
        "anymatch": {
535
          "version": "1.3.2",
536
          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
537
          "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
592 538
          "dev": true,
593 539
          "requires": {
594
            "center-align": "0.1.3",
595
            "right-align": "0.1.3",
596
            "wordwrap": "0.0.2"
540
            "micromatch": "^2.1.5",
541
            "normalize-path": "^2.0.0"
597 542
          }
598 543
        },
599
        "configstore": {
600
          "version": "2.1.0",
601
          "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz",
602
          "integrity": "sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=",
544
        "arr-diff": {
545
          "version": "2.0.0",
546
          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
547
          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
603 548
          "dev": true,
604 549
          "requires": {
605
            "dot-prop": "3.0.0",
606
            "graceful-fs": "4.1.11",
607
            "mkdirp": "0.5.1",
608
            "object-assign": "4.1.1",
609
            "os-tmpdir": "1.0.2",
610
            "osenv": "0.1.5",
611
            "uuid": "2.0.3",
612
            "write-file-atomic": "1.3.4",
613
            "xdg-basedir": "2.0.0"
614
          },
615
          "dependencies": {
616
            "uuid": {
617
              "version": "2.0.3",
618
              "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
619
              "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
620
              "dev": true
621
            }
550
            "arr-flatten": "^1.0.1"
622 551
          }
623 552
        },
624
        "css-loader": {
625
          "version": "0.23.1",
626
          "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz",
627
          "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=",
553
        "array-unique": {
554
          "version": "0.2.1",
555
          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
556
          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
557
          "dev": true
558
        },
559
        "async": {
560
          "version": "1.5.2",
561
          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
562
          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
563
          "dev": true
564
        },
565
        "braces": {
566
          "version": "1.8.5",
567
          "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
568
          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
628 569
          "dev": true,
629 570
          "requires": {
630
            "css-selector-tokenizer": "0.5.4",
631
            "cssnano": "3.10.0",
632
            "loader-utils": "0.2.17",
633
            "lodash.camelcase": "3.0.1",
634
            "object-assign": "4.1.1",
635
            "postcss": "5.2.18",
636
            "postcss-modules-extract-imports": "1.1.0",
637
            "postcss-modules-local-by-default": "1.2.0",
638
            "postcss-modules-scope": "1.1.0",
639
            "postcss-modules-values": "1.3.0",
640
            "source-list-map": "0.1.8"
571
            "expand-range": "^1.8.1",
572
            "preserve": "^0.2.0",
573
            "repeat-element": "^1.1.2"
641 574
          }
642 575
        },
643
        "dot-prop": {
644
          "version": "3.0.0",
645
          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
646
          "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
576
        "chalk": {
577
          "version": "1.1.3",
578
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
579
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
647 580
          "dev": true,
648 581
          "requires": {
649
            "is-obj": "1.0.1"
582
            "ansi-styles": "^2.2.1",
583
            "escape-string-regexp": "^1.0.2",
584
            "has-ansi": "^2.0.0",
585
            "strip-ansi": "^3.0.0",
586
            "supports-color": "^2.0.0"
650 587
          }
651 588
        },
652
        "enhanced-resolve": {
653
          "version": "2.3.0",
654
          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz",
655
          "integrity": "sha1-oRXDJQS2MC6Fp2Jp16V8zdli41k=",
589
        "chokidar": {
590
          "version": "1.7.0",
591
          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
592
          "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
656 593
          "dev": true,
657 594
          "requires": {
658
            "graceful-fs": "4.1.11",
659
            "memory-fs": "0.3.0",
660
            "object-assign": "4.1.1",
661
            "tapable": "0.2.8"
595
            "anymatch": "^1.3.0",
596
            "async-each": "^1.0.0",
597
            "fsevents": "^1.0.0",
598
            "glob-parent": "^2.0.0",
599
            "inherits": "^2.0.1",
600
            "is-binary-path": "^1.0.0",
601
            "is-glob": "^2.0.0",
602
            "path-is-absolute": "^1.0.0",
603
            "readdirp": "^2.0.0"
662 604
          }
663 605
        },
664
        "express": {
665
          "version": "4.16.2",
666
          "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
667
          "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
606
        "css-loader": {
607
          "version": "0.23.1",
608
          "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz",
609
          "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=",
668 610
          "dev": true,
669 611
          "requires": {
670
            "accepts": "1.3.4",
671
            "array-flatten": "1.1.1",
672
            "body-parser": "1.18.2",
673
            "content-disposition": "0.5.2",
674
            "content-type": "1.0.4",
675
            "cookie": "0.3.1",
676
            "cookie-signature": "1.0.6",
677
            "debug": "2.6.9",
678
            "depd": "1.1.1",
679
            "encodeurl": "1.0.1",
680
            "escape-html": "1.0.3",
681
            "etag": "1.8.1",
682
            "finalhandler": "1.1.0",
683
            "fresh": "0.5.2",
684
            "merge-descriptors": "1.0.1",
685
            "methods": "1.1.2",
686
            "on-finished": "2.3.0",
687
            "parseurl": "1.3.2",
688
            "path-to-regexp": "0.1.7",
689
            "proxy-addr": "2.0.2",
690
            "qs": "6.5.1",
691
            "range-parser": "1.2.0",
692
            "safe-buffer": "5.1.1",
693
            "send": "0.16.1",
694
            "serve-static": "1.13.1",
695
            "setprototypeof": "1.1.0",
696
            "statuses": "1.3.1",
697
            "type-is": "1.6.15",
698
            "utils-merge": "1.0.1",
699
            "vary": "1.1.2"
612
            "css-selector-tokenizer": "^0.5.1",
613
            "cssnano": ">=2.6.1 <4",
614
            "loader-utils": "~0.2.2",
615
            "lodash.camelcase": "^3.0.1",
616
            "object-assign": "^4.0.1",
617
            "postcss": "^5.0.6",
618
            "postcss-modules-extract-imports": "^1.0.0",
619
            "postcss-modules-local-by-default": "^1.0.1",
620
            "postcss-modules-scope": "^1.0.0",
621
            "postcss-modules-values": "^1.1.0",
622
            "source-list-map": "^0.1.4"
700 623
          }
701 624
        },
702
        "faye-websocket": {
703
          "version": "0.11.1",
704
          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
705
          "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
625
        "enhanced-resolve": {
626
          "version": "2.3.0",
627
          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz",
628
          "integrity": "sha1-oRXDJQS2MC6Fp2Jp16V8zdli41k=",
706 629
          "dev": true,
707 630
          "requires": {
708
            "websocket-driver": "0.7.0"
631
            "graceful-fs": "^4.1.2",
632
            "memory-fs": "^0.3.0",
633
            "object-assign": "^4.0.1",
634
            "tapable": "^0.2.3"
709 635
          }
710 636
        },
711
        "finalhandler": {
712
          "version": "1.1.0",
713
          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
714
          "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
637
        "expand-brackets": {
638
          "version": "0.1.5",
639
          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
640
          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
715 641
          "dev": true,
716 642
          "requires": {
717
            "debug": "2.6.9",
718
            "encodeurl": "1.0.1",
719
            "escape-html": "1.0.3",
720
            "on-finished": "2.3.0",
721
            "parseurl": "1.3.2",
722
            "statuses": "1.3.1",
723
            "unpipe": "1.0.0"
643
            "is-posix-bracket": "^0.1.0"
724 644
          }
725 645
        },
726
        "fresh": {
727
          "version": "0.5.2",
728
          "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
729
          "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
730
          "dev": true
731
        },
732
        "fs-extra": {
733
          "version": "0.30.0",
734
          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
735
          "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
646
        "extglob": {
647
          "version": "0.3.2",
648
          "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
649
          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
736 650
          "dev": true,
737 651
          "requires": {
738
            "graceful-fs": "4.1.11",
739
            "jsonfile": "2.4.0",
740
            "klaw": "1.3.1",
741
            "path-is-absolute": "1.0.1",
742
            "rimraf": "2.6.2"
652
            "is-extglob": "^1.0.0"
743 653
          }
744 654
        },
745
        "http-errors": {
746
          "version": "1.6.2",
747
          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
748
          "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
655
        "glob-parent": {
656
          "version": "2.0.0",
657
          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
658
          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
749 659
          "dev": true,
750 660
          "requires": {
751
            "depd": "1.1.1",
752
            "inherits": "2.0.3",
753
            "setprototypeof": "1.0.3",
754
            "statuses": "1.3.1"
755
          },
756
          "dependencies": {
757
            "setprototypeof": {
758
              "version": "1.0.3",
759
              "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
760
              "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
761
              "dev": true
762
            }
661
            "is-glob": "^2.0.0"
763 662
          }
764 663
        },
765
        "jsonfile": {
766
          "version": "2.4.0",
767
          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
768
          "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
664
        "has-flag": {
665
          "version": "1.0.0",
666
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
667
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
668
          "dev": true
669
        },
670
        "is-extglob": {
671
          "version": "1.0.0",
672
          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
673
          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
674
          "dev": true
675
        },
676
        "is-glob": {
677
          "version": "2.0.1",
678
          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
679
          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
769 680
          "dev": true,
770 681
          "requires": {
771
            "graceful-fs": "4.1.11"
682
            "is-extglob": "^1.0.0"
772 683
          }
773 684
        },
774 685
        "loader-utils": {
......
777 688
          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
778 689
          "dev": true,
779 690
          "requires": {
780
            "big.js": "3.2.0",
781
            "emojis-list": "2.1.0",
782
            "json5": "0.5.1",
783
            "object-assign": "4.1.1"
691
            "big.js": "^3.1.3",
692
            "emojis-list": "^2.0.0",
693
            "json5": "^0.5.0",
694
            "object-assign": "^4.0.1"
784 695
          }
785 696
        },
786 697
        "lodash.assign": {
......
795 706
          "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
796 707
          "dev": true,
797 708
          "requires": {
798
            "errno": "0.1.4",
799
            "readable-stream": "2.3.3"
709
            "errno": "^0.1.3",
710
            "readable-stream": "^2.0.1"
800 711
          }
801 712
        },
802
        "mime": {
803
          "version": "1.4.1",
804
          "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
805
          "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
806
          "dev": true
807
        },
808
        "node-libs-browser": {
809
          "version": "1.1.1",
810
          "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-1.1.1.tgz",
811
          "integrity": "sha1-KjgkOr7dff/NB6l8mspWaJdab+o=",
713
        "micromatch": {
714
          "version": "2.3.11",
715
          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
716
          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
812 717
          "dev": true,
813 718
          "requires": {
814
            "assert": "1.4.1",
815
            "browserify-zlib": "0.1.4",
816
            "buffer": "4.9.1",
817
            "console-browserify": "1.1.0",
818
            "constants-browserify": "1.0.0",
819
            "crypto-browserify": "3.11.1",
820
            "domain-browser": "1.1.7",
821
            "events": "1.1.1",
822
            "https-browserify": "0.0.1",
823
            "os-browserify": "0.2.1",
824
            "path-browserify": "0.0.0",
825
            "process": "0.11.10",
826
            "punycode": "1.4.1",
827
            "querystring-es3": "0.2.1",
828
            "readable-stream": "2.3.3",
829
            "stream-browserify": "2.0.1",
830
            "stream-http": "2.7.2",
831
            "string_decoder": "0.10.31",
832
            "timers-browserify": "1.4.2",
833
            "tty-browserify": "0.0.0",
834
            "url": "0.11.0",
835
            "util": "0.10.3",
836
            "vm-browserify": "0.0.4"
719
            "arr-diff": "^2.0.0",
720
            "array-unique": "^0.2.1",
721
            "braces": "^1.8.2",
722
            "expand-brackets": "^0.1.4",
723
            "extglob": "^0.3.1",
724
            "filename-regex": "^2.0.0",
725
            "is-extglob": "^1.0.0",
726
            "is-glob": "^2.0.1",
727
            "kind-of": "^3.0.2",
728
            "normalize-path": "^2.0.1",
729
            "object.omit": "^2.0.0",
730
            "parse-glob": "^3.0.4",
731
            "regex-cache": "^0.4.2"
837 732
          }
838 733
        },
839 734
        "node-sass": {
......
842 737
          "integrity": "sha1-ckD7v/I5YwS0IjUn7TAgWJwAT8I=",
843 738
          "dev": true,
844 739
          "requires": {
845
            "async-foreach": "0.1.3",
846
            "chalk": "1.1.3",
847
            "cross-spawn": "3.0.1",
848
            "gaze": "1.1.2",
849
            "get-stdin": "4.0.1",
850
            "glob": "7.1.2",
851
            "in-publish": "2.0.0",
852
            "lodash.assign": "4.2.0",
853
            "lodash.clonedeep": "4.5.0",
854
            "meow": "3.7.0",
855
            "mkdirp": "0.5.1",
856
            "nan": "2.9.2",
857
            "node-gyp": "3.6.2",
858
            "npmlog": "4.1.2",
859
            "request": "2.81.0",
860
            "sass-graph": "2.2.4"
740
            "async-foreach": "^0.1.3",
741
            "chalk": "^1.1.1",
742
            "cross-spawn": "^3.0.0",
743
            "gaze": "^1.0.0",
744
            "get-stdin": "^4.0.1",
745
            "glob": "^7.0.3",
746
            "in-publish": "^2.0.0",
747
            "lodash.assign": "^4.2.0",
748
            "lodash.clonedeep": "^4.3.2",
749
            "meow": "^3.7.0",
750
            "mkdirp": "^0.5.1",
751
            "nan": "^2.3.2",
752
            "node-gyp": "^3.3.1",
753
            "npmlog": "^4.0.0",
754
            "request": "^2.61.0",
755
            "sass-graph": "^2.1.1"
861 756
          }
862 757
        },
863
        "opn": {
864
          "version": "4.0.1",
865
          "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.1.tgz",
866
          "integrity": "sha1-m9MO4+uk/VM74sg9VjKaTliRO/g=",
867
          "dev": true,
868
          "requires": {
869
            "object-assign": "4.1.1",
870
            "pinkie-promise": "2.0.1"
871
          }
872
        },
873
        "portfinder": {
874
          "version": "1.0.9",
875
          "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.9.tgz",
876
          "integrity": "sha1-sayHVdCSr8BDPxxIMvoX1tH12DA=",
877
          "dev": true,
878
          "requires": {
879
            "async": "1.5.2",
880
            "debug": "2.6.9",
881
            "mkdirp": "0.5.1"
882
          }
883
        },
884
        "qs": {
885
          "version": "6.5.1",
886
          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
887
          "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
888
          "dev": true
889
        },
890 758
        "rxjs": {
891 759
          "version": "5.0.0-beta.12",
892 760
          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.0.0-beta.12.tgz",
893 761
          "integrity": "sha1-zf3i2MRjnSCud5S/+P3fMtp60zc=",
894 762
          "dev": true,
895 763
          "requires": {
896
            "symbol-observable": "1.2.0"
764
            "symbol-observable": "^1.0.1"
897 765
          }
898 766
        },
899 767
        "sass-loader": {
......
902 770
          "integrity": "sha1-dC6B/YFwqHcal54YYiUBZ0qI41U=",
903 771
          "dev": true,
904 772
          "requires": {
905
            "async": "1.5.2",
906
            "loader-utils": "0.2.17",
907
            "object-assign": "4.1.1"
773
            "async": "^1.4.0",
774
            "loader-utils": "^0.2.5",
775
            "object-assign": "^4.0.1"
908 776
          }
909 777
        },
910
        "send": {
911
          "version": "0.16.1",
912
          "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
913
          "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
914
          "dev": true,
915
          "requires": {
916
            "debug": "2.6.9",
917
            "depd": "1.1.1",
918
            "destroy": "1.0.4",
919
            "encodeurl": "1.0.1",
920
            "escape-html": "1.0.3",
921
            "etag": "1.8.1",
922
            "fresh": "0.5.2",
923
            "http-errors": "1.6.2",
924
            "mime": "1.4.1",
925
            "ms": "2.0.0",
926
            "on-finished": "2.3.0",
927
            "range-parser": "1.2.0",
928
            "statuses": "1.3.1"
929
          }
930
        },
931
        "serve-static": {
932
          "version": "1.13.1",
933
          "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
934
          "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
935
          "dev": true,
936
          "requires": {
937
            "encodeurl": "1.0.1",
938
            "escape-html": "1.0.3",
939
            "parseurl": "1.3.2",
940
            "send": "0.16.1"
941
          }
942
        },
943
        "setprototypeof": {
944
          "version": "1.1.0",
945
          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
946
          "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
947
          "dev": true
948
        },
949
        "sockjs-client": {
950
          "version": "1.1.1",
951
          "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.1.tgz",
952
          "integrity": "sha1-KEhD6al4TXxHSxVxsyQPyp3aS7A=",
953
          "dev": true,
954
          "requires": {
955
            "debug": "2.6.9",
956
            "eventsource": "0.1.6",
957
            "faye-websocket": "0.11.1",
958
            "inherits": "2.0.3",
959
            "json3": "3.3.2",
960
            "url-parse": "1.1.9"
961
          }
962
        },
963 778
        "source-list-map": {
964 779
          "version": "0.1.8",
965 780
          "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
......
972 787
          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
973 788
          "dev": true,
974 789
          "requires": {
975
            "amdefine": "1.0.1"
790
            "amdefine": ">=0.0.4"
976 791
          }
977 792
        },
978 793
        "source-map-support": {
......
990 805
              "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=",
991 806
              "dev": true,
992 807
              "requires": {
993
                "amdefine": "1.0.1"
808
                "amdefine": ">=0.0.4"
994 809
              }
995 810
            }
996 811
          }
997 812
        },
998
        "string_decoder": {
999
          "version": "0.10.31",
1000
          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
1001
          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
1002
          "dev": true
1003
        },
1004 813
        "style-loader": {
1005 814
          "version": "0.13.2",
1006 815
          "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz",
1007 816
          "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=",
1008 817
          "dev": true,
1009 818
          "requires": {
1010
            "loader-utils": "1.1.0"
819
            "loader-utils": "^1.0.2"
1011 820
          },
1012 821
          "dependencies": {
1013 822
            "loader-utils": {
......
1016 825
              "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
1017 826
              "dev": true,
1018 827
              "requires": {
1019
                "big.js": "3.2.0",
1020
                "emojis-list": "2.1.0",
1021
                "json5": "0.5.1"
828
                "big.js": "^3.1.3",
829
                "emojis-list": "^2.0.0",
830
                "json5": "^0.5.0"
1022 831
              }
1023 832
            }
1024 833
          }
1025 834
        },
1026 835
        "supports-color": {
1027
          "version": "3.2.3",
1028
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
1029
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
1030
          "dev": true,
1031
          "requires": {
1032
            "has-flag": "1.0.0"
1033
          }
836
          "version": "2.0.0",
837
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
838
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
839
          "dev": true
1034 840
        },
1035
        "timers-browserify": {
1036
          "version": "1.4.2",
1037
          "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
1038
          "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
1039
          "dev": true,
1040
          "requires": {
1041
            "process": "0.11.10"
1042
          }
1043
        },
1044 841
        "tsickle": {
1045 842
          "version": "0.1.7",
1046 843
          "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.1.7.tgz",
1047 844
          "integrity": "sha1-v+j0zc2vmkC4SnKaOEgML4JPGKs=",
1048 845
          "dev": true,
1049 846
          "requires": {
1050
            "minimist": "1.2.0",
1051
            "mkdirp": "0.5.1",
1052
            "source-map": "0.4.4",
1053
            "source-map-support": "0.3.3"
847
            "minimist": "^1.2.0",
848
            "mkdirp": "^0.5.1",
849
            "source-map": "^0.4.2",
850
            "source-map-support": "^0.3.1"
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff