commit e87dd53fa2d7689b7af3d12b16549396cdd17648
parent 59e4aabd52ca10b6ead2a84379a16b538acaceb0
Author: MTRNord <mtrnord1@gmail.com>
Date: Sat, 17 Feb 2018 15:49:02 +0100
Add manifest
Diffstat:
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"