diff --git a/README.md b/README.md
index 7b951ec5318664fb30d4c848615a2f6c71318ac6..ad1c7127075771ff829e64eca23668bd595900dd 100644
--- a/README.md
+++ b/README.md
@@ -1,84 +1,23 @@
-# UtilsLib
+# Utils Library
-This project was generated using [Nx](https://nx.dev).
+Monorepo for building-block type utilities that don't have dependencies on any other `@psu` libraries.
-
+- [Browser](https://git.psu.edu/ais-swe/ux/utils/tree/develop/libs/utils/browser)
+ - Cache Interceptor
+ - Autofocus Directive
+ - Error Service
+ - Loading Events Service
+ - Local Storage Service
+ - Request Tracing Interceptor
+ - UrlBuilder
+ - Window Service
+- [Rx](https://git.psu.edu/ais-swe/ux/utils/tree/develop/libs/utils/rx)
+ - Http Retry Backoff Operator
+- [Security](https://git.psu.edu/ais-swe/ux/utils/tree/develop/libs/utils/security)
+ - `REQUIRE_AUTH_HEADER` string constant
-🔎 **Nx is a set of Angular CLI power-ups for modern development.**
+# Contributing
-## Quick Start & Documentation
+Write small, portable utils, and try to keep the docs up to date as you add things.
-[Nx Documentation](https://nx.dev)
-
-[30-minute video showing all Nx features](https://nx.dev/getting-started/what-is-nx)
-
-[Interactive Tutorial](https://nx.dev/tutorial/01-create-application)
-
-## Adding capabilities to your workspace
-
-Nx supports many plugins which add capabilities for developing different types of applications and different tools.
-
-These capabilities include generating applications, libraries, .etc as well as the devtools to test, and build projects as well.
-
-Below are some plugins which you can add to your workspace:
-
-- [Angular](https://angular.io)
- - `ng add @nrwl/angular`
-- [React](https://reactjs.org)
- - `ng add @nrwl/react`
-- Web (no framework frontends)
- - `ng add @nrwl/web`
-- [Nest](https://nestjs.com)
- - `ng add @nrwl/nest`
-- [Express](https://expressjs.com)
- - `ng add @nrwl/express`
-- [Node](https://nodejs.org)
- - `ng add @nrwl/node`
-
-## Generate an application
-
-Run `ng g @nrwl/angular:app my-app` to generate an application.
-
-> You can use any of the plugins above to generate applications as well.
-
-When using Nx, you can create multiple applications and libraries in the same workspace.
-
-## Generate a library
-
-Run `ng g @nrwl/angular:lib my-lib` to generate a library.
-
-> You can also use any of the plugins above to generate libraries as well.
-
-Libraries are sharable across libraries and applications. They can be imported from `@utils-lib/mylib`.
-
-## Development server
-
-Run `ng serve my-app` for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
-
-## Code scaffolding
-
-Run `ng g component my-component --project=my-app` to generate a new component.
-
-## Build
-
-Run `ng build my-app` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
-
-## Running unit tests
-
-Run `ng test my-app` to execute the unit tests via [Jest](https://jestjs.io).
-
-Run `npm run affected:test` to execute the unit tests affected by a change.
-
-## Running end-to-end tests
-
-Run `ng e2e my-app` to execute the end-to-end tests via [Cypress](https://www.cypress.io).
-
-Run `npm run affected:e2e` to execute the end-to-end tests affected by a change.
-
-## Understand your workspace
-
-Run `npm run dep-graph` to see a diagram of the dependencies of your projects.
-
-## Further help
-
-Visit the [Nx Documentation](https://nx.dev) to learn more.
+See the README here for how to create a new entry point https://git.psu.edu/ais-swe/ux/components/blob/develop/README.md
diff --git a/angular.json b/angular.json
index a166d8010e92e72ac9a61ca65f8d6333582ef35b..324aca3bce06d4f5bf25cb2bb30997263911861b 100644
--- a/angular.json
+++ b/angular.json
@@ -73,10 +73,7 @@
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
- "tsConfig": [
- "apps/demo/tsconfig.app.json",
- "apps/demo/tsconfig.spec.json"
- ],
+ "tsConfig": ["apps/demo/tsconfig.app.json", "apps/demo/tsconfig.spec.json"],
"exclude": ["**/node_modules/**"]
}
},
@@ -132,10 +129,7 @@
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
- "tsConfig": [
- "libs/utils/tsconfig.lib.json",
- "libs/utils/tsconfig.spec.json"
- ],
+ "tsConfig": ["libs/utils/tsconfig.lib.json", "libs/utils/tsconfig.spec.json"],
"exclude": ["**/node_modules/**"]
}
},
@@ -153,6 +147,90 @@
"styleext": "scss"
}
}
+ },
+ "utils-security": {
+ "projectType": "library",
+ "root": "libs/utils/security",
+ "sourceRoot": "libs/utils/security/src",
+ "prefix": "psu",
+ "architect": {
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": ["libs/utils/security/tsconfig.lib.json", "libs/utils/security/tsconfig.spec.json"],
+ "exclude": ["**/node_modules/**", "!libs/utils/security/**"]
+ }
+ },
+ "test": {
+ "builder": "@nrwl/jest:jest",
+ "options": {
+ "jestConfig": "libs/utils/security/jest.config.js",
+ "tsConfig": "libs/utils/security/tsconfig.spec.json",
+ "setupFile": "libs/utils/security/src/test-setup.ts"
+ }
+ }
+ },
+ "schematics": {
+ "@nrwl/angular:component": {
+ "styleext": "scss"
+ }
+ }
+ },
+ "utils-rx": {
+ "projectType": "library",
+ "root": "libs/utils/rx",
+ "sourceRoot": "libs/utils/rx/src",
+ "prefix": "psu",
+ "architect": {
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": ["libs/utils/rx/tsconfig.lib.json", "libs/utils/rx/tsconfig.spec.json"],
+ "exclude": ["**/node_modules/**", "!libs/utils/rx/**"]
+ }
+ },
+ "test": {
+ "builder": "@nrwl/jest:jest",
+ "options": {
+ "jestConfig": "libs/utils/rx/jest.config.js",
+ "tsConfig": "libs/utils/rx/tsconfig.spec.json",
+ "setupFile": "libs/utils/rx/src/test-setup.ts"
+ }
+ }
+ },
+ "schematics": {
+ "@nrwl/angular:component": {
+ "styleext": "scss"
+ }
+ }
+ },
+ "utils-browser": {
+ "projectType": "library",
+ "root": "libs/utils/browser",
+ "sourceRoot": "libs/utils/browser/src",
+ "prefix": "psu",
+ "architect": {
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": ["libs/utils/browser/tsconfig.lib.json", "libs/utils/browser/tsconfig.spec.json"],
+ "exclude": ["**/node_modules/**", "!libs/utils/browser/**"]
+ }
+ },
+ "test": {
+ "builder": "@nrwl/jest:jest",
+ "options": {
+ "jestConfig": "libs/utils/browser/jest.config.js",
+ "tsConfig": "libs/utils/browser/tsconfig.spec.json",
+ "setupFile": "libs/utils/browser/src/test-setup.ts"
+ }
+ }
+ },
+ "schematics": {
+ "@nrwl/angular:component": {
+ "styleext": "scss"
+ }
+ }
}
},
"cli": {
@@ -169,7 +247,10 @@
"e2eTestRunner": "cypress"
},
"@nrwl/angular:library": {
- "unitTestRunner": "jest"
+ "unitTestRunner": "jest",
+ "directory": "utils",
+ "simpleModuleName": true,
+ "style": "scss"
},
"@psu/schematics:ng-new": {
"workspaceType": "library"
diff --git a/libs/.gitkeep b/libs/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/libs/utils/README.md b/libs/utils/README.md
deleted file mode 100644
index 2b5fb58bbac4a5502e9aaa03099c189fbdb7fdaf..0000000000000000000000000000000000000000
--- a/libs/utils/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# utils
-
-This library was generated with [Nx](https://nx.dev).
-
-## Running unit tests
-
-Run `ng test utils` to execute the unit tests.
diff --git a/libs/utils/browser/README.md b/libs/utils/browser/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ca8a6b428c3adc13b347db721fded0a5611cef7e
--- /dev/null
+++ b/libs/utils/browser/README.md
@@ -0,0 +1,71 @@
+# Browser Utils
+
+## Cache Interceptor
+
+Adds an always different `_d` param to any request which has the `NO_CACHE_HEADER` present. This header is only used by the client as a marker, and is deleted within this interceptor
+
+Must be registered at the same level as `HttpClientModule`
+
+### Exports
+
+- `CacheInterceptor`
+- `const NO_CACHE_HEADER = 'X-No-Cache'`
+
+## Focus Directive
+
+Autofocuses the host element
+
+```html
+
+```
+
+## Error Service
+
+Provides a facade for handling http errors
+
+```typescript
+import { HttpErrorService } from '@psu/utils/browser';
+
+http.get('some-url').pipe(
+ map(() => {}),
+ catchError(e => this.httpErrorService.handleError(e))
+);
+```
+
+## Loading Events Service
+
+Provides method to trigger a DOM event outside of angular that can be picked up by a loading screen defined in index.html.
+
+```typescript
+import { LoadingEvents } from '@psu/utils/browser';
+```
+
+## Local Storage Service
+
+Provides an abstraction layer over various local storage areas
+
+```typescript
+import { LocalStorageService } from '@psu/utils/browser';
+```
+
+## Request Tracing Interceptor
+
+Provides a client-only header, `TRACE_HEADER` that will enable server side request tracing on any request with said header attached.
+
+Must be registered at the same level as `HttpClientModule`
+
+## UrlBuilder
+
+A class which normalizes alot of the pain around consistently building URLs
+
+```typescript
+import { UrlBuilder } from '@psu/utils/browser';
+```
+
+## Window Service
+
+An abstraction over the browser's native window object.
+
+```typescript
+import { WindowService } from '@psu/utils/browser';
+```
diff --git a/libs/utils/browser/jest.config.js b/libs/utils/browser/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c836155e3f6983ac9899fdd106c05ff466c7ed5
--- /dev/null
+++ b/libs/utils/browser/jest.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ name: 'utils-browser',
+ preset: '../../../jest.config.js',
+ coverageDirectory: '../../../coverage/libs/utils/browser',
+ snapshotSerializers: [
+ 'jest-preset-angular/AngularSnapshotSerializer.js',
+ 'jest-preset-angular/HTMLCommentSerializer.js'
+ ]
+};
diff --git a/libs/utils/browser/ng-package.json b/libs/utils/browser/ng-package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c781f0df4675ef304c7d745c98df9f59daa25dee
--- /dev/null
+++ b/libs/utils/browser/ng-package.json
@@ -0,0 +1,5 @@
+{
+ "lib": {
+ "entryFile": "src/index.ts"
+ }
+}
diff --git a/libs/utils/browser/src/index.ts b/libs/utils/browser/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..627a64a376dffa93c923b10f30d25e7d020bda48
--- /dev/null
+++ b/libs/utils/browser/src/index.ts
@@ -0,0 +1,10 @@
+export { CacheInterceptor } from './lib/cache/cache.interceptor';
+export { FocusDirective } from './lib/focus/focus.directive';
+export { FocusModule } from './lib/focus/focus.module';
+export { HttpErrorService } from './lib/http-error/http-error.service';
+export { LoadingEvents } from './lib/loading-screen/loading-events';
+export { LocalStorageService } from './lib/local-storage/local-storage.service';
+export { RequestTracingConfig } from './lib/tracing/request-tracing.config';
+export { RequestTracingInterceptor } from './lib/tracing/request-tracing.interceptor';
+export { UrlBuilder } from './lib/url-builder/url-builder';
+export { WindowService } from './lib/window/window.service';
diff --git a/libs/utils/browser/src/lib/cache/cache.interceptor.spec.ts b/libs/utils/browser/src/lib/cache/cache.interceptor.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..31df77b0f3603db7224374db1b52b6cdf56187e5
--- /dev/null
+++ b/libs/utils/browser/src/lib/cache/cache.interceptor.spec.ts
@@ -0,0 +1,105 @@
+import { CacheInterceptor, NO_CACHE_HEADER } from './cache.interceptor';
+import * as MockDate from 'mockdate';
+import { TestBed } from '@angular/core/testing';
+import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing';
+import { HTTP_INTERCEPTORS, HttpClient, HttpRequest, HttpHeaders } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+
+@Injectable()
+class TestService {
+ private headers: HttpHeaders;
+
+ constructor(private httpClient: HttpClient) {
+ this.headers = new HttpHeaders().append(NO_CACHE_HEADER, 'true');
+ }
+
+ public getNoCache(): Observable {
+ return this.httpClient.get('busted', {
+ headers: this.headers.append('Another', 'abc')
+ });
+ }
+
+ public getNoCache2(): Observable {
+ return this.httpClient.get('busted2', {
+ headers: this.headers.append('Content-Type', 'junk'),
+ params: {
+ a: 'a',
+ b: 'b'
+ }
+ });
+ }
+
+ public get(): Observable {
+ return this.httpClient.get('normal');
+ }
+}
+
+describe('CacheInterceptor', () => {
+ let backend: HttpTestingController;
+ let service: TestService;
+ let now: Date;
+
+ beforeEach(() => {
+ now = new Date();
+ MockDate.set(now);
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule],
+ providers: [{ provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true }, TestService]
+ });
+ service = TestBed.get(TestService);
+ backend = TestBed.get(HttpTestingController);
+ });
+
+ describe('intercept', () => {
+ describe('when request has cache bust header', () => {
+ beforeEach(() => {
+ service.getNoCache().subscribe(r => {
+ expect(r).toBeTruthy();
+ });
+ });
+
+ it('should add cache busting query param', () => {
+ const req = backend.expectOne((r: HttpRequest) => {
+ return r.url === 'busted';
+ });
+ expect(req.request.params.get('_d')).toEqual(`${now.getTime()}`);
+ expect(req.request.headers.has('X-No-Cache')).toBe(false);
+ expect(req.request.headers.get('Another')).toBe('abc');
+ });
+ });
+
+ describe('when request has cache bust header and other query params', () => {
+ beforeEach(() => {
+ service.getNoCache2().subscribe(r => {
+ expect(r).toBeTruthy();
+ });
+ });
+
+ it('should add cache busting query param', () => {
+ const req = backend.expectOne((r: HttpRequest) => {
+ return r.url === 'busted2';
+ });
+ expect(req.request.params.get('_d')).toEqual(`${now.getTime()}`);
+ expect(req.request.params.get('a')).toEqual('a');
+ expect(req.request.params.get('b')).toEqual('b');
+ expect(req.request.headers.has('X-No-Cache')).toBe(false);
+ expect(req.request.headers.get('Content-Type')).toBe('junk');
+ });
+ });
+
+ describe('when request does not have cache bust header', () => {
+ beforeEach(() => {
+ service.get().subscribe(r => {
+ expect(r).toBeTruthy();
+ });
+ });
+
+ it('should not add cache busting query param', () => {
+ const req = backend.expectOne('normal');
+ expect(req.request.params.has('_d')).toBe(false);
+ expect(req.request.headers.has('X-No-Cache')).toBe(false);
+ });
+ });
+ });
+});
diff --git a/libs/utils/browser/src/lib/cache/cache.interceptor.ts b/libs/utils/browser/src/lib/cache/cache.interceptor.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ad71dd10d4d67ebc28e53f5207ec26e8df18bbf6
--- /dev/null
+++ b/libs/utils/browser/src/lib/cache/cache.interceptor.ts
@@ -0,0 +1,21 @@
+import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+
+export const NO_CACHE_HEADER = 'X-No-Cache';
+
+@Injectable({ providedIn: 'root' })
+export class CacheInterceptor implements HttpInterceptor {
+ public intercept(req: HttpRequest, next: HttpHandler): Observable> {
+ if (req.headers.has(NO_CACHE_HEADER)) {
+ const busted = req.clone({
+ setParams: {
+ _d: `${new Date().getTime()}`
+ },
+ headers: req.headers.delete(NO_CACHE_HEADER)
+ });
+ return next.handle(busted);
+ }
+ return next.handle(req);
+ }
+}
diff --git a/libs/utils/browser/src/lib/focus/focus.directive.spec.ts b/libs/utils/browser/src/lib/focus/focus.directive.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..17213024574d2b3d97999293be37f44cb7d0b732
--- /dev/null
+++ b/libs/utils/browser/src/lib/focus/focus.directive.spec.ts
@@ -0,0 +1,50 @@
+import { CommonModule } from '@angular/common';
+import { Component, PLATFORM_ID } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { FocusModule } from './focus.module';
+
+@Component({
+ selector: 'ut-test-comp',
+ template: `
+
+ `
+})
+class TestComponent {}
+
+describe('FocusDirective', () => {
+ let fixture: ComponentFixture;
+
+ describe('when platform is browser', () => {
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [CommonModule, FocusModule],
+ declarations: [TestComponent],
+ providers: [{ provide: PLATFORM_ID, useValue: 'browser' }]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(TestComponent);
+ fixture.detectChanges();
+ });
+
+ it('should set focus', () => {
+ expect(document.activeElement.id).toEqual('inputId');
+ });
+ });
+
+ describe('when platform is server', () => {
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [CommonModule, FocusModule],
+ declarations: [TestComponent],
+ providers: [{ provide: PLATFORM_ID, useValue: 'server' }]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(TestComponent);
+ fixture.detectChanges();
+ });
+
+ it('should not set focus', () => {
+ expect(document.activeElement.id).not.toBe('inputId');
+ });
+ });
+});
diff --git a/libs/utils/browser/src/lib/focus/focus.directive.ts b/libs/utils/browser/src/lib/focus/focus.directive.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d0bec292be2a9dc38f6dcdefa6b27bdf0894ebdd
--- /dev/null
+++ b/libs/utils/browser/src/lib/focus/focus.directive.ts
@@ -0,0 +1,15 @@
+import { isPlatformBrowser } from '@angular/common';
+import { AfterViewInit, Directive, ElementRef, Inject, PLATFORM_ID } from '@angular/core';
+
+@Directive({
+ selector: '[utAutoFocus]'
+})
+export class FocusDirective implements AfterViewInit {
+ constructor(private element: ElementRef, @Inject(PLATFORM_ID) private platform: Object) {}
+
+ public ngAfterViewInit(): void {
+ if (isPlatformBrowser(this.platform)) {
+ this.element.nativeElement.focus();
+ }
+ }
+}
diff --git a/libs/utils/browser/src/lib/focus/focus.module.ts b/libs/utils/browser/src/lib/focus/focus.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..24feaf12204eebd6edcabc6c9004291183df844b
--- /dev/null
+++ b/libs/utils/browser/src/lib/focus/focus.module.ts
@@ -0,0 +1,10 @@
+import { NgModule } from '@angular/core';
+import { FocusDirective } from './focus.directive';
+import { CommonModule } from '@angular/common';
+
+@NgModule({
+ imports: [CommonModule],
+ declarations: [FocusDirective],
+ exports: [FocusDirective]
+})
+export class FocusModule {}
diff --git a/libs/utils/browser/src/lib/http-error/http-error.service.spec.ts b/libs/utils/browser/src/lib/http-error/http-error.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f4d33e069c6f561cab94b901a5cf6e6523c75c9d
--- /dev/null
+++ b/libs/utils/browser/src/lib/http-error/http-error.service.spec.ts
@@ -0,0 +1,131 @@
+import { HttpErrorResponse } from '@angular/common/http';
+import { TestBed } from '@angular/core/testing';
+import { HttpErrorService } from './http-error.service';
+
+describe('HttpErrorService', () => {
+ let service: HttpErrorService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ providers: [HttpErrorService]
+ });
+ service = TestBed.get(HttpErrorService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+
+ describe('handleError', () => {
+ let result: string;
+ let emitted: boolean;
+
+ beforeEach(() => {
+ emitted = false;
+ });
+
+ describe('when error message is a string', () => {
+ beforeEach(() => {
+ service.handleError('some error').subscribe(() => (emitted = true), e => (result = e));
+ });
+
+ it('should not emit', () => {
+ expect(emitted).toBe(false);
+ });
+
+ it('should error with some error', () => {
+ expect(result).toBe('some error');
+ });
+ });
+
+ describe('when error message is specified', () => {
+ beforeEach(() => {
+ service
+ .handleError(
+ new HttpErrorResponse({
+ status: 404,
+ statusText: 'Not Found',
+ error: {
+ errorMessage: 'oh no'
+ }
+ })
+ )
+ .subscribe(() => (emitted = true), e => (result = e));
+ });
+
+ it('should not emit', () => {
+ expect(emitted).toBe(false);
+ });
+
+ it('should error with oh no', () => {
+ expect(result).toBe('oh no');
+ });
+ });
+
+ describe('when error message is not specified', () => {
+ beforeEach(() => {
+ service
+ .handleError(
+ new HttpErrorResponse({
+ status: 404,
+ statusText: 'Not Found',
+ error: {}
+ })
+ )
+ .subscribe(() => (emitted = true), e => (result = e));
+ });
+
+ it('should not emit', () => {
+ expect(emitted).toBe(false);
+ });
+
+ it('should error with oops', () => {
+ expect(result).toBe('Oops, something went wrong!');
+ });
+ });
+
+ describe('when error message is not specified with default', () => {
+ beforeEach(() => {
+ service
+ .handleError(
+ new HttpErrorResponse({
+ status: 404,
+ statusText: 'Not Found',
+ error: {}
+ }),
+ 'my message'
+ )
+ .subscribe(() => (emitted = true), e => (result = e));
+ });
+
+ it('should not emit', () => {
+ expect(emitted).toBe(false);
+ });
+
+ it('should error with custom message', () => {
+ expect(result).toBe('my message');
+ });
+ });
+
+ describe('when error body is not specified', () => {
+ beforeEach(() => {
+ service
+ .handleError(
+ new HttpErrorResponse({
+ status: 404,
+ statusText: 'Not Found'
+ })
+ )
+ .subscribe(() => (emitted = true), e => (result = e));
+ });
+
+ it('should not emit', () => {
+ expect(emitted).toBe(false);
+ });
+
+ it('should error with oops', () => {
+ expect(result).toBe('Oops, something went wrong!');
+ });
+ });
+ });
+});
diff --git a/libs/utils/browser/src/lib/http-error/http-error.service.ts b/libs/utils/browser/src/lib/http-error/http-error.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4be9724097314e3267d7cd7f1608dbc8fc2d41ab
--- /dev/null
+++ b/libs/utils/browser/src/lib/http-error/http-error.service.ts
@@ -0,0 +1,19 @@
+import { HttpErrorResponse } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable, throwError } from 'rxjs';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class HttpErrorService {
+ constructor() {}
+
+ public handleError(error: HttpErrorResponse | string, defaultMessage?: string): Observable {
+ const errMsg =
+ (error instanceof HttpErrorResponse ? (error.error ? error.error.errorMessage : '') : error) ||
+ (defaultMessage || 'Oops, something went wrong!');
+ console.error(error);
+
+ return throwError(errMsg);
+ }
+}
diff --git a/libs/utils/browser/src/lib/loading-screen/loading-events.ts b/libs/utils/browser/src/lib/loading-screen/loading-events.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c7bc27a3eaf75a280ba312063c59edc39d0c653e
--- /dev/null
+++ b/libs/utils/browser/src/lib/loading-screen/loading-events.ts
@@ -0,0 +1,31 @@
+import { DOCUMENT } from '@angular/common';
+import { Inject, Injectable } from '@angular/core';
+
+@Injectable({ providedIn: 'root' })
+export class LoadingEvents {
+ private doc: Document;
+ private isAppReady: boolean;
+
+ constructor(@Inject(DOCUMENT) doc: any) {
+ this.doc = doc;
+ this.isAppReady = false;
+ }
+
+ public triggerAppReady(): void {
+ if (this.isAppReady) {
+ return;
+ }
+ const bubbles = true;
+ const cancelable = false;
+ this.doc.dispatchEvent(this.createEvent('appready', bubbles, cancelable));
+ this.isAppReady = true;
+ }
+
+ private createEvent(eventType: string, bubbles: boolean, cancelable: boolean): Event {
+ const customEvent: any = new CustomEvent(eventType, {
+ bubbles,
+ cancelable
+ });
+ return customEvent;
+ }
+}
diff --git a/libs/utils/browser/src/lib/local-storage/local-storage.service.spec.ts b/libs/utils/browser/src/lib/local-storage/local-storage.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..03126120ae2ee86229256a55cf0f98c7ca57acdf
--- /dev/null
+++ b/libs/utils/browser/src/lib/local-storage/local-storage.service.spec.ts
@@ -0,0 +1,98 @@
+import { LocalStorageService } from './local-storage.service';
+import { TestBed } from '@angular/core/testing';
+import { WindowService } from '../window/window.service';
+import { CookieService, CookieModule } from 'ngx-cookie';
+
+class WindowServiceStubWithCookies {
+ get nativeWindow(): any {
+ return {
+ document: {
+ cookie: ''
+ }
+ };
+ }
+}
+
+class WindowServiceStubWithNoCookies {
+ get nativeWindow(): any {
+ return {
+ document: undefined
+ };
+ }
+}
+
+describe('LocalStorageService', () => {
+ let service: LocalStorageService;
+ let cookieService: CookieService;
+
+ describe('LocalStorage', () => {
+ setup(WindowService);
+ runTest();
+ });
+
+ describe('SessionStorage', () => {
+ beforeEach(() => {
+ spyOn(localStorage, 'setItem').and.throwError('not supported');
+ });
+ setup(WindowService);
+ runTest();
+ });
+
+ describe('CookieStorage', () => {
+ beforeEach(() => {
+ spyOn(localStorage, 'setItem').and.throwError('not supported');
+ spyOn(sessionStorage, 'setItem').and.throwError('not supported');
+ });
+ setup(WindowServiceStubWithCookies);
+ runTest();
+
+ it('clear does not touch other cookies', () => {
+ const key = '__karma-test__';
+ cookieService.put(key, 'test');
+ service.clear();
+ expect(cookieService.get(key)).toBe('test');
+ });
+ });
+
+ describe('MemoryStorage', () => {
+ beforeEach(() => {
+ spyOn(localStorage, 'setItem').and.throwError('not supported');
+ spyOn(sessionStorage, 'setItem').and.throwError('not supported');
+ });
+ setup(WindowServiceStubWithNoCookies);
+ runTest();
+ });
+
+ function setup(wnd: any): void {
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [CookieModule.forRoot()],
+ providers: [LocalStorageService, CookieService, { provide: WindowService, useClass: wnd }]
+ });
+ service = TestBed.get(LocalStorageService);
+ cookieService = TestBed.get(CookieService);
+ });
+ }
+
+ function runTest(): void {
+ it('get when undefined', () => {
+ expect(service.getItem('unknown')).toBeFalsy();
+ });
+
+ it('set/get/remove', () => {
+ service.setItem('test', 'val');
+ expect(service.getItem('test')).toBe('val');
+
+ service.removeItem('test');
+ expect(service.getItem('test')).toBeFalsy();
+ });
+
+ it('clear', () => {
+ service.setItem('1', '1');
+ service.setItem('2', '2');
+ service.clear();
+ expect(service.getItem('1')).toBeFalsy();
+ expect(service.getItem('2')).toBeFalsy();
+ });
+ }
+});
diff --git a/libs/utils/browser/src/lib/local-storage/local-storage.service.ts b/libs/utils/browser/src/lib/local-storage/local-storage.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..409bcb5414454d62a769a3b08e77170af52983c4
--- /dev/null
+++ b/libs/utils/browser/src/lib/local-storage/local-storage.service.ts
@@ -0,0 +1,129 @@
+import { Injectable } from '@angular/core';
+import { WindowService } from '../window/window.service';
+import { CookieService } from 'ngx-cookie';
+
+interface StorageContainer {
+ clear(): void;
+ getItem(name: string): string;
+ setItem(name: string, value: string): void;
+ removeItem(name: string): void;
+}
+
+const KEY = '__test__';
+
+class CookieStorage implements StorageContainer {
+ private readonly prefix = '_PSU_LS_';
+
+ constructor(private cookieService: CookieService) {}
+
+ public clear(): void {
+ const cookies = this.cookieService.getAll();
+ for (const key in cookies) {
+ if (key.startsWith(this.prefix)) {
+ this.removeItem(key.substr(this.prefix.length));
+ }
+ }
+ }
+
+ public setItem(name: string, value: string): void {
+ this.cookieService.put(this.prefix + name, value);
+ }
+
+ public getItem(name: string): string {
+ return this.cookieService.get(this.prefix + name);
+ }
+
+ public removeItem(name: string): void {
+ this.cookieService.remove(this.prefix + name);
+ }
+}
+
+class MemoryStorage implements StorageContainer {
+ private map = {};
+
+ public clear(): void {
+ this.map = {};
+ }
+
+ public setItem(name: string, value: string): void {
+ this.map[name] = value;
+ }
+
+ public getItem(name: string): string {
+ return this.map[name];
+ }
+
+ public removeItem(name: string): void {
+ delete this.map[name];
+ }
+}
+
+@Injectable({ providedIn: 'root' })
+export class LocalStorageService {
+ private readonly storage: StorageContainer;
+
+ constructor(private windowService: WindowService, private cookieService: CookieService) {
+ this.storage = this.findStorage();
+ }
+
+ public getItem(name: string): string {
+ return this.storage.getItem(name);
+ }
+
+ public setItem(name: string, value: string): void {
+ this.storage.setItem(name, value);
+ }
+
+ public removeItem(name: string): void {
+ this.storage.removeItem(name);
+ }
+
+ public clear(): void {
+ this.storage.clear();
+ }
+
+ private findStorage(): StorageContainer {
+ // check in the following order:
+ // 1. localStorage
+ // 2. sessionStorage
+ // 3. cookies
+ // 4. memory (useless if you need to persist between page loads)
+ const local = localStorage || this.windowService.nativeWindow.localStorage;
+ if (this.test(local)) {
+ return local;
+ }
+
+ const session = sessionStorage || this.windowService.nativeWindow.sessionStorage;
+ if (this.test(session)) {
+ return session;
+ }
+
+ const cookies = this.testCookies();
+ if (cookies) {
+ return cookies;
+ }
+
+ return new MemoryStorage();
+ }
+
+ private test(storage: StorageContainer): boolean {
+ try {
+ storage.setItem(KEY, 'test');
+ storage.removeItem(KEY);
+ return true;
+ } catch (err) {
+ return false;
+ }
+ }
+
+ private testCookies(): CookieStorage {
+ const cookies = new CookieStorage(this.cookieService);
+ try {
+ cookies.setItem(KEY, 'test');
+ cookies.removeItem(KEY);
+ return cookies;
+ } catch (err) {
+ return undefined;
+ }
+ }
+}
diff --git a/libs/utils/browser/src/lib/tracing/request-tracing.config.ts b/libs/utils/browser/src/lib/tracing/request-tracing.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b59a7f8dbbdc386ef4c3c27fe083fe9ca3f2b9dd
--- /dev/null
+++ b/libs/utils/browser/src/lib/tracing/request-tracing.config.ts
@@ -0,0 +1,7 @@
+import { InjectionToken } from '@angular/core';
+
+export interface RequestTracingConfig {
+ applicationId: string;
+}
+
+export const REQUEST_TRACING_CONFIG = new InjectionToken('request.tracing');
diff --git a/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.spec.ts b/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dd32c9e9fc1dd140f5a319366b1dfa01adf00e5d
--- /dev/null
+++ b/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.spec.ts
@@ -0,0 +1,82 @@
+import { HttpClient, HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';
+import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
+import { Injectable } from '@angular/core';
+import { TestBed } from '@angular/core/testing';
+import { Observable } from 'rxjs';
+import { REQUEST_TRACING_CONFIG } from './request-tracing.config';
+import { RequestTracingInterceptor, TRACE_HEADER } from './request-tracing.interceptor';
+
+@Injectable()
+class TestService {
+ constructor(private httpClient: HttpClient) {}
+
+ public getStuff(trace = false): Observable {
+ let headers = new HttpHeaders({
+ something: 'else'
+ });
+ if (trace) {
+ headers = headers.append(TRACE_HEADER, 'true');
+ }
+ return this.httpClient.get('http://stuff', {
+ headers
+ });
+ }
+}
+
+describe('RequestTracingInterceptor', () => {
+ let backend: HttpTestingController;
+ let service: TestService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule],
+ providers: [
+ {
+ provide: HTTP_INTERCEPTORS,
+ useClass: RequestTracingInterceptor,
+ multi: true
+ },
+ {
+ provide: REQUEST_TRACING_CONFIG,
+ useValue: { applicationId: 'my-app' }
+ },
+ TestService
+ ]
+ });
+
+ service = TestBed.get(TestService);
+ backend = TestBed.get(HttpTestingController);
+ });
+
+ afterEach(() => {
+ backend.verify();
+ });
+
+ describe('intercept', () => {
+ describe('when request has trace header', () => {
+ beforeEach(() => {
+ service.getStuff(true).subscribe();
+ });
+
+ it('should add request id header', () => {
+ const req = backend.expectOne('http://stuff');
+ expect(req.request.headers.has('something')).toBe(true);
+ expect(req.request.headers.get('x-request-id')).toMatch(/^my-app_\w+$/);
+ expect(req.request.headers.has(TRACE_HEADER)).toBe(false);
+ });
+ });
+
+ describe('when request does not have trace header', () => {
+ beforeEach(() => {
+ service.getStuff().subscribe();
+ });
+
+ it('should not add request id header', () => {
+ const req = backend.expectOne('http://stuff');
+ expect(req.request.headers.has('something')).toBe(true);
+ expect(req.request.headers.has('x-request-id')).toBe(false);
+ expect(req.request.headers.has(TRACE_HEADER)).toBe(false);
+ });
+ });
+ });
+});
diff --git a/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.ts b/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.ts
new file mode 100644
index 0000000000000000000000000000000000000000..124ca735b34acc55255099e24cdaf54880043653
--- /dev/null
+++ b/libs/utils/browser/src/lib/tracing/request-tracing.interceptor.ts
@@ -0,0 +1,47 @@
+import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
+import { Inject, Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+import { generate } from 'short-uuid';
+import { RequestTracingConfig, REQUEST_TRACING_CONFIG } from './request-tracing.config';
+
+export const TRACE_HEADER = 'X-Trace';
+
+@Injectable({ providedIn: 'root' })
+export class RequestTracingInterceptor implements HttpInterceptor {
+ constructor(@Inject(REQUEST_TRACING_CONFIG) protected config: RequestTracingConfig) {}
+
+ public intercept(req: HttpRequest, next: HttpHandler): Observable> {
+ if (req.headers.has(TRACE_HEADER)) {
+ return next.handle(
+ req.clone({
+ headers: req.headers.append('x-request-id', this.generateRequestId()).delete(TRACE_HEADER)
+ })
+ );
+ } else {
+ return next.handle(req);
+ }
+ }
+
+ /**
+ * Generates a request ID, the default is based on the provided application ID and a short uuid.
+ *
+ * Subclasses can override this method in order to add additional data.
+ */
+ protected generateRequestId(): string {
+ return `${this.getApplicationId()}_${this.getShortUuid()}`;
+ }
+
+ /**
+ * Gets the provided application ID.
+ */
+ protected getApplicationId(): string {
+ return this.config.applicationId;
+ }
+
+ /**
+ * Generates a random short uuid.
+ */
+ protected getShortUuid(): string {
+ return generate();
+ }
+}
diff --git a/libs/utils/browser/src/lib/url-builder/url-builder.spec.ts b/libs/utils/browser/src/lib/url-builder/url-builder.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f8db7fd97f70e6beb68211ae9ffa40d8d6dea2da
--- /dev/null
+++ b/libs/utils/browser/src/lib/url-builder/url-builder.spec.ts
@@ -0,0 +1,131 @@
+import { UrlBuilder } from './url-builder';
+
+describe('UrlBuilder', () => {
+ let builder: UrlBuilder;
+ let result: string;
+ let error: string;
+
+ beforeEach(() => {
+ result = error = undefined;
+ });
+
+ describe('when baseUrl is undefined', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder(undefined, 'test');
+ builder.build('path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should throwError', () => {
+ expect(result).toBeUndefined();
+ expect(error).toBe('Missing or invalid base URL for test: undefined');
+ });
+ });
+
+ describe('when baseUrl is null', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder(null, 'test2');
+ builder.build('path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should throwError', () => {
+ expect(result).toBeUndefined();
+ expect(error).toBe('Missing or invalid base URL for test2: null');
+ });
+ });
+
+ describe('when baseUrl is empty', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('', 'test');
+ builder.build('path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should throwError', () => {
+ expect(result).toBeUndefined();
+ expect(error).toBe('Missing or invalid base URL for test: ');
+ });
+ });
+
+ describe('when baseUrl is an invalid url', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('garbage', 'test');
+ builder.build('path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should throwError', () => {
+ expect(result).toBeUndefined();
+ expect(error).toBe('Missing or invalid base URL for test: garbage');
+ });
+ });
+
+ describe('when baseUrl is valid http with no trailing slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('http://dev.apps.psu.edu/test-service/resources', 'test');
+ builder.build('path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('http://dev.apps.psu.edu/test-service/resources/path');
+ });
+ });
+
+ describe('when baseUrl is valid https with no trailing slash and path has a leading slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('http://dev.apps.psu.edu/test-service/resources', 'test');
+ builder.build('/path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('http://dev.apps.psu.edu/test-service/resources/path');
+ });
+ });
+
+ describe('when baseUrl is valid https with a trailing slash and path has a leading slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('https://dev.apps.psu.edu/test-service/resources/', 'test');
+ builder.build('/path').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('https://dev.apps.psu.edu/test-service/resources/path');
+ });
+ });
+
+ describe('when baseUrl is valid https with trailing slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('http://dev.apps.psu.edu/test-service/resources/longer/', 'test');
+ builder.build('path/with/args/').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('http://dev.apps.psu.edu/test-service/resources/longer/path/with/args/');
+ });
+ });
+
+ describe('when baseUrl is valid ftp with trailing slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('ftp://test/longer/', 'test');
+ builder.build('path/with/args/').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('ftp://test/longer/path/with/args/');
+ });
+ });
+
+ describe('when baseUrl is valid ws with trailing slash', () => {
+ beforeEach(() => {
+ builder = new UrlBuilder('ws://test/longer/', 'test');
+ builder.build('path/with/args/').subscribe(r => (result = r), e => (error = e));
+ });
+
+ it('should emit', () => {
+ expect(error).toBeUndefined();
+ expect(result).toBe('ws://test/longer/path/with/args/');
+ });
+ });
+});
diff --git a/libs/utils/browser/src/lib/url-builder/url-builder.ts b/libs/utils/browser/src/lib/url-builder/url-builder.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fb86a8ad9dbd3d31928f7a77675e97b40c95f99a
--- /dev/null
+++ b/libs/utils/browser/src/lib/url-builder/url-builder.ts
@@ -0,0 +1,20 @@
+import { Observable, throwError, of } from 'rxjs';
+
+export class UrlBuilder {
+ constructor(private baseUrl: string, private name: string) {}
+
+ public build(path: string): Observable {
+ try {
+ // NOTE: you may be tempted to use new URL() here, but alas, it does not correctly deal with base urls.
+ // In our case, if you do new Url('myPath', 'http://dev.apps.psu.edu/some-service/resources'),
+ // it will result in http://dev.apps.psu.edu/some-service/myPath (stripping out resources)
+ const base =
+ this.baseUrl && this.baseUrl.endsWith('/') ? this.baseUrl : this.baseUrl ? `${this.baseUrl}/` : this.baseUrl;
+ const newPath = !!path && path.startsWith('/') ? path.substr(1) : path;
+ const url = new URL(newPath, base).toString();
+ return of(url);
+ } catch (err) {
+ return throwError(`Missing or invalid base URL for ${this.name}: ${this.baseUrl}`);
+ }
+ }
+}
diff --git a/libs/utils/browser/src/lib/window/window.service.spec.ts b/libs/utils/browser/src/lib/window/window.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c78dfb7d4dff3519199e5b1d78cbd1dc98f272ee
--- /dev/null
+++ b/libs/utils/browser/src/lib/window/window.service.spec.ts
@@ -0,0 +1,14 @@
+import { WindowService } from './window.service';
+
+describe('WindowService', () => {
+ it('nativeWindow', () => {
+ expect(new WindowService().nativeWindow).toBe(window);
+ });
+
+ it('openExternal', () => {
+ const service = new WindowService();
+ window.open = jest.fn();
+ service.openExternal('some url');
+ expect(window.open).toHaveBeenCalledWith('some url', '_blank');
+ });
+});
diff --git a/libs/utils/browser/src/lib/window/window.service.ts b/libs/utils/browser/src/lib/window/window.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..191c1ed0430694bd50db34b786a82508cbffbc78
--- /dev/null
+++ b/libs/utils/browser/src/lib/window/window.service.ts
@@ -0,0 +1,23 @@
+import { Injectable } from '@angular/core';
+
+function getWindow(): Window {
+ return window;
+}
+
+@Injectable({ providedIn: 'root' })
+export class WindowService {
+ get nativeWindow(): any {
+ return getWindow();
+ }
+
+ public load(url: string): void {
+ getWindow().location.href = url;
+ }
+
+ public openExternal(url: string): void {
+ const win = this.nativeWindow.open(url, '_blank');
+ try {
+ win.opener = undefined;
+ } catch (err) {}
+ }
+}
diff --git a/libs/utils/browser/src/test-setup.ts b/libs/utils/browser/src/test-setup.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8d88704e8ff09145a6310d3df98f124042268bfe
--- /dev/null
+++ b/libs/utils/browser/src/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular';
diff --git a/libs/utils/browser/tsconfig.json b/libs/utils/browser/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..08c7db8c96729fc7e5d208344835a678c973f96c
--- /dev/null
+++ b/libs/utils/browser/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tsconfig.json",
+ "compilerOptions": {
+ "types": ["node", "jest"]
+ },
+ "include": ["**/*.ts"]
+}
diff --git a/libs/utils/browser/tsconfig.lib.json b/libs/utils/browser/tsconfig.lib.json
new file mode 100644
index 0000000000000000000000000000000000000000..1c600457d394acbbc693cc87f480a170a4b277cd
--- /dev/null
+++ b/libs/utils/browser/tsconfig.lib.json
@@ -0,0 +1,20 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "target": "es2015",
+ "declaration": true,
+ "inlineSources": true,
+ "types": [],
+ "lib": ["dom", "es2018"]
+ },
+ "angularCompilerOptions": {
+ "annotateForClosureCompiler": true,
+ "skipTemplateCodegen": true,
+ "strictMetadataEmit": true,
+ "fullTemplateTypeCheck": true,
+ "strictInjectionParameters": true,
+ "enableResourceInlining": true
+ },
+ "exclude": ["src/test-setup.ts", "**/*.spec.ts"]
+}
diff --git a/libs/utils/browser/tsconfig.spec.json b/libs/utils/browser/tsconfig.spec.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd405a65ef42fc2a9dece7054ce3338c0195210b
--- /dev/null
+++ b/libs/utils/browser/tsconfig.spec.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "files": ["src/test-setup.ts"],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
+}
diff --git a/libs/utils/browser/tslint.json b/libs/utils/browser/tslint.json
new file mode 100644
index 0000000000000000000000000000000000000000..5c1c5f0ecc3b54c086b81dbe1161948f212a4b49
--- /dev/null
+++ b/libs/utils/browser/tslint.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tslint.json",
+ "rules": {
+ "directive-selector": [true, "attribute", "ut", "camelCase"],
+ "component-selector": [true, "element", "ut", "kebab-case"]
+ }
+}
diff --git a/libs/utils/rx/README.md b/libs/utils/rx/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4153059cca168491a2f6dd3ffb7d9ff502433c89
--- /dev/null
+++ b/libs/utils/rx/README.md
@@ -0,0 +1,11 @@
+# Reactive Utils
+
+## HttpRetryBackoff
+
+Pipeable operator for retrying http requests prone to intermittent failures
+
+```typescript
+import { httpRetryBackoff } from '@psu/utils/rx';
+
+httpClient.get('some_unreliable_service').pipe(retryBackoff(250));
+```
diff --git a/libs/utils/rx/jest.config.js b/libs/utils/rx/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..2515a55d534bc65ef8e552d1f8b9b8fae3175d36
--- /dev/null
+++ b/libs/utils/rx/jest.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ name: 'utils-rx',
+ preset: '../../../jest.config.js',
+ coverageDirectory: '../../../coverage/libs/utils/rx',
+ snapshotSerializers: [
+ 'jest-preset-angular/AngularSnapshotSerializer.js',
+ 'jest-preset-angular/HTMLCommentSerializer.js'
+ ]
+};
diff --git a/libs/utils/rx/ng-package.json b/libs/utils/rx/ng-package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c781f0df4675ef304c7d745c98df9f59daa25dee
--- /dev/null
+++ b/libs/utils/rx/ng-package.json
@@ -0,0 +1,5 @@
+{
+ "lib": {
+ "entryFile": "src/index.ts"
+ }
+}
diff --git a/libs/utils/rx/src/index.ts b/libs/utils/rx/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c80fdc6653e4462ed2d2770d93873645d6c3eec6
--- /dev/null
+++ b/libs/utils/rx/src/index.ts
@@ -0,0 +1,2 @@
+export { httpRetryBackoff, HttpRetryBackoffConfig } from './lib/http-backoff';
+export { createReducer } from './lib/reducer-utils';
diff --git a/libs/utils/rx/src/lib/http-backoff.ts b/libs/utils/rx/src/lib/http-backoff.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f4559fe4b15aa81725fc248b2755a48ee0baa238
--- /dev/null
+++ b/libs/utils/rx/src/lib/http-backoff.ts
@@ -0,0 +1,64 @@
+import { retryBackoff, RetryBackoffConfig } from 'backoff-rxjs';
+import { Observable } from 'rxjs';
+
+export interface HttpRetryBackoffConfig {
+ initialIntervalMillis?: number;
+ maxAttempts?: number;
+ recoverable4xxCodes?: number[];
+ ignored5xxCodes?: number[];
+ skipCors?: boolean;
+}
+
+export function httpRetryBackoff(config: number | HttpRetryBackoffConfig): (source: Observable) => Observable {
+ // parse the config argument
+ const {
+ initialIntervalMillis = 250,
+ maxAttempts = 5,
+ recoverable4xxCodes = [429],
+ ignored5xxCodes = [],
+ skipCors = false
+ } = typeof config === 'number' ? { initialIntervalMillis: config } : config;
+
+ // convert our internal config into that which is expected by the library,
+ // including our custom shouldRetry function
+ const backoffConfig: RetryBackoffConfig = {
+ initialInterval: initialIntervalMillis,
+ maxRetries: maxAttempts,
+ shouldRetry: err => isRetryPossible(err, recoverable4xxCodes, ignored5xxCodes, skipCors)
+ };
+
+ return (source: Observable) => source.pipe(retryBackoff(backoffConfig));
+}
+
+function isRetryPossible(
+ error: any,
+ recoverable4xxCodes: number[],
+ ignored5xxCodes: number[],
+ skipCors: boolean
+): boolean {
+ const status = extractStatus(error);
+ return (
+ !isNaN(status) &&
+ (is5xx(status, ignored5xxCodes) || isRecoverable4xx(status, recoverable4xxCodes) || (isCORS(status) && !skipCors))
+ );
+}
+
+function extractStatus(error: any): number {
+ let ret = NaN;
+ if (error && error.status !== undefined) {
+ ret = parseInt(error.status, 10);
+ }
+ return ret;
+}
+
+function is5xx(status: number, ignored5xxCodes: number[]): boolean {
+ return status >= 500 && status <= 599 && ignored5xxCodes.indexOf(status) === -1;
+}
+
+function isRecoverable4xx(status: number, recoverable4xxCodes: number[]): boolean {
+ return recoverable4xxCodes.indexOf(status) > -1;
+}
+
+function isCORS(status: number) {
+ return status === 0;
+}
diff --git a/libs/utils/rx/src/lib/reducer-utils.spec.ts b/libs/utils/rx/src/lib/reducer-utils.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..91ca184923a1bdc7c2c6ec16a0f0471054b0f533
--- /dev/null
+++ b/libs/utils/rx/src/lib/reducer-utils.spec.ts
@@ -0,0 +1,11 @@
+import { createReducer } from '..';
+
+describe('reducer utils', () => {
+ describe('createReducer', () => {
+ it('should create reducer correctly', () => {
+ const result = createReducer({}, {});
+ expect(result instanceof Function).toBe(true);
+ expect(result({ s: 's' }, {})).toEqual({ s: 's' });
+ });
+ });
+});
diff --git a/libs/utils/rx/src/lib/reducer-utils.ts b/libs/utils/rx/src/lib/reducer-utils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5976b79a7f22816977d5441c157d049a6a215766
--- /dev/null
+++ b/libs/utils/rx/src/lib/reducer-utils.ts
@@ -0,0 +1,9 @@
+/**
+ * @deprecated use ngrx reducer creators instead
+ *
+ */
+export function createReducer(iState, handlers): (state, action) => any {
+ return (state = iState, action) => {
+ return handlers.hasOwnProperty(action.type) ? handlers[action.type](state, action) : state;
+ };
+}
diff --git a/libs/utils/rx/src/test-setup.ts b/libs/utils/rx/src/test-setup.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8d88704e8ff09145a6310d3df98f124042268bfe
--- /dev/null
+++ b/libs/utils/rx/src/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular';
diff --git a/libs/utils/rx/tsconfig.json b/libs/utils/rx/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..08c7db8c96729fc7e5d208344835a678c973f96c
--- /dev/null
+++ b/libs/utils/rx/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tsconfig.json",
+ "compilerOptions": {
+ "types": ["node", "jest"]
+ },
+ "include": ["**/*.ts"]
+}
diff --git a/libs/utils/rx/tsconfig.lib.json b/libs/utils/rx/tsconfig.lib.json
new file mode 100644
index 0000000000000000000000000000000000000000..1c600457d394acbbc693cc87f480a170a4b277cd
--- /dev/null
+++ b/libs/utils/rx/tsconfig.lib.json
@@ -0,0 +1,20 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "target": "es2015",
+ "declaration": true,
+ "inlineSources": true,
+ "types": [],
+ "lib": ["dom", "es2018"]
+ },
+ "angularCompilerOptions": {
+ "annotateForClosureCompiler": true,
+ "skipTemplateCodegen": true,
+ "strictMetadataEmit": true,
+ "fullTemplateTypeCheck": true,
+ "strictInjectionParameters": true,
+ "enableResourceInlining": true
+ },
+ "exclude": ["src/test-setup.ts", "**/*.spec.ts"]
+}
diff --git a/libs/utils/rx/tsconfig.spec.json b/libs/utils/rx/tsconfig.spec.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd405a65ef42fc2a9dece7054ce3338c0195210b
--- /dev/null
+++ b/libs/utils/rx/tsconfig.spec.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "files": ["src/test-setup.ts"],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
+}
diff --git a/libs/utils/rx/tslint.json b/libs/utils/rx/tslint.json
new file mode 100644
index 0000000000000000000000000000000000000000..44c64460c8ae0db3ceb7074ff89c770907ebade7
--- /dev/null
+++ b/libs/utils/rx/tslint.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tslint.json",
+ "rules": {
+ "directive-selector": [true, "attribute", "psu", "camelCase"],
+ "component-selector": [true, "element", "psu", "kebab-case"]
+ }
+}
diff --git a/libs/utils/security/README.md b/libs/utils/security/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0777509bb7c1503eae3ace3ff6263299eab52b1d
--- /dev/null
+++ b/libs/utils/security/README.md
@@ -0,0 +1,3 @@
+# Security Utils
+
+This will eventually be the home of the refactored and de-spaghettified security utils, but for now it just has a single string constant for the `REQUIRE_AUTH_HEADER` since I needed somewhere to put it and didn't want to import the entire security library just for one constant.
diff --git a/libs/utils/security/jest.config.js b/libs/utils/security/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..a798a7fb5506bbd16e5dcbff767d0b4e6b5d04a9
--- /dev/null
+++ b/libs/utils/security/jest.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ name: 'utils-security',
+ preset: '../../../jest.config.js',
+ coverageDirectory: '../../../coverage/libs/utils/security',
+ snapshotSerializers: [
+ 'jest-preset-angular/AngularSnapshotSerializer.js',
+ 'jest-preset-angular/HTMLCommentSerializer.js'
+ ]
+};
diff --git a/libs/utils/security/ng-package.json b/libs/utils/security/ng-package.json
new file mode 100644
index 0000000000000000000000000000000000000000..c781f0df4675ef304c7d745c98df9f59daa25dee
--- /dev/null
+++ b/libs/utils/security/ng-package.json
@@ -0,0 +1,5 @@
+{
+ "lib": {
+ "entryFile": "src/index.ts"
+ }
+}
diff --git a/libs/utils/security/src/index.ts b/libs/utils/security/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b358e75f0a49668adad5855ff509cf1fca2afc5a
--- /dev/null
+++ b/libs/utils/security/src/index.ts
@@ -0,0 +1 @@
+export { REQUIRE_AUTH_HEADER } from './lib/constants';
diff --git a/libs/utils/security/src/lib/constants.spec.ts b/libs/utils/security/src/lib/constants.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..71e8d203b0759010e9e2b629ad6725988c7d8786
--- /dev/null
+++ b/libs/utils/security/src/lib/constants.spec.ts
@@ -0,0 +1,5 @@
+describe('Need to have at least one test', () => {
+ it('should pass', () => {
+ expect(1).toEqual(1);
+ });
+});
diff --git a/libs/utils/security/src/lib/constants.ts b/libs/utils/security/src/lib/constants.ts
new file mode 100644
index 0000000000000000000000000000000000000000..11ec44a82e618e77c8a4de0c7a281b21132b987b
--- /dev/null
+++ b/libs/utils/security/src/lib/constants.ts
@@ -0,0 +1 @@
+export const REQUIRE_AUTH_HEADER = 'X-Auth';
diff --git a/libs/utils/security/src/test-setup.ts b/libs/utils/security/src/test-setup.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8d88704e8ff09145a6310d3df98f124042268bfe
--- /dev/null
+++ b/libs/utils/security/src/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular';
diff --git a/libs/utils/security/tsconfig.json b/libs/utils/security/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..08c7db8c96729fc7e5d208344835a678c973f96c
--- /dev/null
+++ b/libs/utils/security/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tsconfig.json",
+ "compilerOptions": {
+ "types": ["node", "jest"]
+ },
+ "include": ["**/*.ts"]
+}
diff --git a/libs/utils/security/tsconfig.lib.json b/libs/utils/security/tsconfig.lib.json
new file mode 100644
index 0000000000000000000000000000000000000000..1c600457d394acbbc693cc87f480a170a4b277cd
--- /dev/null
+++ b/libs/utils/security/tsconfig.lib.json
@@ -0,0 +1,20 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "target": "es2015",
+ "declaration": true,
+ "inlineSources": true,
+ "types": [],
+ "lib": ["dom", "es2018"]
+ },
+ "angularCompilerOptions": {
+ "annotateForClosureCompiler": true,
+ "skipTemplateCodegen": true,
+ "strictMetadataEmit": true,
+ "fullTemplateTypeCheck": true,
+ "strictInjectionParameters": true,
+ "enableResourceInlining": true
+ },
+ "exclude": ["src/test-setup.ts", "**/*.spec.ts"]
+}
diff --git a/libs/utils/security/tsconfig.spec.json b/libs/utils/security/tsconfig.spec.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd405a65ef42fc2a9dece7054ce3338c0195210b
--- /dev/null
+++ b/libs/utils/security/tsconfig.spec.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "files": ["src/test-setup.ts"],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
+}
diff --git a/libs/utils/security/tslint.json b/libs/utils/security/tslint.json
new file mode 100644
index 0000000000000000000000000000000000000000..44c64460c8ae0db3ceb7074ff89c770907ebade7
--- /dev/null
+++ b/libs/utils/security/tslint.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../../tslint.json",
+ "rules": {
+ "directive-selector": [true, "attribute", "psu", "camelCase"],
+ "component-selector": [true, "element", "psu", "kebab-case"]
+ }
+}
diff --git a/nx.json b/nx.json
index 7bf8552ef09376a8f7ea2d642cf54e0c287e0c42..193958ba69bb7172d161b516e85453609a38c240 100644
--- a/nx.json
+++ b/nx.json
@@ -16,6 +16,15 @@
},
"utils": {
"tags": ["none"]
+ },
+ "utils-security": {
+ "tags": []
+ },
+ "utils-rx": {
+ "tags": []
+ },
+ "utils-browser": {
+ "tags": []
}
}
}
diff --git a/package.json b/package.json
index 47d74300e6ff3e38538a7628896e8cddd3b6078d..da4a97cd85b6c44a6e117db0cc311f250bf23f10 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"start": "ng serve",
"build": "ng build",
"test": "ng test",
- "lint": "nx lint && ng lint",
+ "lint": "ng lint",
"e2e": "ng e2e",
"affected:apps": "nx affected:apps",
"affected:libs": "nx affected:libs",
@@ -25,62 +25,65 @@
"workspace-schematic": "nx workspace-schematic",
"dep-graph": "nx dep-graph",
"help": "nx help",
- "build:lib": "ng build utils && yarn bundle-styles",
+ "build:lib": "ng build utils",
"bundle:report": "webpack-bundle-analyzer dist/apps/demo/stats.json",
"format:html": "yarn html:format:apps && yarn html:format:libs",
"html:format:apps": "find apps -name '*.html' -exec node_modules/.bin/html-beautify -qr {} +",
"html:format:libs": "find libs -name '*.html' -exec node_modules/.bin/html-beautify -qr {} +",
- "cz": "git-cz",
- "bundle-styles": "scss-bundle -c scss-bundle.config.json"
+ "cz": "git-cz"
},
"private": false,
"dependencies": {
- "@angular/animations": "^8.0.0",
- "@angular/common": "^8.0.0",
- "@angular/compiler": "^8.0.0",
- "@angular/core": "^8.0.0",
- "@angular/forms": "^8.0.0",
- "@angular/platform-browser": "^8.0.0",
- "@angular/platform-browser-dynamic": "^8.0.0",
- "@angular/router": "^8.0.0",
+ "@angular/common": "^8.2.0",
+ "@angular/compiler": "^8.2.0",
+ "@angular/core": "^8.2.0",
+ "@angular/platform-browser": "^8.2.0",
+ "@angular/platform-browser-dynamic": "^8.2.0",
"@nrwl/angular": "8.9.0",
- "core-js": "^3.4.8",
- "rxjs": "~6.5.3",
- "tslib": "^1.9.0",
- "zone.js": "^0.10.2"
+ "core-js": "^2.5.4",
+ "rxjs": "~6.4.0",
+ "tslib": "^1.10.0",
+ "zone.js": "^0.9.1"
},
"devDependencies": {
- "@angular-devkit/build-angular": "^0.803.20",
- "@angular-devkit/build-ng-packagr": "~0.803.20",
- "@angular/cli": "8.3.20",
- "@angular/compiler-cli": "^8.0.0",
- "@angular/language-service": "^8.0.0",
+ "@angular-devkit/build-angular": "^0.803.14",
+ "@angular-devkit/build-ng-packagr": "^0.803.14",
+ "@angular/cli": "8.3.14",
+ "@angular/compiler-cli": "^8.2.0",
+ "@angular/language-service": "^8.2.0",
+ "@angular/router": "^8.2.14",
+ "@nguniversal/express-engine": "^8.1.1",
"@nrwl/cypress": "8.9.0",
"@nrwl/jest": "8.9.0",
"@nrwl/workspace": "8.9.0",
"@psu/schematics": "^1.0.4-beta.13",
- "@types/jest": "24.0.23",
- "@types/jquery": "3.3.31",
- "@types/node": "~12.12.16",
- "codelyzer": "~5.2.0",
+ "@types/jest": "24.0.9",
+ "@types/node": "~8.9.4",
+ "backoff-rxjs": "^6.3.3",
+ "codelyzer": "~5.0.1",
"commitizen": "^4.0.3",
- "conventional-changelog": "^3.1.8",
- "cypress": "3.7.0",
- "dotenv": "8.2.0",
+ "conventional-changelog": "^3.1.15",
+ "cypress": "3.6.1",
+ "dotenv": "6.2.0",
+ "eslint": "6.1.0",
"husky": "3.1.0",
- "jest": "24.9.0",
- "jest-preset-angular": "8.0.0",
- "js-beautify": "^1.10.0",
+ "jest": "24.1.0",
+ "jest-preset-angular": "7.0.0",
+ "js-beautify": "^1.10.2",
"lint-staged": "^9.5.0",
- "ng-packagr": "^5.1.0",
+ "mockdate": "^2.0.5",
+ "ng-packagr": "^5.4.0",
+ "ngx-cookie": "^4.1.2",
"npm-link-check": "3.0.0",
- "prettier": "1.19.1",
- "scss-bundle": "^3.0.2",
- "ts-jest": "24.2.0",
- "ts-node": "~8.5.4",
- "tsickle": "^0.37.1",
- "tslint": "~5.20.1",
- "typescript": "~3.4.5",
+ "prettier": "1.18.2",
+ "short-uuid": "^3.1.1",
+ "ts-jest": "24.0.0",
+ "ts-mocks": "^2.6.0",
+ "ts-node": "~7.0.0",
+ "tsickle": "^0.37.0",
+ "tslint": "~5.11.0",
+ "typescript": "~3.5.3",
+ "webpack": "^4.18.1",
"webpack-bundle-analyzer": "^3.3.2"
},
"repository": {
@@ -88,10 +91,15 @@
"url": "https://git.psu.edu/ais-swe/ux/utils"
},
"lint-staged": {
- "*.{json,ts}": [
+ "*.json": [
"prettier --write",
"git add"
],
+ "*.ts": [
+ "prettier --write",
+ "tslint --project tsconfig.json",
+ "git add"
+ ],
"*.html": [
"html-beautify -qr",
"git add"
@@ -103,7 +111,7 @@
},
"husky": {
"hooks": {
- "pre-commit": "lint-staged && yarn lint",
+ "pre-commit": "lint-staged",
"pre-push": "yarn test"
}
},
diff --git a/tsconfig.json b/tsconfig.json
index ee5bf15ac4fe61607b9037fdbb2b180f28f00a9c..8c69f7d4f9824adf3c4ff01ba0de201ac171140d 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,7 +16,10 @@
"skipDefaultLibCheck": true,
"baseUrl": ".",
"paths": {
- "@psu/utils": ["libs/utils/src/index.ts"]
+ "@psu/utils": ["libs/utils/src/index.ts"],
+ "@psu/utils/security": ["libs/utils/security/src/index.ts"],
+ "@psu/utils/rx": ["libs/utils/rx/src/index.ts"],
+ "@psu/utils/browser": ["libs/utils/browser/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]
diff --git a/yarn.lock b/yarn.lock
index 0112d21ec1b3fa91961e56abc6415ed8b5e6dbe7..ca37fc6519222e184b4087feee0e662d59b90bb4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -18,7 +18,7 @@
"@angular-devkit/core" "8.3.20"
rxjs "6.4.0"
-"@angular-devkit/build-angular@^0.803.20":
+"@angular-devkit/build-angular@^0.803.14":
version "0.803.20"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular-devkit/build-angular/-/build-angular-0.803.20.tgz#b19b0d82c75cbdd939b589a33ccb60e2c9f6eec9"
integrity sha512-JDZkZjOqPbOtCMsSKxQf9C+uSTZ7fQGlKGsCpJMzfa4iQ0WrmrhZvnRKQeEpMTTZTpuou/HQeQjyDV+Sx3yumw==
@@ -80,7 +80,7 @@
webpack-subresource-integrity "1.1.0-rc.6"
worker-plugin "3.2.0"
-"@angular-devkit/build-ng-packagr@~0.803.20":
+"@angular-devkit/build-ng-packagr@^0.803.14":
version "0.803.20"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular-devkit/build-ng-packagr/-/build-ng-packagr-0.803.20.tgz#d5fcef89580b4077a27c77be078cfeb0c77e71f7"
integrity sha512-4ccjjxfBFUDtz+P0tlxWaPgxlnZZmDAVDocbLPb0tba4f5onbKDn6cnoLxn/gEDRiXOTYuUhSvIH3BI9GcCDiw==
@@ -196,23 +196,16 @@
minimist "^1.2.0"
rxjs "^5.5.2"
-"@angular/animations@^8.0.0":
- version "8.2.14"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/animations/-/animations-8.2.14.tgz#76736b21e56165e6ca4925fb69605bdcc56aba7d"
- integrity sha512-3Vc9TnNpKdtvKIXcWDFINSsnwgEMiDmLzjceWg1iYKwpeZGQahUXPoesLwQazBMmxJzQiA4HOMj0TTXKZ+Jzkg==
- dependencies:
- tslib "^1.9.0"
-
-"@angular/cli@8.3.20":
- version "8.3.20"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/cli/-/cli-8.3.20.tgz#63e8f626e7dcf37e73cda820ab38bcac13423326"
- integrity sha512-bCo8zVFZ6iPc1EnHmVCmKvIcV7YkvalBKGNU7LtVHq6qZBI+ZmFtuyL5obKvFg1vJcminjKcY/UcMr9uGcAQrQ==
+"@angular/cli@8.3.14":
+ version "8.3.14"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/cli/-/cli-8.3.14.tgz#ce1df037d0c6a2e3c84fb1796c4b679e253a7cca"
+ integrity sha512-cOP2UvnnYocx1U1aiNkuLCcBxSktIXkadzrY7UlWJtQiCPGWm3Y87BfrQXub9Nsh79iyV8k8uKZKEax2ayESSg==
dependencies:
- "@angular-devkit/architect" "0.803.20"
- "@angular-devkit/core" "8.3.20"
- "@angular-devkit/schematics" "8.3.20"
- "@schematics/angular" "8.3.20"
- "@schematics/update" "0.803.20"
+ "@angular-devkit/architect" "0.803.14"
+ "@angular-devkit/core" "8.3.14"
+ "@angular-devkit/schematics" "8.3.14"
+ "@schematics/angular" "8.3.14"
+ "@schematics/update" "0.803.14"
"@yarnpkg/lockfile" "1.1.0"
ansi-colors "4.1.1"
debug "^4.1.1"
@@ -229,14 +222,14 @@
universal-analytics "^0.4.20"
uuid "^3.3.2"
-"@angular/common@^8.0.0":
+"@angular/common@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/common/-/common-8.2.14.tgz#027e52b2951c14082d6e3af1a4ffa1356220e439"
integrity sha512-Qmt+aX2quUW54kaNT7QH7WGXnFxr/cC2C6sf5SW5SdkZfDQSiz8IaItvieZfXVQUbBOQKFRJ7TlSkt0jI/yjvw==
dependencies:
tslib "^1.9.0"
-"@angular/compiler-cli@^8.0.0":
+"@angular/compiler-cli@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/compiler-cli/-/compiler-cli-8.2.14.tgz#1997bec04a6b9d022954e5747505fe8906994594"
integrity sha512-XDrTyrlIZM+0NquVT+Kbg5bn48AaWFT+B3bAT288PENrTdkuxuF9AhjFRZj8jnMdmaE4O2rioEkXBtl6z3zptA==
@@ -252,54 +245,47 @@
tslib "^1.9.0"
yargs "13.1.0"
-"@angular/compiler@^8.0.0":
+"@angular/compiler@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/compiler/-/compiler-8.2.14.tgz#46db7a9d1c17f236126518ff26480c160d5a6183"
integrity sha512-ABZO4E7eeFA1QyJ2trDezxeQM5ZFa1dXw1Mpl/+1vuXDKNjJgNyWYwKp/NwRkLmrsuV0yv4UDCDe4kJOGbPKnw==
dependencies:
tslib "^1.9.0"
-"@angular/core@^8.0.0":
+"@angular/core@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/core/-/core-8.2.14.tgz#35566f5b19480369229477e7e0e0fde740bd5204"
integrity sha512-zeePkigi+hPh3rN7yoNENG/YUBUsIvUXdxx+AZq+QPaFeKEA2FBSrKn36ojHFrdJUjKzl0lPMEiGC2b6a6bo6g==
dependencies:
tslib "^1.9.0"
-"@angular/forms@^8.0.0":
- version "8.2.14"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/forms/-/forms-8.2.14.tgz#7d357c346a3884881beb044c50ec4a09d3d7ee8e"
- integrity sha512-zhyKL3CFIqcyHJ/TQF/h1OZztK611a6rxuPHCrt/5Sn1SuBTJJQ1pPTkOYIDy6IrCrtyANc8qB6P17Mao71DNQ==
- dependencies:
- tslib "^1.9.0"
-
-"@angular/language-service@^8.0.0":
+"@angular/language-service@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/language-service/-/language-service-8.2.14.tgz#e18b27a6841577ce489ad31540150da5a444ca37"
integrity sha512-7EhN9JJbAJcH2xCa+rIOmekjiEuB0qwPdHuD5qn/wwMfRzMZo+Db4hHbR9KHrLH6H82PTwYKye/LLpDaZqoHOA==
-"@angular/platform-browser-dynamic@^8.0.0":
+"@angular/platform-browser-dynamic@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.14.tgz#4439a79fe10ec45170e6940a28835e9ff0918950"
integrity sha512-mO2JPR5kLU/A3AQngy9+R/Q5gaF9csMStBQjwsCRI0wNtlItOIGL6+wTYpiTuh/ux+WVN1F2sLcEYU4Zf1ud9A==
dependencies:
tslib "^1.9.0"
-"@angular/platform-browser@^8.0.0":
+"@angular/platform-browser@^8.2.0":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/platform-browser/-/platform-browser-8.2.14.tgz#31f082e8ba977f9b89964d721c38cbc32ce0e433"
integrity sha512-MtJptptyKzsE37JZ2VB/tI4cvMrdAH+cT9pMBYZd66YSZfKjIj5s+AZo7z8ncoskQSB1o3HMfDjSK7QXGx1mLQ==
dependencies:
tslib "^1.9.0"
-"@angular/router@^8.0.0":
+"@angular/router@^8.2.14":
version "8.2.14"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@angular/router/-/router-8.2.14.tgz#5f9f9707710983c2143aead79dcd2da520ae3eb8"
integrity sha512-DHA2BhODqV7F0g6ZKgFaZgbsqzHHWRcfWchCOrOVKu2rYiKUTwwHVLBgZAhrpNeinq2pWanVYSIhMr7wy+LfEA==
dependencies:
tslib "^1.9.0"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5":
version "7.5.5"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
@@ -1148,7 +1134,7 @@
slash "^2.0.0"
strip-ansi "^5.0.0"
-"@jest/environment@^24.3.0", "@jest/environment@^24.9.0":
+"@jest/environment@^24.9.0":
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
@@ -1158,7 +1144,7 @@
"@jest/types" "^24.9.0"
jest-mock "^24.9.0"
-"@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0":
+"@jest/fake-timers@^24.9.0":
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==
@@ -1244,7 +1230,7 @@
source-map "^0.6.1"
write-file-atomic "2.4.1"
-"@jest/types@^24.3.0", "@jest/types@^24.9.0":
+"@jest/types@^24.9.0":
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
@@ -1269,6 +1255,11 @@
tree-kill "1.2.1"
webpack-sources "1.4.3"
+"@nguniversal/express-engine@^8.1.1":
+ version "8.1.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@nguniversal/express-engine/-/express-engine-8.1.1.tgz#253f2a484764cf183a679847a0c25c52d5b25ab9"
+ integrity sha512-LKfNnKb1BU1IyI/U7LcDgU744ptrn7fTYb3QqHAlGaozHUNRjXpNuBdkrcAS5+8UAhRlTllpSt1c+TmY2/tomA==
+
"@nodelib/fs.scandir@2.1.3":
version "2.1.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -1427,14 +1418,6 @@
"@angular-devkit/core" "8.3.14"
"@angular-devkit/schematics" "8.3.14"
-"@schematics/angular@8.3.20", "@schematics/angular@^8.0.6":
- version "8.3.20"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/angular/-/angular-8.3.20.tgz#737d0a73e891446899a2267c4cc348b6c5a78ca8"
- integrity sha512-Y20pSJhQ0KQd8Tk2kPQlmpRDNDaoIKMeOOGLT2FgCFrumxZXuIbBgN9fGDgW40iI2sq80bccOeo24RKkn3QpcA==
- dependencies:
- "@angular-devkit/core" "8.3.20"
- "@angular-devkit/schematics" "8.3.20"
-
"@schematics/angular@^0.1.11":
version "0.1.17"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/angular/-/angular-0.1.17.tgz#084a7cbe2de6f94a856bd08d95c9d35ef8905e2b"
@@ -1442,6 +1425,14 @@
dependencies:
typescript "~2.6.2"
+"@schematics/angular@^8.0.6":
+ version "8.3.20"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/angular/-/angular-8.3.20.tgz#737d0a73e891446899a2267c4cc348b6c5a78ca8"
+ integrity sha512-Y20pSJhQ0KQd8Tk2kPQlmpRDNDaoIKMeOOGLT2FgCFrumxZXuIbBgN9fGDgW40iI2sq80bccOeo24RKkn3QpcA==
+ dependencies:
+ "@angular-devkit/core" "8.3.20"
+ "@angular-devkit/schematics" "8.3.20"
+
"@schematics/schematics@0.0.11":
version "0.0.11"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/schematics/-/schematics-0.0.11.tgz#c8f70f270ed38f29b2873248126fd59abd635862"
@@ -1455,13 +1446,13 @@
"@angular-devkit/core" "8.0.4"
"@angular-devkit/schematics" "8.0.4"
-"@schematics/update@0.803.20":
- version "0.803.20"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/update/-/update-0.803.20.tgz#f6cce4f0ee435d8a4071817ac43e418f2b51d22a"
- integrity sha512-MseLreuHdnSLUEnRxZFVSHKKK+3mGXH12SgOSeirwATIL22Df74+Q5BYvsge/Kd2k6s9ak/NCuRXG7FAo8mkMA==
+"@schematics/update@0.803.14":
+ version "0.803.14"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@schematics/update/-/update-0.803.14.tgz#831c7f816f75d98aeec370cdfa490c7431130af8"
+ integrity sha512-1erj7oaR2vKXo1DLE0s4BbbouBmgeAHEkPHQM7FPtyroZ18kytlT+qjTbsSnlRCwcFsjxmRkbRjXaXDz7ttsYQ==
dependencies:
- "@angular-devkit/core" "8.3.20"
- "@angular-devkit/schematics" "8.3.20"
+ "@angular-devkit/core" "8.3.14"
+ "@angular-devkit/schematics" "8.3.14"
"@yarnpkg/lockfile" "1.1.0"
ini "1.3.5"
pacote "9.5.5"
@@ -1481,11 +1472,6 @@
dependencies:
defer-to-connect "^1.0.1"
-"@types/archy@^0.0.31":
- version "0.0.31"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/archy/-/archy-0.0.31.tgz#01650a4641e7e1d11dbd64eda42eec9a2f829c7f"
- integrity sha512-v+dxizsFVyXgD3EpFuqT9YjdEjbJmPxNf1QIX9ohZOhxh1ZF2yhqv3vYaeum9lg3VghhxS5S0a6yldN9J9lPEQ==
-
"@types/babel__core@^7.1.0":
version "7.1.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30"
@@ -1519,11 +1505,6 @@
dependencies:
"@babel/types" "^7.3.0"
-"@types/debug@^4.1.5":
- version "4.1.5"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
- integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
-
"@types/estree@*":
version "0.0.40"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/estree/-/estree-0.0.40.tgz#0e6cb9b9bbd098031fa19e4b4e8131bc70e5de13"
@@ -1539,13 +1520,6 @@
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
-"@types/fs-extra@^8.0.0":
- version "8.0.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/fs-extra/-/fs-extra-8.0.1.tgz#a2378d6e7e8afea1564e44aafa2e207dadf77686"
- integrity sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==
- dependencies:
- "@types/node" "*"
-
"@types/glob@^7.1.1":
version "7.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
@@ -1580,47 +1554,40 @@
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/jasmine/-/jasmine-3.5.0.tgz#2ad2006c8a937d20df20a8fee86071d0f730ef99"
integrity sha512-kGCRI9oiCxFS6soGKlyzhMzDydfcPix9PpTkr7h11huxOxhWwP37Tg7DYBaQ18eQTNreZEuLkhpbGSqVNZPnnw==
-"@types/jest@24.0.23":
- version "24.0.23"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/jest/-/jest-24.0.23.tgz#046f8e2ade026fe831623e361a36b6fb9a4463e4"
- integrity sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==
+"@types/jest-diff@*":
+ version "24.3.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/jest-diff/-/jest-diff-24.3.0.tgz#29e237a3d954babfe6e23cc59b57ecd8ca8d858d"
+ integrity sha512-vx1CRDeDUwQ0Pc7v+hS61O1ETA81kD04IMEC0hS1kPyVtHDdZrokAvpF7MT9VI/fVSzicelUZNCepDvhRV1PeA==
dependencies:
- jest-diff "^24.3.0"
+ jest-diff "*"
-"@types/jquery@3.3.31":
- version "3.3.31"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/jquery/-/jquery-3.3.31.tgz#27c706e4bf488474e1cb54a71d8303f37c93451b"
- integrity sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==
+"@types/jest@24.0.9":
+ version "24.0.9"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/jest/-/jest-24.0.9.tgz#74ce9cf337f25e189aa18f76ab3d65e8669b55f2"
+ integrity sha512-k3OOeevcBYLR5pdsOv5g3OP94h3mrJmLPHFEPWgbbVy2tGv0TZ/TlygiC848ogXhK8NL0I5up7YYtwpCp8xCJA==
dependencies:
- "@types/sizzle" "*"
+ "@types/jest-diff" "*"
"@types/json5@^0.0.29":
version "0.0.29"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
-"@types/lodash.debounce@^4.0.6":
- version "4.0.6"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60"
- integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==
- dependencies:
- "@types/lodash" "*"
-
-"@types/lodash@*":
- version "4.14.149"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440"
- integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==
-
"@types/minimatch@*":
version "3.0.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-"@types/node@*", "@types/node@^12.0.10", "@types/node@^12.0.2", "@types/node@~12.12.16":
+"@types/node@*", "@types/node@^12.0.10", "@types/node@^12.0.2":
version "12.12.16"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/node/-/node-12.12.16.tgz#3ebcbd7bf978fa4c5120fee8be57083271a8b3ac"
integrity sha512-vRuMyoOr5yfNf8QWxXegOjeyjpWJxFePzHzmBOIzDIzo+rSqF94RW0PkS6y4T2+VjAWLXHWrfbIJY3E3aS7lUw==
+"@types/node@~8.9.4":
+ version "8.9.5"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976"
+ integrity sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==
+
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
@@ -1633,14 +1600,7 @@
dependencies:
"@types/node" "*"
-"@types/sass@^1.16.0":
- version "1.16.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/sass/-/sass-1.16.0.tgz#b41ac1c17fa68ffb57d43e2360486ef526b3d57d"
- integrity sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==
- dependencies:
- "@types/node" "*"
-
-"@types/sizzle@*", "@types/sizzle@2.3.2":
+"@types/sizzle@2.3.2":
version "2.3.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47"
integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==
@@ -1863,7 +1823,7 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-globals@^4.1.0, acorn-globals@^4.3.2:
+acorn-globals@^4.1.0, acorn-globals@^4.3.0:
version "4.3.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
@@ -1871,6 +1831,11 @@ acorn-globals@^4.1.0, acorn-globals@^4.3.2:
acorn "^6.0.1"
acorn-walk "^6.0.1"
+acorn-jsx@^5.1.0:
+ version "5.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
+ integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
+
acorn-walk@^6.0.1, acorn-walk@^6.1.1:
version "6.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
@@ -1881,7 +1846,7 @@ acorn@^5.5.3:
resolved "https://nexus.ci.psu.edu/repository/npm-all/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-acorn@^6.0.1, acorn@^6.0.7, acorn@^6.2.1:
+acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.7, acorn@^6.2.1:
version "6.4.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784"
integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==
@@ -1940,7 +1905,7 @@ ajv@6.10.0:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@6.10.2, ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5:
+ajv@6.10.2, ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5:
version "6.10.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
@@ -2036,6 +2001,11 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
+any-base@^1.1.0:
+ version "1.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe"
+ integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==
+
any-observable@^0.3.0:
version "0.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
@@ -2057,7 +2027,7 @@ anymatch@~3.1.1:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-app-root-path@^2.0.1, app-root-path@^2.2.1:
+app-root-path@^2.0.1, app-root-path@^2.1.0:
version "2.2.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a"
integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==
@@ -2072,11 +2042,6 @@ arch@2.1.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==
-archy@^1.0.0:
- version "1.0.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
- integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
-
are-we-there-yet@~1.1.2:
version "1.1.5"
resolved "https://nexus.ci.psu.edu/repository/npm-all/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
@@ -2085,11 +2050,6 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
-arg@^4.1.0:
- version "4.1.2"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/arg/-/arg-4.1.2.tgz#e70c90579e02c63d80e3ad4e31d8bfdb8bd50064"
- integrity sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==
-
argparse@^1.0.7:
version "1.0.10"
resolved "https://nexus.ci.psu.edu/repository/npm-all/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -2105,12 +2065,19 @@ aria-query@^3.0.0:
ast-types-flow "0.0.7"
commander "^2.11.0"
+arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
+ dependencies:
+ arr-flatten "^1.0.1"
+
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-arr-flatten@^1.1.0:
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
@@ -2162,12 +2129,17 @@ array-uniq@^1.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+ integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
+
array-unique@^0.3.2:
version "0.3.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-arrify@^1.0.1:
+arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
@@ -2226,7 +2198,7 @@ async-each@^1.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
-async-limiter@^1.0.0, async-limiter@~1.0.0:
+async-limiter@~1.0.0:
version "1.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
@@ -2299,7 +2271,7 @@ axobject-query@^2.0.2:
"@babel/runtime" "^7.7.4"
"@babel/runtime-corejs3" "^7.7.4"
-babel-code-frame@^6.26.0:
+babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
@@ -2433,6 +2405,11 @@ babylon@^6.18.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
+backoff-rxjs@^6.3.3:
+ version "6.3.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/backoff-rxjs/-/backoff-rxjs-6.3.3.tgz#224b97495202a307abad8698e5006a722ec4c657"
+ integrity sha512-+NfPlA9GYB+6gFk7wDTsUMUecqHLmikt/yfUmddPPUNT9DzmU/p31CTsZT4b3S2g46q87fP34gwPJsZ66Eyedg==
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -2563,6 +2540,15 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
braces@^2.3.1, braces@^2.3.2:
version "2.3.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -2699,7 +2685,7 @@ buffer-crc32@~0.2.3:
resolved "https://nexus.ci.psu.edu/repository/npm-all/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-buffer-from@1.x, buffer-from@^1.0.0:
+buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.0:
version "1.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
@@ -2938,7 +2924,7 @@ caseless@~0.12.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
+chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2973,7 +2959,7 @@ check-types@^8.0.3:
resolved "https://nexus.ci.psu.edu/repository/npm-all/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
-"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2:
+"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0:
version "3.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6"
integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==
@@ -3157,12 +3143,12 @@ code-point-at@^1.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-codelyzer@~5.2.0:
- version "5.2.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/codelyzer/-/codelyzer-5.2.0.tgz#b0ee573a12779c996090e596c5c1755479d83758"
- integrity sha512-izfUfhEOOgAizszPlEDxo71DK/C4wprZw0vkY6UWcOSTQvN1JyfXf9DXwaV7WX+/JC+hH0ShXfdtGLA9Rca7LA==
+codelyzer@~5.0.1:
+ version "5.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/codelyzer/-/codelyzer-5.0.1.tgz#c52a593368269b791594603968eb82cbecae3cda"
+ integrity sha512-UVV76+/y1RwaxzCeGPFE3G4GFtfV42r3x8EmRd7XMNFLlLC0ewdtCqWTbvhwPQMxFZZ+OTLEOJNWfyPPn3QFWg==
dependencies:
- app-root-path "^2.2.1"
+ app-root-path "^2.1.0"
aria-query "^3.0.0"
axobject-query "^2.0.2"
css-selector-tokenizer "^0.7.1"
@@ -3452,7 +3438,7 @@ conventional-changelog-writer@^4.0.11:
split "^1.0.0"
through2 "^3.0.0"
-conventional-changelog@^3.1.8:
+conventional-changelog@^3.1.15:
version "3.1.15"
resolved "https://nexus.ci.psu.edu/repository/npm-all/conventional-changelog/-/conventional-changelog-3.1.15.tgz#103d0b550436cf83e8a59ba88be82ece2613cd9f"
integrity sha512-CoWM+Z9bYyF00QzNpTnxkCLiuLAeRocJz3C/foFjvhsdltdtkJgMChp7GytQNjm4pT7JFBVJTpqLHTpxNtOzaA==
@@ -3565,16 +3551,11 @@ core-js@3.2.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09"
integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==
-core-js@^2.4.0:
+core-js@^2.4.0, core-js@^2.5.4:
version "2.6.11"
resolved "https://nexus.ci.psu.edu/repository/npm-all/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
-core-js@^3.4.8:
- version "3.4.8"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/core-js/-/core-js-3.4.8.tgz#e0fc0c61f2ef90cbc10c531dbffaa46dfb7152dd"
- integrity sha512-b+BBmCZmVgho8KnBUOXpvlqEMguko+0P+kXCwD4vIprsXC6ht1qgPxtb1OK6XgSlrySF71wkwBQ0Hv695bk9gQ==
-
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -3725,30 +3706,18 @@ cssesc@^0.1.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6:
+cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4:
version "0.3.8"
resolved "https://nexus.ci.psu.edu/repository/npm-all/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
-cssom@^0.4.1:
- version "0.4.4"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
- integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
-
-cssstyle@^1.0.0:
+cssstyle@^1.0.0, cssstyle@^1.1.1:
version "1.4.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1"
integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==
dependencies:
cssom "0.3.x"
-cssstyle@^2.0.0:
- version "2.0.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/cssstyle/-/cssstyle-2.0.0.tgz#911f0fe25532db4f5d44afc83f89cc4b82c97fe3"
- integrity sha512-QXSAu2WBsSRXCPjvI43Y40m6fMevvyRm8JVAuF9ksQz5jha4pWP1wpaK7Yu5oLFc6+XAY+hj8YhefyXcBB53gg==
- dependencies:
- cssom "~0.3.6"
-
cuint@^0.2.2:
version "0.2.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
@@ -3766,10 +3735,10 @@ cyclist@^1.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
-cypress@3.7.0:
- version "3.7.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/cypress/-/cypress-3.7.0.tgz#e2cd71b87b6ce0d4c72c6ea25da1005d75c1f231"
- integrity sha512-o+vfRxqAba8TduelzfZQ4WHmj2yNEjaoO2EuZ8dZ9pJpuW+WGtBGheKIp6zkoQsp8ZgFe8OoHh1i2mY8BDnMAw==
+cypress@3.6.1:
+ version "3.6.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/cypress/-/cypress-3.6.1.tgz#4420957923879f60b7a5146ccbf81841a149b653"
+ integrity sha512-6n0oqENdz/oQ7EJ6IgESNb2M7Bo/70qX9jSJsAziJTC3kICfEMmJUlrAnP9bn+ut24MlXQST5nRXhUP5nRIx6A==
dependencies:
"@cypress/listr-verbose-renderer" "0.4.1"
"@cypress/xvfb" "1.2.4"
@@ -3856,7 +3825,7 @@ dateformat@^3.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-debug@*, debug@4.1.1, debug@^4.1.0, debug@^4.1.1:
+debug@*, debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@@ -4088,10 +4057,10 @@ diff-sequences@^24.9.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
-diff@^4.0.1:
- version "4.0.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
- integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
+diff@^3.1.0, diff@^3.2.0:
+ version "3.5.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+ integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -4136,6 +4105,13 @@ dns-txt@^2.0.2:
dependencies:
buffer-indexof "^1.0.0"
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -4162,10 +4138,10 @@ dot-prop@^4.1.0:
dependencies:
is-obj "^1.0.0"
-dotenv@8.2.0:
- version "8.2.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
- integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
+dotenv@6.2.0:
+ version "6.2.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
+ integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==
duplexer3@^0.1.4:
version "0.1.4"
@@ -4356,7 +4332,7 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
resolved "https://nexus.ci.psu.edu/repository/npm-all/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.11.1, escodegen@^1.9.1:
+escodegen@^1.11.0, escodegen@^1.9.1:
version "1.12.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
@@ -4376,6 +4352,78 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
+eslint-scope@^5.0.0:
+ version "5.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
+ integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^1.3.1:
+ version "1.4.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+ version "1.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
+ integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
+
+eslint@6.1.0:
+ version "6.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/eslint/-/eslint-6.1.0.tgz#06438a4a278b1d84fb107d24eaaa35471986e646"
+ integrity sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.10.0"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ eslint-scope "^5.0.0"
+ eslint-utils "^1.3.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^6.0.0"
+ esquery "^1.0.1"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^11.7.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ inquirer "^6.4.1"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.14"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ progress "^2.0.0"
+ regexpp "^2.0.1"
+ semver "^6.1.2"
+ strip-ansi "^5.2.0"
+ strip-json-comments "^3.0.1"
+ table "^5.2.3"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
+
+espree@^6.0.0:
+ version "6.1.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d"
+ integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==
+ dependencies:
+ acorn "^7.1.0"
+ acorn-jsx "^5.1.0"
+ eslint-visitor-keys "^1.1.0"
+
esprima@^3.1.3:
version "3.1.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@@ -4386,6 +4434,13 @@ esprima@^4.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+esquery@^1.0.1:
+ version "1.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+ integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
+ dependencies:
+ estraverse "^4.0.0"
+
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@@ -4393,7 +4448,7 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
-estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -4514,6 +4569,13 @@ exit@^0.1.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -4527,6 +4589,13 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
+expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
+ dependencies:
+ fill-range "^2.1.0"
+
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
@@ -4611,6 +4680,13 @@ external-editor@^3.0.3:
iconv-lite "^0.4.24"
tmp "^0.0.33"
+extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
+ dependencies:
+ is-extglob "^1.0.0"
+
extglob@^2.0.4:
version "2.0.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -4750,6 +4826,13 @@ figures@^3.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+ dependencies:
+ flat-cache "^2.0.1"
+
file-loader@4.2.0:
version "4.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e"
@@ -4758,11 +4841,27 @@ file-loader@4.2.0:
loader-utils "^1.2.3"
schema-utils "^2.0.0"
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+ integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
+
filesize@^3.6.1:
version "3.6.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
+fill-range@^2.1.0:
+ version "2.2.4"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+ integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^3.0.0"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
fill-range@^4.0.0:
version "4.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -4869,6 +4968,20 @@ findup-sync@^3.0.0:
micromatch "^3.0.4"
resolve-dir "^1.0.1"
+flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+flatted@^2.0.0:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
+ integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
+
flush-write-stream@^1.0.0:
version "1.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@@ -4884,11 +4997,18 @@ follow-redirects@^1.0.0:
dependencies:
debug "^3.0.0"
-for-in@^1.0.2:
+for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
+ dependencies:
+ for-in "^1.0.1"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -4946,7 +5066,7 @@ fs-extra@6.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@8.1.0, fs-extra@^8.0.0, fs-extra@^8.1.0:
+fs-extra@8.1.0, fs-extra@^8.0.0:
version "8.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
@@ -5000,6 +5120,11 @@ function-bind@^1.0.2, function-bind@^1.1.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
gauge@~2.7.3:
version "2.7.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@@ -5132,6 +5257,21 @@ gitconfiglocal@^1.0.0:
dependencies:
ini "^1.3.2"
+glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
+ dependencies:
+ is-glob "^2.0.0"
+
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -5140,7 +5280,7 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob-parent@^5.1.0, glob-parent@~5.1.0:
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
version "5.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
@@ -5210,7 +5350,7 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
-globals@^11.1.0:
+globals@^11.1.0, globals@^11.7.0:
version "11.12.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
@@ -5257,13 +5397,6 @@ globby@^7.1.1:
pify "^3.0.0"
slash "^1.0.0"
-globs@^0.1.4:
- version "0.1.4"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/globs/-/globs-0.1.4.tgz#1d13639f6174e4ae73a7f936da7d9a079f657c1c"
- integrity sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==
- dependencies:
- glob "^7.1.1"
-
got@^9.6.0:
version "9.6.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
@@ -5639,6 +5772,11 @@ ignore@^3.3.5:
resolved "https://nexus.ci.psu.edu/repository/npm-all/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
ignore@^5.1.1:
version "5.1.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
@@ -5809,7 +5947,7 @@ inquirer@6.5.1:
strip-ansi "^5.1.0"
through "^2.3.6"
-inquirer@^6.3.1:
+inquirer@^6.3.1, inquirer@^6.4.1:
version "6.5.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
@@ -5926,7 +6064,7 @@ is-callable@^1.1.4:
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
-is-ci@1.2.1:
+is-ci@1.2.1, is-ci@^1.0.10:
version "1.2.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
@@ -5982,6 +6120,18 @@ is-directory@^0.3.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+is-dotfile@^1.0.0:
+ version "1.0.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+ integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
+
+is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
+ dependencies:
+ is-primitive "^2.0.0"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -5994,6 +6144,11 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
+is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+ integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
+
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -6028,6 +6183,13 @@ is-generator-fn@^2.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
+ dependencies:
+ is-extglob "^1.0.0"
+
is-glob@^3.1.0:
version "3.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
@@ -6060,6 +6222,13 @@ is-npm@^3.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053"
integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==
+is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -6067,6 +6236,11 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+
is-number@^7.0.0:
version "7.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -6127,6 +6301,16 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
+is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+ integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
+
+is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+ integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
+
is-promise@^2.1.0:
version "2.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
@@ -6329,7 +6513,7 @@ jest-changed-files@^24.9.0:
execa "^1.0.0"
throat "^4.0.0"
-jest-cli@^24.9.0:
+jest-cli@^24.1.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
@@ -6371,7 +6555,7 @@ jest-config@^24.9.0:
pretty-format "^24.9.0"
realpath-native "^1.1.0"
-jest-diff@^24.3.0, jest-diff@^24.9.0:
+jest-diff@*, jest-diff@^24.9.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
@@ -6399,17 +6583,14 @@ jest-each@^24.9.0:
jest-util "^24.9.0"
pretty-format "^24.9.0"
-jest-environment-jsdom-fifteen@^1.0.0:
- version "1.0.2"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-environment-jsdom-fifteen/-/jest-environment-jsdom-fifteen-1.0.2.tgz#49a0af55e0d32737a6114a1575dd714702ad63b0"
- integrity sha512-nfrnAfwklE1872LIB31HcjM65cWTh1wzvMSp10IYtPJjLDUbTTvDpajZgIxUnhRmzGvogdHDayCIlerLK0OBBg==
+jest-environment-jsdom-thirteen@^0.0.2:
+ version "0.0.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-environment-jsdom-thirteen/-/jest-environment-jsdom-thirteen-0.0.2.tgz#8de6a9cc178cb585adfaf2d58a646c514502df9f"
+ integrity sha512-NH7b44aUdSjSzIYogJS9WkymmJNA+Q3na6XebsxZmP70NzW++/WD1Ky8E6PVxTqKuEnYzxFA/5Of2VxoreugGg==
dependencies:
- "@jest/environment" "^24.3.0"
- "@jest/fake-timers" "^24.3.0"
- "@jest/types" "^24.3.0"
- jest-mock "^24.0.0"
- jest-util "^24.0.0"
- jsdom "^15.2.1"
+ jest-mock "^23.2.0"
+ jest-util "^23.4.0"
+ jsdom "^13.0.0"
jest-environment-jsdom@^24.9.0:
version "24.9.0"
@@ -6498,6 +6679,17 @@ jest-matcher-utils@^24.9.0:
jest-get-type "^24.9.0"
pretty-format "^24.9.0"
+jest-message-util@^23.4.0:
+ version "23.4.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f"
+ integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=
+ dependencies:
+ "@babel/code-frame" "^7.0.0-beta.35"
+ chalk "^2.0.1"
+ micromatch "^2.3.11"
+ slash "^1.0.0"
+ stack-utils "^1.0.1"
+
jest-message-util@^24.9.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
@@ -6512,7 +6704,12 @@ jest-message-util@^24.9.0:
slash "^2.0.0"
stack-utils "^1.0.1"
-jest-mock@^24.0.0, jest-mock@^24.9.0:
+jest-mock@^23.2.0:
+ version "23.2.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134"
+ integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=
+
+jest-mock@^24.9.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
@@ -6524,13 +6721,12 @@ jest-pnp-resolver@^1.2.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
-jest-preset-angular@8.0.0:
- version "8.0.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-preset-angular/-/jest-preset-angular-8.0.0.tgz#6653f4cb5df32ca63af032417a18da44ad5e4f2b"
- integrity sha512-POQUTOdZwHJOFTr8lT+bR9da1L5ItRPQSjC1gyKf3wXO9ct2Ht08CO60dYDshivfewThdqzMeVYzgM9tEssw2A==
+jest-preset-angular@7.0.0:
+ version "7.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-preset-angular/-/jest-preset-angular-7.0.0.tgz#cf2dfa75ec8d3846e28afac0da0da269f8036ca2"
+ integrity sha512-XwMTabZ7/clqpWxgmrXeqKUNn5eXuyNtddFyG1JWTtVoRFIru8kEigk9Eyra82Yx0vJIN1KkNoOKieBQfqfvwQ==
dependencies:
- jest-environment-jsdom-fifteen "^1.0.0"
- pretty-format "^24.0.0"
+ jest-environment-jsdom-thirteen "^0.0.2"
ts-jest "^24.0.0"
jest-regex-util@^24.3.0, jest-regex-util@^24.9.0:
@@ -6636,7 +6832,21 @@ jest-snapshot@^24.9.0:
pretty-format "^24.9.0"
semver "^6.2.0"
-jest-util@^24.0.0, jest-util@^24.9.0:
+jest-util@^23.4.0:
+ version "23.4.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561"
+ integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=
+ dependencies:
+ callsites "^2.0.0"
+ chalk "^2.0.1"
+ graceful-fs "^4.1.11"
+ is-ci "^1.0.10"
+ jest-message-util "^23.4.0"
+ mkdirp "^0.5.1"
+ slash "^1.0.0"
+ source-map "^0.6.0"
+
+jest-util@^24.9.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
@@ -6687,15 +6897,15 @@ jest-worker@24.9.0, jest-worker@^24.6.0, jest-worker@^24.9.0:
merge-stream "^2.0.0"
supports-color "^6.1.0"
-jest@24.9.0:
- version "24.9.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
- integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
+jest@24.1.0:
+ version "24.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jest/-/jest-24.1.0.tgz#b1e1135caefcf2397950ecf7f90e395fde866fd2"
+ integrity sha512-+q91L65kypqklvlRFfXfdzUKyngQLOcwGhXQaLmVHv+d09LkNXuBuGxlofTFW42XMzu3giIcChchTsCNUjQ78A==
dependencies:
import-local "^2.0.0"
- jest-cli "^24.9.0"
+ jest-cli "^24.1.0"
-js-beautify@^1.10.0:
+js-beautify@^1.10.2:
version "1.10.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178"
integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ==
@@ -6721,7 +6931,7 @@ js-tokens@^3.0.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-js-yaml@^3.13.1, js-yaml@^3.9.0:
+js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.9.0:
version "3.13.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -6766,36 +6976,36 @@ jsdom@^11.5.1:
ws "^5.2.0"
xml-name-validator "^3.0.0"
-jsdom@^15.2.1:
- version "15.2.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
- integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
+jsdom@^13.0.0:
+ version "13.2.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/jsdom/-/jsdom-13.2.0.tgz#b1a0dbdadc255435262be8ea3723d2dba0d7eb3a"
+ integrity sha512-cG1NtMWO9hWpqRNRR3dSvEQa8bFI6iLlqU2x4kwX51FQjp0qus8T9aBaAO6iGp3DeBrhdwuKxckknohkmfvsFw==
dependencies:
abab "^2.0.0"
- acorn "^7.1.0"
- acorn-globals "^4.3.2"
+ acorn "^6.0.4"
+ acorn-globals "^4.3.0"
array-equal "^1.0.0"
- cssom "^0.4.1"
- cssstyle "^2.0.0"
+ cssom "^0.3.4"
+ cssstyle "^1.1.1"
data-urls "^1.1.0"
domexception "^1.0.1"
- escodegen "^1.11.1"
+ escodegen "^1.11.0"
html-encoding-sniffer "^1.0.2"
- nwsapi "^2.2.0"
+ nwsapi "^2.0.9"
parse5 "5.1.0"
pn "^1.1.0"
request "^2.88.0"
- request-promise-native "^1.0.7"
- saxes "^3.1.9"
+ request-promise-native "^1.0.5"
+ saxes "^3.1.5"
symbol-tree "^3.2.2"
- tough-cookie "^3.0.1"
+ tough-cookie "^2.5.0"
w3c-hr-time "^1.0.1"
- w3c-xmlserializer "^1.1.2"
+ w3c-xmlserializer "^1.0.1"
webidl-conversions "^4.0.2"
whatwg-encoding "^1.0.5"
whatwg-mimetype "^2.3.0"
whatwg-url "^7.0.0"
- ws "^7.0.0"
+ ws "^6.1.2"
xml-name-validator "^3.0.0"
jsesc@^1.3.0:
@@ -6838,6 +7048,11 @@ json-schema@0.2.3:
resolved "https://nexus.ci.psu.edu/repository/npm-all/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -7010,7 +7225,7 @@ leven@^3.1.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-levn@~0.3.0:
+levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
@@ -7209,11 +7424,6 @@ lodash.clonedeep@^4.5.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-lodash.debounce@^4.0.8:
- version "4.0.8"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
- integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
-
lodash.ismatch@^4.4.0:
version "4.4.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
@@ -7302,12 +7512,7 @@ log-update@^2.3.0:
cli-cursor "^2.0.0"
wrap-ansi "^3.0.1"
-loglevel-plugin-prefix@^0.8.4:
- version "0.8.4"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644"
- integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==
-
-loglevel@^1.6.3, loglevel@^1.6.4:
+loglevel@^1.6.4:
version "1.6.6"
resolved "https://nexus.ci.psu.edu/repository/npm-all/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312"
integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==
@@ -7474,6 +7679,11 @@ material-schematics@^1.0.23:
parse5 "^3.0.3"
typescript "^2.5.2"
+math-random@^1.0.1:
+ version "1.0.4"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
+ integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
+
md5.js@^1.3.4:
version "1.3.5"
resolved "https://nexus.ci.psu.edu/repository/npm-all/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@@ -7589,6 +7799,25 @@ methods@~1.1.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+micromatch@^2.3.11:
+ version "2.3.11"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://nexus.ci.psu.edu/repository/npm-all/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
@@ -7757,6 +7986,11 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.
dependencies:
minimist "0.0.8"
+mockdate@^2.0.5:
+ version "2.0.5"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/mockdate/-/mockdate-2.0.5.tgz#70c6abf9ed4b2dae65c81dfc170dd1a5cec53620"
+ integrity sha512-ST0PnThzWKcgSLyc+ugLVql45PvESt3Ul/wrdV/OPc/6Pr8dbLAIJsN1cIp41FLzbN+srVTNIRn+5Cju0nyV6A==
+
modify-values@^1.0.0:
version "1.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
@@ -7863,7 +8097,7 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
-ng-packagr@^5.1.0:
+ng-packagr@^5.4.0:
version "5.7.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ng-packagr/-/ng-packagr-5.7.1.tgz#8e082e38e7b6089296bf0491f2e5b29122f8e08d"
integrity sha512-NDAUcMtLyZnF3bP6JtC3ANpIQRclRDPilF7C0DsjQuIz1q0V3mT7f1PwV0jnRWy8iRpSZmJZr6AGl736gloHtQ==
@@ -7896,6 +8130,13 @@ ng-packagr@^5.1.0:
terser "^4.1.2"
update-notifier "^3.0.0"
+ngx-cookie@^4.1.2:
+ version "4.1.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/ngx-cookie/-/ngx-cookie-4.1.2.tgz#ab2fafc6ee7f23b7ad92f8427dc714894e60aa31"
+ integrity sha512-BU3q+116mSQZvf8WsnKDxyWFy10LtxSvZz1YIjD7pmaSFpiKdWmHTHn0qLgm3OoIL9TfInQ7Ij46rKJWPD+4Kw==
+ dependencies:
+ tslib "^1.9.0"
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://nexus.ci.psu.edu/repository/npm-all/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8013,7 +8254,7 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
-normalize-path@^2.1.1:
+normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
@@ -8172,7 +8413,7 @@ number-is-nan@^1.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-nwsapi@^2.0.7, nwsapi@^2.2.0:
+nwsapi@^2.0.7, nwsapi@^2.0.9:
version "2.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
@@ -8236,6 +8477,14 @@ object.getownpropertydescriptors@^2.0.3:
define-properties "^1.1.2"
es-abstract "^1.5.1"
+object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
object.pick@^1.3.0:
version "1.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -8318,7 +8567,7 @@ optimist@^0.6.1:
minimist "~0.0.1"
wordwrap "~0.0.2"
-optionator@^0.8.1:
+optionator@^0.8.1, optionator@^0.8.2:
version "0.8.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
@@ -8567,6 +8816,16 @@ parse-github-repo-url@^1.3.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50"
integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A=
+parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
parse-json@^2.2.0:
version "2.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@@ -8889,6 +9148,11 @@ prepend-http@^2.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+ integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
+
prettier@1.16.4:
version "1.16.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717"
@@ -8899,17 +9163,7 @@ prettier@1.18.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
-prettier@1.19.1:
- version "1.19.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
- integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
-
-pretty-bytes@^5.3.0:
- version "5.3.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
- integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==
-
-pretty-format@^24.0.0, pretty-format@^24.9.0:
+pretty-format@^24.9.0:
version "24.9.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
@@ -8934,6 +9188,11 @@ process@^0.11.10:
resolved "https://nexus.ci.psu.edu/repository/npm-all/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@@ -9104,6 +9363,15 @@ ramda@0.24.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857"
integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc=
+randomatic@^3.0.0:
+ version "3.1.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
+ integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
+ dependencies:
+ is-number "^4.0.0"
+ kind-of "^6.0.0"
+ math-random "^1.0.1"
+
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -9357,6 +9625,13 @@ regenerator-transform@^0.14.0:
dependencies:
private "^0.1.6"
+regex-cache@^0.4.2:
+ version "0.4.4"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
+ dependencies:
+ is-equal-shallow "^0.1.3"
+
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -9372,6 +9647,11 @@ regexp.prototype.flags@^1.2.0:
dependencies:
define-properties "^1.1.2"
+regexpp@^2.0.1:
+ version "2.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+
regexpu-core@^1.0.0:
version "1.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
@@ -9442,7 +9722,7 @@ repeat-element@^1.1.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-repeat-string@^1.6.1:
+repeat-string@^1.5.2, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -9468,7 +9748,7 @@ request-promise-core@1.1.3:
dependencies:
lodash "^4.17.15"
-request-promise-native@^1.0.5, request-promise-native@^1.0.7:
+request-promise-native@^1.0.5:
version "1.0.8"
resolved "https://nexus.ci.psu.edu/repository/npm-all/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
@@ -9638,6 +9918,13 @@ right-pad@^1.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0"
integrity sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=
+rimraf@2.6.3:
+ version "2.6.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
rimraf@3.0.0, rimraf@^3.0.0:
version "3.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b"
@@ -9742,7 +10029,7 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
-rxjs@6.4.0:
+rxjs@6.4.0, rxjs@~6.4.0:
version "6.4.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504"
integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==
@@ -9756,7 +10043,7 @@ rxjs@^5.0.0-beta.11, rxjs@^5.5.2:
dependencies:
symbol-observable "1.0.1"
-rxjs@^6.0.0, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@~6.5.3:
+rxjs@^6.0.0, rxjs@^6.3.3, rxjs@^6.4.0:
version "6.5.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
@@ -9818,7 +10105,7 @@ sass@1.22.9:
dependencies:
chokidar ">=2.0.0 <4.0.0"
-sass@^1.17.3, sass@^1.22.9:
+sass@^1.17.3:
version "1.23.7"
resolved "https://nexus.ci.psu.edu/repository/npm-all/sass/-/sass-1.23.7.tgz#090254e006af1219d442f1bff31e139d5e085dff"
integrity sha512-cYgc0fanwIpi0rXisGxl+/wadVQ/HX3RhpdRcjLdj2o2ye/sxUTpAxIhbmJy3PLQgRFbf6Pn8Jsrta2vdXcoOQ==
@@ -9835,7 +10122,7 @@ sax@^1.2.4, sax@~1.2.4:
resolved "https://nexus.ci.psu.edu/repository/npm-all/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-saxes@^3.1.9:
+saxes@^3.1.5:
version "3.1.11"
resolved "https://nexus.ci.psu.edu/repository/npm-all/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
@@ -9866,30 +10153,6 @@ schema-utils@^2.0.0, schema-utils@^2.0.1:
ajv "^6.10.2"
ajv-keywords "^3.4.1"
-scss-bundle@^3.0.2:
- version "3.0.2"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/scss-bundle/-/scss-bundle-3.0.2.tgz#c6fd4d8738a938584070210beb9bd5eb69d87bbb"
- integrity sha512-6OUFD+bD1ko/nrcXEGQ58NY/pTAQyj3LBfUyCpDeplcs8m8U7CWAfSuK49BrV5PEUGRXEh3oiETxqeG1vJSvrA==
- dependencies:
- "@types/archy" "^0.0.31"
- "@types/debug" "^4.1.5"
- "@types/fs-extra" "^8.0.0"
- "@types/glob" "^7.1.1"
- "@types/lodash.debounce" "^4.0.6"
- "@types/sass" "^1.16.0"
- archy "^1.0.0"
- chalk "^2.4.2"
- chokidar "^3.0.2"
- commander "^3.0.0"
- fs-extra "^8.1.0"
- globs "^0.1.4"
- lodash.debounce "^4.0.8"
- loglevel "^1.6.3"
- loglevel-plugin-prefix "^0.8.4"
- pretty-bytes "^5.3.0"
- sass "^1.22.9"
- tslib "^1.10.0"
-
select-hose@^2.0.0:
version "2.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
@@ -9938,7 +10201,7 @@ semver@5.4.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==
-semver@6.3.0, semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
+semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -10083,6 +10346,14 @@ shellwords@^0.1.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+short-uuid@^3.1.1:
+ version "3.1.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/short-uuid/-/short-uuid-3.1.1.tgz#3ff427074b5fa7822c3793994d18a7a82e2f73a4"
+ integrity sha512-7dI69xtJYpTIbg44R6JSgrbDtZFuZ9vAwwmnF/L0PinykbFrhQ7V8omKsQcVw1TP0nYJ7uQp1PN6/aVMkzQFGQ==
+ dependencies:
+ any-base "^1.1.0"
+ uuid "^3.3.2"
+
sigmund@^1.0.1:
version "1.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
@@ -10118,6 +10389,15 @@ slice-ansi@0.0.4:
resolved "https://nexus.ci.psu.edu/repository/npm-all/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
smart-buffer@^4.1.0:
version "4.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
@@ -10622,7 +10902,7 @@ strip-json-comments@2.0.1, strip-json-comments@~2.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-strip-json-comments@3.0.1:
+strip-json-comments@3.0.1, strip-json-comments@^3.0.1:
version "3.0.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
@@ -10704,6 +10984,16 @@ symbol-tree@^3.2.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+table@^5.2.3:
+ version "5.4.6"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.0.0"
+
tapable@^1.0.0, tapable@^1.1.3:
version "1.1.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@@ -10797,6 +11087,11 @@ text-extensions@^1.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26"
integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
throat@^4.0.0:
version "4.1.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
@@ -10915,7 +11210,7 @@ toidentifier@1.0.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-tough-cookie@^2.3.3, tough-cookie@^2.3.4:
+tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0:
version "2.5.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -10923,15 +11218,6 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@^3.0.1:
- version "3.0.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
- integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
- dependencies:
- ip-regex "^2.1.0"
- psl "^1.1.28"
- punycode "^2.1.1"
-
tough-cookie@~2.4.3:
version "2.4.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
@@ -10977,7 +11263,22 @@ tryer@^1.0.1:
resolved "https://nexus.ci.psu.edu/repository/npm-all/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
-ts-jest@24.2.0, ts-jest@^24.0.0:
+ts-jest@24.0.0:
+ version "24.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/ts-jest/-/ts-jest-24.0.0.tgz#3f26bf2ec1fa584863a5a9c29bd8717d549efbf6"
+ integrity sha512-o8BO3TkMREpAATaFTrXkovMsCpBl2z4NDBoLJuWZcJJj1ijI49UnvDMfVpj+iogn/Jl8Pbhuei5nc/Ti+frEHw==
+ dependencies:
+ bs-logger "0.x"
+ buffer-from "1.x"
+ fast-json-stable-stringify "2.x"
+ json5 "2.x"
+ make-error "1.x"
+ mkdirp "0.x"
+ resolve "1.x"
+ semver "^5.5"
+ yargs-parser "10.x"
+
+ts-jest@^24.0.0:
version "24.2.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ts-jest/-/ts-jest-24.2.0.tgz#7abca28c2b4b0a1fdd715cd667d65d047ea4e768"
integrity sha512-Yc+HLyldlIC9iIK8xEN7tV960Or56N49MDP7hubCZUeI7EbIOTsas6rXCMB4kQjLACJ7eDOF4xWEO5qumpKsag==
@@ -11004,16 +11305,24 @@ ts-loader@5.3.1:
micromatch "^3.1.4"
semver "^5.0.1"
-ts-node@~8.5.4:
- version "8.5.4"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/ts-node/-/ts-node-8.5.4.tgz#a152add11fa19c221d0b48962c210cf467262ab2"
- integrity sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==
+ts-mocks@^2.6.0:
+ version "2.6.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/ts-mocks/-/ts-mocks-2.6.0.tgz#fc4aaaae9701d23af9a794fd2d6f952c8f7b6f0e"
+ integrity sha512-ZnAf04fPS4f8EEFKgh8TjbjY57PFxgmjoleCmFIc5P6dXlOGHJQYWQybwMJxf40mFqc1UZWMQn36z1zMsvQCKA==
+
+ts-node@~7.0.0:
+ version "7.0.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf"
+ integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==
dependencies:
- arg "^4.1.0"
- diff "^4.0.1"
+ arrify "^1.0.0"
+ buffer-from "^1.1.0"
+ diff "^3.1.0"
make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
source-map-support "^0.5.6"
- yn "^3.0.0"
+ yn "^2.0.0"
tsconfig-paths-webpack-plugin@3.2.0:
version "3.2.0"
@@ -11034,7 +11343,7 @@ tsconfig-paths@^3.4.0:
minimist "^1.2.0"
strip-bom "^3.0.0"
-tsickle@^0.37.1:
+tsickle@^0.37.0:
version "0.37.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/tsickle/-/tsickle-0.37.1.tgz#2f8a87c1b15766e866457bd06fb6c0e0d84eed09"
integrity sha512-0GwgOJEnsmRsrONXCvcbAWY0CvdqF3UugPVoupUpA8Ul0qCPTuqqq0ou/hLqtKZOyyulzCP6MYRjb9/J1g9bJg==
@@ -11044,26 +11353,25 @@ tslib@1.10.0, tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
resolved "https://nexus.ci.psu.edu/repository/npm-all/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
-tslint@~5.20.1:
- version "5.20.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d"
- integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==
+tslint@~5.11.0:
+ version "5.11.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"
+ integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0=
dependencies:
- "@babel/code-frame" "^7.0.0"
+ babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"
chalk "^2.3.0"
commander "^2.12.1"
- diff "^4.0.1"
+ diff "^3.2.0"
glob "^7.1.1"
- js-yaml "^3.13.1"
+ js-yaml "^3.7.0"
minimatch "^3.0.4"
- mkdirp "^0.5.1"
resolve "^1.3.2"
semver "^5.3.0"
tslib "^1.8.0"
- tsutils "^2.29.0"
+ tsutils "^2.27.2"
-tsutils@^2.29.0:
+tsutils@^2.27.2:
version "2.29.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
@@ -11122,7 +11430,7 @@ typedarray@^0.0.6:
resolved "https://nexus.ci.psu.edu/repository/npm-all/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typescript@3.5.3:
+typescript@3.5.3, typescript@~3.5.3:
version "3.5.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
@@ -11142,11 +11450,6 @@ typescript@~2.6.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4"
integrity sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=
-typescript@~3.4.5:
- version "3.4.5"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99"
- integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==
-
uglify-js@^3.1.4:
version "3.7.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
@@ -11348,6 +11651,11 @@ uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2:
resolved "https://nexus.ci.psu.edu/repository/npm-all/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
+v8-compile-cache@^2.0.3:
+ version "2.1.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
+ integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://nexus.ci.psu.edu/repository/npm-all/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -11394,7 +11702,7 @@ w3c-hr-time@^1.0.1:
dependencies:
browser-process-hrtime "^0.1.2"
-w3c-xmlserializer@^1.1.2:
+w3c-xmlserializer@^1.0.1:
version "1.1.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
@@ -11572,6 +11880,35 @@ webpack@4.39.2:
watchpack "^1.6.0"
webpack-sources "^1.4.1"
+webpack@^4.18.1:
+ version "4.41.2"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e"
+ integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/wasm-edit" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ acorn "^6.2.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.1.0"
+ eslint-scope "^4.0.3"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.1"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.1"
+ watchpack "^1.6.0"
+ webpack-sources "^1.4.1"
+
websocket-driver@>=0.5.1:
version "0.7.3"
resolved "https://nexus.ci.psu.edu/repository/npm-all/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
@@ -11726,6 +12063,13 @@ write-file-atomic@^2.0.0:
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
+write@1.0.3:
+ version "1.0.3"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
+ dependencies:
+ mkdirp "^0.5.1"
+
ws@^5.2.0:
version "5.2.2"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
@@ -11733,20 +12077,13 @@ ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
-ws@^6.0.0, ws@^6.2.1:
+ws@^6.0.0, ws@^6.1.2, ws@^6.2.1:
version "6.2.1"
resolved "https://nexus.ci.psu.edu/repository/npm-all/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
dependencies:
async-limiter "~1.0.0"
-ws@^7.0.0:
- version "7.2.0"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7"
- integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg==
- dependencies:
- async-limiter "^1.0.0"
-
xdg-basedir@^3.0.0:
version "3.0.0"
resolved "https://nexus.ci.psu.edu/repository/npm-all/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
@@ -11915,12 +12252,12 @@ yauzl@2.4.1:
dependencies:
fd-slicer "~1.0.1"
-yn@^3.0.0:
- version "3.1.1"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
- integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
+ integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=
-zone.js@^0.10.2:
- version "0.10.2"
- resolved "https://nexus.ci.psu.edu/repository/npm-all/zone.js/-/zone.js-0.10.2.tgz#67ca084b3116fc33fc40435e0d5ea40a207e392e"
- integrity sha512-UAYfiuvxLN4oyuqhJwd21Uxb4CNawrq6fPS/05Su5L4G+1TN+HVDJMUHNMobVQDFJRir2cLAODXwluaOKB7HFg==
+zone.js@^0.9.1:
+ version "0.9.1"
+ resolved "https://nexus.ci.psu.edu/repository/npm-all/zone.js/-/zone.js-0.9.1.tgz#e37c6e5c54c13fae4de26b5ffe8d8e9212da6d9b"
+ integrity sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==