diff options
author | Chocobozzz <me@florianbigard.com> | 2018-04-17 10:35:08 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2018-04-17 10:35:08 +0200 |
commit | cc1561f9f7b33d739d66b23bacae23ea49f2fa12 (patch) | |
tree | 4ba9e905eaff4c80e9412b1ccf344c81c8c41ea8 | |
parent | e6f627975bebd00d396d11442e582d80856bc6bd (diff) | |
download | PeerTube-cc1561f9f7b33d739d66b23bacae23ea49f2fa12.tar.gz PeerTube-cc1561f9f7b33d739d66b23bacae23ea49f2fa12.tar.zst PeerTube-cc1561f9f7b33d739d66b23bacae23ea49f2fa12.zip |
Simplify client syndications
-rw-r--r-- | client/package.json | 2 | ||||
-rw-r--r-- | client/src/app/account/account-videos/account-videos.component.ts | 4 | ||||
-rw-r--r-- | client/src/app/shared/video/abstract-video-list.scss | 5 | ||||
-rw-r--r-- | client/src/app/shared/video/abstract-video-list.ts | 5 | ||||
-rw-r--r-- | client/src/app/shared/video/video-feed.component.html | 9 | ||||
-rw-r--r-- | client/src/app/shared/video/video-feed.component.ts | 8 | ||||
-rw-r--r-- | client/src/app/shared/video/video.service.ts | 64 | ||||
-rw-r--r-- | client/src/app/videos/+video-watch/video-watch.component.ts | 14 | ||||
-rw-r--r-- | client/src/app/videos/video-list/video-local.component.ts | 6 | ||||
-rw-r--r-- | client/src/app/videos/video-list/video-recently-added.component.ts | 6 | ||||
-rw-r--r-- | client/src/app/videos/video-list/video-trending.component.ts | 8 | ||||
-rw-r--r-- | client/yarn.lock | 90 | ||||
-rwxr-xr-x | scripts/watch/server.sh | 2 |
13 files changed, 105 insertions, 118 deletions
diff --git a/client/package.json b/client/package.json index eb82030fb..07de7db6c 100644 --- a/client/package.json +++ b/client/package.json | |||
@@ -47,7 +47,7 @@ | |||
47 | "@types/sanitize-html": "^1.14.0", | 47 | "@types/sanitize-html": "^1.14.0", |
48 | "@types/video.js": "6.2.4", | 48 | "@types/video.js": "6.2.4", |
49 | "@types/webtorrent": "^0.98.4", | 49 | "@types/webtorrent": "^0.98.4", |
50 | "angular2-notifications": "^0.9.6", | 50 | "angular2-notifications": "^1.0.0", |
51 | "awesome-typescript-loader": "5.0.0", | 51 | "awesome-typescript-loader": "5.0.0", |
52 | "bootstrap-sass": "^3.3.7", | 52 | "bootstrap-sass": "^3.3.7", |
53 | "codelyzer": "^4.0.2", | 53 | "codelyzer": "^4.0.2", |
diff --git a/client/src/app/account/account-videos/account-videos.component.ts b/client/src/app/account/account-videos/account-videos.component.ts index b9a3bea3f..07f5b7f0b 100644 --- a/client/src/app/account/account-videos/account-videos.component.ts +++ b/client/src/app/account/account-videos/account-videos.component.ts | |||
@@ -27,8 +27,6 @@ export class AccountVideosComponent extends AbstractVideoList implements OnInit, | |||
27 | totalItems: null | 27 | totalItems: null |
28 | } | 28 | } |
29 | 29 | ||
30 | syndicationItems = {} | ||
31 | |||
32 | protected baseVideoWidth = -1 | 30 | protected baseVideoWidth = -1 |
33 | protected baseVideoHeight = 155 | 31 | protected baseVideoHeight = 155 |
34 | 32 | ||
@@ -43,6 +41,8 @@ export class AccountVideosComponent extends AbstractVideoList implements OnInit, | |||
43 | 41 | ||
44 | ngOnInit () { | 42 | ngOnInit () { |
45 | super.ngOnInit() | 43 | super.ngOnInit() |
44 | |||
45 | // this.generateSyndicationList() | ||
46 | } | 46 | } |
47 | 47 | ||
48 | ngOnDestroy () { | 48 | ngOnDestroy () { |
diff --git a/client/src/app/shared/video/abstract-video-list.scss b/client/src/app/shared/video/abstract-video-list.scss index b75907dc9..913fcfe22 100644 --- a/client/src/app/shared/video/abstract-video-list.scss +++ b/client/src/app/shared/video/abstract-video-list.scss | |||
@@ -8,9 +8,12 @@ | |||
8 | } | 8 | } |
9 | } | 9 | } |
10 | 10 | ||
11 | .title-page.title-page-single { | ||
12 | margin-right: 5px; | ||
13 | } | ||
14 | |||
11 | my-video-feed { | 15 | my-video-feed { |
12 | display: inline-block; | 16 | display: inline-block; |
13 | margin-left: -45px; | ||
14 | } | 17 | } |
15 | 18 | ||
16 | @media screen and (max-width: 500px) { | 19 | @media screen and (max-width: 500px) { |
diff --git a/client/src/app/shared/video/abstract-video-list.ts b/client/src/app/shared/video/abstract-video-list.ts index 024834dfc..c1c07e628 100644 --- a/client/src/app/shared/video/abstract-video-list.ts +++ b/client/src/app/shared/video/abstract-video-list.ts | |||
@@ -3,7 +3,6 @@ import { ActivatedRoute, Router } from '@angular/router' | |||
3 | import { isInMobileView } from '@app/shared/misc/utils' | 3 | import { isInMobileView } from '@app/shared/misc/utils' |
4 | import { InfiniteScrollerDirective } from '@app/shared/video/infinite-scroller.directive' | 4 | import { InfiniteScrollerDirective } from '@app/shared/video/infinite-scroller.directive' |
5 | import { NotificationsService } from 'angular2-notifications' | 5 | import { NotificationsService } from 'angular2-notifications' |
6 | import { PopoverModule } from 'ngx-bootstrap/popover' | ||
7 | import 'rxjs/add/operator/debounceTime' | 6 | import 'rxjs/add/operator/debounceTime' |
8 | import { Observable } from 'rxjs/Observable' | 7 | import { Observable } from 'rxjs/Observable' |
9 | import { fromEvent } from 'rxjs/observable/fromEvent' | 8 | import { fromEvent } from 'rxjs/observable/fromEvent' |
@@ -12,8 +11,6 @@ import { AuthService } from '../../core/auth' | |||
12 | import { ComponentPagination } from '../rest/component-pagination.model' | 11 | import { ComponentPagination } from '../rest/component-pagination.model' |
13 | import { SortField } from './sort-field.type' | 12 | import { SortField } from './sort-field.type' |
14 | import { Video } from './video.model' | 13 | import { Video } from './video.model' |
15 | import { FeedFormat } from '../../../../../shared' | ||
16 | import { VideoFeedComponent } from '@app/shared/video/video-feed.component' | ||
17 | 14 | ||
18 | export abstract class AbstractVideoList implements OnInit, OnDestroy { | 15 | export abstract class AbstractVideoList implements OnInit, OnDestroy { |
19 | private static LINES_PER_PAGE = 4 | 16 | private static LINES_PER_PAGE = 4 |
@@ -28,7 +25,7 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { | |||
28 | } | 25 | } |
29 | sort: SortField = '-createdAt' | 26 | sort: SortField = '-createdAt' |
30 | defaultSort: SortField = '-createdAt' | 27 | defaultSort: SortField = '-createdAt' |
31 | syndicationItems = {} | 28 | syndicationItems = [] |
32 | 29 | ||
33 | loadOnInit = true | 30 | loadOnInit = true |
34 | pageHeight: number | 31 | pageHeight: number |
diff --git a/client/src/app/shared/video/video-feed.component.html b/client/src/app/shared/video/video-feed.component.html index 7733ef221..5ef13e1ed 100644 --- a/client/src/app/shared/video/video-feed.component.html +++ b/client/src/app/shared/video/video-feed.component.html | |||
@@ -1,14 +1,13 @@ | |||
1 | <div class="video-feed"> | 1 | <div class="video-feed"> |
2 | <span *ngIf="(syndicationItems | myObjectLength) >= 1" class="icon icon-syndication" | 2 | <span *ngIf="syndicationItems.length !== 0" class="icon icon-syndication" |
3 | [popover]="feedsList" | 3 | [popover]="feedsList" |
4 | placement="bottom" | 4 | placement="bottom" |
5 | [outsideClick]="true"> | 5 | [outsideClick]="true"> |
6 | </span> | 6 | </span> |
7 | 7 | ||
8 | <ng-template #feedsList> | 8 | <ng-template #feedsList> |
9 | <div *ngFor="let key of syndicationItems | keys"> | 9 | <div *ngFor="let item of syndicationItems"> |
10 | <a [href]="syndicationItems[key]">{{ key }}</a> | 10 | <a [href]="item.url" target="_blank" rel="noopener noreferrer">{{ item.label }}</a> |
11 | </div> | 11 | </div> |
12 | </ng-template> | 12 | </ng-template> |
13 | </div> | 13 | </div> \ No newline at end of file |
14 | \ No newline at end of file | ||
diff --git a/client/src/app/shared/video/video-feed.component.ts b/client/src/app/shared/video/video-feed.component.ts index 41257ca99..6922153c0 100644 --- a/client/src/app/shared/video/video-feed.component.ts +++ b/client/src/app/shared/video/video-feed.component.ts | |||
@@ -1,14 +1,10 @@ | |||
1 | import { Component, Input, OnChanges, SimpleChanges } from '@angular/core' | 1 | import { Component, Input } from '@angular/core' |
2 | 2 | ||
3 | @Component({ | 3 | @Component({ |
4 | selector: 'my-video-feed', | 4 | selector: 'my-video-feed', |
5 | styleUrls: [ './video-feed.component.scss' ], | 5 | styleUrls: [ './video-feed.component.scss' ], |
6 | templateUrl: './video-feed.component.html' | 6 | templateUrl: './video-feed.component.html' |
7 | }) | 7 | }) |
8 | export class VideoFeedComponent implements OnChanges { | 8 | export class VideoFeedComponent { |
9 | @Input() syndicationItems | 9 | @Input() syndicationItems |
10 | |||
11 | ngOnChanges (changes: SimpleChanges) { | ||
12 | this.syndicationItems = changes.syndicationItems.currentValue | ||
13 | } | ||
14 | } | 10 | } |
diff --git a/client/src/app/shared/video/video.service.ts b/client/src/app/shared/video/video.service.ts index 009155410..4c19c3765 100644 --- a/client/src/app/shared/video/video.service.ts +++ b/client/src/app/shared/video/video.service.ts | |||
@@ -117,45 +117,53 @@ export class VideoService { | |||
117 | .catch((res) => this.restExtractor.handleError(res)) | 117 | .catch((res) => this.restExtractor.handleError(res)) |
118 | } | 118 | } |
119 | 119 | ||
120 | baseFeed () { | 120 | buildBaseFeedUrls () { |
121 | const feed = {} | 121 | const feeds = [ |
122 | 122 | { | |
123 | for (let item in FeedFormat) { | 123 | label: 'rss 2.0', |
124 | feed[FeedFormat[item]] = VideoService.BASE_FEEDS_URL + item.toLowerCase() | 124 | url: VideoService.BASE_FEEDS_URL + FeedFormat.RSS.toLowerCase() |
125 | } | 125 | }, |
126 | 126 | { | |
127 | return feed | 127 | label: 'atom 1.0', |
128 | } | 128 | url: VideoService.BASE_FEEDS_URL + FeedFormat.ATOM.toLowerCase() |
129 | 129 | }, | |
130 | getFeed ( | 130 | { |
131 | filter?: VideoFilter | 131 | label: 'json 1.0', |
132 | ) { | 132 | url: VideoService.BASE_FEEDS_URL + FeedFormat.JSON.toLowerCase() |
133 | } | ||
134 | ] | ||
135 | |||
136 | return feeds | ||
137 | } | ||
138 | |||
139 | getVideoFeedUrls (filter?: VideoFilter) { | ||
133 | let params = this.restService.addRestGetParams(new HttpParams()) | 140 | let params = this.restService.addRestGetParams(new HttpParams()) |
134 | const feed = this.baseFeed() | 141 | const feeds = this.buildBaseFeedUrls() |
135 | 142 | ||
136 | if (filter) { | 143 | if (filter) params = params.set('filter', filter) |
137 | params = params.set('filter', filter) | 144 | |
138 | } | 145 | if (params.keys().length !== 0) { |
139 | for (let item in feed) { | 146 | for (let item of feeds) { |
140 | feed[item] = feed[item] + ((params.toString().length === 0) ? '' : '?') + params.toString() | 147 | item.url += `?${params.toString()}` |
148 | } | ||
141 | } | 149 | } |
142 | 150 | ||
143 | return feed | 151 | return feeds |
144 | } | 152 | } |
145 | 153 | ||
146 | getAccountFeed ( | 154 | getAccountFeedUrls (accountId: number) { |
147 | accountId: number, | ||
148 | host?: string | ||
149 | ) { | ||
150 | let params = this.restService.addRestGetParams(new HttpParams()) | 155 | let params = this.restService.addRestGetParams(new HttpParams()) |
151 | const feed = this.baseFeed() | 156 | const feeds = this.buildBaseFeedUrls() |
152 | 157 | ||
153 | params = params.set('accountId', accountId.toString()) | 158 | params = params.set('accountId', accountId.toString()) |
154 | for (let item in feed) { | 159 | |
155 | feed[item] = feed[item] + ((params.toString().length === 0) ? '' : '?') + params.toString() | 160 | if (params.keys().length !== 0) { |
161 | for (let item of feeds) { | ||
162 | item.url += `?${params.toString()}` | ||
163 | } | ||
156 | } | 164 | } |
157 | 165 | ||
158 | return feed | 166 | return feeds |
159 | } | 167 | } |
160 | 168 | ||
161 | searchVideos ( | 169 | searchVideos ( |
diff --git a/client/src/app/videos/+video-watch/video-watch.component.ts b/client/src/app/videos/+video-watch/video-watch.component.ts index b3ebe3e4b..182703cdf 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.ts +++ b/client/src/app/videos/+video-watch/video-watch.component.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | import { Component, ElementRef, NgZone, OnDestroy, OnInit, ViewChild, OnChanges } from '@angular/core' | 1 | import { Component, ElementRef, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core' |
2 | import { ActivatedRoute, Router } from '@angular/router' | 2 | import { ActivatedRoute, Router } from '@angular/router' |
3 | import { RedirectService } from '@app/core/routing/redirect.service' | 3 | import { RedirectService } from '@app/core/routing/redirect.service' |
4 | import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage' | 4 | import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage' |
@@ -9,20 +9,18 @@ import { Subscription } from 'rxjs/Subscription' | |||
9 | import * as videojs from 'video.js' | 9 | import * as videojs from 'video.js' |
10 | import 'videojs-hotkeys' | 10 | import 'videojs-hotkeys' |
11 | import * as WebTorrent from 'webtorrent' | 11 | import * as WebTorrent from 'webtorrent' |
12 | import { UserVideoRateType, VideoRateType, FeedFormat } from '../../../../../shared' | 12 | import { UserVideoRateType, VideoRateType } from '../../../../../shared' |
13 | import '../../../assets/player/peertube-videojs-plugin' | 13 | import '../../../assets/player/peertube-videojs-plugin' |
14 | import { AuthService, ConfirmService } from '../../core' | 14 | import { AuthService, ConfirmService } from '../../core' |
15 | import { VideoBlacklistService } from '../../shared' | 15 | import { VideoBlacklistService } from '../../shared' |
16 | import { Account } from '../../shared/account/account.model' | 16 | import { Account } from '../../shared/account/account.model' |
17 | import { VideoDetails } from '../../shared/video/video-details.model' | 17 | import { VideoDetails } from '../../shared/video/video-details.model' |
18 | import { VideoFeedComponent } from '../../shared/video/video-feed.component' | ||
19 | import { Video } from '../../shared/video/video.model' | 18 | import { Video } from '../../shared/video/video.model' |
20 | import { VideoService } from '../../shared/video/video.service' | 19 | import { VideoService } from '../../shared/video/video.service' |
21 | import { MarkdownService } from '../shared' | 20 | import { MarkdownService } from '../shared' |
22 | import { VideoDownloadComponent } from './modal/video-download.component' | 21 | import { VideoDownloadComponent } from './modal/video-download.component' |
23 | import { VideoReportComponent } from './modal/video-report.component' | 22 | import { VideoReportComponent } from './modal/video-report.component' |
24 | import { VideoShareComponent } from './modal/video-share.component' | 23 | import { VideoShareComponent } from './modal/video-share.component' |
25 | import { environment } from '../../../environments/environment' | ||
26 | import { getVideojsOptions } from '../../../assets/player/peertube-player' | 24 | import { getVideojsOptions } from '../../../assets/player/peertube-player' |
27 | 25 | ||
28 | @Component({ | 26 | @Component({ |
@@ -248,13 +246,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
248 | } | 246 | } |
249 | 247 | ||
250 | generateSyndicationList () { | 248 | generateSyndicationList () { |
251 | const feeds = this.videoService.getAccountFeed( | 249 | this.syndicationItems = this.videoService.getAccountFeedUrls(this.video.account.id) |
252 | this.video.account.id, | ||
253 | (this.video.isLocal) ? environment.apiUrl : this.video.account.host | ||
254 | ) | ||
255 | this.syndicationItems['rss 2.0'] = feeds[FeedFormat.RSS] | ||
256 | this.syndicationItems['atom 1.0'] = feeds[FeedFormat.ATOM] | ||
257 | this.syndicationItems['json 1.0'] = feeds[FeedFormat.JSON] | ||
258 | } | 250 | } |
259 | 251 | ||
260 | isVideoRemovable () { | 252 | isVideoRemovable () { |
diff --git a/client/src/app/videos/video-list/video-local.component.ts b/client/src/app/videos/video-list/video-local.component.ts index 9d626abd1..90eb96afe 100644 --- a/client/src/app/videos/video-list/video-local.component.ts +++ b/client/src/app/videos/video-list/video-local.component.ts | |||
@@ -30,6 +30,7 @@ export class VideoLocalComponent extends AbstractVideoList implements OnInit, On | |||
30 | 30 | ||
31 | ngOnInit () { | 31 | ngOnInit () { |
32 | super.ngOnInit() | 32 | super.ngOnInit() |
33 | |||
33 | this.generateSyndicationList() | 34 | this.generateSyndicationList() |
34 | } | 35 | } |
35 | 36 | ||
@@ -44,9 +45,6 @@ export class VideoLocalComponent extends AbstractVideoList implements OnInit, On | |||
44 | } | 45 | } |
45 | 46 | ||
46 | generateSyndicationList () { | 47 | generateSyndicationList () { |
47 | const feeds = this.videoService.getFeed('local') | 48 | this.syndicationItems = this.videoService.getVideoFeedUrls('local') |
48 | this.syndicationItems['rss 2.0'] = feeds[FeedFormat.RSS] | ||
49 | this.syndicationItems['atom 1.0'] = feeds[FeedFormat.ATOM] | ||
50 | this.syndicationItems['json 1.0'] = feeds[FeedFormat.JSON] | ||
51 | } | 49 | } |
52 | } | 50 | } |
diff --git a/client/src/app/videos/video-list/video-recently-added.component.ts b/client/src/app/videos/video-list/video-recently-added.component.ts index 2bdc20d92..3b8108b00 100644 --- a/client/src/app/videos/video-list/video-recently-added.component.ts +++ b/client/src/app/videos/video-list/video-recently-added.component.ts | |||
@@ -29,6 +29,7 @@ export class VideoRecentlyAddedComponent extends AbstractVideoList implements On | |||
29 | 29 | ||
30 | ngOnInit () { | 30 | ngOnInit () { |
31 | super.ngOnInit() | 31 | super.ngOnInit() |
32 | |||
32 | this.generateSyndicationList() | 33 | this.generateSyndicationList() |
33 | } | 34 | } |
34 | 35 | ||
@@ -43,9 +44,6 @@ export class VideoRecentlyAddedComponent extends AbstractVideoList implements On | |||
43 | } | 44 | } |
44 | 45 | ||
45 | generateSyndicationList () { | 46 | generateSyndicationList () { |
46 | const feeds = this.videoService.getFeed('local') | 47 | this.syndicationItems = this.videoService.getVideoFeedUrls() |
47 | this.syndicationItems['rss 2.0'] = feeds[FeedFormat.RSS] | ||
48 | this.syndicationItems['atom 1.0'] = feeds[FeedFormat.ATOM] | ||
49 | this.syndicationItems['json 1.0'] = feeds[FeedFormat.JSON] | ||
50 | } | 48 | } |
51 | } | 49 | } |
diff --git a/client/src/app/videos/video-list/video-trending.component.ts b/client/src/app/videos/video-list/video-trending.component.ts index 905c75ab0..6358ef91f 100644 --- a/client/src/app/videos/video-list/video-trending.component.ts +++ b/client/src/app/videos/video-list/video-trending.component.ts | |||
@@ -6,8 +6,6 @@ import { AuthService } from '../../core/auth' | |||
6 | import { AbstractVideoList } from '../../shared/video/abstract-video-list' | 6 | import { AbstractVideoList } from '../../shared/video/abstract-video-list' |
7 | import { SortField } from '../../shared/video/sort-field.type' | 7 | import { SortField } from '../../shared/video/sort-field.type' |
8 | import { VideoService } from '../../shared/video/video.service' | 8 | import { VideoService } from '../../shared/video/video.service' |
9 | import { FeedFormat } from '../../../../../shared/models/feeds/feed-format.enum' | ||
10 | import * as url from 'url' | ||
11 | 9 | ||
12 | @Component({ | 10 | @Component({ |
13 | selector: 'my-videos-trending', | 11 | selector: 'my-videos-trending', |
@@ -29,6 +27,7 @@ export class VideoTrendingComponent extends AbstractVideoList implements OnInit, | |||
29 | 27 | ||
30 | ngOnInit () { | 28 | ngOnInit () { |
31 | super.ngOnInit() | 29 | super.ngOnInit() |
30 | |||
32 | this.generateSyndicationList() | 31 | this.generateSyndicationList() |
33 | } | 32 | } |
34 | 33 | ||
@@ -42,9 +41,6 @@ export class VideoTrendingComponent extends AbstractVideoList implements OnInit, | |||
42 | } | 41 | } |
43 | 42 | ||
44 | generateSyndicationList () { | 43 | generateSyndicationList () { |
45 | const feeds = this.videoService.getFeed('local') | 44 | this.syndicationItems = this.videoService.getVideoFeedUrls() |
46 | this.syndicationItems['rss 2.0'] = feeds[FeedFormat.RSS] | ||
47 | this.syndicationItems['atom 1.0'] = feeds[FeedFormat.ATOM] | ||
48 | this.syndicationItems['json 1.0'] = feeds[FeedFormat.JSON] | ||
49 | } | 45 | } |
50 | } | 46 | } |
diff --git a/client/yarn.lock b/client/yarn.lock index 3ae0b73c7..c889ec703 100644 --- a/client/yarn.lock +++ b/client/yarn.lock | |||
@@ -28,8 +28,8 @@ | |||
28 | rxjs "^5.5.6" | 28 | rxjs "^5.5.6" |
29 | 29 | ||
30 | "@angular/animations@~5.2.2": | 30 | "@angular/animations@~5.2.2": |
31 | version "5.2.9" | 31 | version "5.2.10" |
32 | resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.2.9.tgz#220db9fb5a52a193db0023d721b23ddd25a75770" | 32 | resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.2.10.tgz#61718792e0922ac622fd7c6dfb0afbb996638692" |
33 | dependencies: | 33 | dependencies: |
34 | tslib "^1.7.1" | 34 | tslib "^1.7.1" |
35 | 35 | ||
@@ -99,14 +99,14 @@ | |||
99 | node-sass "^4.7.2" | 99 | node-sass "^4.7.2" |
100 | 100 | ||
101 | "@angular/common@~5.2.2": | 101 | "@angular/common@~5.2.2": |
102 | version "5.2.9" | 102 | version "5.2.10" |
103 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.2.9.tgz#beb25d4434498abae56bd8dc2c01ade3f6c45e81" | 103 | resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.2.10.tgz#828308df8505a31f219a6895ff91dbb178ebac98" |
104 | dependencies: | 104 | dependencies: |
105 | tslib "^1.7.1" | 105 | tslib "^1.7.1" |
106 | 106 | ||
107 | "@angular/compiler-cli@~5.2.2": | 107 | "@angular/compiler-cli@~5.2.2": |
108 | version "5.2.9" | 108 | version "5.2.10" |
109 | resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.2.9.tgz#36a069937d50a8a294eda233b5b1b2c71139751f" | 109 | resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.2.10.tgz#7e9dead0730dc20f7658e110a558b557b60e7be2" |
110 | dependencies: | 110 | dependencies: |
111 | chokidar "^1.4.2" | 111 | chokidar "^1.4.2" |
112 | minimist "^1.2.0" | 112 | minimist "^1.2.0" |
@@ -114,54 +114,54 @@ | |||
114 | tsickle "^0.27.2" | 114 | tsickle "^0.27.2" |
115 | 115 | ||
116 | "@angular/compiler@~5.2.2": | 116 | "@angular/compiler@~5.2.2": |
117 | version "5.2.9" | 117 | version "5.2.10" |
118 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.2.9.tgz#1d03bc1e8b38c259bc58114d691c2140d244f8f5" | 118 | resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.2.10.tgz#1cd9914436f0707957823531c4418ce5b7e6a130" |
119 | dependencies: | 119 | dependencies: |
120 | tslib "^1.7.1" | 120 | tslib "^1.7.1" |
121 | 121 | ||
122 | "@angular/core@~5.2.2": | 122 | "@angular/core@~5.2.2": |
123 | version "5.2.9" | 123 | version "5.2.10" |
124 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.2.9.tgz#3daf13ef9aa754b9954ed21da3eb322e8b20f667" | 124 | resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.2.10.tgz#a6eba06cae7267efbd2666e3fa5e42b84c2261de" |
125 | dependencies: | 125 | dependencies: |
126 | tslib "^1.7.1" | 126 | tslib "^1.7.1" |
127 | 127 | ||
128 | "@angular/forms@~5.2.2": | 128 | "@angular/forms@~5.2.2": |
129 | version "5.2.9" | 129 | version "5.2.10" |
130 | resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.2.9.tgz#12c45b3a02c398b354f09cc740d914cd904c0c9c" | 130 | resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.2.10.tgz#6a4cf9c87b57005599c0ec59a79b7f1b06375591" |
131 | dependencies: | 131 | dependencies: |
132 | tslib "^1.7.1" | 132 | tslib "^1.7.1" |
133 | 133 | ||
134 | "@angular/http@~5.2.2": | 134 | "@angular/http@~5.2.2": |
135 | version "5.2.9" | 135 | version "5.2.10" |
136 | resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.2.9.tgz#2ffea536e181bc97e2867593d57425ea7853285b" | 136 | resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.2.10.tgz#d80d60fc205b043f72bd61ba22e7aa386d6a51ec" |
137 | dependencies: | 137 | dependencies: |
138 | tslib "^1.7.1" | 138 | tslib "^1.7.1" |
139 | 139 | ||
140 | "@angular/language-service@^5.1.0": | 140 | "@angular/language-service@^5.1.0": |
141 | version "5.2.9" | 141 | version "5.2.10" |
142 | resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-5.2.9.tgz#4838bb6319c99e8f5beb08bdfb392ee9a1173766" | 142 | resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-5.2.10.tgz#5699af9d46033faccefeb21d4d168524d2180a8c" |
143 | 143 | ||
144 | "@angular/platform-browser-dynamic@~5.2.2": | 144 | "@angular/platform-browser-dynamic@~5.2.2": |
145 | version "5.2.9" | 145 | version "5.2.10" |
146 | resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.9.tgz#86075b7bb694861f722ceda29aae186b045c6b7d" | 146 | resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.10.tgz#bec4c0ca9fb16c34adee851caa187989953216ca" |
147 | dependencies: | 147 | dependencies: |
148 | tslib "^1.7.1" | 148 | tslib "^1.7.1" |
149 | 149 | ||
150 | "@angular/platform-browser@~5.2.2": | 150 | "@angular/platform-browser@~5.2.2": |
151 | version "5.2.9" | 151 | version "5.2.10" |
152 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.2.9.tgz#9ee76327b1b3affad68ffa839058661b7704bc2c" | 152 | resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.2.10.tgz#92883803de7362e635748a440dd5f6172fc2394a" |
153 | dependencies: | 153 | dependencies: |
154 | tslib "^1.7.1" | 154 | tslib "^1.7.1" |
155 | 155 | ||
156 | "@angular/router@~5.2.2": | 156 | "@angular/router@~5.2.2": |
157 | version "5.2.9" | 157 | version "5.2.10" |
158 | resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.2.9.tgz#0369df6e60c6da3a5842c6eb35e3958d4ffe727e" | 158 | resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.2.10.tgz#cb36c32de0a233a9b49789e11ca0f96c5304f25a" |
159 | dependencies: | 159 | dependencies: |
160 | tslib "^1.7.1" | 160 | tslib "^1.7.1" |
161 | 161 | ||
162 | "@angular/service-worker@^5.2.4": | 162 | "@angular/service-worker@^5.2.4": |
163 | version "5.2.9" | 163 | version "5.2.10" |
164 | resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-5.2.9.tgz#47ee439f2f896ac701fee271d046589a6c46b6af" | 164 | resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-5.2.10.tgz#ef861929e2ca5f1241f44be1ad5295544486514c" |
165 | dependencies: | 165 | dependencies: |
166 | tslib "^1.7.1" | 166 | tslib "^1.7.1" |
167 | 167 | ||
@@ -397,9 +397,9 @@ amdefine@>=0.0.4: | |||
397 | version "1.0.1" | 397 | version "1.0.1" |
398 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" | 398 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" |
399 | 399 | ||
400 | angular2-notifications@^0.9.6: | 400 | angular2-notifications@^1.0.0: |
401 | version "0.9.8" | 401 | version "1.0.0" |
402 | resolved "https://registry.yarnpkg.com/angular2-notifications/-/angular2-notifications-0.9.8.tgz#04e4744fcd7f6ada2eeeb8897fc9e3d5eb6e08c7" | 402 | resolved "https://registry.yarnpkg.com/angular2-notifications/-/angular2-notifications-1.0.0.tgz#07e2f970e32f0a67d67419a4dca21ecc9a452e3f" |
403 | 403 | ||
404 | ansi-escapes@^1.0.0: | 404 | ansi-escapes@^1.0.0: |
405 | version "1.4.0" | 405 | version "1.4.0" |
@@ -1759,8 +1759,8 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: | |||
1759 | supports-color "^2.0.0" | 1759 | supports-color "^2.0.0" |
1760 | 1760 | ||
1761 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2: | 1761 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2: |
1762 | version "2.3.2" | 1762 | version "2.4.0" |
1763 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" | 1763 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52" |
1764 | dependencies: | 1764 | dependencies: |
1765 | ansi-styles "^3.2.1" | 1765 | ansi-styles "^3.2.1" |
1766 | escape-string-regexp "^1.0.5" | 1766 | escape-string-regexp "^1.0.5" |
@@ -3864,8 +3864,8 @@ html-entities@^1.2.0: | |||
3864 | resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" | 3864 | resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" |
3865 | 3865 | ||
3866 | html-minifier@^3.2.3: | 3866 | html-minifier@^3.2.3: |
3867 | version "3.5.14" | 3867 | version "3.5.15" |
3868 | resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.14.tgz#88653b24b344274e3e3d7052f1541ebea054ac60" | 3868 | resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.15.tgz#f869848d4543cbfd84f26d5514a2a87cbf9a05e0" |
3869 | dependencies: | 3869 | dependencies: |
3870 | camel-case "3.0.x" | 3870 | camel-case "3.0.x" |
3871 | clean-css "4.1.x" | 3871 | clean-css "4.1.x" |
@@ -6206,8 +6206,8 @@ postcss-load-plugins@^2.3.0: | |||
6206 | object-assign "^4.1.0" | 6206 | object-assign "^4.1.0" |
6207 | 6207 | ||
6208 | postcss-loader@^2.0.10: | 6208 | postcss-loader@^2.0.10: |
6209 | version "2.1.3" | 6209 | version "2.1.4" |
6210 | resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.3.tgz#eb210da734e475a244f76ccd61f9860f5bb3ee09" | 6210 | resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.4.tgz#f44a6390e03c84108b2b2063182d1a1011b2ce76" |
6211 | dependencies: | 6211 | dependencies: |
6212 | loader-utils "^1.1.0" | 6212 | loader-utils "^1.1.0" |
6213 | postcss "^6.0.0" | 6213 | postcss "^6.0.0" |
@@ -6410,8 +6410,8 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.14, postcss@^6.0.16, postcss@^6.0.1 | |||
6410 | supports-color "^5.3.0" | 6410 | supports-color "^5.3.0" |
6411 | 6411 | ||
6412 | prebuild-install@~2.5.0: | 6412 | prebuild-install@~2.5.0: |
6413 | version "2.5.1" | 6413 | version "2.5.3" |
6414 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.1.tgz#0f234140a73760813657c413cdccdda58296b1da" | 6414 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.3.tgz#9f65f242782d370296353710e9bc843490c19f69" |
6415 | dependencies: | 6415 | dependencies: |
6416 | detect-libc "^1.0.3" | 6416 | detect-libc "^1.0.3" |
6417 | expand-template "^1.0.2" | 6417 | expand-template "^1.0.2" |
@@ -6442,8 +6442,8 @@ preserve@^0.2.0: | |||
6442 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" | 6442 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" |
6443 | 6443 | ||
6444 | prettier@^1.5.3: | 6444 | prettier@^1.5.3: |
6445 | version "1.12.0" | 6445 | version "1.12.1" |
6446 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.0.tgz#d26fc5894b9230de97629b39cae225b503724ce8" | 6446 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" |
6447 | 6447 | ||
6448 | pretty-bytes@^4.0.2: | 6448 | pretty-bytes@^4.0.2: |
6449 | version "4.0.2" | 6449 | version "4.0.2" |
@@ -6695,8 +6695,8 @@ rc@^1.1.6, rc@^1.1.7: | |||
6695 | strip-json-comments "~2.0.1" | 6695 | strip-json-comments "~2.0.1" |
6696 | 6696 | ||
6697 | react-dom@^16.2.0: | 6697 | react-dom@^16.2.0: |
6698 | version "16.3.1" | 6698 | version "16.3.2" |
6699 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.3.1.tgz#6a3c90a4fb62f915bdbcf6204422d93a7d4ca573" | 6699 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.3.2.tgz#cb90f107e09536d683d84ed5d4888e9640e0e4df" |
6700 | dependencies: | 6700 | dependencies: |
6701 | fbjs "^0.8.16" | 6701 | fbjs "^0.8.16" |
6702 | loose-envify "^1.1.0" | 6702 | loose-envify "^1.1.0" |
@@ -6704,8 +6704,8 @@ react-dom@^16.2.0: | |||
6704 | prop-types "^15.6.0" | 6704 | prop-types "^15.6.0" |
6705 | 6705 | ||
6706 | react@^16.2.0: | 6706 | react@^16.2.0: |
6707 | version "16.3.1" | 6707 | version "16.3.2" |
6708 | resolved "https://registry.yarnpkg.com/react/-/react-16.3.1.tgz#4a2da433d471251c69b6033ada30e2ed1202cfd8" | 6708 | resolved "https://registry.yarnpkg.com/react/-/react-16.3.2.tgz#fdc8420398533a1e58872f59091b272ce2f91ea9" |
6709 | dependencies: | 6709 | dependencies: |
6710 | fbjs "^0.8.16" | 6710 | fbjs "^0.8.16" |
6711 | loose-envify "^1.1.0" | 6711 | loose-envify "^1.1.0" |
@@ -7956,8 +7956,8 @@ supports-color@^4.0.0, supports-color@^4.2.1: | |||
7956 | has-flag "^2.0.0" | 7956 | has-flag "^2.0.0" |
7957 | 7957 | ||
7958 | supports-color@^5.1.0, supports-color@^5.3.0: | 7958 | supports-color@^5.1.0, supports-color@^5.3.0: |
7959 | version "5.3.0" | 7959 | version "5.4.0" |
7960 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" | 7960 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" |
7961 | dependencies: | 7961 | dependencies: |
7962 | has-flag "^3.0.0" | 7962 | has-flag "^3.0.0" |
7963 | 7963 | ||
@@ -8071,8 +8071,8 @@ timed-out@^4.0.0, timed-out@^4.0.1: | |||
8071 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" | 8071 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" |
8072 | 8072 | ||
8073 | timers-browserify@^2.0.4: | 8073 | timers-browserify@^2.0.4: |
8074 | version "2.0.6" | 8074 | version "2.0.7" |
8075 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" | 8075 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.7.tgz#e74093629cb62c20332af587ddc0c86b4ba97a05" |
8076 | dependencies: | 8076 | dependencies: |
8077 | setimmediate "^1.0.4" | 8077 | setimmediate "^1.0.4" |
8078 | 8078 | ||
diff --git a/scripts/watch/server.sh b/scripts/watch/server.sh index 42a594d85..6250fb9a4 100755 --- a/scripts/watch/server.sh +++ b/scripts/watch/server.sh | |||
@@ -4,4 +4,4 @@ set -eu | |||
4 | 4 | ||
5 | NODE_ENV=test concurrently -k \ | 5 | NODE_ENV=test concurrently -k \ |
6 | "npm run tsc -- --sourceMap && npm run nodemon -- --delay 2 --watch ./dist dist/server" \ | 6 | "npm run tsc -- --sourceMap && npm run nodemon -- --delay 2 --watch ./dist dist/server" \ |
7 | "npm run tsc -- --sourceMap -w" | 7 | "npm run tsc -- --sourceMap --preserveWatchOutput -w" |