socialnetworknews-web

A open-source Paper.li clone
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-web.git
Log | Files | Refs | README | LICENSE

commit e87dd53fa2d7689b7af3d12b16549396cdd17648
parent 59e4aabd52ca10b6ead2a84379a16b538acaceb0
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat, 17 Feb 2018 15:49:02 +0100

Add manifest

Diffstat:
M.angular-cli.json | 5+++--
Mpackage.json | 2++
Asrc/app/app.error_handler.ts | 38++++++++++++++++++++++++++++++++++++++
Msrc/app/app.module.ts | 22+++++++++++++++++++++-
Msrc/index.html | 3++-
Asrc/manifest.json | 10++++++++++
Myarn.lock | 86++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
7 files changed, 159 insertions(+), 7 deletions(-)

diff --git a/.angular-cli.json b/.angular-cli.json @@ -9,9 +9,10 @@ "outDir": "dist/browser", "assets": [ "assets", - "favicon.ico" + "favicon.ico", + "manifest.json" ], - "serviceWorker": false, + "serviceWorker": true, "index": "index.html", "main": "main.ts", "polyfills": "polyfills.ts", diff --git a/package.json b/package.json @@ -30,6 +30,8 @@ "@angular/service-worker": "^5.2.4", "@nguniversal/module-map-ngfactory-loader": "^5.0.0-beta.5", "angular-bootstrap-md": "^5.1.2", + "bugsnag-angular": "^2.0.0", + "bugsnag-js": "^4.2.0", "chart.js": "2.5.0", "core-js": "^2.4.1", "express": "^4.16.2", diff --git a/src/app/app.error_handler.ts b/src/app/app.error_handler.ts @@ -0,0 +1,38 @@ +import { ErrorHandler, Injectable } from '@angular/core'; +import { Bugsnag } from 'bugsnag-js'; + +@Injectable() +export class BugsnagErrorHandler extends ErrorHandler { + public bugsnagClient: Bugsnag.Client; + constructor(bugsnagClient: Bugsnag.Client) { + super(); + this.bugsnagClient = bugsnagClient; + } + + public handleError(error: any): void { + const handledState = { + severity: 'error', + severityReason: { type: 'unhandledException' }, + unhandled: true, + }; + + const report = new this.bugsnagClient.BugsnagReport( + error.name, + error.message, + this.bugsnagClient.BugsnagReport.getStacktrace(error), + handledState, + ); + + if (error.ngDebugContext) { + report.updateMetaData('angular', { + component: error.ngDebugContext.component, + context: error.ngDebugContext.context, + }); + } + + this.bugsnagClient.notify(report); + ErrorHandler.prototype.handleError.call(this, error); + } +} + +export default BugsnagErrorHandler; diff --git a/src/app/app.module.ts b/src/app/app.module.ts @@ -1,11 +1,14 @@ +/// <reference path="../../node_modules/bugsnag-js/types/global.d.ts" /> import { BrowserModule } from '@angular/platform-browser'; -import {NgModule} from '@angular/core'; +import {ErrorHandler, NgModule} from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MDBBootstrapModule } from 'angular-bootstrap-md'; import { ScrollbarModule } from './utils/scrollbar'; import {GalleryConfig, GalleryModule} from 'ng-gallery'; import { AvatarModule } from 'ngx-avatar'; +// import BugsnagErrorHandler from './app.error_handler'; +// import bugsnag from 'bugsnag-js'; import { AppComponent } from './app.component'; @@ -17,7 +20,22 @@ import { TweetListComponent } from './tweet-list/tweet-list.component'; import { PapersListComponent } from './papers-list/papers-list.component'; import { ApiService } from './api.service'; +import {environment} from '../environments/environment'; +import {ServiceWorkerModule} from '@angular/service-worker'; +// configure Bugsnag ASAP, before any other imports +/*const bugsnagClient = bugsnag({ + apiKey: '3113c2b141e7146cce7d4da6707578ff', + appVersion: '0.0.1', + autoCaptureSessions: true, + releaseStage: 'development', + notifyReleaseStages: [ 'development', 'production'], +});*/ + +// create a factory which will return the bugsnag error handler +/*export function errorHandlerFactory() { + return new BugsnagErrorHandler(bugsnagClient); +}*/ export const config: GalleryConfig = { 'gestures': true, @@ -42,6 +60,7 @@ export const config: GalleryConfig = { ], imports: [ BrowserModule.withServerTransition({appId: 'snn-app'}), + environment.production ? ServiceWorkerModule.register('/ngsw-worker.js') : [], MDBBootstrapModule.forRoot(), AppRoutingModule, ScrollbarModule, @@ -52,6 +71,7 @@ export const config: GalleryConfig = { ], providers: [ ApiService, + // { provide: ErrorHandler, useFactory: errorHandlerFactory }, ], bootstrap: [AppComponent] }) diff --git a/src/index.html b/src/index.html @@ -2,11 +2,12 @@ <html lang="en"> <head> <meta charset="utf-8"> - <title>SocialNetworksNewsWeb2</title> + <title>Social Networks News</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> + <link rel="manifest" href="manifest.json" /> <link href="https://fonts.googleapis.com/css?family=Lora" rel="stylesheet"> </head> <body style="font-family: 'Lora', serif !important;"> diff --git a/src/manifest.json b/src/manifest.json @@ -0,0 +1,10 @@ +{ + "name": "Social Networks News", + "short_name": "Social Network News", + "theme_color": "#763d8a", + "background_color": "#3F51B5", + "start_url": "/", + "display": "standalone", + "orientation": "portrait", + "icons": [] +} diff --git a/yarn.lock b/yarn.lock @@ -814,6 +814,10 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" +browser-fingerprint@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz#8df3cdca25bf7d5b3542d61545d730053fce604a" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" @@ -860,6 +864,13 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" +browserify-versionify@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-versionify/-/browserify-versionify-1.0.6.tgz#ab2dc61d6a119e627bec487598d1983b7fdb275e" + dependencies: + find-root "^0.1.1" + through2 "0.6.3" + browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" @@ -889,6 +900,24 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +bugsnag-angular@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bugsnag-angular/-/bugsnag-angular-2.0.0.tgz#e9250a1e3e47f5f26f34523479f3f22487a17679" + dependencies: + rxjs "^5.5.2" + zone.js "^0.8.18" + +bugsnag-js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/bugsnag-js/-/bugsnag-js-4.2.0.tgz#e7b2e810fe5b1926ab0188aaf31fc9a6ded665b4" + dependencies: + browserify-versionify "^1.0.6" + cuid "^1.3.8" + error-stack-parser "^2.0.1" + fast-safe-stringify "github:bengourley/fast-safe-stringify" + iserror "0.0.2" + stack-generator "github:bengourley/stack-generator#190a6f500cfc4a9ef77db204b4f571964e39c3d8" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1348,6 +1377,10 @@ copy-webpack-plugin@^4.1.1: p-limit "^1.0.0" serialize-javascript "^1.4.0" +core-js@^1.1.1: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: version "2.5.3" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" @@ -1546,6 +1579,14 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" +cuid@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/cuid/-/cuid-1.3.8.tgz#4b875e0969bad764f7ec0706cf44f5fb0831f6b7" + dependencies: + browser-fingerprint "0.0.1" + core-js "^1.1.1" + node-fingerprint "0.0.2" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -1939,6 +1980,12 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +error-stack-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a" + dependencies: + stackframe "^1.0.3" + es-abstract@^1.7.0: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" @@ -2239,6 +2286,10 @@ fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" +"fast-safe-stringify@github:bengourley/fast-safe-stringify": + version "1.2.0" + resolved "https://codeload.github.com/bengourley/fast-safe-stringify/tar.gz/87077fdc7b793a586319ac1ddfecf7631f31f3e2" + fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" @@ -2324,6 +2375,10 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" +find-root@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -3266,6 +3321,10 @@ isbinaryfile@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" +iserror@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4040,6 +4099,10 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-fingerprint@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/node-fingerprint/-/node-fingerprint-0.0.2.tgz#31cbabeb71a67ae7dd5a7dc042e51c3c75868501" + node-forge@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" @@ -5080,7 +5143,7 @@ read-pkg@^2.0.0: string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@1.0, readable-stream@~1.0.2: +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -5816,6 +5879,16 @@ ssri@^5.0.0: dependencies: safe-buffer "^5.1.1" +"stack-generator@github:bengourley/stack-generator#190a6f500cfc4a9ef77db204b4f571964e39c3d8": + version "2.0.2" + resolved "https://codeload.github.com/bengourley/stack-generator/tar.gz/190a6f500cfc4a9ef77db204b4f571964e39c3d8" + dependencies: + stackframe "^1.0.4" + +stackframe@^1.0.3, stackframe@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6022,6 +6095,13 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" +through2@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.3.tgz#795292fde9f254c2a368b38f9cc5d1bd4663afb6" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + through2@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -6721,7 +6801,7 @@ xmlhttprequest-ssl@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6828,6 +6908,6 @@ yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" -zone.js@^0.8.14: +zone.js@^0.8.14, zone.js@^0.8.18: version "0.8.20" resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.20.tgz#a218c48db09464b19ff6fc8f0d4bb5b1046e185d"