- {{loginError}}
+
+ Wrong password
@@ -18,6 +21,7 @@
type="password"
[(ngModel)]="password"
name="password"
+ i18n-placeholder
placeholder="Password"
required>
@@ -26,10 +30,10 @@
diff --git a/frontend/app/sharelogin/share-login.component.ts b/frontend/app/sharelogin/share-login.component.ts
index 64764d5c..0d00a24f 100644
--- a/frontend/app/sharelogin/share-login.component.ts
+++ b/frontend/app/sharelogin/share-login.component.ts
@@ -11,7 +11,7 @@ import {NavigationService} from "../model/navigation.service";
})
export class ShareLoginComponent implements OnInit {
password: string;
- loginError: any = null;
+ loginError: boolean = false;
title: string;
constructor(private _authService: AuthenticationService, private _navigation: NavigationService) {
@@ -25,14 +25,14 @@ export class ShareLoginComponent implements OnInit {
}
async onLogin() {
- this.loginError = null;
+ this.loginError = false;
try {
await this._authService.shareLogin(this.password);
} catch (error) {
if (error && error.code === ErrorCodes.CREDENTIAL_NOT_FOUND) {
- this.loginError = "Wrong password";
+ this.loginError = true;
}
}
}
diff --git a/frontend/index.html b/frontend/index.html
index 34dc3e05..2f6b8200 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -11,7 +11,7 @@
-
+
diff --git a/frontend/locale/messages.hu.xlf b/frontend/locale/messages.hu.xlf
new file mode 100644
index 00000000..3ba7365b
--- /dev/null
+++ b/frontend/locale/messages.hu.xlf
@@ -0,0 +1,939 @@
+
+
+
+
+
+ Please log in
+
+ app/login/login.component.ts
+ 11
+
+ Jelentkezz be
+
+
+
+ Wrong username or password
+
+
+ app/login/login.component.ts
+ 13
+
+ Hibás felhasználónév vagy jelszó
+
+
+ Username
+
+ app/login/login.component.ts
+ 22
+
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 77
+
+
+ app/settings/database/database.settings.component.ts
+ 22
+
+ Felhasználónév
+
+
+ Password
+
+ app/login/login.component.ts
+ 36
+
+
+ app/sharelogin/share-login.component.ts
+ 25
+
+
+ app/gallery/share/share.gallery.component.ts
+ 66
+
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 79
+
+
+ app/settings/database/database.settings.component.ts
+ 24
+
+ Jelszó
+
+
+ Remember
+ me
+
+ app/login/login.component.ts
+ 41
+
+ Jegyezzen meg
+
+
+ Login
+
+
+ app/login/login.component.ts
+ 51
+
+ Belépés
+
+
+
+ Wrong password
+
+
+ app/sharelogin/share-login.component.ts
+ 13
+
+ Hibás jelszó
+
+
+ Enter
+
+
+ app/sharelogin/share-login.component.ts
+ 36
+
+ Belépés
+
+
+ Search
+
+ app/gallery/search/search.gallery.component.ts
+ 6
+
+ Keresés
+
+
+ Link availability
+
+ app/gallery/gallery.component.ts
+ 7
+
+ Link érvényes
+
+
+ days
+
+ app/gallery/gallery.component.ts
+ 7
+
+ nap
+
+
+
+ Too many results to show. Refine your search.
+
+
+ app/gallery/gallery.component.ts
+ 35
+
+ Túl sok találat. Pontosítsd a keresést.
+
+
+ Searching for:
+
+ app/gallery/gallery.component.ts
+ 40
+
+ Keresés:
+
+
+ Logout
+
+ app/frame/frame.component.ts
+ 44
+
+ Kijelentkezés
+
+
+ Share
+
+ app/gallery/share/share.gallery.component.ts
+ 4
+
+
+ app/gallery/share/share.gallery.component.ts
+ 18
+
+ Ossza meg
+
+
+ Copy
+
+
+ app/gallery/share/share.gallery.component.ts
+ 34
+
+ Másolás
+
+
+ Sharing:
+
+ app/gallery/share/share.gallery.component.ts
+ 41
+
+ Megosztás:
+
+
+ Include subfolders:
+
+ app/gallery/share/share.gallery.component.ts
+ 52
+
+ Alkönyvtárakat is:
+
+
+ Valid:
+
+ app/gallery/share/share.gallery.component.ts
+ 80
+
+ Érvényes:
+
+
+ Server notifications
+
+ app/admin/admin.component.ts
+ 6
+
+ Szerver értesítések
+
+
+
+ To dismiss these notifications, restart the server.
+
+
+ app/admin/admin.component.ts
+ 19
+
+ Az ilyen értesítések elütetéséhez indítsd újra a az alkalmazást.
+
+
+ Mode
+
+ app/admin/admin.component.ts
+ 25
+
+ Mód
+
+
+ Info
+
+ app/gallery/lightbox/infopanel/info-panel.lightbox.gallery.component.ts
+ 5
+
+ Info
+
+
+ Password protection
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 3
+
+ Jelszavas védelem
+
+
+ Name
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 27
+
+ Név
+
+
+ Role
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 28
+
+ Jogkör
+
+
+ + Add user
+
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 55
+
+ + Felhasználó hozzáadása
+
+
+
+ To protect the site with password / have login enable this.
+
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 58
+
+ A webhely jelszóval legyen védve / be kelljen jelentkezni
+
+
+ Add new User
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 72
+
+ Új felhasználó hozzáadása
+
+
+ Close
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 87
+
+ Bezárás
+
+
+ Add User
+
+
+ app/settings/usermanager/usermanager.settings.component.ts
+ 90
+
+ Felhasználó hozzáadása
+
+
+ Database settings
+
+ app/settings/database/database.settings.component.ts
+ 3
+
+ Adatbázis beállítások
+
+
+ Type:
+
+ app/settings/database/database.settings.component.ts
+ 8
+
+ Típus:
+
+
+ Install manually mysql node module to use mysql (npm install mysql)
+
+ app/settings/database/database.settings.component.ts
+ 14
+
+ Telepítsd kézzel mysql node-modult a mysql (npm install mysql) használatához
+
+
+ MySQL settings:
+
+ app/settings/database/database.settings.component.ts
+ 17
+
+ MySQL beállítások:
+
+
+ Host
+
+ app/settings/database/database.settings.component.ts
+ 18
+
+ Cím
+
+
+ Database
+
+ app/settings/database/database.settings.component.ts
+ 20
+
+ adatbázis
+
+
+ SQLie settings:
+
+ app/settings/database/database.settings.component.ts
+ 28
+
+ SQLite beállítások:
+
+
+ Save
+
+
+ app/settings/database/database.settings.component.ts
+ 36
+
+ Mentés
+
+
+ Reset
+
+
+ app/settings/database/database.settings.component.ts
+ 39
+
+ Visszaállítás
+
+
+ Map settings
+
+ app/settings/map/map.settings.component.ts
+ 4
+
+ Térképbeállítások
+
+
+ Google maps api key
+
+ app/settings/map/map.settings.component.ts
+ 25
+
+ Google maps api key
+
+
+ To show the images on a map,
+
+ app/settings/map/map.settings.component.ts
+ 31
+
+ Ahhoz, hogy a térképen megjelenjenek a képek
+
+
+ google api key
+
+ app/settings/map/map.settings.component.ts
+ 32
+
+ google api key-re
+
+
+ is need
+
+ app/settings/map/map.settings.component.ts
+ 32
+
+ van szükség
+
+
+ Save
+
+
+ app/settings/map/map.settings.component.ts
+ 40
+
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 96
+
+
+ app/settings/search/search.settings.component.ts
+ 73
+
+
+ app/settings/share/share.settings.component.ts
+ 52
+
+
+ app/settings/basic/basic.settings.component.ts
+ 57
+
+
+ app/settings/other/other.settings.component.ts
+ 91
+
+ Mentés
+
+
+ Reset
+
+
+ app/settings/map/map.settings.component.ts
+ 43
+
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 99
+
+
+ app/settings/search/search.settings.component.ts
+ 76
+
+
+ app/settings/share/share.settings.component.ts
+ 55
+
+
+ app/settings/basic/basic.settings.component.ts
+ 60
+
+
+ app/settings/other/other.settings.component.ts
+ 94
+
+ Visszaállítás
+
+
+ Thumbnail settings
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 4
+
+ Thumbnail beállítások
+
+
+ It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail generation
+
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 10
+
+ Nagyon ajánlott hardveresen gyorsított (sharp vagy gm) könyvtár használata a thumbnail generálásához
+
+
+ Thumbnail generation library
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 15
+
+ Thumbnail generáló könyvtár
+
+
+ Make sure that sharp node module is installed (npm install sharp).
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 23
+
+ Győződj meg arról, hogy a sharp node modul telepítve van (npm telepítés sharp).
+
+
+ Make sure that gm node module and
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 25
+
+ Győződjd meg arról, hogy a gm node modul és
+
+
+ GraphicsMagick
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 26
+
+ GraphicsMagick
+
+
+ are installed (npm install sharp).
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 26
+
+ telepítve van (npm install éles).
+
+
+ Thumbnail folder
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 32
+
+ Thumbnail mappa
+
+
+ Thumbnails will be saved in this folder. Write access is required
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 38
+
+ A thumbnail-ek ebben a mappában lesznek elmentve. Írási jog szükséges
+
+
+ Thumbnail Quality
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 43
+
+ Thumbnail minőség
+
+
+ High quality may be slow. Especially with Jimp.
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 57
+
+ A jó minőségű lassú lehet. Különösen a Jimp esetén.
+
+
+ Icon size (used on maps)
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 72
+
+ Ikonméret (térképeken használva)
+
+
+ Thumbnail sizes
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 78
+
+ Thumbnail méretek
+
+
+ Size of the thumbnails.
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 85
+
+ A thumbnail mérete.
+
+
+ The best matching size will be generated. (More size gives better quality, but use storage to store and CPU to render.)
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 86
+
+ A legjobban egyezett méret lesz generálva. (Több méret lehetőség jobb minőségéet eredményez, de processzort és tárhelyet fogyaszt)
+
+
+ ';' separated integers. If size is 200, tha thumbnail will have 200^2 pixels.
+
+ app/settings/thumbnail/thumbanil.settings.component.ts
+ 87
+
+ ';'-val elválasztott egész számok. Ha a méret 200, akkor a thumnail-ok 200^2 pixelből fognak állni.
+
+
+ Search settings
+
+ app/settings/search/search.settings.component.ts
+ 5
+
+ Keresési beállítások
+
+
+ Autocomplete
+
+ app/settings/search/search.settings.component.ts
+ 27
+
+ Automatikus kiegészítés
+
+
+ Show hints while typing search query
+
+ app/settings/search/search.settings.component.ts
+ 42
+
+ Kersési javaslatok megjelenítése a keresési szöveg beírása közben
+
+
+ Instant search
+
+ app/settings/search/search.settings.component.ts
+ 48
+
+ Azonnali (instant) keresés
+
+
+ Enables showing search results, while typing search query
+
+ app/settings/search/search.settings.component.ts
+ 63
+
+ Lehetővé teszi a keresési eredmények megjelenítését a keresés beírása közben
+
+
+
+ Search is not supported with these settings
+
+
+ app/settings/search/search.settings.component.ts
+ 68
+
+ A keresés nem támogatott ezekkel a beállításokkal
+
+
+ Share settings
+
+ app/settings/share/share.settings.component.ts
+ 5
+
+ Megosztási bállítások
+
+
+ Password protected
+
+ app/settings/share/share.settings.component.ts
+ 26
+
+ Jelszóval védett
+
+
+ Enables password protected sharing links
+
+ app/settings/share/share.settings.component.ts
+ 41
+
+ Jelszóval védi a megoszott linkeket.
+
+
+
+ Sharing is not supported with these settings
+
+
+ app/settings/share/share.settings.component.ts
+ 47
+
+ A megosztás nem támogatott ezekkel a beállításokkal
+
+
+ Basic settings
+
+ app/settings/basic/basic.settings.component.ts
+ 4
+
+ Egyszerű beállítások
+
+
+ Page title
+
+ app/settings/basic/basic.settings.component.ts
+ 11
+
+ Oldal cím
+
+
+ Port number. Port 80 is usually what you need.
+
+ app/settings/basic/basic.settings.component.ts
+ 29
+
+ Portszám. A 80-as port általában az, amire szükséged van.
+
+
+ Images are loaded from this folder (read permission required)
+
+ app/settings/basic/basic.settings.component.ts
+ 40
+
+ A képeket ebből a mappából tölti be (olvasási engedély szükséges)
+
+
+ Page public url
+
+ app/settings/basic/basic.settings.component.ts
+ 45
+
+ Oldal nyilvános urlje (webcím)
+
+
+ If you access the page form local network its good to know the public url for creating sharing link
+
+ app/settings/basic/basic.settings.component.ts
+ 51
+
+ Ha helyi hálózatról nézed az oldalt, jó ha tudja az oldal a publikus címét, hogy tudjon megosztási linket generálni
+
+
+ Other settings
+
+ app/settings/other/other.settings.component.ts
+ 4
+
+ Egyéb beállitások
+
+
+ Error:
+
+ app/settings/other/other.settings.component.ts
+ 7
+
+ Hiba:
+
+
+ Threading
+
+ app/settings/other/other.settings.component.ts
+ 11
+
+ Háttérszálon futtatás
+
+
+ Runs directory scanning and thumbnail generation (only for Jimp) in a different thread
+
+ app/settings/other/other.settings.component.ts
+ 25
+
+ Könyvtrá indexelést és thumnail generálást (csak Jimp esetén) háttérszálon futtatja.
+
+
+ Scroll based thumbnail
+ generation
+
+ app/settings/other/other.settings.component.ts
+ 30
+
+ Scroll-ozás alapú thumbnail
+ generálás
+
+
+ Those thumbnails get higher priority that are visible on the screen
+
+ app/settings/other/other.settings.component.ts
+ 45
+
+ A képernyőn látható thumnailek nagyobb prioritással generálódnak
+
+
+ Lazy image rendering
+
+ app/settings/other/other.settings.component.ts
+ 50
+
+ Lazy kép megjelenítés
+
+
+ Shows only the required amount of photos at once. Renders more if page bottom is reached
+
+ app/settings/other/other.settings.component.ts
+ 64
+
+ Csak a szükséges mennyiségű fotót jeleníti meg egyszerre. újabbakat tölt be, ha elérte az oldal alját
+
+
+ Cache
+
+ app/settings/other/other.settings.component.ts
+ 70
+
+ gyorsítótár
+
+
+ Caches directory contents and search results for better performance
+
+ app/settings/other/other.settings.component.ts
+ 84
+
+ Cach-eli a könyvtár tartalmát és a keresési eredményeket, hogy responzívabb legyen az oldal
+
+
+ Folder indexing
+
+ app/settings/indexing/indexing.settings.component.ts
+ 4
+
+ Mappa indexelése
+
+
+ Index cache timeout [ms]
+
+ app/settings/indexing/indexing.settings.component.ts
+ 11
+
+ Index cache timeout [ms]
+
+
+ If there was no indexing in this time, it reindexes. (skipped if indexen in DB and sensitivity is low)
+
+ app/settings/indexing/indexing.settings.component.ts
+ 19
+
+ Ha ennyi ideje nem volt indexelés, újraindexeli a könyvtárat. (kivéve, ha a DB index és az érzékenység alacsony)
+
+
+ Sub folder preview size
+
+ app/settings/indexing/indexing.settings.component.ts
+ 23
+
+ Alkönyvtár előnézet mérete
+
+
+ Reads this many photos from sub folders
+
+ app/settings/indexing/indexing.settings.component.ts
+ 31
+
+ Ennyi fotót olvas be az alkönytárból
+
+
+ Folder reindexing sensitivity
+
+ app/settings/indexing/indexing.settings.component.ts
+ 36
+
+ Folder újra indeyelés érzékenysége
+
+
+ Set the reindexing sensitivity. High value check the folders for change more often
+
+ app/settings/indexing/indexing.settings.component.ts
+ 44
+
+ Állítsa be az újraindexelés érzékenységét. A magasabb érzékenység gyarkabban ellenőrzi a mappákat válztozás
+
+
+ Save
+
+
+ app/settings/indexing/indexing.settings.component.ts
+ 51
+
+ Mentés
+
+
+ Reset
+
+
+ app/settings/indexing/indexing.settings.component.ts
+ 54
+
+ Visszaállítás
+
+
+ If you add a new folder to your gallery, the site indexes it automatically.
+
+ app/settings/indexing/indexing.settings.component.ts
+ 60
+
+ Ha új mappát ad hozzá a galériához, a webhely automatikusan indexeli.
+
+
+ If you would like to trigger indexing manually, click index button.
+
+ app/settings/indexing/indexing.settings.component.ts
+ 61
+
+ Ha kézzel szeretné indítani az indexelést, kattintson az index gombra.
+
+
+ Note: search ony searched among the indexed directories
+
+ app/settings/indexing/indexing.settings.component.ts
+ 62
+
+ Megjegyzés: a keresés csak az indexelet mappákban működik
+
+
+ Index
+
+
+ app/settings/indexing/indexing.settings.component.ts
+ 84
+
+ Index
+
+
+ Cancel
+
+
+ app/settings/indexing/indexing.settings.component.ts
+ 89
+
+ Mégse
+
+
+ Reset Indexes
+
+
+ app/settings/indexing/indexing.settings.component.ts
+ 93
+
+ Indexek törlése
+
+
+
+
diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json
index 5e2507db..b894d63b 100644
--- a/frontend/tsconfig.app.json
+++ b/frontend/tsconfig.app.json
@@ -9,5 +9,13 @@
"exclude": [
"test.ts",
"**/*.spec.ts"
+ ],
+ "include": [
+ "./**/*",
+ "./../node_modules/jw-bootstrap-switch-ng2/dist/index.ts",
+ "./../node_modules/jw-bootstrap-switch-ng2/dist/directive.ts",
+ "./../node_modules/ngx-clipboard/src/index.ts",
+ "./../node_modules/ngx-clipboard/src/clipboard.directive.ts",
+ "./../node_modules/ngx-clipboard/src/clipboard.service.ts"
]
}
diff --git a/gulpfile.js b/gulpfile.js
index c6a76f97..69f4c58d 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,6 +1,7 @@
var ts = require('gulp-typescript');
var gulp = require('gulp');
var zip = require('gulp-zip');
+var fs = require('fs');
var runSequence = require('run-sequence');
var jsonModify = require('gulp-json-modify');
var exec = require('child_process').exec;
@@ -15,12 +16,37 @@ gulp.task('build-backend', function () {
.pipe(gulp.dest("./release"))
});
-gulp.task('build-frontend', function (cb) {
- exec("ng build -prod --output-path=./release/dist --no-progress", function (err, stdout, stderr) {
- console.log(stdout);
- console.log(stderr);
- cb(err);
+var createFornendTask = function (tpye, script) {
+ gulp.task(tpye, function (cb) {
+ exec(script, function (err, stdout, stderr) {
+ console.log(stdout);
+ console.log(stderr);
+ cb(err);
+ });
});
+};
+
+gulp.task('build-frontend', function (done) {
+ var dirCont = fs.readdirSync("./frontend/locale");
+ var files = dirCont.filter(function (elm) {
+ return elm.match(/.*\.[a-zA-Z]+\.(xlf)/ig);
+ });
+ var languages = files.map(function (f) {
+ return f.split(".")[1]
+ });
+ var tasks = [];
+ createFornendTask('build-frontend default', "ng build --aot -prod --output-path=./release/dist --no-progress");
+ tasks.push('build-frontend default');
+ for (var i = 0; i < files.length; i++) {
+ createFornendTask('build-frontend ' + languages[i], "ng build --aot -prod --output-path=./release/dist/" + languages[i] + " --no-progress --locale " + languages[i] + " --i18n-format xlf --i18n-file frontend/locale/" + files[i] + " --missing-translation warning");
+ tasks.push('build-frontend ' + languages[i]);
+ }
+ tasks.push(function () {
+ done();
+ });
+
+ runSequence.apply(this, tasks);
+
});
gulp.task('copy-static', function () {
@@ -56,3 +82,26 @@ gulp.task('build-release', function (done) {
done();
});
});
+
+
+gulp.task('build-dev', function (done) {
+ var dirCont = fs.readdirSync("./frontend/locale");
+ var files = dirCont.filter(function (elm) {
+ return elm.match(/.*\.[a-zA-Z]+\.(xlf)/ig);
+ });
+ var languages = files.map(function (f) {
+ return f.split(".")[1]
+ });
+ var tasks = [];
+ createFornendTask('build-frontend-dev default', "ng build --prod --output-path=./dist --no-progress");
+ tasks.push('build-frontend-dev default');
+ for (var i = 0; i < files.length; i++) {
+ createFornendTask('build-frontend-dev ' + languages[i], "ng build --prod --output-path=./dist/" + languages[i] + " --no-progress --locale " + languages[i] + " --i18n-format xlf --i18n-file frontend/locale/" + files[i] + " --missing-translation warning");
+ tasks.push('build-frontend-dev ' + languages[i]);
+ }
+ tasks.push(function () {
+ done();
+ });
+
+ runSequence.apply(this, tasks);
+});
diff --git a/package.json b/package.json
index 843c88bb..efc18b73 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,8 @@
"start": "node ./backend/index",
"ng": "ng",
"lint": "ng lint",
- "e2e": "ng e2e"
+ "e2e": "ng e2e",
+ "build-hu": "ng build --aot --output-path=./dist/hu --locale hu --i18n-format xlf --i18n-file frontend/locale/messages.hu.xlf --missing-translation warning"
},
"repository": {
"type": "git",
@@ -27,10 +28,12 @@
"dependencies": {
"bcryptjs": "2.4.3",
"body-parser": "1.18.2",
+ "cookie-parser": "^1.4.3",
"cookie-session": "2.0.0-beta.3",
"ejs": "2.5.7",
"express": "4.16.2",
"jimp": "0.2.28",
+ "locale": "^0.1.0",
"mysql": "2.15.0",
"reflect-metadata": "0.1.10",
"sqlite3": "3.1.13",
@@ -42,26 +45,26 @@
},
"devDependencies": {
"@agm/core": "^1.0.0-beta.2",
- "@angular/animations": "^5.1.1",
- "@angular/cli": "1.6.1",
- "@angular/common": "~5.1.1",
- "@angular/compiler": "~5.1.1",
- "@angular/compiler-cli": "^5.1.1",
- "@angular/core": "~5.1.1",
- "@angular/forms": "~5.1.1",
- "@angular/http": "~5.1.1",
- "@angular/language-service": "^5.1.1",
- "@angular/platform-browser": "~5.1.1",
- "@angular/platform-browser-dynamic": "~5.1.1",
- "@angular/router": "~5.1.1",
+ "@angular/animations": "^5.1.2",
+ "@angular/cli": "1.6.2",
+ "@angular/common": "~5.1.2",
+ "@angular/compiler": "~5.1.2",
+ "@angular/compiler-cli": "^5.1.2",
+ "@angular/core": "~5.1.2",
+ "@angular/forms": "~5.1.2",
+ "@angular/http": "~5.1.2",
+ "@angular/language-service": "^5.1.2",
+ "@angular/platform-browser": "~5.1.2",
+ "@angular/platform-browser-dynamic": "~5.1.2",
+ "@angular/router": "~5.1.2",
"@types/bcryptjs": "^2.4.1",
"@types/chai": "^4.0.10",
"@types/cookie-session": "^2.0.34",
- "@types/express": "^4.0.39",
+ "@types/express": "^4.11.0",
"@types/gm": "^1.17.33",
"@types/jasmine": "^2.8.2",
- "@types/jimp": "^0.2.1",
- "@types/node": "^8.5.1",
+ "@types/jimp": "^0.2.28",
+ "@types/node": "^8.5.2",
"@types/sharp": "^0.17.6",
"@types/winston": "^2.3.7",
"bootstrap": "^3.3.7",
@@ -77,10 +80,10 @@
"intl": "^1.2.5",
"jasmine-core": "^2.8.0",
"jasmine-spec-reporter": "~4.2.1",
- "jw-bootstrap-switch-ng2": "^1.0.8",
- "karma": "^1.7.1",
+ "jw-bootstrap-switch-ng2": "1.0.8",
+ "karma": "^2.0.0",
"karma-cli": "^1.0.1",
- "karma-coverage-istanbul-reporter": "^1.3.0",
+ "karma-coverage-istanbul-reporter": "^1.3.1",
"karma-jasmine": "^1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-phantomjs-launcher": "^1.0.4",
@@ -98,9 +101,9 @@
"remap-istanbul": "^0.9.5",
"rimraf": "^2.6.2",
"run-sequence": "^2.2.0",
- "rxjs": "^5.5.5",
+ "rxjs": "^5.5.6",
"ts-helpers": "^1.1.2",
- "ts-node": "~4.0.2",
+ "ts-node": "~4.1.0",
"tslint": "^5.8.0",
"typescript": "^2.6.2",
"zone.js": "^0.8.18"