diff --git a/README.md b/README.md index 9a24fb1..f186ae3 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,6 @@ or docker run --name=crnk -p 8080:8080 crnk/example - -The frontend application will be available at - - http://localhost:8080/ - The JSON API endpoint will be available at: http://localhost:8080/api/ @@ -64,31 +59,20 @@ Some further URLs to play around that show the power of Crnk: http://127.0.0.1:8080/api/movie?filter[name][EQ]=Iron Man http://127.0.0.1:8080/api/movie?filter[name][LIKE]=Iron http://127.0.0.1:8080/api/schedule - http://127.0.0.1:8080/api/scheduleDto http://127.0.0.1:8080/api/meta/resource http://127.0.0.1:8080/api/vote?fields=name // demos fields set & performance issues http://127.0.0.1:8080/api/secrets // demos error - -To debug the frontend application go into `crnk-example-frontend` and use: - - yarn install - yarn run start - -Note that Gradle downloads a nodejs and yarn distribution into the -`.gradle` directory you may make use of (see https://github.com/srs/gradle-node-plugin). +The `crnk-example-service` project showcases: -## Backend application - -The `crnk-example-service` project is the backend application showcasing: - -- integration of Crnk into Spring Boot -- exposing entities with crnk-jpa using `ExampleJpaModuleConfigurer`. -- exception mapping with `CustomExceptionMapper`. -- manually writing a resource repository with `VoteRepository` (making use of Thread.sleep to simulate heavy work) -- a very simple in-memory repository with`ScreeningRepository`. -- using `@JsonApiRelationId` with `ScreeningRepository` to +- Integration of Crnk into Spring Boot +- Exposing entities with crnk-jpa using `MovieRepository`, `PersonRepository`, etc. extending `JpaEntityRepositoryBase`. + Behind the scenes the `QuerySpec` is translated to an efficient JPA Criteria query. +- A simple in-memory repository with`ScreeningRepository` that keeps all resources in a map. +- A manually written repository with `VoteRepository`. It makes use of Thread.sleep to simulate heavy work. +- A custom exception is introduced with `CustomExceptionMapper` that is mapped to a JSON API error and HTTP status code. +- using `@JsonApiRelationId` with `ScreeningRepository` to handle use cases where the related ID is easy to get, which in turn allows to omit having to implement relationship repositories. - implementing a relationship repository with`AttributeChangeRelationshipRepository`. @@ -106,85 +90,12 @@ The `crnk-example-service` project is the backend application showcasing: - `ExampleSecurityConfigurer` to setup role-based access control. - `ExampleDecoratorFactory` to intercept and modify requests to repositories. - The `TestDataLoader` will automatically setup some test data upon start. Note that the project is structured based on the the use Crnk features like JPA or decoration. For real-world application we do not recommend that, but rather structure the application based on business value. -## Frontend application - -The `crnk-example-frontend` project is an Angular application showcasing the -use of JSON API: - -- https://github.com/ngrx/platform is used to do state management with Angular. - For a tutorial see http://onehungrymind.com/build-better-angular-2-application-redux-ngrx/. -- https://github.com/abdulhaq-e/ngrx-json-api is used as Angular JSON API library. -- https://www.npmjs.com/package/@crnk/angular-ngrx is used to simplify binding - of frontend components to JSON API. - see http://www.crnk.io/releases/stable/documentation/#_angular_development_with_ngrx. -- UI components and styling is taken from Angular Material. Some further PrimeNG components are - used (currently the table). You may use any UI component libary of your choice. Only the table - binding of @crnk/angular-ngrx may need to be generalized (currently still PrimeNG-only to a small part). - -In more detail: - -- `AppModule` initializes the application. -- `crnk-typescript-gen` is setup in Gradle to generate resource stubs into `src/resources`. -- `demo.scss` does some styling, work in progress. Google Material does a good job in general. PrimeNG not such much - without the commercial themes that are not usable in OSS projects. -- `MovieModule` shows a typical CRUD pattern with a table (explorer) and editor. - - The explorer supports sorting, filtering and pagination. - - The explorer allows to create an new resource with an editor. - - The explorer allows to be refreshed with a button. - - The editor can only be saved if all inputs are valid and there is a dirty value. - - The editor allows to delete the record. - - The editor makes use of the generated resource stubs to gain type-safety. - - The editor attempts to map JSON API error to the individual form fields. If that is not possible - it will be shown on the top of the editor (such as for `OptimisticLockException` that concerns the entire changed resource). - Leaving the name field empty will give an error. Or editing the resource in two windows concurrently will give conflict - error for the later. -- `AppResourceResolve` is used during routing to load the necessary data for a screen. Here you can make use of advanced - loading patterns like inclusions, sparse field sets, loading what has not already be loaded or isolating different - parts of the application into different ngrx-json-api zones. The current example is still rather simple. -- `AppSnackBarService` shows the the user when a resource was successfully created or saved. Notifications - are obtained from the store. `AppNotificationEffects` is responsible for putting those notifications into the store. -- `TranslateModule` and https://momentjs.com/ is used to do internationalization. -- `app/common/error` displays error screens and provides components for form validation. - - `ErrorRoutingService` triggers the navigation to the various error pages if a service call fails with certain - error code. - - `ErrorComponent` displays a single error. Currently it has special handling of `OptimisticLockException` - with status code `409`. -- `LoadingService` displays a loading/busy screen if a resolver within navigation or a JSON API modification - takes a lot of time. Have a look at the `vote` screen where the services have been artificially slowed down with - `Thread.sleep(...)`. -- `RouterEffects` provides various routing actions for ngrx. -- `AppNavigationEffects` handles the navigation between explorer and editor screen. - - Upon successful creation of a new resource, it will navigate to the new, permanent url. - - Upon successful deletion of a resource, it will navigate back to the explorer. -- use of `https://github.com/serhiisol/ngx-auth` to handle authentication with OAuth setup on backend. -- `AuthenticationService` performs a redirect to the GitHub login page in case of an unauthenticated REST call. - In the future we may switch to token-based setup (see `SecurityConfiguration` above for more information). - -More to come... - - -## Roadmap - -There are plenty of possible improvements: - -- UI polishing -- Testing setup for frontend. -- Refine the data model. -- Security Setup. -- Inline table editing for frontend. -- More complex table filtering. -- More complex editor with more widgets and nested resources. -- More complex logic within repositories, such as an approval flow. -- More complex data loading patterns in `AppResourceResolve`. -- ... - Feedback and PRs very welcomed! diff --git a/crnk-example-frontend/angular.json b/crnk-example-frontend/angular.json deleted file mode 100644 index f4447f0..0000000 --- a/crnk-example-frontend/angular.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "crnk-example-frontend": { - "root": "", - "sourceRoot": "src", - "projectType": "application", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "build/angular/static", - "index": "src/index.html", - "main": "src/main.ts", - "tsConfig": "src/tsconfig.json", - "preserveSymlinks": true, - "polyfills": "src/polyfills.ts", - "assets": [ - "src/assets" - ], - "styles": [ - "node_modules/primeng/resources/primeng.min.css", - "src/assets/demo.scss", - "node_modules/font-awesome/css/font-awesome.min.css" - ], - "scripts": [ - "node_modules/moment/moment.js" - ] - }, - "configurations": { - "production": { - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ] - }, - "local": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.local.ts" - } - ] - } - } - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "crnk-example-frontend:build" - }, - "configurations": { - "production": { - "browserTarget": "crnk-example-frontend:build:production" - }, - "local": { - "browserTarget": "crnk-example-frontend:build:local" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "crnk-example-frontend:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "karmaConfig": "./karma.conf.js", - "polyfills": "src/polyfills.ts", - "scripts": [ - "node_modules/moment/moment.js" - ], - "styles": [ - "node_modules/primeng/resources/primeng.min.css", - "src/assets/demo.scss", - "node_modules/font-awesome/css/font-awesome.min.css" - ], - "assets": [ - "src/assets" - ] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "src/tsconfig.json" - ], - "exclude": [ - "**/node_modules/**" - ] - } - } - } - }, - "crnk-example-frontend-e2e": { - "root": "", - "sourceRoot": "e2e", - "projectType": "application", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "./protractor.conf.js", - "devServerTarget": "crnk-example-frontend:serve" - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "e2e/tsconfig.e2e.json" - ], - "exclude": [ - "**/node_modules/**" - ] - } - } - } - } - }, - "defaultProject": "crnk-example-frontend", - "schematics": { - "@schematics/angular:component": { - "prefix": "demo", - "styleext": "scss" - }, - "@schematics/angular:directive": { - "prefix": "demo" - } - } -} \ No newline at end of file diff --git a/crnk-example-frontend/build.gradle b/crnk-example-frontend/build.gradle deleted file mode 100644 index 08f2117..0000000 --- a/crnk-example-frontend/build.gradle +++ /dev/null @@ -1,94 +0,0 @@ -apply plugin: 'com.moowork.node' -apply plugin: 'java' - -node { - version = '8.9.1' - yarnVersion = '1.6.0' - download = true -} - -configurations { - typescriptGenRuntime -} - -dependencies { - typescriptGenRuntime project(':crnk-example-service') -} - -apply plugin: 'crnk-gen-typescript' -typescriptGen { - generateExpressions = true - genDir = file('src/resources') - runtime { - configuration = 'typescriptGenRuntime' - spring { - profile = 'test' - configuration = 'io.crnk.example.service.ExampleConfiguration' - } - } -} -typescriptGen.init() - -generateTypescript.dependsOn ':crnk-example-service:jar' - - -task yarnRunStart(type: YarnTask) { - group = 'node' - dependsOn yarn - yarnCommand = ['run', 'start'] -} - - -task yarnRunBuild(type: YarnTask) { - group = 'node' - dependsOn yarn - dependsOn generateTypescript - - yarnCommand = ['run', 'build'] - inputs.dir 'src' - inputs.files 'angular-cli.json', 'package.json' - outputs.dir 'build/angular/static' -} - -task yarnStart(type: YarnTask) { - dependsOn yarn - yarnCommand = ['run', 'start'] -} - -task lint(type: YarnTask) { - description = "Run TSLint code analysis" - group = "Verification" - dependsOn yarn - - yarnCommand = ['run', 'lint'] - - inputs.dir 'src/app' - - def uptodateMarkerFile = file "${buildDir}/tslint.uptodate" - outputs.files uptodateMarkerFile - - doLast { - uptodateMarkerFile.with { - parentFile.mkdir() - createNewFile() - write System.currentTimeMillis() as String - } - } -} - -assemble.dependsOn 'yarnRunBuild' - -check.dependsOn lint - -clean.doFirst { - delete "node_modules/" -} - -sourceSets { - main { - resources { - srcDir yarnRunBuild.outputs.files.singleFile.parentFile - } - } -} - diff --git a/crnk-example-frontend/dotgitignore b/crnk-example-frontend/dotgitignore deleted file mode 100644 index 3e8441b..0000000 --- a/crnk-example-frontend/dotgitignore +++ /dev/null @@ -1,41 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp - -# dependencies -/node_modules - -# IDEs and editors -/.idea -.movie -.classpath -.c9/ -*.launch -.settings/ - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/roles.json -!.vscode/launch.json -!.vscode/extensions.json - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log -/typings -src/environments/environment.local.ts - -# e2e -/e2e/*.js -/e2e/*.map - -#System Files -.DS_Store -Thumbs.db diff --git a/crnk-example-frontend/e2e/app.e2e-spec.ts b/crnk-example-frontend/e2e/app.e2e-spec.ts deleted file mode 100644 index 4ba500d..0000000 --- a/crnk-example-frontend/e2e/app.e2e-spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {} from 'jasmine'; -import { Ng2RealApp } from './app.po'; - -describe('ng-demo App', () => { - let page: Ng2RealApp; - - beforeEach(() => { - page = new Ng2RealApp(); - }); - - it('should display message saying app works', () => { - page.navigateTo(); - expect(page.getParagraphText()).toContain('conduit'); - }); -}); diff --git a/crnk-example-frontend/e2e/app.po.ts b/crnk-example-frontend/e2e/app.po.ts deleted file mode 100644 index fa4f436..0000000 --- a/crnk-example-frontend/e2e/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, element, by } from 'protractor'; - -export class Ng2RealApp { - navigateTo() { - return browser.get('/'); - } - - getParagraphText() { - return element(by.css('.logo-font')).getText(); - } -} diff --git a/crnk-example-frontend/e2e/tsconfig.e2e.json b/crnk-example-frontend/e2e/tsconfig.e2e.json deleted file mode 100644 index ad7792f..0000000 --- a/crnk-example-frontend/e2e/tsconfig.e2e.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../build/e2e", - "module": "commonjs", - "target": "es5", - "typeRoots": [ - "../node_modules/@types" - ], - "types":[ - "jasmine", - "node" - ] - } -} diff --git a/crnk-example-frontend/karma.conf.js b/crnk-example-frontend/karma.conf.js deleted file mode 100644 index 3eb2793..0000000 --- a/crnk-example-frontend/karma.conf.js +++ /dev/null @@ -1,58 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('@angular-devkit/build-angular/plugins/karma'), - require('karma-chrome-launcher'), - require('karma-firefox-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('karma-junit-reporter') - ], - client: { - // leave Jasmine Spec Runner output visible in browser - clearContext: false - }, - files: [ - {pattern: './src/test.ts', watched: false} - ], - preprocessors: { - - }, - mime: { - 'text/x-typescript': ['ts', 'tsx'] - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, 'coverage'), reports: ['html', 'lcovonly'], - fixWebpackSourcePaths: true - }, - angularCli: { - config: './.angular-cli.json', - environment: 'dev' - }, - reporters: ['progress', 'junit', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Firefox'], - singleRun: false, - browserNoActivityTimeout: 30000, - junitReporter: { - outputDir: 'build/test/log/karma', - outputFile: 'unit.xml', - useBrowserName: false, - suite: 'moap-movie-management', - nameFormatter: function classNameOmittingNameFormatter(browser, result) { - var descriptions = result.suite.slice(1); - descriptions.push(result.description); - return descriptions.join(' '); - } - } - }); -}; diff --git a/crnk-example-frontend/package.json b/crnk-example-frontend/package.json deleted file mode 100644 index 7749e41..0000000 --- a/crnk-example-frontend/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "@crnk/example-frontend", - "version": "0.0.0", - "angular-cli": {}, - "scripts": { - "ng": "ng", - "build": "yarn install && node_modules/.bin/ng build --prod", - "build:debug": "yarn install && node_modules/.bin/ng build --target=production --environment=prod --verbose --no-progress --aot=false -sm", - "build:dev": "yarn install && ng build", - "start": "yarn install && ng serve --proxy-config proxy.conf.json", - "test": "ng test --single-run", - "lint": "ng lint crnk-example-frontend --fix && ng lint crnk-example-frontend-e2e --fix", - "e2e": "ng e2e" - }, - "main": "index.js", - "authors": [ - "Remo Meier" - ], - "dependencies": { - "@angular/animations": "^6.0.2", - "@angular/cdk": "^6.0.2", - "@angular/common": "^6.0.2", - "@angular/core": "^6.0.2", - "@angular/forms": "^6.0.2", - "@angular/http": "^6.0.2", - "@angular/material": "^6.0.2", - "@angular/platform-browser": "^6.0.2", - "@angular/platform-browser-dynamic": "^6.0.2", - "@angular/router": "^6.0.2", - "@crnk/angular-ngrx": "2.6.20180606171430", - "@ngrx/effects": "^6.0.0-beta.3", - "@ngrx/router-store": "^6.0.0-beta.3", - "@ngrx/store": "^6.0.0-beta.3", - "@ngrx/store-devtools": "^6.0.0-beta.3", - "@ngx-translate/core": "^9.0.1", - "@ngx-translate/http-loader": "^2.0.0", - "angular-oauth2-oidc": "^3.1.4", - "angular2-moment": "^1.3.3", - "chart.js": "^2.1.3", - "core-js": "^2.4.1", - "cuint": "^0.2.2", - "font-awesome": "^4.7.0", - "hammerjs": "^2.0.8", - "lodash": "^4.17.4", - "moment": "^2.8.1", - "ngrx-json-api": "^2.3.0", - "ngrx-store-freeze": "^0.1.9", - "ngx-auth": "^4.0.0", - "primeng": "^5.0.2", - "reselect": "^2.5.4", - "rxjs": "^6.1.0", - "rxjs-compat": "^6.1.0", - "ts-helpers": "^1.1.1", - "zone.js": "^0.8.14" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.6.3", - "@angular/cli": "^6.0.2", - "@angular/compiler": "^6.0.2", - "@angular/compiler-cli": "^6.0.2", - "@types/jasmine": "^2.5.38", - "@types/lodash": "^4.14.61", - "@types/node": "^6.0.42", - "codelyzer": "^4.0.2", - "jasmine-core": "^2.5.2", - "jasmine-reporters": "^2.2.1", - "jasmine-spec-reporter": "^3.2.0", - "karma": "^1.5.0", - "karma-chrome-launcher": "^2.0.0", - "karma-cli": "^1.0.1", - "karma-coverage-istanbul-reporter": "^1.0.0", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-jasmine-html-reporter": "^0.2.2", - "karma-junit-reporter": "^1.2.0", - "node-sass": "^4.5.3", - "protractor": "^5.1.0", - "ts-node": "^2.0.0", - "tslint": "5.7.0", - "tslint-eslint-rules": "4.1.1", - "typescript": "2.7.2" - } -} diff --git a/crnk-example-frontend/protractor.conf.js b/crnk-example-frontend/protractor.conf.js deleted file mode 100644 index 0986c8e..0000000 --- a/crnk-example-frontend/protractor.conf.js +++ /dev/null @@ -1,27 +0,0 @@ -const { SpecReporter } = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - beforeLaunch: function() { - require('ts-node').register({ - project: 'e2e/tsconfig.e2e.json' - }); - }, - onPrepare() { - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; diff --git a/crnk-example-frontend/proxy.conf.json b/crnk-example-frontend/proxy.conf.json deleted file mode 100644 index a86df19..0000000 --- a/crnk-example-frontend/proxy.conf.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "/api/*": { - "target": "http://localhost:8080/api", - "secure": false, - "pathRewrite": { - "^/api": "" - }, - "changeOrigin": true, - "logLevel": "debug" - } -} diff --git a/crnk-example-frontend/src/WEB-INF/web.xml b/crnk-example-frontend/src/WEB-INF/web.xml deleted file mode 100644 index b00a5d6..0000000 --- a/crnk-example-frontend/src/WEB-INF/web.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/crnk-example-frontend/src/app/app.component.html b/crnk-example-frontend/src/app/app.component.html deleted file mode 100644 index a0fcda7..0000000 --- a/crnk-example-frontend/src/app/app.component.html +++ /dev/null @@ -1,74 +0,0 @@ - - -
-
- -
-
- -
- -

Crnk Example

- - - - - - - {{ lang | uppercase }} - - - -
- - - - Documentation - -
-
-
-
- {{ 'app.txt.loggedInAs' | translate:{userName: login.attributes.userName} }} -
-
-
-
- -
- - - - - - - {{navItem.name}} - - - -
-
- -
-
- -
- -
-
- - -
- - - - diff --git a/crnk-example-frontend/src/app/app.component.scss b/crnk-example-frontend/src/app/app.component.scss deleted file mode 100644 index 0a4f6af..0000000 --- a/crnk-example-frontend/src/app/app.component.scss +++ /dev/null @@ -1,57 +0,0 @@ -body { - font-family: Roboto, 'Helvetica Neue', sans-serif; - - // Helps fonts on OSX looks more consistent with other systems - // Isn't currently in button styles due to performance concerns - * { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - .mat-sidenav { - // min-width: 15vw; - width: 200px; - - .mat-button { - width: 100%; - position: relative; - bottom: 0; - margin: 24px 0; - } - } - - .mat-toolbar { - .mat-icon { - cursor: pointer; - } - - .toolbar-fill-remaining-space { - // This fills the remaining space, by using flexbox. - flex: 1 1 auto; - } - - .mat-button-toggle-label-content { - font-size: 0.7em; - } - } - - - h1 { - font-size: 20px; - } - - .demo-content { - padding: 32px; - box-sizing: border-box; - } - -} - -/* -// stretch to screen size in fullscreen mode -.demo-content { - width: 100%; - height: 100%; - box-sizing: border-box; -} -*/ \ No newline at end of file diff --git a/crnk-example-frontend/src/app/app.component.ts b/crnk-example-frontend/src/app/app.component.ts deleted file mode 100644 index f39c360..0000000 --- a/crnk-example-frontend/src/app/app.component.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Component, ViewEncapsulation } from '@angular/core'; -import { Router } from '@angular/router'; -import { NgrxJsonApiService } from 'ngrx-json-api'; -import * as moment from 'moment'; - -import { AppLoadingService, AppSnackBarService, AppErrorRoutingService } from './common'; -import { Observable } from 'rxjs'; -import { Login, LoginListResult } from '../resources'; -import { AppLanguageService, LanguageCode } from './common/language/common.language'; -import { getAppState } from './store'; -import { Store } from '@ngrx/store'; -import {map} from 'rxjs/operators'; - - -@Component({ - selector: 'demo-app', - templateUrl: 'app.component.html', - styleUrls: ['app.component.scss'], - encapsulation: ViewEncapsulation.None -}) -export class AppComponent { - - login$: Observable; - currentLanguage$: Observable; - - navItems = [ - { name: 'Home', route: '/' }, - { name: 'Movies', route: '/movie' }, - { name: 'Persons', route: '/person' }, - { name: 'Votes', route: '/vote' }, - { name: 'Secrets', route: '/secret' } - ]; - - constructor( - store: Store, - public language: AppLanguageService, router: Router, jsonApi: NgrxJsonApiService, - public loading: AppLoadingService, - // listed here to force loading: - snaback: AppSnackBarService, - routingService: AppErrorRoutingService - ) { - this.login$ = jsonApi.selectManyResults('loginQueryId').pipe( - map((it: LoginListResult) => { - return it.data && it.data.length ? it.data[0] : undefined; - })); - - this.currentLanguage$ = store.select(getAppState).pipe(map(state => state.language)); - // make sure you use 2.8.1 version of earlier of moments, otherwise it will not be set globally - // => see https://github.com/moment/moment/issues/1797 - this.currentLanguage$.subscribe(lang => moment.locale(lang)); - } - -} diff --git a/crnk-example-frontend/src/app/app.module.ts b/crnk-example-frontend/src/app/app.module.ts deleted file mode 100644 index a8749ef..0000000 --- a/crnk-example-frontend/src/app/app.module.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { NgModule, APP_INITIALIZER } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { ActionReducerMap, StoreModule } from '@ngrx/store'; -import { EffectsModule } from '@ngrx/effects'; -import { NgrxJsonApiModule } from 'ngrx-json-api'; -import { HomeComponent } from './home'; -import { environment } from '../environments/environment'; -import { ROUTES } from './app.routes'; -import { CRNK_URL_BUILDER, CrnkOperationsModule, OperationsEffects } from '@crnk/angular-ngrx'; -import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; -import { TranslateHttpLoader } from '@ngx-translate/http-loader'; - -import { HttpClient, HttpClientModule } from '@angular/common/http'; -import { AppStoreModule } from './store/store.module'; -import { AppCommonModule } from './common/common.module'; -import { MovieModule } from './movie/movie.module'; -import { APP_BASE_HREF, CommonModule } from '@angular/common'; -import { - MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatDialogModule, - MatIconModule, MatInputModule, MatListModule, MatProgressBarModule, MatSidenavModule, MatSnackBarModule, MatSortModule, - MatTableModule, MatTabsModule, MatToolbarModule, MatTooltipModule -} from '@angular/material'; -import { AppComponent } from './app.component'; -import { StoreDevtoolsModule } from '@ngrx/store-devtools'; -import { PersonModule } from './person'; -import { VoteModule } from './vote'; -import { SecretModule } from './secret'; -import { LoginService } from './common/login/common.login'; -import { AppLanguageService } from './common/language/common.language'; - - -export function HttpLoaderFactory(http: HttpClient) { - return new TranslateHttpLoader(http, 'assets/i18n/', '.json'); -} - -export function load_login(loginService: LoginService) { - return () => loginService.retrieveDetails(); -} - -export function init_language(langService: AppLanguageService) { - return () => langService.initAppLanguage(); -} - -export const reducers: ActionReducerMap = {}; - -@NgModule({ - declarations: [ - AppComponent, - HomeComponent - ], - imports: [ - CommonModule, - BrowserModule, - BrowserAnimationsModule, - - HttpClientModule, - - NgrxJsonApiModule.configure({ - apiUrl: environment['demo.server.url'], - resourceDefinitions: [], - urlBuilder: CRNK_URL_BUILDER, - applyEnabled: false - }), - StoreModule.forRoot(reducers, { initialState: {} }), - EffectsModule.forRoot([OperationsEffects]), - CrnkOperationsModule, - !environment.production ? StoreDevtoolsModule.instrument() : [], - - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useFactory: HttpLoaderFactory, - deps: [HttpClient] - } - }), - - - AppCommonModule, - MovieModule, - VoteModule, - PersonModule, - SecretModule, - AppStoreModule, - - RouterModule.forRoot(ROUTES, { useHash: true }), - - MatSidenavModule, - MatIconModule, - MatInputModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatDialogModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - MatListModule, - MatSnackBarModule, - MatProgressBarModule, - - - /* - MatAutocompleteModule, - MatButtonToggleModule, - - MatChipsModule, - MatDatepickerModule, - MatExpansionModule, - MatGridListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - */ - /* - MatSliderModule, - MatSlideToggleModule, - MatStepperModule, - */ - - ], - providers: [ - { - provide: APP_BASE_HREF, - useValue: '/' - }, - LoginService, - { provide: APP_INITIALIZER, useFactory: load_login, deps: [LoginService], multi: true }, - { provide: APP_INITIALIZER, useFactory: init_language, deps: [AppLanguageService], multi: true } - ], - bootstrap: [ - AppComponent - ] -}) -export class AppModule { - -} diff --git a/crnk-example-frontend/src/app/app.routes.ts b/crnk-example-frontend/src/app/app.routes.ts deleted file mode 100644 index 1bba5f1..0000000 --- a/crnk-example-frontend/src/app/app.routes.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Routes } from '@angular/router'; -import { HomeComponent } from './home'; -import { NoContentComponent } from './common/error'; -import { PublicGuard } from 'ngx-auth'; - -// tag::routes[] -export const ROUTES: Routes = [ - { - path: '', - canActivate: [PublicGuard], - component: HomeComponent - }, - { - path: '**', - canActivate: [PublicGuard], - component: NoContentComponent - }, -]; -// tag::routes[] - diff --git a/crnk-example-frontend/src/app/common/auth/common.auth.module.ts b/crnk-example-frontend/src/app/common/auth/common.auth.module.ts deleted file mode 100644 index 89c8ef9..0000000 --- a/crnk-example-frontend/src/app/common/auth/common.auth.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { AUTH_SERVICE, AuthModule, PROTECTED_FALLBACK_PAGE_URI, PUBLIC_FALLBACK_PAGE_URI } from 'ngx-auth'; -import { AuthenticationService } from './common.auth.service'; -import { NgModule } from '@angular/core'; - - -@NgModule({ - imports: [ - AuthModule, - // OAuthModule.forRoot() - ], - providers: [ - { provide: PROTECTED_FALLBACK_PAGE_URI, useValue: '/' }, - { provide: PUBLIC_FALLBACK_PAGE_URI, useValue: 'http://localhost:8080/login/github' }, - { provide: AUTH_SERVICE, useClass: AuthenticationService } - ] -}) -export class CommonAuthModule { - -} \ No newline at end of file diff --git a/crnk-example-frontend/src/app/common/auth/common.auth.service.ts b/crnk-example-frontend/src/app/common/auth/common.auth.service.ts deleted file mode 100644 index 28d2b29..0000000 --- a/crnk-example-frontend/src/app/common/auth/common.auth.service.ts +++ /dev/null @@ -1,36 +0,0 @@ -import {of as observableOf, Observable } from 'rxjs'; -import { AuthService, PUBLIC_FALLBACK_PAGE_URI } from 'ngx-auth'; -import { Injectable, Injector } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http'; - -@Injectable() -// currently makes use of a session token provided by spring and a login page it is redirected to for authentication -// TODO consider moving example from session to token based approach -export class AuthenticationService implements AuthService { - - constructor(private http: HttpClient, private injector: Injector) {} - - public isAuthorized(): Observable { - return observableOf(true); - } - - public getAccessToken(): Observable { - return observableOf('NOT_A_TOKEN'); - } - - public refreshToken(): Observable { - const url = this.injector.get(PUBLIC_FALLBACK_PAGE_URI).toString(); - console.log('refreshToken', url); - window.location.href = url; - return observableOf('NOT_A_TOKEN'); - } - - public refreshShouldHappen(response: HttpErrorResponse): boolean { - console.log('refreshShouldHappen', response); - return response.status === 401; - } - - public verifyTokenRequest(url: string): boolean { - return false; - } -} diff --git a/crnk-example-frontend/src/app/common/auth/index.ts b/crnk-example-frontend/src/app/common/auth/index.ts deleted file mode 100644 index cec1aa6..0000000 --- a/crnk-example-frontend/src/app/common/auth/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './common.auth.service'; -export * from './common.auth.module'; diff --git a/crnk-example-frontend/src/app/common/common.module.ts b/crnk-example-frontend/src/app/common/common.module.ts deleted file mode 100644 index 9485a31..0000000 --- a/crnk-example-frontend/src/app/common/common.module.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { RouterModule, Routes } from '@angular/router'; -import '../rxjs-operators'; -import { NgModule } from '@angular/core'; -import { AppResourceResolve } from './common.resource.resolver'; -import { FormsModule } from '@angular/forms'; -import { CrnkBindingModule } from '@crnk/angular-ngrx'; -import { MessagesModule } from 'primeng/components/messages/messages'; -import { - ControlErrorsComponent, ErrorComponent, ErrorsComponent, InternalErrorComponent, NoContentComponent, - NotAuthorizedComponent, ResourceErrorsComponent -} from './error/'; -import { CommonModule } from '@angular/common'; -import { RouterEffects } from './router/common.router.navigation'; -import { EffectsModule } from '@ngrx/effects'; -import { AppSnackBarService } from './snackbar'; -import { AppErrorRoutingService } from './error/common.error.route'; -import { AppLoadingService } from './loading'; -import { MatButtonModule, MatInputModule } from '@angular/material'; -import { TranslateModule } from '@ngx-translate/core'; -import { PublicGuard } from 'ngx-auth'; -import { CommonAuthModule } from './auth/common.auth.module'; -import { AppLanguageService } from './language/common.language'; -import { CustomHttpInterceptor } from './interceptors/common.custom.http.interceptor'; -import { HTTP_INTERCEPTORS } from '@angular/common/http'; - -export const ERROR_ROUTES: Routes = [ - { - path: 'error/forbidden', - canActivate: [PublicGuard], - component: NotAuthorizedComponent - }, - { - path: 'error/notfound', - canActivate: [PublicGuard], - component: NoContentComponent - }, - { - path: 'error/internal', - canActivate: [PublicGuard], - component: InternalErrorComponent - } -]; - -@NgModule({ - imports: [CommonModule, MessagesModule, - CrnkBindingModule, FormsModule, CommonAuthModule, - - MatButtonModule, MatInputModule, TranslateModule, - - RouterModule.forChild(ERROR_ROUTES), - EffectsModule.forFeature([RouterEffects]) - ], - declarations: [ - NoContentComponent, NotAuthorizedComponent, InternalErrorComponent, - ErrorComponent, ControlErrorsComponent, ResourceErrorsComponent, ErrorsComponent - ], - exports: [NoContentComponent, NotAuthorizedComponent, InternalErrorComponent, - ErrorComponent, ControlErrorsComponent, ResourceErrorsComponent, ErrorsComponent, - RouterModule, CommonAuthModule], - providers: [ - AppResourceResolve, - AppSnackBarService, - AppErrorRoutingService, - AppLoadingService, - AppLanguageService, - { - provide: HTTP_INTERCEPTORS, - useClass: CustomHttpInterceptor, - multi: true - } - ], -}) -export class AppCommonModule { - -} diff --git a/crnk-example-frontend/src/app/common/common.resource.resolver.ts b/crnk-example-frontend/src/app/common/common.resource.resolver.ts deleted file mode 100644 index 0667ad2..0000000 --- a/crnk-example-frontend/src/app/common/common.resource.resolver.ts +++ /dev/null @@ -1,81 +0,0 @@ -import {take, map} from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve } from '@angular/router'; -import * as _ from 'lodash'; -import { Store } from '@ngrx/store'; -import '../rxjs-operators'; -import { NGRX_JSON_API_DEFAULT_ZONE, NgrxJsonApiService, Query, QueryResult, uuid } from 'ngrx-json-api'; -import { assumeNoError, waitWhileLoading } from '@crnk/angular-ngrx/binding'; -import { createEmptyMovie } from 'resources'; -import { SetCurrentResourceAction } from '../store'; -import { Observable } from 'rxjs'; - - -export const APP_JSON_API_EDITOR_ZONE = 'editor'; - -/** - * Resolves resources for editors and explorers. - */ -@Injectable() -export class AppResourceResolve implements Resolve { - - constructor(private store: Store, private jsonApi: NgrxJsonApiService) { - } - - resolve(route: ActivatedRouteSnapshot) { - const id = route.params['id']; - const type = route.data['resourceType']; - const isNew = id === 'create'; - const queryId = type + (id ? '_' + id : '_list'); - - // load editor contents in isolated zone - const zoneId = id ? APP_JSON_API_EDITOR_ZONE : NGRX_JSON_API_DEFAULT_ZONE; - const zone = this.jsonApi.getZone(zoneId); - - const query: Query = { - queryId: queryId, - type: type, - id: id, - params: { - offset: 0, - limit: 10, - include: [] - } - }; - if (query.type === 'movie') { - //query.params.include.push('genres', 'directors', 'actors', 'writers', 'languages', 'countries'); - } - - if (isNew) { - // put empty resource into the store - const emptyFactories = { - movie: createEmptyMovie - }; - query.id = uuid(); - const emptyResource = emptyFactories[type](query.id); - zone.postResource({ - resource: emptyResource - }); - } - - this.store.dispatch(new SetCurrentResourceAction(query.type, query.id, isNew)); - - zone.putQuery({ - query: query, - fromServer: !isNew - }); - - // wait displaying the page till query successfully completed - // throws an Error in case of a JSON API error. Can be generically handled by listing to route changes - // TODO implement selectResult covering many and one - - const results$: Observable = id ? zone.selectOneResults(queryId) : zone.selectManyResults(queryId); - return results$.pipe( - (waitWhileLoading()), - (assumeNoError()), - map(() => queryId), - take(1)); - } -} - - diff --git a/crnk-example-frontend/src/app/common/error/common.error.form.component.ts b/crnk-example-frontend/src/app/common/error/common.error.form.component.ts deleted file mode 100644 index 6e6242d..0000000 --- a/crnk-example-frontend/src/app/common/error/common.error.form.component.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { Component, Input, ChangeDetectionStrategy } from '@angular/core'; -import { Path } from '@crnk/angular-ngrx'; -import * as _ from 'lodash'; - -@Component({ - selector: 'demo-control-errors', - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - `, -}) -export class ControlErrorsComponent { - - @Input() - public expression: Path; - -} - - -/** - * Displays the errors of a resource. - */ -@Component({ - selector: 'demo-resource-errors', - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - `, -}) -export class ResourceErrorsComponent { - - @Input() - public expression: Path; -} - - -/** - * Displays a single error of various type: - * - *
    - *
  • simple strings
  • - *
  • JSON API errors
  • - *
  • anything resembling a json api error (having a code, title, detail or id)
  • - *
- * - * In this application we make use of to integrate within the form field. From this it will get proper formatting - * and coloring. - */ -@Component({ - selector: 'demo-error', - template: ` - {{message | translate}} - `, -}) -export class ErrorComponent { - - @Input() error: any; - - get message() { - if (!this.error) { - return undefined; - } - - if (this.error.status === '409') { - return 'error.conflict'; - } - - if (this.error.code || this.error.id || this.error.detail || this.error.title) { - if (this.error.detail) { - return this.error.detail; - } - if (this.error.title) { - return this.error.title; - } - if (this.error.code) { - return this.error.code; - } - if (this.error.id) { - return this.error.id; - } - } - return this.error; - } -} - -/** - * Displays a set of errors with {@link ErrorComponent} - */ -@Component({ - selector: 'demo-errors', - template: ` -
- -
- `, - -}) -export class ErrorsComponent { - - @Input() errors: any; - - public get elements(): Array { - if (!this.errors) { - return []; - } - else if (_.isArray(this.errors)) { - return this.errors; - } - else { - return _.toPairs(this.errors).map(it => it[1]); - } - } -} diff --git a/crnk-example-frontend/src/app/common/error/common.error.internal.component.ts b/crnk-example-frontend/src/app/common/error/common.error.internal.component.ts deleted file mode 100644 index 899f907..0000000 --- a/crnk-example-frontend/src/app/common/error/common.error.internal.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {Component, ChangeDetectionStrategy} from '@angular/core'; - -@Component({ - selector: 'demo-no-content', - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` -
-
- -
- -
- -

Exception Occured

-
Please contact system administrator
- Return to Homepage -
-
- - ` -}) -export class InternalErrorComponent { - -} diff --git a/crnk-example-frontend/src/app/common/error/common.error.nocontent.component.ts b/crnk-example-frontend/src/app/common/error/common.error.nocontent.component.ts deleted file mode 100644 index e616517..0000000 --- a/crnk-example-frontend/src/app/common/error/common.error.nocontent.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Component, ChangeDetectionStrategy} from '@angular/core'; - -@Component({ - selector: 'demo-no-content', - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` -
-
- -
- -
- -

Page Not Found

-
The resource you are looking for does not exist.
- Return to Homepage -
-
- ` -}) -export class NoContentComponent { - -} diff --git a/crnk-example-frontend/src/app/common/error/common.error.notauthorized.component.ts b/crnk-example-frontend/src/app/common/error/common.error.notauthorized.component.ts deleted file mode 100644 index 380d3c2..0000000 --- a/crnk-example-frontend/src/app/common/error/common.error.notauthorized.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Component, ChangeDetectionStrategy} from '@angular/core'; - -@Component({ - selector: 'demo-not-authorized', - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` -
-
- -
- -
- -

Access Denied

-
You are not authorized to access this resource.
- Return to Homepage -
-
- ` -}) -export class NotAuthorizedComponent { - -} diff --git a/crnk-example-frontend/src/app/common/error/common.error.route.ts b/crnk-example-frontend/src/app/common/error/common.error.route.ts deleted file mode 100644 index 2c290e8..0000000 --- a/crnk-example-frontend/src/app/common/error/common.error.route.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Injectable } from '@angular/core'; -import { NavigationError, NavigationStart, Router } from '@angular/router'; -import { Store } from '@ngrx/store'; -import { NgrxJsonApiService } from 'ngrx-json-api'; -import { QueryError } from '@crnk/angular-ngrx'; -import { Go } from '../router/common.router.navigation'; -import { APP_JSON_API_EDITOR_ZONE } from '../common.resource.resolver'; -import * as _ from 'lodash'; - -@Injectable() -export class AppErrorRoutingService { - - constructor(private store: Store, router: Router, ngrxJsonApiService: NgrxJsonApiService) { - router.events.forEach((event) => { - if (event instanceof NavigationStart) { - // TODO consider more advanced garbage collection/caching strategy - const defaultZone = ngrxJsonApiService.getDefaultZone(); - const editorZone = ngrxJsonApiService.getZone(APP_JSON_API_EDITOR_ZONE); - defaultZone.compact(); - editorZone.clear(); - } - else if (event instanceof NavigationError) { - const errorEvent = event as NavigationError; - const withinErrorPage = errorEvent.url.toString().indexOf('error') !== -1; - if (!withinErrorPage) { - let errorPath = '/error/internal'; - // TODO errorEvent.error instanceof QueryError not working, why? - if (errorEvent.error && _.isArray(errorEvent.error['errors'])) { - const queryError = errorEvent.error as QueryError; - for (const resourceError of queryError.errors) { - if (resourceError.status === '403') { - errorPath = '/error/forbidden'; - } - if (resourceError.status === '404') { - errorPath = '/error/notfound'; - } - } - } - - store.dispatch(new Go({ - path: [errorPath] - })); - } - } - }); - } -} \ No newline at end of file diff --git a/crnk-example-frontend/src/app/common/error/index.ts b/crnk-example-frontend/src/app/common/error/index.ts deleted file mode 100644 index 5102650..0000000 --- a/crnk-example-frontend/src/app/common/error/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './common.error.form.component'; -export * from './common.error.internal.component'; -export * from './common.error.nocontent.component'; -export * from './common.error.notauthorized.component'; -export * from './common.error.route'; diff --git a/crnk-example-frontend/src/app/common/index.ts b/crnk-example-frontend/src/app/common/index.ts deleted file mode 100644 index 82dc92f..0000000 --- a/crnk-example-frontend/src/app/common/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './error'; -export * from './snackbar'; -export * from './loading'; -export * from './login'; -export * from './router'; -export * from './auth'; -export * from './common.resource.resolver'; -export * from './common.module'; diff --git a/crnk-example-frontend/src/app/common/interceptors/common.custom.http.interceptor.ts b/crnk-example-frontend/src/app/common/interceptors/common.custom.http.interceptor.ts deleted file mode 100644 index b57d24a..0000000 --- a/crnk-example-frontend/src/app/common/interceptors/common.custom.http.interceptor.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {throwError as observableThrowError, Observable } from 'rxjs'; -import {catchError, tap} from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import { - HttpErrorResponse, - HttpEvent, - HttpHandler, - HttpHeaders, - HttpInterceptor, - HttpRequest, - HttpResponse -} from '@angular/common/http'; -import { LanguageCode } from '../language/common.language'; -import { Store } from '@ngrx/store'; -import { getAppState$ } from '../../store'; - - -@Injectable() -export class CustomHttpInterceptor implements HttpInterceptor { - - private currentLanguage: LanguageCode; - - constructor(store: Store) { - store.pipe((getAppState$())) - .subscribe(state => this.currentLanguage = state.language); - } - - intercept(req: HttpRequest, next: HttpHandler): Observable> { - console.log('CustomHttpInterceptor#intercept()'); - // clone the request to add custom headers - const updatedReq = req.clone({ headers: this.addCustomHeaders(req.headers)}); - - // send the newly created request - return next.handle(updatedReq).pipe( - tap((ev: HttpEvent) => { - if (ev instanceof HttpResponse) { - // do sth with the response - } - }), - catchError(response => { - if (response instanceof HttpErrorResponse) { - console.log('CustomHttpInterceptor#intercept() - processing http error', response); - } - return observableThrowError(response); - })); - } - - private addCustomHeaders(headers: HttpHeaders): HttpHeaders { - console.log('CustomHttpInterceptor#addCustomHeaders()'); - headers = headers.set('Content-Type', 'application/json'); - if (this.currentLanguage) { - headers = headers.set('Accept-Language', this.currentLanguage); - } - - return headers; - } -} - - diff --git a/crnk-example-frontend/src/app/common/language/common.language.ts b/crnk-example-frontend/src/app/common/language/common.language.ts deleted file mode 100644 index 021111d..0000000 --- a/crnk-example-frontend/src/app/common/language/common.language.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Injectable } from '@angular/core'; -import { TranslateService } from '@ngx-translate/core'; -import { Store } from '@ngrx/store'; -import { SetLanguageAction } from '../../store'; - -@Injectable() -export class AppLanguageService { - - langs = [LanguageCode.en, LanguageCode.de]; - defaultLang = LanguageCode.en; - - constructor( - private store: Store, - private translate: TranslateService - ) { - this.translate.addLangs(this.langs); - this.translate.setDefaultLang(this.defaultLang); - } - - initAppLanguage(): void { - let initialLanguage = this.defaultLang; - const browserLang = this.translate.getBrowserLang(); - if (this.langs.includes(browserLang as LanguageCode)) { - initialLanguage = browserLang as LanguageCode; - } - const storageLang = localStorage.getItem('language'); - if (storageLang) { - initialLanguage = storageLang as LanguageCode; - } - - this.changeLanguage(initialLanguage); - } - - changeLanguage(language: LanguageCode) { - this.store.dispatch(new SetLanguageAction(language)); - } -} - -export enum LanguageCode { - de = 'de', - en = 'en', - ja = 'ja', - zh = 'zh' -} diff --git a/crnk-example-frontend/src/app/common/loading/common.loading.ts b/crnk-example-frontend/src/app/common/loading/common.loading.ts deleted file mode 100644 index 8b56210..0000000 --- a/crnk-example-frontend/src/app/common/loading/common.loading.ts +++ /dev/null @@ -1,75 +0,0 @@ -import {debounce, distinctUntilChanged} from 'rxjs/operators'; -import { Injectable, NgModule } from '@angular/core'; -import { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router'; -import {Observable, Subject, timer} from 'rxjs'; -import { Store } from '@ngrx/store'; - -import * as _ from 'lodash'; -import { - NgrxJsonApiService, NgrxJsonApiStore, NgrxJsonApiModule, getNgrxJsonApiStore, NgrxJsonApiState, - NgrxJsonApiZone -} from 'ngrx-json-api'; - -import '../../rxjs-operators'; - -// TODO move into ngrx store - -@Injectable() -export class AppLoadingService { - - private loadingState = new Subject(); - private isRouting = false; - private isJsonApiModifying = false; - - private _state: Observable; - - constructor(private store: Store, router: Router, ngrxJsonApiService: NgrxJsonApiService) { - this.loadingState.next(false); - - // detect long routing => loading - router.events.forEach((event) => { - if (event instanceof NavigationStart) { - this.isRouting = true; - } - else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) { - this.isRouting = false; - } - this.updateLoadingState(); - }); - - // detect JSON API modification - // note that not GET operations are tracked, either this happens during navigation or the component is responsible - // for displaying a loading indictor - this.store.select('NgrxJsonApi').subscribe((jsonapiState: NgrxJsonApiState) => { - const zoneIds = _.keys(jsonapiState.zones); - const isBusy = (zone: NgrxJsonApiZone) => zone.isApplying > 0 || zone.isCreating > 0 || zone.isDeleting > 0 || - zone.isUpdating > 0; - this.isJsonApiModifying = zoneIds.find(zoneId => isBusy(jsonapiState.zones[zoneId])) != null; - }); - - - // we wait 300ms before switching to the loading state, but we immediately switch back - this._state = this.loadingState.asObservable().pipe( - distinctUntilChanged(), - debounce(it => timer(it ? 300 : 0))); - } - - private updateLoadingState() { - this.loadingState.next(this.isRouting || this.isJsonApiModifying); - } - - public get state(): Observable { - return this._state; - } -} - - -@NgModule({ - imports: [ - NgrxJsonApiModule - ], - providers: [AppLoadingService] -}) -export class ArbLoadingModule { - -} diff --git a/crnk-example-frontend/src/app/common/loading/index.ts b/crnk-example-frontend/src/app/common/loading/index.ts deleted file mode 100644 index 521f1e6..0000000 --- a/crnk-example-frontend/src/app/common/loading/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './common.loading'; diff --git a/crnk-example-frontend/src/app/common/login/common.login.ts b/crnk-example-frontend/src/app/common/login/common.login.ts deleted file mode 100644 index 37eb0c5..0000000 --- a/crnk-example-frontend/src/app/common/login/common.login.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {take, tap} from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import { NgrxJsonApiService, } from 'ngrx-json-api'; - -import '../../rxjs-operators'; -import { assumeNoError, waitWhileLoading } from '@crnk/angular-ngrx'; -import {ManyQueryResult} from 'ngrx-json-api/src/interfaces'; - -@Injectable() -export class LoginService { - - public data: any; - - constructor(private jsonapi: NgrxJsonApiService) { - } - - public retrieveDetails(): Promise { - this.jsonapi.putQuery({ - query: { - type: 'login', - queryId: 'loginQueryId' - } - }); - - return this.jsonapi.selectManyResults('loginQueryId').pipe( - waitWhileLoading(), - assumeNoError(), - tap((result: ManyQueryResult) => { - this.data = result.data; - }), - take(1)) - .toPromise(); - } -} diff --git a/crnk-example-frontend/src/app/common/login/index.ts b/crnk-example-frontend/src/app/common/login/index.ts deleted file mode 100644 index 9d72255..0000000 --- a/crnk-example-frontend/src/app/common/login/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './common.login'; \ No newline at end of file diff --git a/crnk-example-frontend/src/app/common/router/common.router.navigation.ts b/crnk-example-frontend/src/app/common/router/common.router.navigation.ts deleted file mode 100644 index a6eaad4..0000000 --- a/crnk-example-frontend/src/app/common/router/common.router.navigation.ts +++ /dev/null @@ -1,57 +0,0 @@ -import {map, tap} from 'rxjs/operators'; -import {Injectable} from '@angular/core'; -import {NavigationExtras, Router} from '@angular/router'; -import {Location} from '@angular/common'; -import {Actions, Effect} from '@ngrx/effects'; -import {Action} from '@ngrx/store'; -import {Observable} from 'rxjs'; - -export const GO = '[Router] Go'; -export const BACK = '[Router] Back'; -export const FORWARD = '[Router] Forward'; - -export class Go implements Action { - readonly type = GO; - - constructor(public payload: { - path: any[]; - query?: object; - extras?: NavigationExtras; - }) {} -} - -export class Back implements Action { - readonly type = BACK; -} - -export class Forward implements Action { - readonly type = FORWARD; -} - -export type RouterActions - = Go - | Back - | Forward; - -@Injectable() -export class RouterEffects { - - @Effect({dispatch: false}) - navigate$: Observable = this.actions$.ofType(GO).pipe( - map((action: Go) => action.payload), - tap(({path, query: queryParams, extras}) => this.router.navigate(path, {queryParams, ...extras}))); - - @Effect({dispatch: false}) - navigateBack$ = this.actions$.ofType(BACK).pipe( - tap(() => this.location.back())); - - @Effect({dispatch: false}) - navigateForward$ = this.actions$.ofType(FORWARD).pipe( - tap(() => this.location.forward())); - - constructor( - private actions$: Actions, - private router: Router, - private location: Location - ) {} -} diff --git a/crnk-example-frontend/src/app/common/router/common.router.state.serializer.ts b/crnk-example-frontend/src/app/common/router/common.router.state.serializer.ts deleted file mode 100644 index 3490e5e..0000000 --- a/crnk-example-frontend/src/app/common/router/common.router.state.serializer.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {Params, RouterStateSnapshot} from '@angular/router'; -import {RouterStateSerializer} from '@ngrx/router-store'; - -export interface AppRouterState { - url: string; - //queryParams: Params; -} - -/** - * Prevents performance issues when the Store Devtools is used, because RouterStateSnapshot is a large structure. - * See https://github.com/ngrx/platform/blob/master/docs/router-store/api.md#custom-router-state-serializer - */ -export class AppRouterStateSerializer implements RouterStateSerializer { - serialize(routerState: RouterStateSnapshot): AppRouterState { - const {url} = routerState; - //const queryParams = routerState.root.queryParams; - - return {url}; - } -} diff --git a/crnk-example-frontend/src/app/common/router/index.ts b/crnk-example-frontend/src/app/common/router/index.ts deleted file mode 100644 index 5d527fa..0000000 --- a/crnk-example-frontend/src/app/common/router/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './common.router.navigation'; -export * from './common.router.state.serializer'; diff --git a/crnk-example-frontend/src/app/common/snackbar/common.snackbar.ts b/crnk-example-frontend/src/app/common/snackbar/common.snackbar.ts deleted file mode 100644 index fbdc89c..0000000 --- a/crnk-example-frontend/src/app/common/snackbar/common.snackbar.ts +++ /dev/null @@ -1,37 +0,0 @@ -import {switchMap, filter, tap, map, first} from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import '../../rxjs-operators'; -import { Store } from '@ngrx/store'; -import { MatSnackBar, MatSnackBarRef } from '@angular/material'; -import { TranslateService } from '@ngx-translate/core'; -import { getAppState } from '../../store'; -import { SimpleSnackBar } from '@angular/material/snack-bar/typings/simple-snack-bar'; - - -@Injectable() -export class AppSnackBarService { - - private ref: MatSnackBarRef; - - constructor(store: Store, snackBar: MatSnackBar, translate: TranslateService) { - - const dismissSnackBar = () => { - if (this.ref != null) { - this.ref.dismiss(); - this.ref = null; - } - }; - - const showSnackBar = (message) => { - this.ref = snackBar.open(message); - }; - - store.select(getAppState).pipe( - map(state => state.notifications['editor']), - tap(dismissSnackBar), - filter(messageKey => messageKey != null), - switchMap(messageKey => translate.get(messageKey)), - first()) - .subscribe(showSnackBar); - } -} diff --git a/crnk-example-frontend/src/app/common/snackbar/index.ts b/crnk-example-frontend/src/app/common/snackbar/index.ts deleted file mode 100644 index f2f692c..0000000 --- a/crnk-example-frontend/src/app/common/snackbar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './common.snackbar'; diff --git a/crnk-example-frontend/src/app/home/home.component.html b/crnk-example-frontend/src/app/home/home.component.html deleted file mode 100644 index c87e3f0..0000000 --- a/crnk-example-frontend/src/app/home/home.component.html +++ /dev/null @@ -1,35 +0,0 @@ -
- - This application showcases the use of Crnk for end-to-end development with Spring and Angular. - Examples are work in progress and will grow in terms features overtime. They are by no means considered - feature complete, but just to provide a basic demonstration. - For more information have a look at the Crnk documentation. - -

- -

- - - - - - - - - - - - - - - - - - - - - -
Movies: Explorer (table) and editor screen example.
Persons: Work in progress.
Votes: Expensive service call example with loading indicators.
Secrets: Error page example.
-
- -
diff --git a/crnk-example-frontend/src/app/home/home.component.ts b/crnk-example-frontend/src/app/home/home.component.ts deleted file mode 100644 index 77364b9..0000000 --- a/crnk-example-frontend/src/app/home/home.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {Component} from '@angular/core'; - - -@Component({ - selector: 'demo-home', - templateUrl: './home.component.html' -}) -export class HomeComponent { - -} diff --git a/crnk-example-frontend/src/app/home/index.ts b/crnk-example-frontend/src/app/home/index.ts deleted file mode 100644 index ab5a522..0000000 --- a/crnk-example-frontend/src/app/home/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './home.component'; diff --git a/crnk-example-frontend/src/app/movie/index.ts b/crnk-example-frontend/src/app/movie/index.ts deleted file mode 100644 index a92ad2d..0000000 --- a/crnk-example-frontend/src/app/movie/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './movie.explorer.component'; -export * from './movie.editor.component'; -export * from './movie.module'; diff --git a/crnk-example-frontend/src/app/movie/movie.editor.component.html b/crnk-example-frontend/src/app/movie/movie.editor.component.html deleted file mode 100644 index 847e7ce..0000000 --- a/crnk-example-frontend/src/app/movie/movie.editor.component.html +++ /dev/null @@ -1,117 +0,0 @@ -
-
- -
- -

Movie

- - - - - - - - - - - - - - - -
- -

- - -

-
-
diff --git a/crnk-example-frontend/src/app/movie/movie.editor.component.ts b/crnk-example-frontend/src/app/movie/movie.editor.component.ts deleted file mode 100644 index 470969b..0000000 --- a/crnk-example-frontend/src/app/movie/movie.editor.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Component, ViewChild, AfterViewInit, OnDestroy, ChangeDetectorRef, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import '../rxjs-operators'; -import { Subscription } from 'rxjs'; -import { BeanBinding } from '@crnk/angular-ngrx/expression'; -import { FormBinding, CrnkBindingService } from '@crnk/angular-ngrx/binding'; -import { QMovie } from 'resources'; -import { APP_JSON_API_EDITOR_ZONE } from '../common'; - -@Component({ - selector: 'demo-movie-editor', - templateUrl: 'movie.editor.component.html', -}) -export class MovieEditorComponent implements OnInit, OnDestroy { - - @ViewChild('formRef') form; - - public binding: FormBinding; - - public movie: QMovie; - - private subscription: Subscription; - - constructor( - public route: ActivatedRoute, - private bindingService: CrnkBindingService - ) { - } - - ngOnInit() { - const queryId = this.route.snapshot.data['queryId']; - this.binding = this.bindingService.bindForm({ - zoneId: APP_JSON_API_EDITOR_ZONE, - form: this.form, - queryId: queryId - }); - - // note that one could use the "async" pipe and "as" operator, but so far code completion - // does not seem to work in Intellij. For this reason the example sticks to slightly more verbose subscriptions. - this.subscription = this.binding.resource$.subscribe( - movie => { - this.movie = new QMovie(new BeanBinding(movie), null); - - } - ); - // this.movie$ = this.binding.resource$.map(resource => new QMovieEntity(new BeanBinding(resource), null)); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } -} diff --git a/crnk-example-frontend/src/app/movie/movie.explorer.component.html b/crnk-example-frontend/src/app/movie/movie.explorer.component.html deleted file mode 100644 index 5a03378..0000000 --- a/crnk-example-frontend/src/app/movie/movie.explorer.component.html +++ /dev/null @@ -1,18 +0,0 @@ -

Movies

- -
- - - -
- -

- - -

- diff --git a/crnk-example-frontend/src/app/movie/movie.explorer.component.ts b/crnk-example-frontend/src/app/movie/movie.explorer.component.ts deleted file mode 100644 index 61a6def..0000000 --- a/crnk-example-frontend/src/app/movie/movie.explorer.component.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { CrnkBindingService, DataTableBinding } from '@crnk/angular-ngrx'; -import { Movie, MovieListResult } from 'resources/index'; -import { Store } from '@ngrx/store'; -import '../rxjs-operators'; -import { OpenResourceAction } from '../store'; - -@Component({ - selector: 'demo-movie-explorer', - templateUrl: 'movie.explorer.component.html', -}) -export class MovieExplorerComponent implements OnInit, OnDestroy { - - binding: DataTableBinding; - - private subscription: Subscription; - - public movies: MovieListResult; - - constructor( - private route: ActivatedRoute, - private bindingService: CrnkBindingService, - private store: Store - ) { - } - - ngOnInit() { - const queryId = this.route.snapshot.data['queryId']; - this.binding = this.bindingService.bindDataTable({ queryId: queryId }); - this.subscription = this.binding.result$.subscribe(it => this.movies = it as MovieListResult); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } - - open(movie: Movie) { - this.store.dispatch(new OpenResourceAction('movie', movie.id)); - } - - create() { - this.store.dispatch(new OpenResourceAction('movie', null, true)); - } - -} diff --git a/crnk-example-frontend/src/app/movie/movie.module.ts b/crnk-example-frontend/src/app/movie/movie.module.ts deleted file mode 100644 index 931153f..0000000 --- a/crnk-example-frontend/src/app/movie/movie.module.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { RouterModule, Routes } from '@angular/router'; -import { StoreModule } from '@ngrx/store'; -import '../rxjs-operators'; -import { EffectsModule } from '@ngrx/effects'; -import { NgModule } from '@angular/core'; -import { MovieExplorerComponent, MovieEditorComponent } from '../movie'; -import { AppResourceResolve } from '../common/common.resource.resolver'; -import { FormsModule } from '@angular/forms'; -import { CrnkExpressionFormModule } from '@crnk/angular-ngrx'; -import { ButtonModule } from 'primeng/components/button/button'; -import { DataTableModule } from 'primeng/components/datatable/datatable'; -import { InputTextModule } from 'primeng/components/inputtext/inputtext'; -import { NgrxJsonApiModule } from 'ngrx-json-api'; -import { TranslateModule } from '@ngx-translate/core'; -import { AppCommonModule } from '../common'; -import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatInputModule, MatSnackBarModule } from '@angular/material'; -import { ProtectedGuard } from 'ngx-auth'; - -export const MOVIE_ROUTES: Routes = [ - { - path: 'movie', component: MovieExplorerComponent, - canActivate: [ ProtectedGuard ], - data: { - resourceType: 'movie' - }, - resolve: { - queryId: AppResourceResolve - } - }, - { - path: 'movie/:id', component: MovieEditorComponent, - canActivate: [ ProtectedGuard ], - data: { - resourceType: 'movie' - }, - resolve: { - queryId: AppResourceResolve - } - }, -]; - - -@NgModule({ - declarations: [ - MovieEditorComponent, - MovieExplorerComponent, - ], - imports: [ - CommonModule, - StoreModule, RouterModule, FormsModule, EffectsModule, NgrxJsonApiModule, - RouterModule.forChild(MOVIE_ROUTES), TranslateModule, - - MatButtonModule, MatInputModule, MatSnackBarModule, - - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, - CrnkExpressionFormModule - - ], - exports: [ - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, CrnkExpressionFormModule - ] -}) -export class MovieModule { - -} - - - - diff --git a/crnk-example-frontend/src/app/person/index.ts b/crnk-example-frontend/src/app/person/index.ts deleted file mode 100644 index a529167..0000000 --- a/crnk-example-frontend/src/app/person/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './person.explorer.component'; -export * from './person.module'; diff --git a/crnk-example-frontend/src/app/person/person.explorer.component.html b/crnk-example-frontend/src/app/person/person.explorer.component.html deleted file mode 100644 index 72372a7..0000000 --- a/crnk-example-frontend/src/app/person/person.explorer.component.html +++ /dev/null @@ -1,18 +0,0 @@ -

Persons

- -
- - - -
- -

- - -

diff --git a/crnk-example-frontend/src/app/person/person.explorer.component.ts b/crnk-example-frontend/src/app/person/person.explorer.component.ts deleted file mode 100644 index fb5d941..0000000 --- a/crnk-example-frontend/src/app/person/person.explorer.component.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { CrnkBindingService, DataTableBinding } from '@crnk/angular-ngrx'; -import { Person, PersonListResult } from 'resources/index'; -import { Store } from '@ngrx/store'; -import '../rxjs-operators'; -import { OpenResourceAction } from '../store'; - -@Component({ - selector: 'demo-person-explorer', - templateUrl: 'person.explorer.component.html', -}) -export class PersonExplorerComponent implements OnInit, OnDestroy { - - binding: DataTableBinding; - - private subscription: Subscription; - - public persons: PersonListResult; - - constructor( - private route: ActivatedRoute, - private bindingService: CrnkBindingService, - private store: Store - ) { - } - - ngOnInit() { - const queryId = this.route.snapshot.data['queryId']; - this.binding = this.bindingService.bindDataTable({ queryId: queryId }); - this.subscription = this.binding.result$.subscribe(it => this.persons = it as PersonListResult); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } - - open(person: Person) { - this.store.dispatch(new OpenResourceAction('person', person.id)); - } - - create() { - this.store.dispatch(new OpenResourceAction('person', null, true)); - } - -} diff --git a/crnk-example-frontend/src/app/person/person.module.ts b/crnk-example-frontend/src/app/person/person.module.ts deleted file mode 100644 index 7537ca6..0000000 --- a/crnk-example-frontend/src/app/person/person.module.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { RouterModule, Routes } from '@angular/router'; -import { StoreModule } from '@ngrx/store'; -import '../rxjs-operators'; -import { EffectsModule } from '@ngrx/effects'; -import { NgModule } from '@angular/core'; -import { AppResourceResolve } from '../common/common.resource.resolver'; -import { FormsModule } from '@angular/forms'; -import { CrnkExpressionFormModule } from '@crnk/angular-ngrx'; -import { ButtonModule } from 'primeng/components/button/button'; -import { DataTableModule } from 'primeng/components/datatable/datatable'; -import { InputTextModule } from 'primeng/components/inputtext/inputtext'; -import { NgrxJsonApiModule } from 'ngrx-json-api'; -import { TranslateModule } from '@ngx-translate/core'; -import { AppCommonModule } from '../common'; -import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatInputModule } from '@angular/material'; -import { PersonExplorerComponent } from './person.explorer.component'; -import { ProtectedGuard } from 'ngx-auth'; - -export const PERSON_ROUTES: Routes = [ - { - path: 'person', component: PersonExplorerComponent, - canActivate: [ ProtectedGuard ], - data: { - resourceType: 'person' - }, - resolve: { - queryId: AppResourceResolve - } - } -]; - - -@NgModule({ - declarations: [ - PersonExplorerComponent - ], - imports: [ - CommonModule, - StoreModule, RouterModule, FormsModule, EffectsModule, NgrxJsonApiModule, - RouterModule.forChild(PERSON_ROUTES), TranslateModule, - - MatButtonModule, MatInputModule, - - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, - CrnkExpressionFormModule - - ], - exports: [ - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, CrnkExpressionFormModule - ] -}) -export class PersonModule { - -} - - - - diff --git a/crnk-example-frontend/src/app/rxjs-operators.ts b/crnk-example-frontend/src/app/rxjs-operators.ts deleted file mode 100644 index a60f303..0000000 --- a/crnk-example-frontend/src/app/rxjs-operators.ts +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/crnk-example-frontend/src/app/secret/index.ts b/crnk-example-frontend/src/app/secret/index.ts deleted file mode 100644 index da95fa7..0000000 --- a/crnk-example-frontend/src/app/secret/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './secret.explorer.component'; -export * from './secret.module'; diff --git a/crnk-example-frontend/src/app/secret/secret.explorer.component.html b/crnk-example-frontend/src/app/secret/secret.explorer.component.html deleted file mode 100644 index 0aa134c..0000000 --- a/crnk-example-frontend/src/app/secret/secret.explorer.component.html +++ /dev/null @@ -1,15 +0,0 @@ -

Persons

- -
- - - -
- -

- -

diff --git a/crnk-example-frontend/src/app/secret/secret.explorer.component.ts b/crnk-example-frontend/src/app/secret/secret.explorer.component.ts deleted file mode 100644 index c4337e1..0000000 --- a/crnk-example-frontend/src/app/secret/secret.explorer.component.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { CrnkBindingService, DataTableBinding } from '@crnk/angular-ngrx'; -import { Person, PersonListResult } from 'resources/index'; -import { Store } from '@ngrx/store'; -import '../rxjs-operators'; -import { OpenResourceAction } from '../store'; - -@Component({ - selector: 'demo-secret-explorer', - templateUrl: 'secret.explorer.component.html', -}) -export class SecretExplorerComponent implements OnInit, OnDestroy { - - binding: DataTableBinding; - - private subscription: Subscription; - - public secrets: PersonListResult; - - constructor( - private route: ActivatedRoute, - private bindingService: CrnkBindingService, - private store: Store - ) { - } - - ngOnInit() { - const queryId = this.route.snapshot.data['queryId']; - this.binding = this.bindingService.bindDataTable({ queryId: queryId }); - this.subscription = this.binding.result$.subscribe(it => this.secrets = it as PersonListResult); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } - - open(secret: Person) { - this.store.dispatch(new OpenResourceAction('secret', secret.id)); - } - - create() { - this.store.dispatch(new OpenResourceAction('secret', null, true)); - } - -} diff --git a/crnk-example-frontend/src/app/secret/secret.module.ts b/crnk-example-frontend/src/app/secret/secret.module.ts deleted file mode 100644 index 784a5ec..0000000 --- a/crnk-example-frontend/src/app/secret/secret.module.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { RouterModule, Routes } from '@angular/router'; -import { StoreModule } from '@ngrx/store'; -import '../rxjs-operators'; -import { EffectsModule } from '@ngrx/effects'; -import { NgModule } from '@angular/core'; -import { AppResourceResolve } from '../common/common.resource.resolver'; -import { FormsModule } from '@angular/forms'; -import { CrnkExpressionFormModule } from '@crnk/angular-ngrx'; -import { ButtonModule } from 'primeng/components/button/button'; -import { DataTableModule } from 'primeng/components/datatable/datatable'; -import { InputTextModule } from 'primeng/components/inputtext/inputtext'; -import { NgrxJsonApiModule } from 'ngrx-json-api'; -import { TranslateModule } from '@ngx-translate/core'; -import { AppCommonModule } from '../common'; -import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatInputModule } from '@angular/material'; -import { SecretExplorerComponent } from './secret.explorer.component'; -import { ProtectedGuard } from 'ngx-auth'; - -export const PERSON_ROUTES: Routes = [ - { - path: 'secret', component: SecretExplorerComponent, - canActivate: [ ProtectedGuard ], - data: { - resourceType: 'secret' - }, - resolve: { - queryId: AppResourceResolve - } - } -]; - - -@NgModule({ - declarations: [ - SecretExplorerComponent - ], - imports: [ - CommonModule, - StoreModule, RouterModule, FormsModule, EffectsModule, NgrxJsonApiModule, - RouterModule.forChild(PERSON_ROUTES), TranslateModule, - - MatButtonModule, MatInputModule, - - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, - CrnkExpressionFormModule - - ], - exports: [ - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, CrnkExpressionFormModule - ] -}) -export class SecretModule { - -} - - - - diff --git a/crnk-example-frontend/src/app/store/effects/index.ts b/crnk-example-frontend/src/app/store/effects/index.ts deleted file mode 100644 index 5c2857f..0000000 --- a/crnk-example-frontend/src/app/store/effects/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './store.effects.navigation'; -export * from './store.effects.notification'; -export * from './store.effects.utils'; -export * from './store.effects.language'; \ No newline at end of file diff --git a/crnk-example-frontend/src/app/store/effects/store.effects.language.ts b/crnk-example-frontend/src/app/store/effects/store.effects.language.ts deleted file mode 100644 index a668611..0000000 --- a/crnk-example-frontend/src/app/store/effects/store.effects.language.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {filter, map} from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import { Actions, Effect } from '@ngrx/effects'; -import '../../rxjs-operators'; -import { AppActionTypes, SetLanguageAction } from '../store.actions'; -import { TranslateService } from '@ngx-translate/core'; - - -@Injectable() -export class AppLanguageEffects { - - - @Effect() updateLanguage; - - constructor(actions: Actions, translate: TranslateService) { - - this.updateLanguage = actions - .ofType(AppActionTypes.SET_LANGUAGE).pipe( - map((action: SetLanguageAction) => { - localStorage.setItem('language', action.language); - translate.use(action.language); - }), - filter(() => false)); // not returning any action - - } -} diff --git a/crnk-example-frontend/src/app/store/effects/store.effects.navigation.ts b/crnk-example-frontend/src/app/store/effects/store.effects.navigation.ts deleted file mode 100644 index 2d0299b..0000000 --- a/crnk-example-frontend/src/app/store/effects/store.effects.navigation.ts +++ /dev/null @@ -1,63 +0,0 @@ -import {filter, map, withLatestFrom} from 'rxjs/operators'; -import {Injectable} from '@angular/core'; -import {Store} from '@ngrx/store'; -import {Actions, Effect} from '@ngrx/effects'; -import '../../rxjs-operators'; -import {Go} from '../../common/router/common.router.navigation'; -import {AppActionTypes, OpenResourceAction} from '../store.actions'; -import {ApiApplySuccessAction, ApiPostSuccessAction, NgrxJsonApiActionTypes} from 'ngrx-json-api'; -import {apiPostSuccessFilter} from './store.effects.utils'; -import {getAppState} from '../store.module'; - - -@Injectable() -export class AppNavigationEffects { - - @Effect() navigateToResource; - - @Effect() openExplorerOnceEditorResourceSuccessfullyDeleted$; - - @Effect() openEditorByIdOnceResourceSuccessfullyPosted$; - - constructor( - actions$: Actions, - store: Store - ) { - this.navigateToResource = actions$ - .ofType(AppActionTypes.OPEN_RESOURCE).pipe( - map((action: OpenResourceAction) => { - if (action.create && action.resourceId) { - return new Go({ path: [`/${action.resourceType}/create`, { id: action.resourceId }] }); - } - else if (action.create) { - return new Go({ path: [`/${action.resourceType}/create`] }); - } - else if (action.resourceId) { - return new Go({ path: [`/${action.resourceType}/${action.resourceId}`] }); - } - else { - return new Go({ path: [`/${action.resourceType}`] }); - } - })); - - this.openExplorerOnceEditorResourceSuccessfullyDeleted$ = actions$ - .ofType(NgrxJsonApiActionTypes.API_DELETE_SUCCESS).pipe( - withLatestFrom(store, (action, state) => getAppState(state)), - filter(state => state.current != null && state.current.resourceId != null), - map(state => new OpenResourceAction(state.current.resourceType))); - - - this.openEditorByIdOnceResourceSuccessfullyPosted$ = actions$ - .ofType(NgrxJsonApiActionTypes.API_APPLY_SUCCESS).pipe( - withLatestFrom(store, (action: ApiApplySuccessAction, state) => { - const appState = getAppState(state); - if (appState.current) { - return action.payload.find(apiPostSuccessFilter(appState.current.resourceType)); - } - return null; - }), - filter(action => action != null), - map((action: ApiPostSuccessAction) => action.payload.jsonApiData.data), - map(resource => new OpenResourceAction(resource.type, resource.id))); - } -} diff --git a/crnk-example-frontend/src/app/store/effects/store.effects.notification.ts b/crnk-example-frontend/src/app/store/effects/store.effects.notification.ts deleted file mode 100644 index 37ace60..0000000 --- a/crnk-example-frontend/src/app/store/effects/store.effects.notification.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {delay, filter, map, withLatestFrom} from 'rxjs/operators'; -import {Injectable} from '@angular/core'; -import {Actions, Effect} from '@ngrx/effects'; -import '../../rxjs-operators'; -import {NgrxJsonApiActionTypes} from 'ngrx-json-api'; -import {Store} from '@ngrx/store'; -import {AppState} from '../store.model'; -import {AppActionTypes, SetNotificationAction} from '../store.actions'; -import {getAppState} from '../store.module'; - - -@Injectable() -export class AppNotificationEffects { - - - @Effect() notifyUserUponEditorSaveSuccess; - - @Effect() hideSaveSuccessAfterTimeout; - - constructor(actions: Actions, store: Store) { - - // show as notification in store and directly as material snackbar - this.notifyUserUponEditorSaveSuccess = actions - .ofType(NgrxJsonApiActionTypes.API_APPLY_SUCCESS).pipe( - withLatestFrom(store, (action, state) => getAppState(state)), - filter((state: AppState) => state.current != null), - map((state: AppState) => state.current.created ? 'editor.create.success' : 'editor.save.success'), - map(messageKey => new SetNotificationAction('editor', messageKey))); - - const clearNotification = () => new SetNotificationAction('editor', null); - - this.hideSaveSuccessAfterTimeout = actions - .ofType(AppActionTypes.NOTIFICATION_SET).pipe( - filter((action: SetNotificationAction) => action.id.startsWith('editor')), - delay(5000), - filter((action: SetNotificationAction) => action.messageKey != null), - map(clearNotification)); - } -} diff --git a/crnk-example-frontend/src/app/store/effects/store.effects.utils.ts b/crnk-example-frontend/src/app/store/effects/store.effects.utils.ts deleted file mode 100644 index 6cd1a83..0000000 --- a/crnk-example-frontend/src/app/store/effects/store.effects.utils.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - ApiDeleteSuccessAction, - ApiPatchFailAction, - ApiPatchSuccessAction, - ApiPostFailAction, - ApiPostSuccessAction, - Document, - NgrxJsonApiActionTypes, - Resource -} from 'ngrx-json-api'; -import '../../rxjs-operators'; - - -export function matchesResource(document: Document, resourceType: string, resourceId?: string) { - const resource = document.data as Resource; - return resource != null && resource.type === resourceType && (!resourceId || resourceId === resource.id); -} - -export function apiPatchSuccessFilter(resourceType: string, resourceId?: string) { - return (action) => action.type === NgrxJsonApiActionTypes.API_PATCH_SUCCESS && - matchesResource((action as ApiPostSuccessAction).payload.jsonApiData, resourceType, resourceId); -} - - -export function apiDeleteSuccessFilter(resourceType: string, resourceId?: string) { - return (action) => action.type === NgrxJsonApiActionTypes.API_DELETE_SUCCESS && - matchesResource((action as ApiDeleteSuccessAction).payload.jsonApiData, resourceType, resourceId); -} - -export function apiPatchFailFilter(resourceType: string, resourceId?: string) { - return (action) => action.type === NgrxJsonApiActionTypes.API_PATCH_FAIL && - matchesResource((action as ApiPostFailAction).payload.jsonApiData, resourceType, resourceId); -} - -export function apiPostSuccessFilter(resourceType: string) { - return (action) => action.type === NgrxJsonApiActionTypes.API_POST_SUCCESS && - matchesResource((action as ApiPatchSuccessAction).payload.jsonApiData, resourceType); -} - -export function apiPostFailFilter(resourceType: string) { - return (action) => action.type === NgrxJsonApiActionTypes.API_POST_FAIL && - matchesResource((action as ApiPatchFailAction).payload.jsonApiData, resourceType); -} diff --git a/crnk-example-frontend/src/app/store/index.ts b/crnk-example-frontend/src/app/store/index.ts deleted file mode 100644 index 9867762..0000000 --- a/crnk-example-frontend/src/app/store/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './store.model'; -export * from './store.actions'; -export * from './store.module'; -export * from './store.reducers'; -export * from './effects'; \ No newline at end of file diff --git a/crnk-example-frontend/src/app/store/store.actions.ts b/crnk-example-frontend/src/app/store/store.actions.ts deleted file mode 100644 index 441d87d..0000000 --- a/crnk-example-frontend/src/app/store/store.actions.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Action } from '@ngrx/store'; -import { LanguageCode } from '../common/language/common.language'; - -export enum AppActionTypes { - NOTIFICATION_SET = '[Demo] NOTIFICATION_SET', - OPEN_RESOURCE = '[Demo] OPEN_RESOURCE', - SET_CURRENT_RESOURCE = '[Demo] SET_CURRENT_RESOURCE', - SET_LANGUAGE = '[Demo] SET_LANGUAGE', -} - -/** - * Sets the given notification on the screen - */ -export class SetNotificationAction implements Action { - readonly type = AppActionTypes.NOTIFICATION_SET; - - constructor(public id: string, public messageKey: string) { - } -} - -/** - * Opens the explorer or editor of the given type. - */ -export class OpenResourceAction implements Action { - readonly type = AppActionTypes.OPEN_RESOURCE; - - constructor(public resourceType: string, public resourceId?: string, public create?: boolean) { - } -} - - -/** - * Set currently open resource - */ -export class SetCurrentResourceAction implements Action { - readonly type = AppActionTypes.SET_CURRENT_RESOURCE; - - constructor(public resourceType: string, public resourceId?: string, public create?: boolean) { - } -} - -/** - * Set language - */ -export class SetLanguageAction implements Action { - readonly type = AppActionTypes.SET_LANGUAGE; - - constructor(public language: LanguageCode) { - } -} - - -export type AppActions = SetNotificationAction | OpenResourceAction | SetCurrentResourceAction | SetLanguageAction ; \ No newline at end of file diff --git a/crnk-example-frontend/src/app/store/store.model.ts b/crnk-example-frontend/src/app/store/store.model.ts deleted file mode 100644 index a0df815..0000000 --- a/crnk-example-frontend/src/app/store/store.model.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { LanguageCode } from '../common/language/common.language'; - -export interface Notifications { - [id: string]: string; -} - -export interface OpenResource { - resourceType: string; - resourceId?: string; - created?: boolean; -} - -export interface AppState { - notifications: Notifications; - current?: OpenResource; - language: LanguageCode; -} - -export const initAppState: AppState = { - notifications: {}, - current: null, - language: null -}; - - - - - diff --git a/crnk-example-frontend/src/app/store/store.module.ts b/crnk-example-frontend/src/app/store/store.module.ts deleted file mode 100644 index 8473580..0000000 --- a/crnk-example-frontend/src/app/store/store.module.ts +++ /dev/null @@ -1,51 +0,0 @@ -import {filter} from 'rxjs/operators'; -import { NgModule } from '@angular/core'; -import { EffectsModule } from '@ngrx/effects'; -import { Store, StoreModule } from '@ngrx/store'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { AppState, initAppState } from './store.model'; -import { Observable } from 'rxjs'; -import { AppNotificationEffects } from './effects/store.effects.notification'; -import { AppNavigationEffects } from './effects/store.effects.navigation'; -import { appReducer } from './store.reducers'; -import { AppLanguageEffects } from './effects/store.effects.language'; - - -export function getAppState$() { - return (state$: Store): Observable => { - return state$ - .select('app').pipe( - filter(state => state != null)); - //.map(it => it['presentation'] as PresentationState); - }; -} - -export function getAppState(state: any): AppState { - const arbState = state['app']; - if (!arbState) { - throw new Error('AppStoreModule not yet initialized'); - } - return arbState; //arbState['presentation'] as PresentationState; -} - -@NgModule({ - imports: [ - CommonModule, - FormsModule, - EffectsModule.forFeature([ - AppNavigationEffects, AppNotificationEffects, AppLanguageEffects - ]), - StoreModule.forFeature('app', appReducer, { - initialState: initAppState - }), - ], - providers: [], - declarations: [] -}) -export class AppStoreModule { - -} - - - diff --git a/crnk-example-frontend/src/app/store/store.reducers.ts b/crnk-example-frontend/src/app/store/store.reducers.ts deleted file mode 100644 index ccebc96..0000000 --- a/crnk-example-frontend/src/app/store/store.reducers.ts +++ /dev/null @@ -1,62 +0,0 @@ -import * as _ from 'lodash'; -import { Action } from '@ngrx/store'; -import { AppState, initAppState } from './store.model'; -import { AppActionTypes, OpenResourceAction, SetLanguageAction, SetNotificationAction } from './store.actions'; - - -export function appReducer( - state: AppState = initAppState, - actionObj: Action -) { - switch (actionObj.type) { - case AppActionTypes.NOTIFICATION_SET: { - const action = actionObj as SetNotificationAction; - return notificationSet(state, action); - } - case AppActionTypes.SET_CURRENT_RESOURCE: { - const action = actionObj as OpenResourceAction; - if (action.resourceType) { - return { - ...state, - current: { - resourceType: action.resourceType, - resourceId: action.resourceId, - created: action.create - } - }; - } - else { - return { - ...state, - current: null - }; - } - } - case AppActionTypes.SET_LANGUAGE: { - const action = actionObj as SetLanguageAction; - if (action.language) { - return { - ...state, - language: action.language - }; - } - return state; - } - default: - return state; - } -} - -export function notificationSet(state: AppState, action: SetNotificationAction) { - const newNotifications = _.clone(state.notifications); - if (action.messageKey) { - newNotifications[action.id] = action.messageKey; - } - else { - delete newNotifications[action.id]; - } - return { - ...state, - notifications: newNotifications - }; -} \ No newline at end of file diff --git a/crnk-example-frontend/src/app/vote/index.ts b/crnk-example-frontend/src/app/vote/index.ts deleted file mode 100644 index 3022da9..0000000 --- a/crnk-example-frontend/src/app/vote/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './vote.explorer.component'; -export * from './vote.module'; diff --git a/crnk-example-frontend/src/app/vote/vote.explorer.component.html b/crnk-example-frontend/src/app/vote/vote.explorer.component.html deleted file mode 100644 index 55bd580..0000000 --- a/crnk-example-frontend/src/app/vote/vote.explorer.component.html +++ /dev/null @@ -1,18 +0,0 @@ -

Votes

- -
- - - -
- -

- - -

\ No newline at end of file diff --git a/crnk-example-frontend/src/app/vote/vote.explorer.component.ts b/crnk-example-frontend/src/app/vote/vote.explorer.component.ts deleted file mode 100644 index e20d815..0000000 --- a/crnk-example-frontend/src/app/vote/vote.explorer.component.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { CrnkBindingService, DataTableBinding } from '@crnk/angular-ngrx'; -import { VoteListResult } from 'resources/index'; -import { Store } from '@ngrx/store'; -import '../rxjs-operators'; - -@Component({ - selector: 'demo-vote-explorer', - templateUrl: 'vote.explorer.component.html', -}) -export class VoteExplorerComponent implements OnInit, OnDestroy { - - binding: DataTableBinding; - - private subscription: Subscription; - - public votes: VoteListResult; - - constructor( - private route: ActivatedRoute, - private bindingService: CrnkBindingService, - private store: Store - ) { - } - - ngOnInit() { - const queryId = this.route.snapshot.data['queryId']; - this.binding = this.bindingService.bindDataTable({ queryId: queryId }); - this.subscription = this.binding.result$.subscribe(it => this.votes = it as VoteListResult); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } -} diff --git a/crnk-example-frontend/src/app/vote/vote.module.ts b/crnk-example-frontend/src/app/vote/vote.module.ts deleted file mode 100644 index a136e20..0000000 --- a/crnk-example-frontend/src/app/vote/vote.module.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { RouterModule, Routes } from '@angular/router'; -import { StoreModule } from '@ngrx/store'; -import '../rxjs-operators'; -import { EffectsModule } from '@ngrx/effects'; -import { NgModule } from '@angular/core'; -import { AppResourceResolve } from '../common/common.resource.resolver'; -import { FormsModule } from '@angular/forms'; -import { CrnkExpressionFormModule } from '@crnk/angular-ngrx'; -import { ButtonModule } from 'primeng/components/button/button'; -import { DataTableModule } from 'primeng/components/datatable/datatable'; -import { InputTextModule } from 'primeng/components/inputtext/inputtext'; -import { NgrxJsonApiModule } from 'ngrx-json-api'; -import { TranslateModule } from '@ngx-translate/core'; -import { AppCommonModule } from '../common'; -import { CommonModule } from '@angular/common'; -import { MatButtonModule, MatInputModule } from '@angular/material'; -import { VoteExplorerComponent } from './vote.explorer.component'; -import { ProtectedGuard } from 'ngx-auth'; - -export const VOTE_ROUTES: Routes = [ - { - path: 'vote', component: VoteExplorerComponent, - canActivate: [ProtectedGuard], - data: { - resourceType: 'vote' - }, - resolve: { - queryId: AppResourceResolve - } - } -]; - - -@NgModule({ - declarations: [ - VoteExplorerComponent - ], - imports: [ - CommonModule, - StoreModule, RouterModule, FormsModule, EffectsModule, NgrxJsonApiModule, - RouterModule.forChild(VOTE_ROUTES), TranslateModule, - - MatButtonModule, MatInputModule, - - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, - CrnkExpressionFormModule - - ], - exports: [ - DataTableModule, ButtonModule, InputTextModule, - AppCommonModule, CrnkExpressionFormModule - ] -}) -export class VoteModule { - -} - - - - diff --git a/crnk-example-frontend/src/assets/demo.scss b/crnk-example-frontend/src/assets/demo.scss deleted file mode 100644 index 08da377..0000000 --- a/crnk-example-frontend/src/assets/demo.scss +++ /dev/null @@ -1,325 +0,0 @@ -@import '~@angular/material/theming'; -// Plus imports for other components in your app. - -// Include the common styles for Angular Material. We include this here so that you only -// have to load a single css file for Angular Material in your app. -// Be sure that you only ever include this mixin once! -@include mat-core(); - -// Define the palettes for your theme using the Material Design palettes available in palette.scss -// (imported above). For each palette, you can optionally specify a default, lighter, and darker -// hue. -$candy-app-primary: mat-palette($mat-indigo); -$candy-app-accent: mat-palette($mat-pink, A200, A100, A400); - -// The warn palette is optional (defaults to red). -$candy-app-warn: mat-palette($mat-red); - -// Create the theme object (a Sass map containing all of the palettes). -$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn); - -// Include theme styles for core and each component used in your app. -// Alternatively, you can import and @include the theme mixins for each component -// that you are using. -@include angular-material-theme($candy-app-theme); - -.form-container { - display: flex; - flex-direction: column; -} - -.form-container > * { - width: 100%; -} - -// TODO align with material styling variables - -body { - font-size: 14px; -} - -$dividerLightColor: #dddddd; -$textColor: #212121; -$textLightColor: rgba(0, 0, 0, 0.54); - -$accentTextColor: #ffffff; -$accentColor: #3f51b5; -$accentDarkColor: #3f51b5; - -$primaryDarkColor: #3f51b5; -$primaryLightColor: #3f51b5; - -.ui-state-highlight { - -} - -.ui-datatable { - - background-color: #FFFFFF; - - .ui-datatable-thead { - tr { - border-bottom: 1px solid $dividerLightColor; - - th { - border: none; - color: $textLightColor; - font-weight: normal; - font-size: 12px; - padding: 0.8em .875em; - - .ui-column-title { - padding: 0.8em .875em; - } - - .ui-sortable-column-icon { - vertical-align: middle; - margin: -.25em 0 0 0; - } - - .ui-column-resizer { - display: block; - position: absolute !important; - top: 0; - right: 0; - margin: 0; - width: .5em; - height: 100%; - padding: 0; - cursor: col-resize; - &:before { - content: none; // remove the material resizer icon - } - } - - &.ui-state-active { - background-color: #FFFFFF; - color: $textColor; - border-top-color: transparent; - - .fa { - color: $accentDarkColor; - } - - .ui-inputtext { - color: $textColor; - - &.ui-state-focus { - border-color: transparent; - } - } - } - } - } - } - - .ui-datatable-data { - - border: none; - - tr { - border-bottom: 1px solid $dividerLightColor; - - &.ui-state-highlight { - border-bottom: 1px solid $dividerLightColor; - background-color: #fafafa; - - color: #3f51b5; - font-weight: bold; - } - - td { - border: none; - border-image-width: 0; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - - padding: 0.8em .875em; - - &:first-child { - border-left: none; - } - - &:last-child { - border-right: none; - } - } - - td.ui-editable-column.ui-cell-editing { - padding: 0.5em; - } - } - } - - .ui-paginator { - background-color: $primaryDarkColor; - padding: .225em 0.5em;; - - > a { - box-sizing: border-box; - color: #ffffff; - - &.ui-state-hover { - background-color: $primaryLightColor; - } - } - - .ui-paginator-pages { - vertical-align: middle; - margin: 0 .375em 0 .375em; - - a { - padding: 0; - color: #ffffff; - - &.ui-state-hover { - background-color: $primaryLightColor; - } - - &.ui-state-active { - background-color: $accentColor; - color: $accentTextColor; - } - } - } - } -} - -.exception-body { - background-color: $accentColor; - height: auto; - - .exception-type { - width: 100%; - height: 50%; - padding: 100px 100px 0 100px; - box-sizing: border-box; - text-align: center; - } - - .exception-panel { - text-align: center; - width: 350px; - padding: 40px; - margin: -10% auto 0 auto; - z-index: 100; - - i { - font-size: 72px; - } - - h1 { - font-size: 36px; - line-height: 36px; - color: $accentTextColor; - } - - .mat-button { - color: $accentTextColor; - } - - .exception-detail { - margin: 20px 0px 100px 0px; - color: $accentTextColor; - } - - } - - .ui-button { - &:hover { - background-color: $accentColor; - } - } - - &.error-page { - .exception-type { - background-color: $accentColor; - - img { - width: 100%; - } - } - - .exception-panel { - i { - color: #f79a84; - } - } - } - - &.notfound-page { - .exception-type { - background-color: $accentColor; - - img { - width: 54%; - } - } - - .exception-panel { - i { - color: $accentColor; - } - } - } - - &.accessdenied-page { - .exception-type { - background-color: $accentColor; - - img { - width: 50%; - } - } - - .exception-panel { - i { - color: $accentColor; - } - } - } -} - -.splash-body { - background-color: $primaryDarkColor; - color: $accentTextColor; - - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - - i { - font-size: 72px; - } - - h1 { - font-size: 36px; - line-height: 36px; - - } -} - -.loading-overlay { - z-index: 100; - position: absolute; - width: 100%; - height: 100%; - background-color: rgba(#888888, 0.75); - - .loading-panel { - color: $accentTextColor; - display: flex; - justify-content: center; - align-items: center; - height: 100%; - width: 100%; - - .mat-progress-bar { - max-width: 25%; - } - } -} - - diff --git a/crnk-example-frontend/src/assets/i18n/de.json b/crnk-example-frontend/src/assets/i18n/de.json deleted file mode 100644 index 44f57a5..0000000 --- a/crnk-example-frontend/src/assets/i18n/de.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - - "name": "Name", - - "auditInfo.ctlCreTs": "Erstellt um", - "auditInfo.ctlCreUid": "Erstellt am", - "auditInfo.ctlModTs": "Geändert von", - "auditInfo.ctlModUid": "Geändert am", - - "action.refresh": "Aktualisieren", - "action.create": "Erstellen", - "action.save": "Speichern", - "action.delete": "Löschen", - "action.select": "Auswählen...", - "action.selection.accept": "Auswählen", - "action.clear": "Entfernen", - "action.add": "Hinzufügen...", - "action.remove": "Entfernen", - "action.cancel": "Abbrechen", - - "editor.save.success": "Änderung gespeichert.", - "editor.create.success": "Erstellt.", - - "service.selected": "Ausgewählter Service", - - "error.conflict": "Änderung durch einen anderen Benutzer. Aktualisieren Sie diese Seite um die aktuellen Änderungen zu sehen.", - - "app.txt.loggedInAs": "Eingeloggt als: {{userName}}" -} diff --git a/crnk-example-frontend/src/assets/i18n/en.json b/crnk-example-frontend/src/assets/i18n/en.json deleted file mode 100644 index b585f06..0000000 --- a/crnk-example-frontend/src/assets/i18n/en.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - - "name": "Name", - - "auditInfo.ctlCreTs": "Created by", - "auditInfo.ctlCreUid": "Created at", - "auditInfo.ctlModTs": "Modified by", - "auditInfo.ctlModUid": "Modified at", - - "action.refresh": "Refresh", - "action.create": "Create", - "action.save": "Save", - "action.delete": "Delete", - "action.select": "Select...", - "action.selection.accept": "Accept", - "action.clear": "Clear", - "action.add": "Add...", - "action.remove": "Remove", - "action.cancel": "Cancel", - - "editor.save.success": "Saved changes.", - "editor.create.success": "Created new entry.", - - "service.selected": "Selected service", - - "error.conflict": "Concurrent modification by another user. Refresh to get most recent changes.", - - "app.txt.loggedInAs": "Logged in as: {{userName}}" - -} diff --git a/crnk-example-frontend/src/assets/images/401.svg b/crnk-example-frontend/src/assets/images/401.svg deleted file mode 100644 index a4d22ad..0000000 --- a/crnk-example-frontend/src/assets/images/401.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - 8931E9BA-C84B-4069-9EAC-D5DE09A5F7A1 - Created with sketchtool. - - - - - - - diff --git a/crnk-example-frontend/src/assets/images/404.svg b/crnk-example-frontend/src/assets/images/404.svg deleted file mode 100644 index fecd499..0000000 --- a/crnk-example-frontend/src/assets/images/404.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - 3A894ED8-99CA-4B1E-AF43-22E4D1A5DD0F - Created with sketchtool. - - - - - - - diff --git a/crnk-example-frontend/src/assets/images/error.svg b/crnk-example-frontend/src/assets/images/error.svg deleted file mode 100644 index 85709f5..0000000 --- a/crnk-example-frontend/src/assets/images/error.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - 13C26429-22F8-48F0-9BC6-01F28C68B629 - Created with sketchtool. - - - - - - - diff --git a/crnk-example-frontend/src/environments/environment.prod.ts b/crnk-example-frontend/src/environments/environment.prod.ts deleted file mode 100644 index 675370a..0000000 --- a/crnk-example-frontend/src/environments/environment.prod.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const environment = { - production: true, - 'demo.server.url': '/api' -}; diff --git a/crnk-example-frontend/src/environments/environment.ts b/crnk-example-frontend/src/environments/environment.ts deleted file mode 100644 index 7837e02..0000000 --- a/crnk-example-frontend/src/environments/environment.ts +++ /dev/null @@ -1,9 +0,0 @@ -// The file contents for the current environment will overwrite these during build. -// The build system defaults to the dev environment which uses `environment.ts`, but if you do -// `ng build --env=prod` then `environment.prod.ts` will be used instead. -// The list of which env maps to which file can be found in `angular-cli.json`. - -export const environment = { - production: false, - 'demo.server.url': 'http://localhost:4200/api' -}; diff --git a/crnk-example-frontend/src/favicon.ico b/crnk-example-frontend/src/favicon.ico deleted file mode 100644 index 8081c7c..0000000 Binary files a/crnk-example-frontend/src/favicon.ico and /dev/null differ diff --git a/crnk-example-frontend/src/index.html b/crnk-example-frontend/src/index.html deleted file mode 100644 index 2d7b4fa..0000000 --- a/crnk-example-frontend/src/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - Crnk Example - - - - - - - - - - - - -
- -
-

Loading...

-
-
-
-
- - - diff --git a/crnk-example-frontend/src/main.ts b/crnk-example-frontend/src/main.ts deleted file mode 100644 index b418772..0000000 --- a/crnk-example-frontend/src/main.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; -import {enableProdMode} from '@angular/core'; -import {environment} from './environments/environment'; -import {AppModule} from './app/app.module'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.log(err)); diff --git a/crnk-example-frontend/src/polyfills.ts b/crnk-example-frontend/src/polyfills.ts deleted file mode 100644 index f888fe7..0000000 --- a/crnk-example-frontend/src/polyfills.ts +++ /dev/null @@ -1,67 +0,0 @@ -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE9, IE10 and IE11 requires all of the following polyfills. **/ -// import 'core-js/es6/symbol'; -// import 'core-js/es6/object'; -// import 'core-js/es6/function'; -// import 'core-js/es6/parse-int'; -// import 'core-js/es6/parse-float'; -// import 'core-js/es6/number'; -// import 'core-js/es6/math'; -// import 'core-js/es6/string'; -// import 'core-js/es6/date'; -// import 'core-js/es6/array'; -// import 'core-js/es6/regexp'; -// import 'core-js/es6/map'; -// import 'core-js/es6/weak-map'; -// import 'core-js/es6/set'; - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** IE10 and IE11 requires the following for the Reflect API. */ -// import 'core-js/es6/reflect'; - - -/** Evergreen browsers require these. **/ -// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. -// Open issue: load it only when using JIT: https://github.com/angular/angular-cli/issues/6325 -import 'core-js/es7/reflect'; - - -/** - * Required to support Web Animations `@angular/platform-browser/animations`. - * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation - **/ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - - - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - - - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/crnk-example-frontend/src/resources/attribute.change.ts b/crnk-example-frontend/src/resources/attribute.change.ts deleted file mode 100644 index 8143fe3..0000000 --- a/crnk-example-frontend/src/resources/attribute.change.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module AttributeChange { - export interface Relationships { - [key: string]: ResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - attribute?: string; - newValue?: string; - oldValue?: string; - changeTime?: string; - } -} -export interface AttributeChange extends CrnkStoreResource { - relationships?: AttributeChange.Relationships; - attributes?: AttributeChange.Attributes; -} -export interface AttributeChangeResult extends OneQueryResult { - data?: AttributeChange; -} -export interface AttributeChangeListResult extends ManyQueryResult { - data?: Array; -} -export class QAttributeChange extends BeanPath { - metaId = 'resources.attributeChange'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QAttributeChange.QRelationships = new QAttributeChange.QRelationships(this, 'relationships'); - attributes: QAttributeChange.QAttributes = new QAttributeChange.QAttributes(this, 'attributes'); -} -export module QAttributeChange { - export class QRelationships extends BeanPath { - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - attribute: StringPath = this.createString('attribute'); - newValue: StringPath = this.createString('newValue'); - oldValue: StringPath = this.createString('oldValue'); - changeTime: StringPath = this.createString('changeTime'); - } -} -export let createEmptyAttributeChange = function(id: string): AttributeChange { - return { - id: id, - type: 'attributeChange', - attributes: { - }, - relationships: { - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/history.ts b/crnk-example-frontend/src/resources/history.ts deleted file mode 100644 index 0d83bb6..0000000 --- a/crnk-example-frontend/src/resources/history.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - BeanPath, - CrnkStoreResource, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult -} from 'ngrx-json-api'; - -export module History { - export interface Attributes { - attribute?: string; - newValue?: string; - oldValue?: string; - } -} -export interface History extends CrnkStoreResource { - attributes?: History.Attributes; -} -export interface HistoryResult extends OneQueryResult { - data?: History; -} -export interface HistoryListResult extends ManyQueryResult { - data?: Array; -} -export class QHistory extends BeanPath { - metaId = 'resources.history'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - attributes: QHistory.QAttributes = new QHistory.QAttributes(this, 'attributes'); -} -export module QHistory { - export class QAttributes extends BeanPath { - attribute: StringPath = this.createString('attribute'); - newValue: StringPath = this.createString('newValue'); - oldValue: StringPath = this.createString('oldValue'); - } -} -export let createEmptyHistory = function(id: string): History { - return { - id: id, - type: 'history', - attributes: { - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/index.ts b/crnk-example-frontend/src/resources/index.ts deleted file mode 100644 index ebfc5bb..0000000 --- a/crnk-example-frontend/src/resources/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './attribute.change'; -export * from './location'; -export * from './login'; -export * from './movie'; -export * from './person'; -export * from './role'; -export * from './schedule'; -export * from './schedule.dto'; -export * from './screening'; -export * from './secret'; -export * from './vote'; diff --git a/crnk-example-frontend/src/resources/location.ts b/crnk-example-frontend/src/resources/location.ts deleted file mode 100644 index 6ef7788..0000000 --- a/crnk-example-frontend/src/resources/location.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module Location { - export interface Relationships { - [key: string]: ResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } -} -export interface Location extends CrnkStoreResource { - relationships?: Location.Relationships; -} -export interface LocationResult extends OneQueryResult { - data?: Location; -} -export interface LocationListResult extends ManyQueryResult { - data?: Array; -} -export class QLocation extends BeanPath { - metaId = 'resources.location'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QLocation.QRelationships = new QLocation.QRelationships(this, 'relationships'); -} -export module QLocation { - export class QRelationships extends BeanPath { - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } -} -export let createEmptyLocation = function(id: string): Location { - return { - id: id, - type: 'location', - relationships: { - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/login.ts b/crnk-example-frontend/src/resources/login.ts deleted file mode 100644 index 53ac6e7..0000000 --- a/crnk-example-frontend/src/resources/login.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module Login { - export interface Relationships { - [key: string]: ResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - userName?: string; - } -} -export interface Login extends CrnkStoreResource { - relationships?: Login.Relationships; - attributes?: Login.Attributes; -} -export interface LoginResult extends OneQueryResult { - data?: Login; -} -export interface LoginListResult extends ManyQueryResult { - data?: Array; -} -export class QLogin extends BeanPath { - metaId = 'resources.login'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QLogin.QRelationships = new QLogin.QRelationships(this, 'relationships'); - attributes: QLogin.QAttributes = new QLogin.QAttributes(this, 'attributes'); -} -export module QLogin { - export class QRelationships extends BeanPath { - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - userName: StringPath = this.createString('userName'); - } -} -export let createEmptyLogin = function(id: string): Login { - return { - id: id, - type: 'login', - attributes: { - }, - relationships: { - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/movie.ts b/crnk-example-frontend/src/resources/movie.ts deleted file mode 100644 index 9f4850c..0000000 --- a/crnk-example-frontend/src/resources/movie.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - QRole, - Role -} from './role'; -import { - BeanPath, - CrnkStoreResource, - NumberPath, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module Movie { - export interface Relationships { - [key: string]: ResourceRelationship; - roles?: TypedManyResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - name?: string; - year?: number; - version?: number; - } -} -export interface Movie extends CrnkStoreResource { - relationships?: Movie.Relationships; - attributes?: Movie.Attributes; -} -export interface MovieResult extends OneQueryResult { - data?: Movie; -} -export interface MovieListResult extends ManyQueryResult { - data?: Array; -} -export class QMovie extends BeanPath { - metaId = 'resources.movie'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QMovie.QRelationships = new QMovie.QRelationships(this, 'relationships'); - attributes: QMovie.QAttributes = new QMovie.QAttributes(this, 'attributes'); -} -export module QMovie { - export class QRelationships extends BeanPath { - private _roles: QTypedManyResourceRelationship; - get roles(): QTypedManyResourceRelationship { - if (!this._roles) { - this._roles = - new QTypedManyResourceRelationship(this, 'roles', QRole); - } - return this._roles; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - name: StringPath = this.createString('name'); - year: NumberPath = this.createNumber('year'); - version: NumberPath = this.createNumber('version'); - } -} -export let createEmptyMovie = function(id: string): Movie { - return { - id: id, - type: 'movie', - attributes: { - }, - relationships: { - roles: {data: []}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/person.ts b/crnk-example-frontend/src/resources/person.ts deleted file mode 100644 index 97b658a..0000000 --- a/crnk-example-frontend/src/resources/person.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - QRole, - Role -} from './role'; -import { - BeanPath, - CrnkStoreResource, - NumberPath, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module Person { - export interface Relationships { - [key: string]: ResourceRelationship; - roles?: TypedManyResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - name?: string; - year?: number; - version?: number; - } -} -export interface Person extends CrnkStoreResource { - relationships?: Person.Relationships; - attributes?: Person.Attributes; -} -export interface PersonResult extends OneQueryResult { - data?: Person; -} -export interface PersonListResult extends ManyQueryResult { - data?: Array; -} -export class QPerson extends BeanPath { - metaId = 'resources.person'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QPerson.QRelationships = new QPerson.QRelationships(this, 'relationships'); - attributes: QPerson.QAttributes = new QPerson.QAttributes(this, 'attributes'); -} -export module QPerson { - export class QRelationships extends BeanPath { - private _roles: QTypedManyResourceRelationship; - get roles(): QTypedManyResourceRelationship { - if (!this._roles) { - this._roles = - new QTypedManyResourceRelationship(this, 'roles', QRole); - } - return this._roles; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - name: StringPath = this.createString('name'); - year: NumberPath = this.createNumber('year'); - version: NumberPath = this.createNumber('version'); - } -} -export let createEmptyPerson = function(id: string): Person { - return { - id: id, - type: 'person', - attributes: { - }, - relationships: { - roles: {data: []}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/role.ts b/crnk-example-frontend/src/resources/role.ts deleted file mode 100644 index b60dc09..0000000 --- a/crnk-example-frontend/src/resources/role.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - Movie, - QMovie -} from './movie'; -import { - Person, - QPerson -} from './person'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - QTypedOneResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship, - TypedOneResourceRelationship -} from 'ngrx-json-api'; - -export module Role { - export interface Relationships { - [key: string]: ResourceRelationship; - movie?: TypedOneResourceRelationship; - person?: TypedOneResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - role?: string; - description?: string; - } -} -export interface Role extends CrnkStoreResource { - relationships?: Role.Relationships; - attributes?: Role.Attributes; -} -export interface RoleResult extends OneQueryResult { - data?: Role; -} -export interface RoleListResult extends ManyQueryResult { - data?: Array; -} -export class QRole extends BeanPath { - metaId = 'resources.role'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QRole.QRelationships = new QRole.QRelationships(this, 'relationships'); - attributes: QRole.QAttributes = new QRole.QAttributes(this, 'attributes'); -} -export module QRole { - export class QRelationships extends BeanPath { - private _movie: QTypedOneResourceRelationship; - get movie(): QTypedOneResourceRelationship { - if (!this._movie) { - this._movie = - new QTypedOneResourceRelationship(this, 'movie', QMovie); - } - return this._movie; - } - private _person: QTypedOneResourceRelationship; - get person(): QTypedOneResourceRelationship { - if (!this._person) { - this._person = - new QTypedOneResourceRelationship(this, 'person', QPerson); - } - return this._person; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - role: StringPath = this.createString('role'); - description: StringPath = this.createString('description'); - } -} -export let createEmptyRole = function(id: string): Role { - return { - id: id, - type: 'role', - attributes: { - }, - relationships: { - movie: {data: null}, - person: {data: null}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/schedule.dto.ts b/crnk-example-frontend/src/resources/schedule.dto.ts deleted file mode 100644 index 8986f6c..0000000 --- a/crnk-example-frontend/src/resources/schedule.dto.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module ScheduleDto { - export interface Relationships { - [key: string]: ResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - name?: string; - computedUpperName?: string; - decoratedName?: string; - } -} -export interface ScheduleDto extends CrnkStoreResource { - relationships?: ScheduleDto.Relationships; - attributes?: ScheduleDto.Attributes; -} -export interface ScheduleDtoResult extends OneQueryResult { - data?: ScheduleDto; -} -export interface ScheduleDtoListResult extends ManyQueryResult { - data?: Array; -} -export class QScheduleDto extends BeanPath { - metaId = 'resources.scheduleDto'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QScheduleDto.QRelationships = new QScheduleDto.QRelationships(this, 'relationships'); - attributes: QScheduleDto.QAttributes = new QScheduleDto.QAttributes(this, 'attributes'); -} -export module QScheduleDto { - export class QRelationships extends BeanPath { - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - name: StringPath = this.createString('name'); - computedUpperName: StringPath = this.createString('computedUpperName'); - decoratedName: StringPath = this.createString('decoratedName'); - } -} -export let createEmptyScheduleDto = function(id: string): ScheduleDto { - return { - id: id, - type: 'scheduleDto', - attributes: { - }, - relationships: { - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/schedule.ts b/crnk-example-frontend/src/resources/schedule.ts deleted file mode 100644 index 97064da..0000000 --- a/crnk-example-frontend/src/resources/schedule.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - Movie, - QMovie -} from './movie'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - QTypedOneResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship, - TypedOneResourceRelationship -} from 'ngrx-json-api'; - -export module Schedule { - export interface Relationships { - [key: string]: ResourceRelationship; - movie?: TypedOneResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - name?: string; - } -} -export interface Schedule extends CrnkStoreResource { - relationships?: Schedule.Relationships; - attributes?: Schedule.Attributes; -} -export interface ScheduleResult extends OneQueryResult { - data?: Schedule; -} -export interface ScheduleListResult extends ManyQueryResult { - data?: Array; -} -export class QSchedule extends BeanPath { - metaId = 'resources.schedule'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QSchedule.QRelationships = new QSchedule.QRelationships(this, 'relationships'); - attributes: QSchedule.QAttributes = new QSchedule.QAttributes(this, 'attributes'); -} -export module QSchedule { - export class QRelationships extends BeanPath { - private _movie: QTypedOneResourceRelationship; - get movie(): QTypedOneResourceRelationship { - if (!this._movie) { - this._movie = - new QTypedOneResourceRelationship(this, 'movie', QMovie); - } - return this._movie; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - name: StringPath = this.createString('name'); - } -} -export let createEmptySchedule = function(id: string): Schedule { - return { - id: id, - type: 'schedule', - attributes: { - }, - relationships: { - movie: {data: null}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/screening.ts b/crnk-example-frontend/src/resources/screening.ts deleted file mode 100644 index a0edbc4..0000000 --- a/crnk-example-frontend/src/resources/screening.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - Location, - QLocation -} from './location'; -import { - Movie, - QMovie -} from './movie'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - QTypedOneResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship, - TypedOneResourceRelationship -} from 'ngrx-json-api'; - -export module Screening { - export interface Relationships { - [key: string]: ResourceRelationship; - movie?: TypedOneResourceRelationship; - location?: TypedOneResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } -} -export interface Screening extends CrnkStoreResource { - relationships?: Screening.Relationships; -} -export interface ScreeningResult extends OneQueryResult { - data?: Screening; -} -export interface ScreeningListResult extends ManyQueryResult { - data?: Array; -} -export class QScreening extends BeanPath { - metaId = 'resources.screening'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QScreening.QRelationships = new QScreening.QRelationships(this, 'relationships'); -} -export module QScreening { - export class QRelationships extends BeanPath { - private _movie: QTypedOneResourceRelationship; - get movie(): QTypedOneResourceRelationship { - if (!this._movie) { - this._movie = - new QTypedOneResourceRelationship(this, 'movie', QMovie); - } - return this._movie; - } - private _location: QTypedOneResourceRelationship; - get location(): QTypedOneResourceRelationship { - if (!this._location) { - this._location = - new QTypedOneResourceRelationship(this, 'location', QLocation); - } - return this._location; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } -} -export let createEmptyScreening = function(id: string): Screening { - return { - id: id, - type: 'screening', - relationships: { - movie: {data: null}, - location: {data: null}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/secret.ts b/crnk-example-frontend/src/resources/secret.ts deleted file mode 100644 index a3a1bb2..0000000 --- a/crnk-example-frontend/src/resources/secret.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - BeanPath, - CrnkStoreResource, - QTypedManyResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship -} from 'ngrx-json-api'; - -export module Secret { - export interface Relationships { - [key: string]: ResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - name?: string; - value?: string; - } -} -export interface Secret extends CrnkStoreResource { - relationships?: Secret.Relationships; - attributes?: Secret.Attributes; -} -export interface SecretResult extends OneQueryResult { - data?: Secret; -} -export interface SecretListResult extends ManyQueryResult { - data?: Array; -} -export class QSecret extends BeanPath { - metaId = 'resources.secret'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QSecret.QRelationships = new QSecret.QRelationships(this, 'relationships'); - attributes: QSecret.QAttributes = new QSecret.QAttributes(this, 'attributes'); -} -export module QSecret { - export class QRelationships extends BeanPath { - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - name: StringPath = this.createString('name'); - value: StringPath = this.createString('value'); - } -} -export let createEmptySecret = function(id: string): Secret { - return { - id: id, - type: 'secret', - attributes: { - }, - relationships: { - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/resources/vote.ts b/crnk-example-frontend/src/resources/vote.ts deleted file mode 100644 index 8229a62..0000000 --- a/crnk-example-frontend/src/resources/vote.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { - AttributeChange, - QAttributeChange -} from './attribute.change'; -import { - Movie, - QMovie -} from './movie'; -import { - BeanPath, - CrnkStoreResource, - NumberPath, - QTypedManyResourceRelationship, - QTypedOneResourceRelationship, - StringPath -} from '@crnk/angular-ngrx'; -import { - ManyQueryResult, - OneQueryResult, - ResourceRelationship, - TypedManyResourceRelationship, - TypedOneResourceRelationship -} from 'ngrx-json-api'; - -export module Vote { - export interface Relationships { - [key: string]: ResourceRelationship; - movie?: TypedOneResourceRelationship; - attributeChanges?: TypedManyResourceRelationship; - } - export interface Attributes { - count?: number; - } -} -export interface Vote extends CrnkStoreResource { - relationships?: Vote.Relationships; - attributes?: Vote.Attributes; -} -export interface VoteResult extends OneQueryResult { - data?: Vote; -} -export interface VoteListResult extends ManyQueryResult { - data?: Array; -} -export class QVote extends BeanPath { - metaId = 'resources.vote'; - id: StringPath = this.createString('id'); - type: StringPath = this.createString('type'); - relationships: QVote.QRelationships = new QVote.QRelationships(this, 'relationships'); - attributes: QVote.QAttributes = new QVote.QAttributes(this, 'attributes'); -} -export module QVote { - export class QRelationships extends BeanPath { - private _movie: QTypedOneResourceRelationship; - get movie(): QTypedOneResourceRelationship { - if (!this._movie) { - this._movie = - new QTypedOneResourceRelationship(this, 'movie', QMovie); - } - return this._movie; - } - private _attributeChanges: QTypedManyResourceRelationship; - get attributeChanges(): QTypedManyResourceRelationship { - if (!this._attributeChanges) { - this._attributeChanges = - new QTypedManyResourceRelationship(this, 'attributeChanges', QAttributeChange); - } - return this._attributeChanges; - } - } - export class QAttributes extends BeanPath { - count: NumberPath = this.createNumber('count'); - } -} -export let createEmptyVote = function(id: string): Vote { - return { - id: id, - type: 'vote', - attributes: { - }, - relationships: { - movie: {data: null}, - attributeChanges: {data: []}, - }, - }; -}; \ No newline at end of file diff --git a/crnk-example-frontend/src/test.ts b/crnk-example-frontend/src/test.ts deleted file mode 100644 index 700b36a..0000000 --- a/crnk-example-frontend/src/test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy.js'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; -import {getTestBed} from '@angular/core/testing'; -import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing'; - -// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare var __karma__: any; -declare var require: any; - -// Prevent Karma from running prematurely. -__karma__.loaded = function () { -}; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); -// Finally, start Karma to run the tests. -__karma__.start(); diff --git a/crnk-example-frontend/src/tsconfig.json b/crnk-example-frontend/src/tsconfig.json deleted file mode 100644 index c6ab811..0000000 --- a/crnk-example-frontend/src/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "", - "declaration": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "lib": [ - "es2017", - "dom" - ], - "mapRoot": "./", - "module": "es2015", - "moduleResolution": "node", - "outDir": "../dist/out-tsc", - "sourceMap": true, - "skipLibCheck": true, - "target": "es5", - "typeRoots": [ - "../node_modules/@types" - ] - }, - "exclude": [ - "test.ts", - "**/*.spec.ts" - ] -} diff --git a/crnk-example-frontend/test.json b/crnk-example-frontend/test.json deleted file mode 100644 index 506f325..0000000 --- a/crnk-example-frontend/test.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "labelingTypeConfig", - "attributes": { - "labelingTypeConfigId": 0, - "auditInfo": { - "ctlCreTs": null, - "ctlModTs": null, - "ctlModUid": "", - "ctlCreUid": "" - }, - "ctlTcn": 0 - }, - "relationships": { - "labelingType": { - "data": null - }, - "processConfiguration": { - "data": null - } - }, - "id": "123", - "persistedResource": null, - "state": "CREATED", - "errors": [], - "loading": false -} \ No newline at end of file diff --git a/crnk-example-frontend/tslint.json b/crnk-example-frontend/tslint.json deleted file mode 100644 index 0c4f84a..0000000 --- a/crnk-example-frontend/tslint.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "rulesDirectory": [ - "node_modules/codelyzer", - "node_modules/tslint-eslint-rules/dist/rules" - ], - "rules": { - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "comment-format": [ - true - ], - "curly": true, - "deprecation": { - "severity": "warn" - }, - "forin": true, - "import-blacklist": [ - true, - "rxjs/Rx" - ], - "import-spacing": true, - "indent": [ - true, - "tabs" - ], - "interface-over-type-literal": true, - "label-position": true, - "max-line-length": [ - true, - 130 - ], - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "constructor", - "static-method", - "instance-method" - ] - } - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": false, - "no-eval": true, - "no-inferrable-types": [ - true, - "ignore-params" - ], - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unnecessary-initializer": true, - "no-unused-expression": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-open-brace", - "check-whitespace" - ], - "prefer-const": true, - "quotemark": [ - true, - "single" - ], - "radix": true, - "semicolon": [ - true, - "always", - "ignore-bound-class-methods" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "typeof-compare": true, - "unified-signatures": true, - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - "directive-selector": [ - true, - "attribute", - "", - "camelCase" - ], - "component-selector": [ - true, - "element", - "", - "kebab-case" - ], - "no-output-on-prefix": true, - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "brace-style": [ - true, - "stroustrup", - { - "allowSingleLine": true - } - ] - } -} diff --git a/crnk-example-frontend/yarn.lock b/crnk-example-frontend/yarn.lock deleted file mode 100644 index 653ff37..0000000 --- a/crnk-example-frontend/yarn.lock +++ /dev/null @@ -1,7057 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@angular-devkit/architect@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.6.5.tgz#98185fd0adea9c1a81b67ff6d543b79033902ce2" - dependencies: - "@angular-devkit/core" "0.6.5" - rxjs "^6.0.0" - -"@angular-devkit/build-angular@~0.6.3": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.6.5.tgz#3af90ba31dde00465bfb0b20af2389fea5bd65d4" - dependencies: - "@angular-devkit/architect" "0.6.5" - "@angular-devkit/build-optimizer" "0.6.5" - "@angular-devkit/core" "0.6.5" - "@ngtools/webpack" "6.0.5" - ajv "~6.4.0" - autoprefixer "^8.4.1" - cache-loader "^1.2.2" - chalk "~2.2.2" - circular-dependency-plugin "^5.0.2" - clean-css "^4.1.11" - copy-webpack-plugin "^4.5.1" - file-loader "^1.1.11" - glob "^7.0.3" - html-webpack-plugin "^3.0.6" - istanbul "^0.4.5" - istanbul-instrumenter-loader "^3.0.1" - karma-source-map-support "^1.2.0" - less "^3.0.4" - less-loader "^4.1.0" - license-webpack-plugin "^1.3.1" - lodash "^4.17.4" - memory-fs "^0.4.1" - mini-css-extract-plugin "~0.4.0" - minimatch "^3.0.4" - opn "^5.1.0" - parse5 "^4.0.0" - portfinder "^1.0.13" - postcss "^6.0.22" - postcss-import "^11.1.0" - postcss-loader "^2.1.5" - postcss-url "^7.3.2" - raw-loader "^0.5.1" - resolve "^1.5.0" - rxjs "^6.0.0" - sass-loader "^7.0.1" - silent-error "^1.1.0" - source-map-support "^0.5.0" - stats-webpack-plugin "^0.6.2" - style-loader "^0.21.0" - stylus "^0.54.5" - stylus-loader "^3.0.2" - tree-kill "^1.2.0" - uglifyjs-webpack-plugin "^1.2.5" - url-loader "^1.0.1" - webpack "~4.8.1" - webpack-dev-middleware "^3.1.3" - webpack-dev-server "^3.1.4" - webpack-merge "^4.1.2" - webpack-sources "^1.1.0" - webpack-subresource-integrity "^1.1.0-rc.4" - optionalDependencies: - node-sass "^4.9.0" - -"@angular-devkit/build-optimizer@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.6.5.tgz#041d16f78eb529ddd46cb1389872c103c01e13f6" - dependencies: - loader-utils "^1.1.0" - source-map "^0.5.6" - typescript "~2.7.2" - webpack-sources "^1.1.0" - -"@angular-devkit/core@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.6.5.tgz#d5c7e603e4557e1d86193dcfaaa34dbc86a3432a" - dependencies: - ajv "~6.4.0" - chokidar "^2.0.3" - rxjs "^6.0.0" - source-map "^0.5.6" - -"@angular-devkit/schematics@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.6.5.tgz#6985c821feab391ef298ef5a5002b95bea7ad843" - dependencies: - "@angular-devkit/core" "0.6.5" - rxjs "^6.0.0" - -"@angular/animations@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-6.0.3.tgz#703f18c3b72d1df446a2b5059b8e51098fd5c899" - dependencies: - tslib "^1.9.0" - -"@angular/cdk@^6.0.2": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-6.1.0.tgz#14ae46730315d40b5a642daa8f5f80815930085c" - dependencies: - tslib "^1.7.1" - -"@angular/cli@^6.0.2": - version "6.0.5" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.0.5.tgz#9b1b8459a20bd9b5166d1d84225a274a37c57bce" - dependencies: - "@angular-devkit/architect" "0.6.5" - "@angular-devkit/core" "0.6.5" - "@angular-devkit/schematics" "0.6.5" - "@schematics/angular" "0.6.5" - "@schematics/update" "0.6.5" - opn "~5.3.0" - resolve "^1.1.7" - rxjs "^6.0.0" - semver "^5.1.0" - silent-error "^1.0.0" - symbol-observable "^1.2.0" - yargs-parser "^10.0.0" - -"@angular/common@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.0.3.tgz#8b2af3bb74add35c10cd969a5d179cb6a8b21545" - dependencies: - tslib "^1.9.0" - -"@angular/compiler-cli@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.0.3.tgz#4cdda9f28e3387811423c980f3e195ac2322057d" - dependencies: - chokidar "^1.4.2" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - tsickle "^0.27.2" - -"@angular/compiler@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.0.3.tgz#47e988012e94f9e3477a4c5557c997d7910a3b2d" - dependencies: - tslib "^1.9.0" - -"@angular/core@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.0.3.tgz#50502115105c3784d24338dd8ffb7dddcb55b58d" - dependencies: - tslib "^1.9.0" - -"@angular/forms@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.0.3.tgz#57328c9ec0ddf4ae7823ec807315501813c22752" - dependencies: - tslib "^1.9.0" - -"@angular/http@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-6.0.3.tgz#0fee74a820650700517fbc84185ee9b3bd17ebad" - dependencies: - tslib "^1.9.0" - -"@angular/material@^6.0.2": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-6.1.0.tgz#c13f4fb38ae6f52c7c49cd8d3ae4baca4abd36ab" - dependencies: - tslib "^1.7.1" - -"@angular/platform-browser-dynamic@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.3.tgz#b27e26c06df4ce34879cefd818e7ff394764f834" - dependencies: - tslib "^1.9.0" - -"@angular/platform-browser@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.0.3.tgz#67941ac1dc0e89c1a18bb97ef17d574f469be6d2" - dependencies: - tslib "^1.9.0" - -"@angular/router@^6.0.2": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.0.3.tgz#c2b63401c30788b78c90e4209cd06a653eae6428" - dependencies: - tslib "^1.9.0" - -"@crnk/angular-ngrx@2.6.20180606171430": - version "2.6.20180606171430" - resolved "https://registry.yarnpkg.com/@crnk/angular-ngrx/-/angular-ngrx-2.6.20180606171430.tgz#9f9c9149f4781ed4134d5895e1f1b39786cff72f" - -"@ngrx/effects@^6.0.0-beta.3": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@ngrx/effects/-/effects-6.0.1.tgz#b4c0a7918b8c9a4dbc2a663ea7562bea5db21257" - -"@ngrx/router-store@^6.0.0-beta.3": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@ngrx/router-store/-/router-store-6.0.1.tgz#1c5c77b138eaed030b58f4203bf921e88cc51112" - -"@ngrx/store-devtools@^6.0.0-beta.3": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@ngrx/store-devtools/-/store-devtools-6.0.1.tgz#6049208d1ef8dc5f1f96ffc63373eab2d72f957c" - -"@ngrx/store@^6.0.0-beta.3": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-6.0.1.tgz#02c806ce20c698b997e81f5671e0edc07d32cf86" - -"@ngtools/webpack@6.0.5": - version "6.0.5" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.0.5.tgz#b91eed0de9df125877183bf5285df4435882024a" - dependencies: - "@angular-devkit/core" "0.6.5" - tree-kill "^1.0.0" - webpack-sources "^1.1.0" - -"@ngx-translate/core@^9.0.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-9.1.1.tgz#ae103928836b8a9e069fd2e2e76fa2198cc7e628" - -"@ngx-translate/http-loader@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@ngx-translate/http-loader/-/http-loader-2.0.1.tgz#aa67788e64bfa8652691a77b022b3b4031209113" - -"@schematics/angular@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.6.5.tgz#407f476ba1fea1ac5ef661b15c135af216ec710c" - dependencies: - "@angular-devkit/core" "0.6.5" - "@angular-devkit/schematics" "0.6.5" - typescript ">=2.6.2 <2.8" - -"@schematics/update@0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.6.5.tgz#170aa7c5ed0aaa68f7200a72e52e55892f09df76" - dependencies: - "@angular-devkit/core" "0.6.5" - "@angular-devkit/schematics" "0.6.5" - npm-registry-client "^8.5.1" - rxjs "^6.0.0" - semver "^5.3.0" - semver-intersect "^1.1.2" - -"@types/jasmine@^2.5.38": - version "2.8.4" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.4.tgz#5528fb5e53f1b27594f81f18debb7eab8dc532cb" - -"@types/lodash@^4.14.61": - version "4.14.93" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.93.tgz#a6d2a1e1601a3c29196f38ef1990b68a9afa1e1c" - -"@types/node@^6.0.42", "@types/node@^6.0.46": - version "6.0.96" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.96.tgz#7bf0bf40d6ce51e93762cc47d010c8cc5ebb2179" - -"@types/q@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" - -"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": - version "2.53.43" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz#2de3d718819bc20165754c4a59afb7e9833f6707" - -"@webassemblyjs/ast@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.4.3.tgz#3b3f6fced944d8660273347533e6d4d315b5934a" - dependencies: - "@webassemblyjs/helper-wasm-bytecode" "1.4.3" - "@webassemblyjs/wast-parser" "1.4.3" - debug "^3.1.0" - webassemblyjs "1.4.3" - -"@webassemblyjs/floating-point-hex-parser@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz#f5aee4c376a717c74264d7bacada981e7e44faad" - -"@webassemblyjs/helper-buffer@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz#0434b55958519bf503697d3824857b1dea80b729" - dependencies: - debug "^3.1.0" - -"@webassemblyjs/helper-code-frame@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz#f1349ca3e01a8e29ee2098c770773ef97af43641" - dependencies: - "@webassemblyjs/wast-printer" "1.4.3" - -"@webassemblyjs/helper-fsm@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz#65a921db48fb43e868f17b27497870bdcae22b79" - -"@webassemblyjs/helper-wasm-bytecode@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz#0e5b4b5418e33f8a26e940b7809862828c3721a5" - -"@webassemblyjs/helper-wasm-section@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz#9ceedd53a3f152c3412e072887ade668d0b1acbf" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/helper-buffer" "1.4.3" - "@webassemblyjs/helper-wasm-bytecode" "1.4.3" - "@webassemblyjs/wasm-gen" "1.4.3" - debug "^3.1.0" - -"@webassemblyjs/leb128@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.4.3.tgz#5a5e5949dbb5adfe3ae95664d0439927ac557fb8" - dependencies: - leb "^0.3.0" - -"@webassemblyjs/validation@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/validation/-/validation-1.4.3.tgz#9e66c9b3079d7bbcf2070c1bf52a54af2a09aac9" - dependencies: - "@webassemblyjs/ast" "1.4.3" - -"@webassemblyjs/wasm-edit@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz#87febd565e0ffb5ae25f6495bb3958d17aa0a779" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/helper-buffer" "1.4.3" - "@webassemblyjs/helper-wasm-bytecode" "1.4.3" - "@webassemblyjs/helper-wasm-section" "1.4.3" - "@webassemblyjs/wasm-gen" "1.4.3" - "@webassemblyjs/wasm-opt" "1.4.3" - "@webassemblyjs/wasm-parser" "1.4.3" - "@webassemblyjs/wast-printer" "1.4.3" - debug "^3.1.0" - -"@webassemblyjs/wasm-gen@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz#8553164d0154a6be8f74d653d7ab355f73240aa4" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/helper-wasm-bytecode" "1.4.3" - "@webassemblyjs/leb128" "1.4.3" - -"@webassemblyjs/wasm-opt@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz#26c7a23bfb136aa405b1d3410e63408ec60894b8" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/helper-buffer" "1.4.3" - "@webassemblyjs/wasm-gen" "1.4.3" - "@webassemblyjs/wasm-parser" "1.4.3" - debug "^3.1.0" - -"@webassemblyjs/wasm-parser@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz#7ddd3e408f8542647ed612019cfb780830993698" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/helper-wasm-bytecode" "1.4.3" - "@webassemblyjs/leb128" "1.4.3" - "@webassemblyjs/wasm-parser" "1.4.3" - webassemblyjs "1.4.3" - -"@webassemblyjs/wast-parser@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz#3250402e2c5ed53dbe2233c9de1fe1f9f0d51745" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/floating-point-hex-parser" "1.4.3" - "@webassemblyjs/helper-code-frame" "1.4.3" - "@webassemblyjs/helper-fsm" "1.4.3" - long "^3.2.0" - webassemblyjs "1.4.3" - -"@webassemblyjs/wast-printer@1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz#3d59aa8d0252d6814a3ef4e6d2a34c9ded3904e0" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/wast-parser" "1.4.3" - long "^3.2.0" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - -accepts@~1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" - dependencies: - mime-types "~2.1.16" - negotiator "0.6.1" - -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - dependencies: - acorn "^5.0.0" - -acorn@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" - -adm-zip@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" - -adm-zip@^0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - -agent-base@2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" - dependencies: - extend "~3.0.0" - semver "~5.0.1" - -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.0.0, ajv@^5.1.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^4.2.1" - -ajv@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" - dependencies: - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^3.0.2" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -angular-oauth2-oidc@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-3.1.4.tgz#0779395616d72f15e9dfdf392ddda9c6963742e8" - dependencies: - jsrsasign "^8.0.3" - -angular2-moment@^1.3.3: - version "1.7.1" - resolved "https://registry.yarnpkg.com/angular2-moment/-/angular2-moment-1.7.1.tgz#bab14d21d35322bacab8ee7548b36dd587abf7d1" - dependencies: - moment "^2.16.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -app-root-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - dependencies: - default-require-extensions "^1.0.0" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - -async@1.x, async@^1.4.0, async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" - -autoprefixer@^8.4.1: - version "8.5.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.5.0.tgz#89a39b1316fbe7bc2b4997a0c7dad0149d99511c" - dependencies: - browserslist "^3.2.7" - caniuse-lite "^1.0.30000839" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.22" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-generator@^6.18.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.6" - trim-right "^1.0.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -blocking-proxy@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" - dependencies: - minimist "^1.2.0" - -bluebird@^3.3.0, bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -body-parser@1.18.2, body-parser@^1.16.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - define-property "^1.0.0" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^3.2.7: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5" - dependencies: - loader-utils "^1.1.0" - mkdirp "^0.5.1" - neo-async "^2.5.0" - schema-utils "^0.4.2" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-lite@^1.0.30000839, caniuse-lite@^1.0.30000844: - version "1.0.30000846" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz#2092911eecad71a89dae1faa62bcc202fde7f959" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.1, chalk@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chalk@^2.1.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@~2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.2.tgz#4403f5cf18f35c05f51fbdf152bf588f956cf7cb" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chart.js@^2.1.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.7.1.tgz#ae90b4aa4ff1f02decd6b1a2a8dabfd73c9f9886" - dependencies: - chartjs-color "~2.2.0" - moment "~2.18.0" - -chartjs-color-string@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz#8d3752d8581d86687c35bfe2cb80ac5213ceb8c1" - dependencies: - color-name "^1.0.0" - -chartjs-color@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.2.0.tgz#84a2fb755787ed85c39dd6dd8c7b1d88429baeae" - dependencies: - chartjs-color-string "^0.5.0" - color-convert "^0.5.3" - -chokidar@^1.4.1, chokidar@^1.4.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.0.tgz#6686313c541d3274b2a5c01233342037948c911b" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^2.0.2, chokidar@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.0" - optionalDependencies: - fsevents "^1.1.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -chrome-trace-event@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz#d395af2d31c87b90a716c831fe326f69768ec084" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-dependency-plugin@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.1.x: - version "4.1.9" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" - dependencies: - source-map "0.5.x" - -clean-css@^4.1.11: - version "4.1.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" - dependencies: - source-map "0.5.x" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-deep@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" - dependencies: - for-own "^1.0.0" - is-plain-object "^2.0.4" - kind-of "^6.0.0" - shallow-clone "^1.0.0" - -clone@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -codelyzer@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.1.0.tgz#3117754538d8f5ffa36dff91d340573a836cf373" - dependencies: - app-root-path "^2.0.1" - css-selector-tokenizer "^0.7.0" - cssauron "^1.4.0" - semver-dsl "^1.0.1" - source-map "^0.5.6" - sprintf-js "^1.0.3" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - -color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -colors@1.1.2, colors@^1.1.0, colors@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@2.12.x: - version "2.12.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" - -commander@^2.9.0, commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" - -component-emitter@1.2.1, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - -compressible@~2.0.11: - version "2.0.12" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" - dependencies: - mime-db ">= 1.30.0 < 2" - -compression@^1.5.2: - version "1.7.1" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" - dependencies: - accepts "~1.3.4" - bytes "3.0.0" - compressible "~2.0.11" - debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" - -connect@^3.6.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" - dependencies: - debug "2.6.9" - finalhandler "1.0.6" - parseurl "~1.3.2" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -convert-source-map@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -copy-webpack-plugin@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz#fc4f68f4add837cc5e13d111b20715793225d29c" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - globby "^7.1.1" - is-glob "^4.0.0" - loader-utils "^1.1.0" - minimatch "^3.0.4" - p-limit "^1.0.0" - serialize-javascript "^1.4.0" - -core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" - -core-js@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-parse@1.7.x: - version "1.7.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -cssauron@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" - dependencies: - through X.X.X - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@*, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -debug@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -deep-freeze-strict@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-freeze-strict/-/deep-freeze-strict-1.1.1.tgz#77d0583ca24a69be4bbd9ac2fae415d55523e5b0" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - -diff@^3.1.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - -doctrine@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" - dependencies: - esutils "^1.1.6" - isarray "0.0.1" - -dom-converter@~0.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" - dependencies: - utila "~0.3" - -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - dependencies: - domelementtype "1" - -domutils@1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -ejs@^2.5.7: - version "2.5.7" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" - -electron-to-chromium@^1.3.47: - version "1.3.48" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -engine.io-client@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "2.3.3" - engine.io-parser "1.3.2" - has-cors "1.1.0" - indexof "0.0.1" - parsejson "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - ws "1.1.2" - xmlhttprequest-ssl "1.5.3" - yeast "0.1.2" - -engine.io-parser@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" - dependencies: - after "0.8.2" - arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary "0.1.7" - wtf-8 "1.0.0" - -engine.io@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" - dependencies: - accepts "1.3.3" - base64id "1.0.0" - cookie "0.3.1" - debug "2.3.3" - engine.io-parser "1.3.2" - ws "1.1.2" - -enhanced-resolve@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.1, errno@^0.1.3, errno@^0.1.4: - version "0.1.6" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.5.1: - version "1.11.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-abstract@^1.7.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.38" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" - -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@2.7.x, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.16.2: - version "4.16.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" - dependencies: - accepts "~1.3.4" - array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.1" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.0" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.2" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.1" - serve-static "1.13.1" - setprototypeof "1.1.0" - statuses "~1.3.1" - type-is "~1.6.15" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.2, extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - -file-loader@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.4.5" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fileset@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -flush-write-stream@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -font-awesome@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" - -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - dependencies: - null-check "^1.0.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fsevents@^1.1.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.0.2, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" - dependencies: - globule "^1.0.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@7.0.x: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globule@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" - dependencies: - glob "~7.1.1" - lodash "~4.17.4" - minimatch "~3.0.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -hammerjs@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -handlebars@^4.0.1, handlebars@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" - dependencies: - isarray "0.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" - -hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" - -hosted-git-info@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - -html-minifier@^3.2.3: - version "3.5.8" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.8.tgz#5ccdb1f73a0d654e6090147511f6e6b2ee312700" - dependencies: - camel-case "3.0.x" - clean-css "4.1.x" - commander "2.12.x" - he "1.1.x" - ncname "1.0.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.3.x" - -html-webpack-plugin@^3.0.6: - version "3.2.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@1.6.2, http-errors@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-parser-js@>=0.4.0: - version "0.4.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" - -http-proxy-middleware@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" - dependencies: - http-proxy "^1.16.2" - is-glob "^4.0.0" - lodash "^4.17.5" - micromatch "^3.1.9" - -http-proxy@^1.13.0, http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -https-proxy-agent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" - dependencies: - agent-base "2" - debug "2" - extend "3" - -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -iconv-lite@^0.4.4: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.5: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - -invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -ipaddr.js@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-my-json-valid@^2.12.4: - version "2.17.1" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-odd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088" - dependencies: - is-number "^3.0.0" - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-api@^1.1.14: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" - dependencies: - async "^2.1.4" - fileset "^2.0.2" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.1" - istanbul-lib-report "^1.1.2" - istanbul-lib-source-maps "^1.2.2" - istanbul-reports "^1.1.3" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-instrumenter-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949" - dependencies: - convert-source-map "^1.5.0" - istanbul-lib-instrument "^1.7.3" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - -istanbul-lib-coverage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" - -istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.7.3, istanbul-lib-instrument@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.1.1" - semver "^5.3.0" - -istanbul-lib-report@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" - dependencies: - istanbul-lib-coverage "^1.1.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.1.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" - dependencies: - handlebars "^4.0.3" - -istanbul@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -jasmine-core@^2.5.2, jasmine-core@~2.9.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.9.1.tgz#b6bbc1d8e65250d56f5888461705ebeeeb88f22f" - -jasmine-reporters@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.3.0.tgz#eb8cb7359658572a87eef4aa088a363036f3792a" - dependencies: - mkdirp "^0.5.1" - xmldom "^0.1.22" - -jasmine-spec-reporter@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-3.3.0.tgz#c63c3d43bacfd16e6da86c46d265957e0075f14c" - dependencies: - colors "1.1.2" - -jasmine@^2.5.3: - version "2.9.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.9.0.tgz#76571f925c8783409e7c6153572e5a6341cf93eb" - dependencies: - exit "^0.1.2" - glob "^7.0.6" - jasmine-core "~2.9.0" - -jasminewd2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" - -js-base64@^2.1.8: - version "2.4.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.1.tgz#e02813181cd53002888e918935467acb2910e596" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@3.x: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.4.3, js-yaml@^3.7.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@3.3.2, json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jsrsasign@^8.0.3: - version "8.0.6" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-8.0.6.tgz#4586f00823e302e599a244a47be20c61aadd0fcf" - -jszip@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37" - dependencies: - core-js "~2.3.0" - es6-promise "~3.0.2" - lie "~3.1.0" - pako "~1.0.2" - readable-stream "~2.0.6" - -karma-chrome-launcher@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-cli@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" - dependencies: - resolve "^1.1.6" - -karma-coverage-istanbul-reporter@^1.0.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.3.tgz#daf26051d5a0daa5838a4ce81aa4a41724bdf36b" - dependencies: - istanbul-api "^1.1.14" - minimatch "^3.0.4" - -karma-firefox-launcher@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz#2c47030452f04531eb7d13d4fc7669630bb93339" - -karma-jasmine-html-reporter@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" - dependencies: - karma-jasmine "^1.0.2" - -karma-jasmine@^1.0.2, karma-jasmine@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.1.tgz#6fe840e75a11600c9d91e84b33c458e1c46a3529" - -karma-junit-reporter@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz#4f9c40cedfb1a395f8aef876abf96189917c6396" - dependencies: - path-is-absolute "^1.0.0" - xmlbuilder "8.2.2" - -karma-source-map-support@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz#1bf81e7bb4b089627ab352ec4179e117c406a540" - dependencies: - source-map-support "^0.4.1" - -karma@^1.5.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - chokidar "^1.4.1" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.6.0" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^3.8.0" - log4js "^0.6.31" - mime "^1.3.4" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "1.7.3" - source-map "^0.5.3" - tmp "0.0.31" - useragent "^2.1.12" - -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0, kind-of@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lazy-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" - dependencies: - set-getter "^0.1.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -leb@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" - -less-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/less/-/less-3.0.4.tgz#d27dcedbac96031c9e7b76f1da1e4b7d83760814" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.4.1" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.83.0" - source-map "~0.6.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -license-webpack-plugin@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.3.1.tgz#688b76472188ef597918b7cae3eec7dc2fa5a0e8" - dependencies: - ejs "^2.5.7" - -lie@~3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" - dependencies: - immediate "~3.0.5" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.mergewith@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" - -lodash.tail@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" - -lodash@^3.8.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.5.0, lodash@~4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -lodash@^4.17.5: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -log-symbols@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - dependencies: - chalk "^2.0.1" - -log4js@^0.6.31: - version "0.6.38" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" - dependencies: - readable-stream "~1.0.2" - semver "~4.3.3" - -loglevel@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - -loglevelnext@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" - dependencies: - es6-symbol "^3.1.1" - object.assign "^4.1.0" - -long@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -loud-rejection@^1.0.0, loud-rejection@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" - dependencies: - pify "^3.0.0" - -make-error@^1.1.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - 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.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.0" - define-property "^1.0.0" - extend-shallow "^2.0.1" - extglob "^2.0.2" - fragment-cache "^0.2.1" - kind-of "^6.0.0" - nanomatch "^1.2.5" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -micromatch@^3.1.8, micromatch@^3.1.9: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -"mime-db@>= 1.30.0 < 2": - version "1.32.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.32.0.tgz#485b3848b01a3cda5f968b4882c0771e58e09414" - -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - -mime@^1.3.4, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mime@^2.0.3, mime@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" - -mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - -mini-css-extract-plugin@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.0.tgz#ff3bf08bee96e618e177c16ca6131bfecef707f9" - dependencies: - loader-utils "^1.1.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.0.tgz#47a8732ba97799457c8c1eca28f95132d7e8150a" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -moment@^2.16.0, moment@^2.8.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" - -moment@~2.18.0: - version "2.18.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.2.tgz#300b6133361f8aaaf2b8d1248e85c363fe5b95a0" - dependencies: - dns-packet "^1.0.1" - thunky "^0.1.0" - -nan@^2.10.0, nan@^2.9.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nan@^2.3.0, nan@^2.3.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" - -nanomatch@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^1.0.0" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - is-odd "^1.0.0" - kind-of "^5.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-odd "^2.0.0" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -ncname@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" - dependencies: - xml-char-classes "^1.0.0" - -needle@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -neo-async@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" - -ngrx-json-api@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/ngrx-json-api/-/ngrx-json-api-2.3.0.tgz#e916f1f58a5be6d074db95338618addb1dea39d0" - -ngrx-store-freeze@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/ngrx-store-freeze/-/ngrx-store-freeze-0.1.9.tgz#b20f18f21fd5efc4e1b1e05f6f279674d0f70c81" - dependencies: - deep-freeze-strict "^1.1.1" - -ngx-auth@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ngx-auth/-/ngx-auth-4.0.0.tgz#111960efc1e1c7a0f399b668da464ef6d3630c1f" - dependencies: - tslib "^1.9.0" - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - dependencies: - lower-case "^1.1.1" - -node-forge@0.6.33: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" - -node-gyp@^3.3.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - minimatch "^3.0.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "2" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.0" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.1.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" - dependencies: - detect-libc "^1.0.2" - hawk "3.1.3" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -node-sass@^4.5.3: - version "4.7.2" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash.assign "^4.2.0" - lodash.clonedeep "^4.3.2" - lodash.mergewith "^4.6.0" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.3.2" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "~2.79.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -node-sass@^4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.0.tgz#d1b8aa855d98ed684d6848db929a20771cc2ae52" - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash.assign "^4.2.0" - lodash.clonedeep "^4.3.2" - lodash.mergewith "^4.6.0" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.10.0" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "~2.79.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3", nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, "normalize-package-data@~1.0.1 || ^2.0.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -npm-bundled@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" - -"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" - dependencies: - hosted-git-info "^2.6.0" - osenv "^0.1.5" - semver "^5.5.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^1.1.6: - version "1.1.10" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-registry-client@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.5.1.tgz#8115809c0a4b40938b8a109b8ea74d26c6f5d7f1" - dependencies: - concat-stream "^1.5.2" - graceful-fs "^4.1.6" - normalize-package-data "~1.0.1 || ^2.0.0" - npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - once "^1.3.3" - request "^2.74.0" - retry "^0.10.0" - safe-buffer "^5.1.1" - semver "2 >=2.2.1 || 3.x || 4 || 5" - slide "^1.1.3" - ssri "^5.2.4" - optionalDependencies: - npmlog "2 || ^3.1.0 || ^4.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.11, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -opn@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - -opn@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - dependencies: - is-wsl "^1.1.0" - -optimist@^0.6.1, optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@0, osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.0.0, p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -pako@~1.0.2, pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - 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://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse5@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - -parsejson@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0, pinkie@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -portfinder@^1.0.13, portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-import@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0" - dependencies: - postcss "^6.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.5.tgz#3c6336ee641c8f95138172533ae461a83595e788" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.4.0" - -postcss-url@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-7.3.2.tgz#5fea273807fb84b38c461c3c9a9e8abd235f7120" - dependencies: - mime "^1.4.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^6.0.1" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss@^6.0.0, postcss@^6.0.1: - version "6.0.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.16.tgz#112e2fe2a6d2109be0957687243170ea5589e146" - dependencies: - chalk "^2.3.0" - source-map "^0.6.1" - supports-color "^5.1.0" - -postcss@^6.0.22: - version "6.0.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -primeng@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/primeng/-/primeng-5.0.2.tgz#05c4a4502efd4c3bc5d506aa01ae8eb30f9764db" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -protractor@^5.1.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.2.2.tgz#80eff170761455eff6e2f111088a03c438844a41" - dependencies: - "@types/node" "^6.0.46" - "@types/q" "^0.0.32" - "@types/selenium-webdriver" "~2.53.39" - blocking-proxy "^1.0.0" - chalk "^1.1.3" - glob "^7.0.3" - jasmine "^2.5.3" - jasminewd2 "^2.1.0" - optimist "~0.6.0" - q "1.4.1" - saucelabs "~1.3.0" - selenium-webdriver "3.6.0" - source-map-support "~0.4.0" - webdriver-js-extender "^1.0.0" - webdriver-manager "^12.0.6" - -proxy-addr@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.5.2" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -pump@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.0.tgz#7946da1c8d622b098e2ceb2d3476582470829c9d" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" - dependencies: - duplexify "^3.5.3" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -q@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qjobs@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" - -qs@6.5.1, qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -raw-loader@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" - -rc@^1.1.7: - version "1.2.4" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - dependencies: - pify "^2.3.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readable-stream@1.0, readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reflect-metadata@^0.1.2: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9" - dependencies: - extend-shallow "^2.0.1" - -regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -renderkid@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" - dependencies: - css-select "^1.1.0" - dom-converter "~0.1" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "~0.3" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@2, request@^2.78.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -request@^2.74.0, request@^2.83.0: - version "2.87.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -reselect@^2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-2.5.4.tgz#b7d23fdf00b83fa7ad0279546f8dbbbd765c7047" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.6, resolve@^1.1.7: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" - dependencies: - path-parse "^1.0.5" - -resolve@^1.3.2, resolve@^1.5.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - -rxjs-compat@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/rxjs-compat/-/rxjs-compat-6.2.0.tgz#2eb49cc6ac20d0d7057c6887d1895beaab0966f9" - -rxjs@^6.0.0, rxjs@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.0.tgz#e024d0e180b72756a83c2aaea8f25423751ba978" - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-buffer@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-loader@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.0.1.tgz#fd937259ccba3a9cfe0d5f8a98746d48adfcc261" - dependencies: - clone-deep "^2.0.1" - loader-utils "^1.0.1" - lodash.tail "^4.1.1" - neo-async "^2.5.0" - pify "^3.0.0" - -saucelabs@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" - dependencies: - https-proxy-agent "^1.0.0" - -sax@0.5.x: - version "0.5.8" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" - -sax@0.6.x: - version "0.6.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - dependencies: - ajv "^5.0.0" - -schema-utils@^0.4.0, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e" - dependencies: - ajv "^5.0.0" - ajv-keywords "^2.1.0" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selenium-webdriver@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" - dependencies: - jszip "^3.1.3" - rimraf "^2.5.4" - tmp "0.0.30" - xml2js "^0.4.17" - -selenium-webdriver@^2.53.2: - version "2.53.3" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" - dependencies: - adm-zip "0.4.4" - rimraf "^2.2.8" - tmp "0.0.24" - ws "^1.0.1" - xml2js "0.4.4" - -selfsigned@^1.9.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" - dependencies: - node-forge "0.6.33" - -semver-dsl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" - dependencies: - semver "^5.3.0" - -semver-intersect@^1.1.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.3.1.tgz#8fa84a9e1028bd239e4530d1a3e181e698d884ba" - dependencies: - semver "^5.0.0" - -"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -semver@~4.3.3: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - -semver@~5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -send@0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" - dependencies: - debug "2.6.9" - depd "~1.1.1" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" - -serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" - -serve-index@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-getter@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" - dependencies: - to-object-path "^0.3.0" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.9" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" - dependencies: - is-extendable "^0.1.1" - kind-of "^5.0.0" - mixin-object "^2.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -silent-error@^1.0.0, silent-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9" - dependencies: - debug "^2.2.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slide@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^2.0.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -socket.io-adapter@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" - dependencies: - debug "2.3.3" - socket.io-parser "2.3.1" - -socket.io-client@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "2.3.3" - engine.io-client "1.8.3" - has-binary "0.1.7" - indexof "0.0.1" - object-component "0.0.3" - parseuri "0.0.5" - socket.io-parser "2.3.1" - to-array "0.1.4" - -socket.io-parser@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" - dependencies: - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" - -socket.io@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" - dependencies: - debug "2.3.3" - engine.io "1.8.3" - has-binary "0.1.7" - object-assign "4.1.0" - socket.io-adapter "0.5.0" - socket.io-client "1.7.3" - socket.io-parser "2.3.1" - -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - -source-map-resolve@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" - dependencies: - atob "^2.0.0" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.0, source-map-support@^0.4.1, source-map-support@~0.4.0: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.0: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@0.1.x: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - dependencies: - safe-buffer "^5.1.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stats-webpack-plugin@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/stats-webpack-plugin/-/stats-webpack-plugin-0.6.2.tgz#2c5949b531e07f87a88e6ea4dcfac53aa8c75a2b" - dependencies: - lodash "^4.17.4" - -"statuses@>= 1.3.1 < 2": - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -stdout-stream@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" - dependencies: - readable-stream "^2.0.1" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.3" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -style-loader@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852" - dependencies: - loader-utils "^1.1.0" - schema-utils "^0.4.5" - -stylus-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus@^0.54.5: - version "0.54.5" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" - dependencies: - css-parse "1.7.x" - debug "*" - glob "7.0.x" - mkdirp "0.5.x" - sax "0.5.x" - source-map "0.1.x" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0, supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - -tapable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" - -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.0.0, tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -tar@^4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@X.X.X: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" - -timers-browserify@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" - dependencies: - setimmediate "^1.0.4" - -tmp@0.0.24: - version "0.0.24" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" - -tmp@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.x: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae" - dependencies: - define-property "^0.2.5" - extend-shallow "^2.0.1" - regex-not "^1.0.0" - -to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toposort@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" - -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - -tree-kill@^1.0.0, tree-kill@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -"true-case-path@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" - dependencies: - glob "^6.0.4" - -ts-helpers@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ts-helpers/-/ts-helpers-1.1.2.tgz#fc69be9f1f3baed01fb1a0ef8d4cfe748814d835" - -ts-node@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.1.2.tgz#45087b45e7b371b3daf04ecc470ec29a836655ea" - dependencies: - arrify "^1.0.0" - chalk "^1.1.1" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - pinkie "^2.0.4" - source-map-support "^0.4.0" - tsconfig "^6.0.0" - v8flags "^2.0.11" - xtend "^4.0.0" - yn "^1.2.0" - -tsconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032" - dependencies: - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -tsickle@^0.27.2: - version "0.27.5" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.27.5.tgz#41e1a41a5acf971cbb2b0558a9590779234d591f" - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.6.0" - source-map-support "^0.5.0" - -tslib@^1.0.0, tslib@^1.7.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" - -tslib@^1.8.1, tslib@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.1.tgz#a5d1f0532a49221c87755cfcc89ca37197242ba7" - -tslint-eslint-rules@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba" - dependencies: - doctrine "^0.7.2" - tslib "^1.0.0" - tsutils "^1.4.0" - -tslint@5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.7.0.tgz#c25e0d0c92fa1201c2bc30e844e08e682b4f3552" - dependencies: - babel-code-frame "^6.22.0" - colors "^1.1.2" - commander "^2.9.0" - diff "^3.2.0" - glob "^7.1.1" - minimatch "^3.0.4" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.7.1" - tsutils "^2.8.1" - -tsutils@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" - -tsutils@^2.8.1: - version "2.27.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.1.tgz#ab0276ac23664f36ce8fd4414daec4aebf4373ee" - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.15: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.15" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@2.7.2, "typescript@>=2.6.2 <2.8", typescript@~2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" - -uglify-es@^3.3.4: - version "3.3.7" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.7.tgz#d1249af668666aba7cb1163e277455be9eb393cf" - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - -uglify-js@3.3.x: - version "3.3.7" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.7.tgz#28463e7c7451f89061d2b235e30925bf5625e14d" - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -uri-js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" - dependencies: - punycode "^2.1.0" - -uri-js@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.1.tgz#4595a80a51f356164e22970df64c7abd6ade9850" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-join@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" - -url-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.0.1.tgz#61bc53f1f184d7343da2728a1289ef8722ea45ee" - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^0.4.3" - -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@^1.1.8: - version "1.2.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" - dependencies: - define-property "^0.2.5" - isobject "^3.0.0" - lazy-cache "^2.0.2" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -useragent@^2.1.12: - version "2.2.1" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" - dependencies: - lru-cache "2.2.x" - tmp "0.0.x" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utila@~0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -v8flags@^2.0.11: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - dependencies: - builtins "^1.0.3" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - -watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - -webassemblyjs@1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webassemblyjs/-/webassemblyjs-1.4.3.tgz#0591893efb8fbde74498251cbe4b2d83df9239cb" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/validation" "1.4.3" - "@webassemblyjs/wasm-parser" "1.4.3" - "@webassemblyjs/wast-parser" "1.4.3" - long "^3.2.0" - -webdriver-js-extender@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" - dependencies: - "@types/selenium-webdriver" "^2.53.35" - selenium-webdriver "^2.53.2" - -webdriver-manager@^12.0.6: - version "12.0.6" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.6.tgz#3df1a481977010b4cbf8c9d85c7a577828c0e70b" - dependencies: - adm-zip "^0.4.7" - chalk "^1.1.1" - del "^2.2.0" - glob "^7.0.3" - ini "^1.3.4" - minimist "^1.2.0" - q "^1.4.1" - request "^2.78.0" - rimraf "^2.5.2" - semver "^5.3.0" - xml2js "^0.4.17" - -webpack-core@^0.6.8: - version "0.6.9" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" - dependencies: - source-list-map "~0.1.7" - source-map "~0.4.1" - -webpack-dev-middleware@3.1.3, webpack-dev-middleware@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz#8b32aa43da9ae79368c1bf1183f2b6cf5e1f39ed" - dependencies: - loud-rejection "^1.6.0" - memory-fs "~0.4.1" - mime "^2.1.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - url-join "^4.0.0" - webpack-log "^1.0.1" - -webpack-dev-server@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz#9a08d13c4addd1e3b6d8ace116e86715094ad5b4" - dependencies: - ansi-html "0.0.7" - array-includes "^3.0.3" - bonjour "^3.5.0" - chokidar "^2.0.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" - http-proxy-middleware "~0.18.0" - import-local "^1.0.0" - internal-ip "1.2.0" - ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.19" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^5.1.0" - webpack-dev-middleware "3.1.3" - webpack-log "^1.1.2" - yargs "11.0.0" - -webpack-log@^1.0.1, webpack-log@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" - dependencies: - chalk "^2.1.0" - log-symbols "^2.1.0" - loglevelnext "^1.0.1" - uuid "^3.1.0" - -webpack-merge@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216" - dependencies: - lodash "^4.17.5" - -webpack-sources@^1.0.1, webpack-sources@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-subresource-integrity@^1.1.0-rc.4: - version "1.1.0-rc.4" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.4.tgz#c5c4e3d690f9d2f64a9550e07a8767f9796aa5d8" - dependencies: - webpack-core "^0.6.8" - -webpack@~4.8.1: - version "4.8.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.8.3.tgz#957c8e80000f9e5cc03d775e78b472d8954f4eeb" - dependencies: - "@webassemblyjs/ast" "1.4.3" - "@webassemblyjs/wasm-edit" "1.4.3" - "@webassemblyjs/wasm-parser" "1.4.3" - acorn "^5.0.0" - acorn-dynamic-import "^3.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^0.1.1" - enhanced-resolve "^4.0.0" - eslint-scope "^3.7.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^0.4.4" - tapable "^1.0.0" - uglifyjs-webpack-plugin "^1.2.4" - watchpack "^1.5.0" - webpack-sources "^1.0.1" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@1, which@^1.1.1, which@^1.2.1, which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@^1.0.0, wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -worker-farm@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" - dependencies: - errno "^0.1.4" - xtend "^4.0.1" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -ws@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -ws@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -wtf-8@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" - -xml-char-classes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" - -xml2js@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" - dependencies: - sax "0.6.x" - xmlbuilder ">=1.0.0" - -xml2js@^0.4.17: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" - -xmlbuilder@>=1.0.0, xmlbuilder@~9.0.1: - version "9.0.4" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" - -xmldom@^0.1.22: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - -xmlhttprequest-ssl@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xxhashjs@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - dependencies: - cuint "^0.2.2" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs-parser@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.0.0.tgz#c737c93de2567657750cb1f2c00be639fd19c994" - dependencies: - camelcase "^4.1.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - dependencies: - camelcase "^4.1.0" - -yargs@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - -yn@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-1.3.0.tgz#1b0812abb8d805d48966f8df385dc9dacc9a19d8" - dependencies: - object-assign "^4.1.1" - -zone.js@^0.8.14: - version "0.8.20" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.20.tgz#a218c48db09464b19ff6fc8f0d4bb5b1046e185d" diff --git a/crnk-example-service/build.gradle b/crnk-example-service/build.gradle index 00a8454..f61d12a 100644 --- a/crnk-example-service/build.gradle +++ b/crnk-example-service/build.gradle @@ -32,8 +32,6 @@ dependencies { compile 'commons-io:commons-io:1.3.2' compile 'com.google.guava:guava:18.0' - compile project(':crnk-example-frontend') - testCompile 'org.springframework.boot:spring-boot-starter-test' testCompile "io.crnk:crnk-client" testCompile 'com.squareup.okhttp3:okhttp:3.4.1' @@ -41,9 +39,6 @@ dependencies { testCompile 'com.jayway.restassured:json-schema-validator:2.9.0' } -distZip.dependsOn ':crnk-example-frontend:assemble' -distTar.dependsOn ':crnk-example-frontend:assemble' - apply plugin: 'com.bmuschko.docker-java-application' dockerDistTar { diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/basic/LocationRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/basic/LocationRepository.java index 921d678..97b7811 100644 --- a/crnk-example-service/src/main/java/io/crnk/example/service/basic/LocationRepository.java +++ b/crnk-example-service/src/main/java/io/crnk/example/service/basic/LocationRepository.java @@ -1,40 +1,15 @@ package io.crnk.example.service.basic; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import io.crnk.core.queryspec.QuerySpec; -import io.crnk.core.repository.ResourceRepositoryBase; -import io.crnk.core.repository.ResourceRepositoryV2; -import io.crnk.core.resource.list.ResourceList; +import io.crnk.core.repository.InMemoryResourceRepository; import org.springframework.stereotype.Component; /** * Showcases a simple in-memory repository. */ @Component -public class LocationRepository extends ResourceRepositoryBase - implements ResourceRepositoryV2 { - - public Map locations = new ConcurrentHashMap<>(); - - public LocationRepository() { - super(Location.class); - } - - @Override - public ResourceList findAll(QuerySpec querySpec) { - return querySpec.apply(locations.values()); - } - - @Override - public S save(S entity) { - locations.put(entity.getId(), entity); - return null; - } +public class LocationRepository extends InMemoryResourceRepository { - @Override - public void delete(String id) { - locations.remove(id); - } + public LocationRepository() { + super(Location.class); + } } \ No newline at end of file diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/basic/ScreeningRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/basic/ScreeningRepository.java index 9847f7c..3d041e5 100644 --- a/crnk-example-service/src/main/java/io/crnk/example/service/basic/ScreeningRepository.java +++ b/crnk-example-service/src/main/java/io/crnk/example/service/basic/ScreeningRepository.java @@ -1,41 +1,38 @@ package io.crnk.example.service.basic; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - import io.crnk.core.queryspec.QuerySpec; -import io.crnk.core.repository.ResourceRepositoryBase; -import io.crnk.core.repository.ResourceRepositoryV2; +import io.crnk.core.repository.InMemoryResourceRepository; import io.crnk.core.resource.list.ResourceList; import org.springframework.stereotype.Component; +import java.util.UUID; + /** * Showcases a simple in-memory repository. */ @Component -public class ScreeningRepository extends ResourceRepositoryBase - implements ResourceRepositoryV2 { - - public Map screenings = new ConcurrentHashMap<>(); - - public ScreeningRepository() { - super(Screening.class); - } - - @Override - public ResourceList findAll(QuerySpec querySpec) { - return querySpec.apply(screenings.values()); - } - - @Override - public S save(S entity) { - screenings.put(entity.getId(), entity); - return null; - } - - @Override - public void delete(UUID id) { - screenings.remove(id); - } +public class ScreeningRepository extends InMemoryResourceRepository { + + + public ScreeningRepository() { + super(Screening.class); + } + + @Override + public ResourceList findAll(QuerySpec querySpec) { + // do your logic here + return super.findAll(querySpec); + } + + @Override + public S save(S entity) { + // do your logic here + return super.save(entity); + } + + @Override + public void delete(UUID id) { + // do your logic here + super.delete(id); + } } \ No newline at end of file diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/basic/VoteRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/basic/VoteRepository.java index 2664a5a..2616949 100644 --- a/crnk-example-service/src/main/java/io/crnk/example/service/basic/VoteRepository.java +++ b/crnk-example-service/src/main/java/io/crnk/example/service/basic/VoteRepository.java @@ -1,55 +1,56 @@ package io.crnk.example.service.basic; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - import io.crnk.core.queryspec.QuerySpec; import io.crnk.core.repository.ResourceRepositoryBase; import io.crnk.core.repository.ResourceRepositoryV2; import io.crnk.core.resource.list.ResourceList; import org.springframework.stereotype.Component; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + /** * Showcases a simple in-memory repository with some artificial slow * down to simulate expensive requests and show loading indicators * in the frontend. + *

+ * Real-world application may rather make use of the existing InMemoryResourceRepository. */ @Component public class VoteRepository extends ResourceRepositoryBase implements ResourceRepositoryV2 { - public static Map votes = new ConcurrentHashMap<>(); - - public VoteRepository() { - super(Vote.class); - } - - @Override - public ResourceList findAll(QuerySpec querySpec) { - slowDown(); - return querySpec.apply(votes.values()); - } - - @Override - public S save(S entity) { - slowDown(); - votes.put(entity.getId(), entity); - return null; - } - - @Override - public void delete(UUID id) { - slowDown(); - votes.remove(id); - } - - private void slowDown() { - // artificially slow it down to simulate loading in frontend - try { - Thread.sleep(3000); - } - catch (InterruptedException e) { - throw new IllegalStateException(e); - } - } + public static Map votes = new ConcurrentHashMap<>(); + + public VoteRepository() { + super(Vote.class); + } + + @Override + public ResourceList findAll(QuerySpec querySpec) { + slowDown(); + return querySpec.apply(votes.values()); + } + + @Override + public S save(S entity) { + slowDown(); + votes.put(entity.getId(), entity); + return null; + } + + @Override + public void delete(UUID id) { + slowDown(); + votes.remove(id); + } + + private void slowDown() { + // artificially slow it down to simulate loading in frontend + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + throw new IllegalStateException(e); + } + } } \ No newline at end of file diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecorator.java b/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecorator.java index 42b86c1..2e3c9bc 100644 --- a/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecorator.java +++ b/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecorator.java @@ -3,31 +3,32 @@ import io.crnk.core.queryspec.QuerySpec; import io.crnk.core.repository.decorate.ResourceRepositoryDecoratorBase; import io.crnk.core.resource.list.ResourceList; -import io.crnk.example.service.jpa.ScheduleDto; +import io.crnk.example.service.jpa.ScheduleEntity; /** - * See ExampleDecoratorModule for more information. + * The decorator is registered through ExampleDecoratorFactory. It intercepts all calls to + * ScheduleRepository and updates the name to upper case. */ -public class ExampleDecorator extends ResourceRepositoryDecoratorBase { +public class ExampleDecorator extends ResourceRepositoryDecoratorBase { - @Override - public ResourceList findAll(Iterable ids, QuerySpec querySpec) { - return decoratedObject.findAll(ids, querySpec); - } + @Override + public ResourceList findAll(Iterable ids, QuerySpec querySpec) { + return decoratedObject.findAll(ids, querySpec); + } - @Override - public ScheduleDto findOne(Long id, QuerySpec querySpec) { - ScheduleDto dto = decoratedObject.findOne(id, querySpec); - dto.setDecoratedName("decoratedFindOne"); - return dto; - } + @Override + public ScheduleEntity findOne(Long id, QuerySpec querySpec) { + ScheduleEntity entity = decoratedObject.findOne(id, querySpec); + entity.setName(entity.getName().toUpperCase()); + return entity; + } - @Override - public ResourceList findAll(QuerySpec querySpec) { - ResourceList list = decoratedObject.findAll(querySpec); - for (ScheduleDto dto : list) { - dto.setDecoratedName("decoratedFindAll"); - } - return list; - } + @Override + public ResourceList findAll(QuerySpec querySpec) { + ResourceList list = decoratedObject.findAll(querySpec); + for (ScheduleEntity entity : list) { + entity.setName(entity.getName().toUpperCase()); + } + return list; + } } diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorFactory.java b/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorFactory.java new file mode 100644 index 0000000..e3b7729 --- /dev/null +++ b/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorFactory.java @@ -0,0 +1,27 @@ +package io.crnk.example.service.decorator; + +import io.crnk.core.repository.ResourceRepositoryV2; +import io.crnk.core.repository.decorate.RepositoryDecoratorFactoryBase; +import io.crnk.core.repository.decorate.ResourceRepositoryDecorator; +import io.crnk.example.service.jpa.ScheduleEntity; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * sets up an ExampleDecorator to intercepts and modifies any request for ScheduleEntity. + * with a further value. Can be used to intercept and modify + * requests in an arbitrary fashion. + */ +@Component +public class ExampleDecoratorFactory extends RepositoryDecoratorFactoryBase { + + @Override + public ResourceRepositoryDecorator decorateRepository( + ResourceRepositoryV2 repository) { + if (repository.getResourceClass() == ScheduleEntity.class) { + return (ResourceRepositoryDecorator) new ExampleDecorator(); + } + return null; + } +} \ No newline at end of file diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorModule.java b/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorModule.java deleted file mode 100644 index cdf8f01..0000000 --- a/crnk-example-service/src/main/java/io/crnk/example/service/decorator/ExampleDecoratorModule.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.crnk.example.service.decorator; - -import java.io.Serializable; - -import io.crnk.core.module.Module; -import io.crnk.core.repository.ResourceRepositoryV2; -import io.crnk.core.repository.decorate.RepositoryDecoratorFactoryBase; -import io.crnk.core.repository.decorate.ResourceRepositoryDecorator; -import io.crnk.example.service.jpa.ScheduleDto; -import org.springframework.stereotype.Component; - -/** - * sets up an ExampleDecorator to enrich ScheduleDto with a further value. Can be used to intercept and modify - * requests in an arbitrary fashion. - *

- * TODO implement support to lookup decoratorFactory with Spring without module - */ -@Component -public class ExampleDecoratorModule implements Module { - - @Override - public String getModuleName() { - return "exampleDecorator"; - } - - @Override - public void setupModule(ModuleContext context) { - context.addRepositoryDecoratorFactory(new RepositoryDecoratorFactoryBase() { - @Override - public ResourceRepositoryDecorator decorateRepository( - ResourceRepositoryV2 repository) { - if (repository.getResourceClass() == ScheduleDto.class) { - return (ResourceRepositoryDecorator) new ExampleDecorator(); - } - return null; - } - }); - } -} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ExampleJpaModuleConfigurer.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ExampleJpaModuleConfigurer.java deleted file mode 100644 index 17a566f..0000000 --- a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ExampleJpaModuleConfigurer.java +++ /dev/null @@ -1,92 +0,0 @@ -package io.crnk.example.service.jpa; - - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.Expression; -import javax.persistence.criteria.From; - -import io.crnk.core.queryspec.QuerySpec; -import io.crnk.jpa.JpaModuleConfig; -import io.crnk.jpa.JpaRepositoryConfig; -import io.crnk.jpa.mapping.JpaMapper; -import io.crnk.jpa.query.Tuple; -import io.crnk.jpa.query.criteria.JpaCriteriaExpressionFactory; -import io.crnk.jpa.query.criteria.JpaCriteriaQueryFactory; -import io.crnk.spring.setup.boot.jpa.JpaModuleConfigurer; -import org.springframework.stereotype.Component; - -@Component -public class ExampleJpaModuleConfigurer implements JpaModuleConfigurer { - - @PersistenceContext - private EntityManager em; - - /** - * Expose JPA entities as repositories. - * - * @return module - */ - - @Override - public void configure(JpaModuleConfig config) { - // directly expose entity 1:1 as JSON:API resource - config.addRepository(JpaRepositoryConfig.builder(ScheduleEntity.class).build()); - config.addRepository(JpaRepositoryConfig.builder(MovieEntity.class).build()); - config.addRepository(JpaRepositoryConfig.builder(RoleEntity.class).build()); - config.addRepository(JpaRepositoryConfig.builder(PersonEntity.class).build()); - - // map ScheduleEntity to a ScheduleDto with ScheduleMapper can do arbitrary mappings. - config.addRepository( - JpaRepositoryConfig.builder(ScheduleEntity.class, ScheduleDto.class, new ScheduleMapper()).build()); - - JpaCriteriaQueryFactory queryFactory = (JpaCriteriaQueryFactory) config.getQueryFactory(); - - // register a computed a attribute to automatically fill upperName with the upper-cased name - // => you may consider QueryDSL or generating Criteria query objects to keep type-safety. - // => you may also create arbitrary complex expressions with subqueries, etc. - JpaCriteriaExpressionFactory upperNameExpr = (JpaCriteriaExpressionFactory>) (entity, query) -> { - CriteriaBuilder builder = em.getCriteriaBuilder(); - return builder.upper((Expression) entity.get("name")); - }; - queryFactory.registerComputedAttribute(ScheduleEntity.class, "upperName", String.class, - upperNameExpr); - } - - - class ScheduleMapper implements JpaMapper { - - @Override - public ScheduleDto map(Tuple tuple) { - ScheduleDto dto = new ScheduleDto(); - - // first entry in tuple is the queried entity (if not configured otherwise) - ScheduleEntity entity = tuple.get(0, ScheduleEntity.class); - dto.setId(entity.getId()); - dto.setName(entity.getName()); - - // computed attribute available as additional tuple entry - dto.setComputedUpperName(tuple.get(1, String.class)); - return dto; - } - - @Override - public ScheduleEntity unmap(ScheduleDto dto) { - // get entity from database if already there - ScheduleEntity entity = em.find(ScheduleEntity.class, dto.getId()); - if (entity == null) { - entity = new ScheduleEntity(); - entity.setId(dto.getId()); - } - entity.setName(dto.getName()); - return entity; - } - - @Override - public QuerySpec unmapQuerySpec(QuerySpec dtoQuerySpec) { - // if the DTOs introduces new naming, querySpec must be updated as well. - return dtoQuerySpec; - } - } -} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/MovieRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/MovieRepository.java new file mode 100644 index 0000000..f7200ce --- /dev/null +++ b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/MovieRepository.java @@ -0,0 +1,32 @@ +package io.crnk.example.service.jpa; + +import io.crnk.jpa.JpaEntityRepositoryBase; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class MovieRepository extends JpaEntityRepositoryBase { + + public MovieRepository() { + super(MovieEntity.class); + } + + @Override + public MovieEntity save(MovieEntity entity) { + // add your save logic here + return super.save(entity); + } + + @Override + public MovieEntity create(MovieEntity entity) { + // add your create logic here + return super.create(entity); + } + + @Override + public void delete(UUID id) { + // add your save logic here + super.delete(id); + } +} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/PersonRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/PersonRepository.java new file mode 100644 index 0000000..3cf5843 --- /dev/null +++ b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/PersonRepository.java @@ -0,0 +1,32 @@ +package io.crnk.example.service.jpa; + +import io.crnk.jpa.JpaEntityRepositoryBase; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class PersonRepository extends JpaEntityRepositoryBase { + + public PersonRepository() { + super(PersonEntity.class); + } + + @Override + public PersonEntity save(PersonEntity entity) { + // add your save logic here + return super.save(entity); + } + + @Override + public PersonEntity create(PersonEntity entity) { + // add your create logic here + return super.create(entity); + } + + @Override + public void delete(UUID id) { + // add your save logic here + super.delete(id); + } +} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/RoleRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/RoleRepository.java new file mode 100644 index 0000000..c9a60f2 --- /dev/null +++ b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/RoleRepository.java @@ -0,0 +1,14 @@ +package io.crnk.example.service.jpa; + +import io.crnk.jpa.JpaEntityRepositoryBase; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class RoleRepository extends JpaEntityRepositoryBase { + + public RoleRepository() { + super(RoleEntity.class); + } +} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleDto.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleDto.java deleted file mode 100644 index d708b11..0000000 --- a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleDto.java +++ /dev/null @@ -1,55 +0,0 @@ -package io.crnk.example.service.jpa; - -import io.crnk.core.resource.annotations.JsonApiId; -import io.crnk.core.resource.annotations.JsonApiResource; - -@JsonApiResource(type = "scheduleDto") -public class ScheduleDto { - - @JsonApiId - private Long id; - - private String name; - - /** - * See ExampleJpaModuleConfigurer how a JPA Criteria expression is used to fill-up this attribute - */ - private String computedUpperName; - - /** - * See ExampleDecoratorFactory how this attribute is filled-up by a decorator. - */ - private String decoratedName; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getComputedUpperName() { - return computedUpperName; - } - - public void setComputedUpperName(String computedUpperName) { - this.computedUpperName = computedUpperName; - } - - public String getDecoratedName() { - return decoratedName; - } - - public void setDecoratedName(String decoratedName) { - this.decoratedName = decoratedName; - } -} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleRepository.java new file mode 100644 index 0000000..d8009bd --- /dev/null +++ b/crnk-example-service/src/main/java/io/crnk/example/service/jpa/ScheduleRepository.java @@ -0,0 +1,14 @@ +package io.crnk.example.service.jpa; + +import io.crnk.jpa.JpaEntityRepositoryBase; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class ScheduleRepository extends JpaEntityRepositoryBase { + + public ScheduleRepository() { + super(ScheduleEntity.class); + } +} diff --git a/crnk-example-service/src/main/java/io/crnk/example/service/relationship/basic/ScreeningLocationRepository.java b/crnk-example-service/src/main/java/io/crnk/example/service/relationship/basic/ScreeningLocationRepository.java index c3dc277..2a1dd91 100644 --- a/crnk-example-service/src/main/java/io/crnk/example/service/relationship/basic/ScreeningLocationRepository.java +++ b/crnk-example-service/src/main/java/io/crnk/example/service/relationship/basic/ScreeningLocationRepository.java @@ -1,7 +1,5 @@ package io.crnk.example.service.relationship.basic; -import java.util.UUID; - import io.crnk.core.queryspec.QuerySpec; import io.crnk.core.repository.RelationshipRepositoryV2; import io.crnk.core.resource.list.ResourceList; @@ -11,58 +9,60 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.UUID; + /** * Establishes a relationship between screenings and location. */ @Component public class ScreeningLocationRepository implements RelationshipRepositoryV2 { - private LocationRepository locationRepository; + private LocationRepository locationRepository; - @Autowired - public ScreeningLocationRepository(LocationRepository locationRepository) { - this.locationRepository = locationRepository; - } + @Autowired + public ScreeningLocationRepository(LocationRepository locationRepository) { + this.locationRepository = locationRepository; + } - @Override - public Class getSourceResourceClass() { - return Screening.class; - } + @Override + public Class getSourceResourceClass() { + return Screening.class; + } - @Override - public Class getTargetResourceClass() { - return Location.class; - } + @Override + public Class getTargetResourceClass() { + return Location.class; + } - @Override - public Location findOneTarget(UUID sourceId, String fieldName, QuerySpec querySpec) { - // a real-world implementation would do something more reasonable here... - Location someLocation = locationRepository.locations.values().iterator().next(); - return someLocation; - } + @Override + public Location findOneTarget(UUID sourceId, String fieldName, QuerySpec querySpec) { + // a real-world implementation would do something more reasonable here... + ResourceList list = locationRepository.findAll(querySpec); + return list.isEmpty() ? null : list.get(0); + } - @Override - public void setRelation(Screening source, String targetId, String fieldName) { - throw new UnsupportedOperationException(); - } + @Override + public void setRelation(Screening source, String targetId, String fieldName) { + throw new UnsupportedOperationException(); + } - @Override - public void setRelations(Screening source, Iterable targetIds, String fieldName) { - throw new UnsupportedOperationException(); - } + @Override + public void setRelations(Screening source, Iterable targetIds, String fieldName) { + throw new UnsupportedOperationException(); + } - @Override - public void addRelations(Screening source, Iterable targetIds, String fieldName) { - throw new UnsupportedOperationException(); - } + @Override + public void addRelations(Screening source, Iterable targetIds, String fieldName) { + throw new UnsupportedOperationException(); + } - @Override - public void removeRelations(Screening source, Iterable targetIds, String fieldName) { - throw new UnsupportedOperationException(); - } + @Override + public void removeRelations(Screening source, Iterable targetIds, String fieldName) { + throw new UnsupportedOperationException(); + } - @Override - public ResourceList findManyTargets(UUID sourceId, String fieldName, QuerySpec querySpec) { - throw new UnsupportedOperationException(); - } + @Override + public ResourceList findManyTargets(UUID sourceId, String fieldName, QuerySpec querySpec) { + throw new UnsupportedOperationException(); + } } diff --git a/crnk-example-service/src/main/resources/application.yaml b/crnk-example-service/src/main/resources/application.yaml index a5a6c71..5242265 100644 --- a/crnk-example-service/src/main/resources/application.yaml +++ b/crnk-example-service/src/main/resources/application.yaml @@ -8,8 +8,6 @@ management: crnk: path-prefix: /api default-page-limit: 20 - jpa: - expose-all: false security: enabled: ${example.security-enabled} diff --git a/crnk-example-service/src/main/resources/logback.xml b/crnk-example-service/src/main/resources/logback.xml index ab3f07a..dbb2f4f 100644 --- a/crnk-example-service/src/main/resources/logback.xml +++ b/crnk-example-service/src/main/resources/logback.xml @@ -9,8 +9,11 @@ + + + - + diff --git a/crnk-example-service/src/main/resources/static/index.html b/crnk-example-service/src/main/resources/static/index.html new file mode 100644 index 0000000..fa32405 --- /dev/null +++ b/crnk-example-service/src/main/resources/static/index.html @@ -0,0 +1,5 @@ + + +Welcome to the Crnk example application. For the endpoint have a look at /api/. + + \ No newline at end of file diff --git a/crnk-example-service/src/test/java/io/crnk/example/service/simple/ExampleApplicationTest.java b/crnk-example-service/src/test/java/io/crnk/example/service/simple/ExampleApplicationTest.java index 1a367cc..fa71494 100644 --- a/crnk-example-service/src/test/java/io/crnk/example/service/simple/ExampleApplicationTest.java +++ b/crnk-example-service/src/test/java/io/crnk/example/service/simple/ExampleApplicationTest.java @@ -1,99 +1,70 @@ package io.crnk.example.service.simple; -import static org.springframework.http.HttpStatus.OK; - -import java.io.Serializable; -import java.util.Arrays; -import javax.security.auth.message.config.AuthConfigFactory; - import com.jayway.restassured.RestAssured; import io.crnk.core.queryspec.QuerySpec; import io.crnk.core.repository.ResourceRepositoryV2; import io.crnk.core.resource.list.ResourceList; import io.crnk.example.service.basic.Screening; -import io.crnk.example.service.jpa.ScheduleDto; import io.crnk.example.service.jpa.ScheduleEntity; import org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import javax.security.auth.message.config.AuthConfigFactory; +import java.io.Serializable; +import java.util.Arrays; + +import static org.springframework.http.HttpStatus.OK; + /** * Shows two kinds of test cases: RestAssured and CrnkClient. */ public class ExampleApplicationTest extends BaseTest { - @Before - public void setup() { - // NPE fix - if (AuthConfigFactory.getFactory() == null) { - AuthConfigFactory.setFactory(new AuthConfigFactoryImpl()); - } - } - - @Test - public void testJpaEntityAccess() { - ResourceRepositoryV2 entityRepo = client.getRepositoryForType(ScheduleEntity.class); - - QuerySpec querySpec = new QuerySpec(ScheduleEntity.class); - ResourceList list = entityRepo.findAll(querySpec); - for (ScheduleEntity schedule : list) { - entityRepo.delete(schedule.getId()); - } - - ScheduleEntity schedule = new ScheduleEntity(); - schedule.setId(13L); - schedule.setName("My Schedule"); - entityRepo.create(schedule); - - list = entityRepo.findAll(querySpec); - Assert.assertEquals(1, list.size()); - } - - @Test - public void testDtoMapping() { - ResourceRepositoryV2 entityRepo = client.getRepositoryForType(ScheduleDto.class); - - QuerySpec querySpec = new QuerySpec(ScheduleDto.class); - ResourceList list = entityRepo.findAll(querySpec); - for (ScheduleDto schedule : list) { - entityRepo.delete(schedule.getId()); - } - - ScheduleDto schedule = new ScheduleDto(); - schedule.setId(13L); - schedule.setName("My Schedule"); - entityRepo.create(schedule); - - list = entityRepo.findAll(querySpec); - Assert.assertEquals(1, list.size()); - schedule = list.get(0); - Assert.assertEquals(13L, schedule.getId().longValue()); - Assert.assertEquals("My Schedule", schedule.getName()); - - // a computed attribute! - Assert.assertEquals("MY SCHEDULE", schedule.getComputedUpperName()); - - // a decorated attribute! - Assert.assertEquals("decoratedFindAll", schedule.getDecoratedName()); - } - - @Test - public void testAccessHome() { - RestAssured.given().contentType("*").when().get("/api/").then() - .statusCode(OK.value()); - } - - - @Test - public void testBasicRelationship() { - QuerySpec querySpec = new QuerySpec(Screening.class); - querySpec.includeRelation(Arrays.asList("location")); - ResourceRepositoryV2 repository = client.getRepositoryForType(Screening.class); - ResourceList list = repository.findAll(querySpec); - Assert.assertNotEquals(0, list.size()); - for (Screening screening : list) { - Assert.assertNotNull(screening.getLocation()); - } - } + @Before + public void setup() { + // NPE fix + if (AuthConfigFactory.getFactory() == null) { + AuthConfigFactory.setFactory(new AuthConfigFactoryImpl()); + } + } + + @Test + public void testJpaEntityAccess() { + ResourceRepositoryV2 entityRepo = client.getRepositoryForType(ScheduleEntity.class); + + QuerySpec querySpec = new QuerySpec(ScheduleEntity.class); + ResourceList list = entityRepo.findAll(querySpec); + for (ScheduleEntity schedule : list) { + entityRepo.delete(schedule.getId()); + } + + ScheduleEntity schedule = new ScheduleEntity(); + schedule.setId(13L); + schedule.setName("My Schedule"); + entityRepo.create(schedule); + + list = entityRepo.findAll(querySpec); + Assert.assertEquals(1, list.size()); + } + + @Test + public void testAccessHome() { + RestAssured.given().contentType("*").when().get("/api/").then() + .statusCode(OK.value()); + } + + + @Test + public void testBasicRelationship() { + QuerySpec querySpec = new QuerySpec(Screening.class); + querySpec.includeRelation(Arrays.asList("location")); + ResourceRepositoryV2 repository = client.getRepositoryForType(Screening.class); + ResourceList list = repository.findAll(querySpec); + Assert.assertNotEquals(0, list.size()); + for (Screening screening : list) { + Assert.assertNotNull(screening.getLocation()); + } + } } diff --git a/settings.gradle b/settings.gradle index 7b3f401..2056b36 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ -include ':crnk-example-service', 'crnk-example-frontend' +include ':crnk-example-service' gradle.beforeProject { Project project -> project.with { diff --git a/versions.properties b/versions.properties index 4782bd0..409f5ee 100644 --- a/versions.properties +++ b/versions.properties @@ -1 +1 @@ -crnk.version=2.10.20181129142450 \ No newline at end of file +crnk.version=2.11.20190113153635 \ No newline at end of file