diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 60be2d8a..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Build - -on: - push: - branches: - - master - -jobs: - dependencies: - name: Cache dependencies - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - uses: actions/cache@v1 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: node_modules # !WARN does not work if running multiple node versions, instead use https://github.com/actions/cache/blob/master/examples.md#node---yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Yarn Install - if: steps.yarn-cache.outputs.cache-hit != 'true' - run: yarn install --frozen-lockfile - - build: - name: Build applications & libraries - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - name: Restore dependencies from cache - uses: actions/cache@v1 - with: - path: node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Run builders - run: yarn nx run-many --target=build --configuration=production --projects=akita diff --git a/.github/workflows/quality-check.yml b/.github/workflows/quality-check.yml deleted file mode 100644 index dc03c2f9..00000000 --- a/.github/workflows/quality-check.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: Quality Check - -on: - pull_request: - branches: - - master - -jobs: - dependencies: - name: Cache dependencies - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - uses: actions/cache@v1 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: node_modules # !WARN does not work if running multiple node versions, instead use https://github.com/actions/cache/blob/master/examples.md#node---yarn - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Yarn Install - if: steps.yarn-cache.outputs.cache-hit != 'true' - run: yarn install --frozen-lockfile - - lint: - name: Lint all code - runs-on: ubuntu-latest - needs: [dependencies] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - name: Restore dependencies from cache - uses: actions/cache@v1 - with: - path: node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Run linting - continue-on-error: true # temporary measurements until linting errors are fixed, see https://github.com/datorama/akita/issues/401 - run: yarn nx run-many --target=lint --all - - test: - name: Test applications & libraries - runs-on: ubuntu-latest - needs: [dependencies] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12 - - name: Restore dependencies from cache - uses: actions/cache@v1 - with: - path: node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Run tests - run: yarn nx run-many --target=test --all diff --git a/apps/CHANGELOG.md b/apps/CHANGELOG.md deleted file mode 100644 index 4d6f0e41..00000000 --- a/apps/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - - diff --git a/apps/angular-akita-server-side-pagination-e2e/cypress.json b/apps/angular-akita-server-side-pagination-e2e/cypress.json deleted file mode 100644 index 8d777cb7..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/cypress.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileServerFolder": ".", - "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, - "videosFolder": "../../dist/cypress/apps/angular-akita-server-side-pagination-e2e/videos", - "screenshotsFolder": "../../dist/cypress/apps/angular-akita-server-side-pagination-e2e/screenshots", - "chromeWebSecurity": false -} diff --git a/apps/angular-akita-server-side-pagination-e2e/src/fixtures/example.json b/apps/angular-akita-server-side-pagination-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed6..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/angular-akita-server-side-pagination-e2e/src/integration/app.spec.ts b/apps/angular-akita-server-side-pagination-e2e/src/integration/app.spec.ts deleted file mode 100644 index ce714c1b..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/integration/app.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('angular-akita-server-side-pagination', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome to angular-akita-server-side-pagination!'); - }); -}); diff --git a/apps/angular-akita-server-side-pagination-e2e/src/plugins/index.js b/apps/angular-akita-server-side-pagination-e2e/src/plugins/index.js deleted file mode 100644 index 9067e75a..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config - - // Preprocess Typescript file using Nx helper - on('file:preprocessor', preprocessTypescript(config)); -}; diff --git a/apps/angular-akita-server-side-pagination-e2e/src/support/app.po.ts b/apps/angular-akita-server-side-pagination-e2e/src/support/app.po.ts deleted file mode 100644 index 32934246..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/angular-akita-server-side-pagination-e2e/src/support/commands.ts b/apps/angular-akita-server-side-pagination-e2e/src/support/commands.ts deleted file mode 100644 index 61b3a3e3..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/support/commands.ts +++ /dev/null @@ -1,31 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/angular-akita-server-side-pagination-e2e/src/support/index.ts b/apps/angular-akita-server-side-pagination-e2e/src/support/index.ts deleted file mode 100644 index 3d469a6b..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/src/support/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/angular-akita-server-side-pagination-e2e/tsconfig.e2e.json b/apps/angular-akita-server-side-pagination-e2e/tsconfig.e2e.json deleted file mode 100644 index 824748ba..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc" - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/apps/angular-akita-server-side-pagination-e2e/tsconfig.json b/apps/angular-akita-server-side-pagination-e2e/tsconfig.json deleted file mode 100644 index d8d4ea3e..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["cypress", "node"] - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/apps/angular-akita-server-side-pagination-e2e/tslint.json b/apps/angular-akita-server-side-pagination-e2e/tslint.json deleted file mode 100644 index 36892e47..00000000 --- a/apps/angular-akita-server-side-pagination-e2e/tslint.json +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "../../tslint.json", "linterOptions": { "exclude": ["!**/*"] }, "rules": {} } diff --git a/apps/angular-akita-server-side-pagination/README.md b/apps/angular-akita-server-side-pagination/README.md deleted file mode 100644 index eda42995..00000000 --- a/apps/angular-akita-server-side-pagination/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Akita Server Side Pagination - -## Prerequisites - -`yarn global add @nrwl/cli` - -## Run - -Run the `nx` command from the repo root aka workspace root - -`nx serve angular-akita-server-side-pagination` diff --git a/apps/angular-akita-server-side-pagination/article.md b/apps/angular-akita-server-side-pagination/article.md deleted file mode 100644 index de9f61e2..00000000 --- a/apps/angular-akita-server-side-pagination/article.md +++ /dev/null @@ -1,269 +0,0 @@ -# Server Side Pagination Made Easy with Akita and Angular - -## Introduction -When developing applications, we often need to deal with a large data-sets. Imagine a scenario where we have one million records in the database, and we require to show it on a web page. - -We generally want to avoid sending all the data at once. The reasons for that are 1) We want a faster initial page load. 2) We don’t want to bloat the user’s machine memory. - -Instead, server-side paging is used, where the server sends just a single page at a time. - -In addition to that, we also want to cache pages that already have been fetched, to spare the need for an additional request. To save you the hassle and help you manage this whole thing, we created the PaginatorPlugin. - -## The Paginator Plugin - -The Paginator API provides two useful features: -1. Caching of pages which have already been fetched. -2. A pagination functionally, which gives you all the things you need to manage pagination in the application. - -Here is the plugin in action: -// gif - -Let's learn how to use it. - -## Create the Scaffold -We need to maintain a collection of contacts, so we'll use an `EntityStore`. You can think of an entity store as a table in a database, where each table represents a flat collection of entities. - -Let's create a contacts table, i.e., an `EntityStore` managing a Contact object: - -```ts -// store -export interface ContactsState extends EntityState {} - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'contacts' }) -export class ContactsStore extends EntityStore { - constructor() { - super(); - } -} - -// query -@Injectable({ providedIn: 'root' }) -export class ContactsQuery extends QueryEntity { - constructor(protected store: ContactsStore) { - super(store); - } -} - -// model -import { ID } from '@datorama/akita'; - -export interface Contact { - id: ID; - email: string; - name: string; - address: string; -} -``` -We created the basic building blocks of Akita. Now, let's create the `ContactsService` which -is responsible for fetching the data: - -``` -@Injectable({ providedIn: 'root' }) -export class ContactsService { - get(params): Observable> { - return getContacts(params); - } -} -``` -The `getContact` function is a mock implementation which returns the required server data with a one-second delay. - -## Basic Pagination: -First, we need to create a new provider for our contacts: -``` -// contacts-paginator.ts -import { inject, InjectionToken } from '@angular/core'; -import { ContactsQuery } from './state/contacts.query'; -import { PaginatorPlugin } from '@datorama/akita'; - -export const CONTACTS_PAGINATOR = new InjectionToken('CONTACTS_PAGINATOR', { - providedIn: 'root', - factory: () => { - const contactsQuery = inject(ContactsQuery); - return new PaginatorPlugin(contactsQuery) - .withControls().withRange(); - } -}); - -``` -You should already be familiar with the above code. This is the regular process of creating a factory provider in Angular. - -We are creating a `new Paginator()`, passing the query we want to use in our pagination. -We call withControls(), which will give us an array of pages so we ngFor on them and withRange() which will give us the from and to values to display to the user. - -Now, we can use it in our component: -``` -// contacts-page.component.ts -import { CONTACTS_PAGINATOR } from '../contacts-paginator'; -import { Contact } from '../state/contact.model'; -import { PaginationResponse, PaginatorPlugin } from '@datorama/akita'; - -@Component({ - templateUrl: './contacts-page.component.html', -}) -export class ContactsPageComponent { - contacts$: Observable>; - - constructor(@Inject(CONTACTS_PAGINATOR) private paginatorRef: PaginatorPlugin, - private contactsService: ContactsService - ) { } - - ngOnInit() { - this.contacts$ = this.paginatorRef.pageChanges.pipe( - switchMap((page) => { - const requestFn = () => this.contactsService.get({ page }); - return this.paginatorRef.getPage(requestFn); - }) - ); - } -} -``` -Paginator provides you with a pageChanges observable so you can listen to page changes (which fires the first page immediately) and call the getPage() method, passing the HTTP request. - -Paginator expects to get the following fields as part of the response from the server (in our case, the `request` service method`): -``` -{ - "perPage": 10, - "lastPage": "10", - "currentPage": "3", - "total": 150, - "data": [...] -} -``` - -In addition to that, Paginator also exposes all the data that you need to display as well as methods for controlling the page from the UI, for example: -`isLoading$`, `isFirst`, `isLast`, `prevPage()`, `nextPage()`, `setPage()`, `isPageActive()`, `pageControls`, etc. - -Let's see how can we use it in the component's template: -``` -// contacts-page.component.html -
- - - -
- - - ... - - - - - - - - - -
{{ contact.id }}{{ contact.name }}{{ contact.email }}{{ contact.address }}
- - -
- -
- -
-``` - -That's all you need in order to get fully working pagination including caching. - -### Router Integration -There are times where we want to persist the current page in the URL address, for example: `http://app.com/contact?page=3`. -Here is an example of how can we implement it with the plugin: -``` -export class ContactsPageComponent { - contacts$: Observable>; - - constructor(@Inject(CONTACTS_PAGINATOR) private paginatorRef: PaginatorPlugin, - private contactsService: ContactsService, - private route: ActivatedRoute - ) { } - - ngOnInit() { - this.route.queryParamMap.pipe( - map(params => +params.get('page')), - untilDestroyed(this) - ).subscribe(page => this.paginatorRef.setPage(page)); - - this.contacts$ = this.paginatorRef.pageChanges.pipe( - switchMap((page) => { - const requestFn = () => this.contactsService.get({ page }); - return this.paginatorRef.getPage(requestFn); - }), - untilDestroyed(this) - ); - } -} -``` -Each time the `page` query parameter changes, we notify the plugin about the current page. - -## Advanced Pagination -There are times where we want to give our users the ability to filter the data, sort it, or change the number of entries per page. The vital step here is that when we change a filter, sort etc., we want to invalidate the cache, because it may alter the server response. - -For example, let's add a `sortBy` filter: - -``` -// contacts-page.component.html -export class ContactsPageComponent { - contacts$: Observable>; - sortByControl = new FormControl('name'); - - constructor(@Inject(CONTACTS_PAGINATOR) private paginatorRef: PaginatorPlugin, - private contactsService: ContactsService - ) { }pag - - ngOnInit() { - const sortChanges$ = this.sortByControl.valueChanges.pipe(startWith('name')); - - this.contacts$ = combineLatest([ - sortChanges$.pipe(tap(() => this.paginatorRef.clearCache())), - this.paginatorRef.pageChanges - ]).pipe( - switchMap(([sortBy, page]) => { - const requestFn = () => this.contactsService.get({ page, sortBy }); - return this.paginatorRef.getPage(requestFn); - }) - ); - } -} -``` - -When the `sortBy` value changes, we need to invalidate the cache, so the Paginator will know that it needs to re-fetch the data from the server. - -## Pagination Metadata -Sometimes you want to save the current filters, so if the user navigates from the current route and comes back you want the filter values to persist. Paginator exposes a metadata property where you can set these values. For example: - -```ts -export class ContactsPageComponent { - ngOnInit() { - const sortByValue = this.paginatorRef.metadata.get('sortBy') || 'name'; - this.sortByControl = new FormControl(sortByValue); - - const sort$ = this.sortByControl.valueChanges.pipe(startWith(sortByValue)); - - this.contacts$ = combineLatest([ - sort$.pipe(tap(() => this.paginatorRef.clearCache())), - this.paginatorRef.pageChanges - ]).pipe( - switchMap(([sortBy, page]) => { - const requestFn = () => this.contactsService.get({ page, sortBy }); - this.paginatorRef.metadata.set('sortBy', sortBy); - return this.paginatorRef.getPage(requestFn); - }) - ); - } -} -``` diff --git a/apps/angular-akita-server-side-pagination/browserslist b/apps/angular-akita-server-side-pagination/browserslist deleted file mode 100644 index 80848532..00000000 --- a/apps/angular-akita-server-side-pagination/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/apps/angular-akita-server-side-pagination/jest.config.js b/apps/angular-akita-server-side-pagination/jest.config.js deleted file mode 100644 index 3e6a028e..00000000 --- a/apps/angular-akita-server-side-pagination/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - name: 'angular-akita-server-side-pagination', - preset: '../../jest.config.js', - coverageDirectory: '../../coverage/apps/angular-akita-server-side-pagination', - snapshotSerializers: [ - 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', - 'jest-preset-angular/build/AngularSnapshotSerializer.js', - 'jest-preset-angular/build/HTMLCommentSerializer.js' - ] -}; diff --git a/apps/angular-akita-server-side-pagination/src/app/app-routing.module.ts b/apps/angular-akita-server-side-pagination/src/app/app-routing.module.ts deleted file mode 100644 index edd74a72..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/app-routing.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { HomePageComponent } from './home-page/home-page.component'; -import { ContactsPageComponent } from './contacts/contacts-page/contacts-page.component'; - -const routes: Routes = [ - { - path: '', - pathMatch: 'full', - component: HomePageComponent - }, - { - path: 'contacts', - component: ContactsPageComponent - } -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule {} diff --git a/apps/angular-akita-server-side-pagination/src/app/app.component.html b/apps/angular-akita-server-side-pagination/src/app/app.component.html deleted file mode 100644 index 37104d94..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/app.component.html +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/apps/angular-akita-server-side-pagination/src/app/app.component.scss b/apps/angular-akita-server-side-pagination/src/app/app.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-akita-server-side-pagination/src/app/app.component.ts b/apps/angular-akita-server-side-pagination/src/app/app.component.ts deleted file mode 100644 index b2d06615..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/app.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent { - title = 'angular-akita-server-side-pagination'; -} diff --git a/apps/angular-akita-server-side-pagination/src/app/app.module.ts b/apps/angular-akita-server-side-pagination/src/app/app.module.ts deleted file mode 100644 index bae3617a..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/app.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; - -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { ContactsPageComponent } from './contacts/contacts-page/contacts-page.component'; -import { HomePageComponent } from './home-page/home-page.component'; -import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; -import { environment } from '../environments/environment'; -import { ContentLoaderModule } from '@netbasal/content-loader'; -import { ReactiveFormsModule } from '@angular/forms'; - -@NgModule({ - declarations: [AppComponent, ContactsPageComponent, HomePageComponent], - imports: [BrowserModule, AppRoutingModule, ReactiveFormsModule, ContentLoaderModule.forRoot(), environment.production ? [] : AkitaNgDevtools.forRoot()], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule {} diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.html b/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.html deleted file mode 100644 index a80e5214..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.html +++ /dev/null @@ -1,63 +0,0 @@ -
-

Contacts

- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
#NameEmailAddress
{{ contact.id }}{{ contact.name }}{{ contact.email }}{{ contact.address }}
- - -
- -
- -
diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.scss b/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.ts deleted file mode 100644 index 6184abb7..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-page/contacts-page.component.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Component, Inject, OnDestroy, OnInit } from '@angular/core'; -import { CONTACTS_PAGINATOR } from '../contacts-paginator'; -import { Contact } from '../state/contact.model'; -import { PaginationResponse, PaginatorPlugin } from '@datorama/akita'; -import { untilDestroyed } from 'ngx-take-until-destroy'; -import { startWith, switchMap, tap } from 'rxjs/operators'; -import { ContactsService } from '../state/contacts.service'; -import { combineLatest, Observable } from 'rxjs'; -import { FormControl } from '@angular/forms'; - -@Component({ - templateUrl: './contacts-page.component.html', - styleUrls: ['./contacts-page.component.scss'] -}) -export class ContactsPageComponent implements OnInit, OnDestroy { - // changed type from Observable> because of below error - // Type 'PaginationResponse' is not assignable to type 'PaginationResponse'. - // TODO fix this - contacts$: Observable>; - sortByControl: FormControl; - - constructor(@Inject(CONTACTS_PAGINATOR) public paginatorRef: PaginatorPlugin, private contactsService: ContactsService) {} - - ngOnInit() { - const sortByValue = this.paginatorRef.metadata.get('sortBy') || 'name'; - this.sortByControl = new FormControl(sortByValue); - - const sort$ = this.sortByControl.valueChanges.pipe(startWith(sortByValue)); - - this.contacts$ = combineLatest([sort$.pipe(tap(() => this.paginatorRef.clearCache())), this.paginatorRef.pageChanges]).pipe( - switchMap(([sortBy, page]) => { - const requestFn = () => this.contactsService.get({ page, sortBy }); - this.paginatorRef.metadata.set('sortBy', sortBy); - return this.paginatorRef.getPage(requestFn); - }), - untilDestroyed(this) - ); - } - - ngOnDestroy() { - this.paginatorRef.destroy(); - } -} diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-paginator.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-paginator.ts deleted file mode 100644 index f984897d..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/contacts-paginator.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { inject, InjectionToken } from '@angular/core'; -import { ContactsQuery } from './state/contacts.query'; -import { PaginatorPlugin } from '@datorama/akita'; - -export const CONTACTS_PAGINATOR = new InjectionToken('CONTACTS_PAGINATOR', { - providedIn: 'root', - factory: () => { - const contactsQuery = inject(ContactsQuery); - return new PaginatorPlugin(contactsQuery).withControls().withRange(); - } -}); diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contact.model.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/state/contact.model.ts deleted file mode 100644 index 0b44a7dd..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contact.model.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ID } from '@datorama/akita'; - -export interface Contact { - id: ID; - email: string; - name: string; - address: string; -} diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.query.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.query.ts deleted file mode 100644 index 0aae3003..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.query.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Injectable } from '@angular/core'; -import { QueryEntity } from '@datorama/akita'; -import { ContactsStore, ContactsState } from './contacts.store'; - -@Injectable({ - providedIn: 'root' -}) -export class ContactsQuery extends QueryEntity { - constructor(protected store: ContactsStore) { - super(store); - } -} diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.service.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.service.ts deleted file mode 100644 index 9ab5625c..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.service.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Injectable } from '@angular/core'; -import { PaginationResponse } from '@datorama/akita'; -import { Contact } from './contact.model'; -import { Observable } from 'rxjs'; -import { getContacts } from '../../server'; - -@Injectable({ providedIn: 'root' }) -export class ContactsService { - get(params): Observable> { - return getContacts(params); - } -} diff --git a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.store.ts b/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.store.ts deleted file mode 100644 index ce2f931c..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/contacts/state/contacts.store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Injectable } from '@angular/core'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; -import { Contact } from './contact.model'; - -export interface ContactsState extends EntityState {} - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'contacts' }) -export class ContactsStore extends EntityStore { - constructor() { - super(); - } -} diff --git a/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.html b/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.html deleted file mode 100644 index c90a1ffb..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.html +++ /dev/null @@ -1,9 +0,0 @@ -
-
-

Welcome to Akita!

-

State Management Tailored-Made for JS Applications

-
- Learn more -
-
- diff --git a/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.scss b/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.ts b/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.ts deleted file mode 100644 index 878032f5..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/home-page/home-page.component.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-home-page', - templateUrl: './home-page.component.html', - styleUrls: ['./home-page.component.scss'] -}) -export class HomePageComponent implements OnInit { - constructor() {} - - ngOnInit() {} -} diff --git a/apps/angular-akita-server-side-pagination/src/app/server.ts b/apps/angular-akita-server-side-pagination/src/app/server.ts deleted file mode 100644 index 28eec367..00000000 --- a/apps/angular-akita-server-side-pagination/src/app/server.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as faker from 'faker'; -import { timer } from 'rxjs'; -import { mapTo } from 'rxjs/operators'; -import { sortBy } from 'lodash'; - -const count = 96; -const data = []; - -for (let i = 0; i < count; i++) { - data.push({ - id: faker.random.number(), - email: faker.internet.email(), - name: faker.name.findName(), - address: faker.address.streetAddress() - }); -} - -export function getData(params) { - console.log('Fetching from server'); - const merged = { ...{ sortBy: 'email', perPage: 10 }, ...params }; - const offset = (merged.page - 1) * +merged.perPage; - const sorted = sortBy(data, merged.sortBy); - const paginatedItems = sorted.slice(offset, offset + +merged.perPage); - - return { - currentPage: merged.page, - perPage: +merged.perPage, - total: data.length, - lastPage: Math.ceil(data.length / +merged.perPage), - data: paginatedItems - }; -} - -export const getContacts = function(params) { - return timer(1000).pipe(mapTo(getData(params))); -}; diff --git a/apps/angular-akita-server-side-pagination/src/assets/.gitkeep b/apps/angular-akita-server-side-pagination/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-akita-server-side-pagination/src/assets/akita.png b/apps/angular-akita-server-side-pagination/src/assets/akita.png deleted file mode 100644 index d0730ade..00000000 Binary files a/apps/angular-akita-server-side-pagination/src/assets/akita.png and /dev/null differ diff --git a/apps/angular-akita-server-side-pagination/src/environments/environment.prod.ts b/apps/angular-akita-server-side-pagination/src/environments/environment.prod.ts deleted file mode 100644 index 3612073b..00000000 --- a/apps/angular-akita-server-side-pagination/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/apps/angular-akita-server-side-pagination/src/environments/environment.ts b/apps/angular-akita-server-side-pagination/src/environments/environment.ts deleted file mode 100644 index 7b4f817a..00000000 --- a/apps/angular-akita-server-side-pagination/src/environments/environment.ts +++ /dev/null @@ -1,16 +0,0 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. - -export const environment = { - production: false -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/apps/angular-akita-server-side-pagination/src/favicon.ico b/apps/angular-akita-server-side-pagination/src/favicon.ico deleted file mode 100644 index 317ebcb2..00000000 Binary files a/apps/angular-akita-server-side-pagination/src/favicon.ico and /dev/null differ diff --git a/apps/angular-akita-server-side-pagination/src/index.html b/apps/angular-akita-server-side-pagination/src/index.html deleted file mode 100644 index 408b4fb9..00000000 --- a/apps/angular-akita-server-side-pagination/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - AngularAkitaServerSidePagination - - - - - - - - - diff --git a/apps/angular-akita-server-side-pagination/src/main.ts b/apps/angular-akita-server-side-pagination/src/main.ts deleted file mode 100644 index fa4e0aef..00000000 --- a/apps/angular-akita-server-side-pagination/src/main.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/apps/angular-akita-server-side-pagination/src/polyfills.ts b/apps/angular-akita-server-side-pagination/src/polyfills.ts deleted file mode 100644 index e49856ec..00000000 --- a/apps/angular-akita-server-side-pagination/src/polyfills.ts +++ /dev/null @@ -1,62 +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/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/apps/angular-akita-server-side-pagination/src/styles.scss b/apps/angular-akita-server-side-pagination/src/styles.scss deleted file mode 100644 index c3a53d68..00000000 --- a/apps/angular-akita-server-side-pagination/src/styles.scss +++ /dev/null @@ -1,8 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ -a { - cursor: pointer; -} - -.hide { - display: none; -} diff --git a/apps/angular-akita-server-side-pagination/tsconfig.app.json b/apps/angular-akita-server-side-pagination/tsconfig.app.json deleted file mode 100644 index e9fa6dfd..00000000 --- a/apps/angular-akita-server-side-pagination/tsconfig.app.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": [] - }, - "files": ["src/main.ts", "src/polyfills.ts"] -} diff --git a/apps/angular-akita-server-side-pagination/tslint.json b/apps/angular-akita-server-side-pagination/tslint.json deleted file mode 100644 index 362e0dc6..00000000 --- a/apps/angular-akita-server-side-pagination/tslint.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "app", "camelCase"], - "component-selector": [true, "element", "app", "kebab-case"] - }, - "linterOptions": { - "exclude": ["!**/*"] - } -} diff --git a/apps/angular-ecommerce-e2e/cypress.json b/apps/angular-ecommerce-e2e/cypress.json deleted file mode 100644 index dbc1fe95..00000000 --- a/apps/angular-ecommerce-e2e/cypress.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileServerFolder": ".", - "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, - "videosFolder": "../../dist/cypress/apps/angular-ecommerce-e2e/videos", - "screenshotsFolder": "../../dist/cypress/apps/angular-ecommerce-e2e/screenshots", - "chromeWebSecurity": false -} diff --git a/apps/angular-ecommerce-e2e/src/fixtures/example.json b/apps/angular-ecommerce-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed6..00000000 --- a/apps/angular-ecommerce-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/angular-ecommerce-e2e/src/integration/app.spec.ts b/apps/angular-ecommerce-e2e/src/integration/app.spec.ts deleted file mode 100644 index 49f8730a..00000000 --- a/apps/angular-ecommerce-e2e/src/integration/app.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('angular-ecommerce', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome to angular-ecommerce!'); - }); -}); diff --git a/apps/angular-ecommerce-e2e/src/plugins/index.js b/apps/angular-ecommerce-e2e/src/plugins/index.js deleted file mode 100644 index 9067e75a..00000000 --- a/apps/angular-ecommerce-e2e/src/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config - - // Preprocess Typescript file using Nx helper - on('file:preprocessor', preprocessTypescript(config)); -}; diff --git a/apps/angular-ecommerce-e2e/src/support/app.po.ts b/apps/angular-ecommerce-e2e/src/support/app.po.ts deleted file mode 100644 index 32934246..00000000 --- a/apps/angular-ecommerce-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/angular-ecommerce-e2e/src/support/commands.ts b/apps/angular-ecommerce-e2e/src/support/commands.ts deleted file mode 100644 index 61b3a3e3..00000000 --- a/apps/angular-ecommerce-e2e/src/support/commands.ts +++ /dev/null @@ -1,31 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/angular-ecommerce-e2e/src/support/index.ts b/apps/angular-ecommerce-e2e/src/support/index.ts deleted file mode 100644 index 3d469a6b..00000000 --- a/apps/angular-ecommerce-e2e/src/support/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/angular-ecommerce-e2e/tsconfig.e2e.json b/apps/angular-ecommerce-e2e/tsconfig.e2e.json deleted file mode 100644 index 824748ba..00000000 --- a/apps/angular-ecommerce-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc" - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/apps/angular-ecommerce-e2e/tsconfig.json b/apps/angular-ecommerce-e2e/tsconfig.json deleted file mode 100644 index d8d4ea3e..00000000 --- a/apps/angular-ecommerce-e2e/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["cypress", "node"] - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/apps/angular-ecommerce-e2e/tslint.json b/apps/angular-ecommerce-e2e/tslint.json deleted file mode 100644 index 36892e47..00000000 --- a/apps/angular-ecommerce-e2e/tslint.json +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "../../tslint.json", "linterOptions": { "exclude": ["!**/*"] }, "rules": {} } diff --git a/apps/angular-ecommerce-server/.eslintrc b/apps/angular-ecommerce-server/.eslintrc deleted file mode 100644 index ab8f3833..00000000 --- a/apps/angular-ecommerce-server/.eslintrc +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "../../.eslintrc", "rules": {}, "ignorePatterns": ["!**/*"] } diff --git a/apps/angular-ecommerce-server/README.md b/apps/angular-ecommerce-server/README.md deleted file mode 100644 index 20658525..00000000 --- a/apps/angular-ecommerce-server/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Akita eCommerce - -## Prerequisites - -`yarn global add @nrwl/cli` - -Run the `nx` command from the repo root aka workspace root - -## Run the Server - -`nx serve angular-ecommerce-server` - -## Run the Client - -`nx serve angular-ecommerce` diff --git a/apps/angular-ecommerce-server/jest.config.js b/apps/angular-ecommerce-server/jest.config.js deleted file mode 100644 index 1b1f4721..00000000 --- a/apps/angular-ecommerce-server/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - name: 'angular-ecommerce-server', - preset: '../../jest.config.js', - coverageDirectory: '../../coverage/apps/angular-ecommerce-server' -}; diff --git a/apps/angular-ecommerce-server/src/app/.gitkeep b/apps/angular-ecommerce-server/src/app/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-ecommerce-server/src/assets/.gitkeep b/apps/angular-ecommerce-server/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-ecommerce-server/src/environments/environment.prod.ts b/apps/angular-ecommerce-server/src/environments/environment.prod.ts deleted file mode 100644 index 3612073b..00000000 --- a/apps/angular-ecommerce-server/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/apps/angular-ecommerce-server/src/environments/environment.ts b/apps/angular-ecommerce-server/src/environments/environment.ts deleted file mode 100644 index ffe8aed7..00000000 --- a/apps/angular-ecommerce-server/src/environments/environment.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: false -}; diff --git a/apps/angular-ecommerce-server/src/main.ts b/apps/angular-ecommerce-server/src/main.ts deleted file mode 100644 index 724cc3b4..00000000 --- a/apps/angular-ecommerce-server/src/main.ts +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This is not a production server yet! - * This is only a minimal backend to get started. - */ - -import * as express from 'express'; -import * as cookieParser from 'cookie-parser'; -import * as logger from 'morgan'; -import * as cors from 'cors'; -import * as faker from 'faker'; - -function generateProducts() { - const locations = ['usa', 'north-america', 'europe', 'asia']; - - return Array.from({ length: 10 }).map(() => { - return { - id: faker.random.uuid(), - title: faker.commerce.productName(), - image: `https://imgplaceholder.com/420x320/ff7f7f/333333/fa-image`, - additionalData: { - price: faker.commerce.price(), - department: faker.commerce.department(), - productAdjective: faker.commerce.productAdjective(), - productMaterial: faker.commerce.productMaterial(), - color: faker.commerce.color(), - description: faker.lorem.paragraphs(), - location: locations[Math.floor(Math.random() * locations.length)] - } - }; - }); -} - -const productsTable = generateProducts(); -const minimalProducts = productsTable.map(p => ({ - id: p.id, - image: p.image, - title: p.title -})); - -function getRandom(arr, n) { - let result = new Array(n), - len = arr.length, - taken = new Array(len); - while (n--) { - const x = Math.floor(Math.random() * len); - result[n] = arr[x in taken ? taken[x] : x]; - taken[x] = --len in taken ? taken[len] : len; - } - return result; -} - -const app = express(); -app.use(logger('dev')); -app.use(express.json()); -app.use(express.urlencoded({ extended: false })); -app.use(cookieParser()); -app.use(cors()); - -app.post('/api/v1/login', (req, res) => { - const { email, password } = req.body; - if (email === 'nope@gmail.com') { - return res.status(401).json({ success: false, errorMsg: `Email and password don't match` }); - } - return res.json({ success: true, token: 'JWT', name: faker.name.findName() }); -}); - -app.get('/api/v1/products', (req, res) => { - setTimeout(() => { - // return random items to simulate filtering - return res.json(getRandom(minimalProducts, 5)); - }, 300); -}); - -app.get('/api/v1/product/:id', (req, res) => { - const productId = req.params.id; - const product = productsTable.find(p => p.id === productId); - - return res.json(product); -}); - -const port = process.env.port || 3333; -const server = app.listen(port, () => { - console.log(`Listening at http://localhost:${port}/api/v1`); -}); -server.on('error', console.error); diff --git a/apps/angular-ecommerce-server/tsconfig.app.json b/apps/angular-ecommerce-server/tsconfig.app.json deleted file mode 100644 index bb717c5e..00000000 --- a/apps/angular-ecommerce-server/tsconfig.app.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": ["node"] - }, - "exclude": ["**/*.spec.ts"], - "include": ["**/*.ts"] -} diff --git a/apps/angular-ecommerce-server/tsconfig.json b/apps/angular-ecommerce-server/tsconfig.json deleted file mode 100644 index b64cfd9e..00000000 --- a/apps/angular-ecommerce-server/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["node", "jest", "express"] - }, - "include": ["**/*.ts"] -} diff --git a/apps/angular-ecommerce-server/tsconfig.spec.json b/apps/angular-ecommerce-server/tsconfig.spec.json deleted file mode 100644 index 29efa430..00000000 --- a/apps/angular-ecommerce-server/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "include": ["**/*.spec.ts", "**/*.d.ts"] -} diff --git a/apps/angular-ecommerce/browserslist b/apps/angular-ecommerce/browserslist deleted file mode 100644 index 80848532..00000000 --- a/apps/angular-ecommerce/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/apps/angular-ecommerce/proxy.conf.json b/apps/angular-ecommerce/proxy.conf.json deleted file mode 100644 index 62a1e7b7..00000000 --- a/apps/angular-ecommerce/proxy.conf.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "/api": { - "target": "http://localhost:3333", - "secure": false - } -} diff --git a/apps/angular-ecommerce/src/README.md b/apps/angular-ecommerce/src/README.md deleted file mode 100644 index 20658525..00000000 --- a/apps/angular-ecommerce/src/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Akita eCommerce - -## Prerequisites - -`yarn global add @nrwl/cli` - -Run the `nx` command from the repo root aka workspace root - -## Run the Server - -`nx serve angular-ecommerce-server` - -## Run the Client - -`nx serve angular-ecommerce` diff --git a/apps/angular-ecommerce/src/app/api.ts b/apps/angular-ecommerce/src/app/api.ts deleted file mode 100644 index def29d28..00000000 --- a/apps/angular-ecommerce/src/app/api.ts +++ /dev/null @@ -1 +0,0 @@ -export const API = `/api/v1`; diff --git a/apps/angular-ecommerce/src/app/app-routing.module.ts b/apps/angular-ecommerce/src/app/app-routing.module.ts deleted file mode 100644 index 8e0c1e77..00000000 --- a/apps/angular-ecommerce/src/app/app-routing.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; -import { ProductPageComponent } from './products/product-page/product-page.component'; -import { ProductsPageComponent } from './products/products-page/products-page.component'; -import { CartPageComponent } from './cart/cart-page/cart-page.component'; -import { LoginPageComponent } from './auth/login-page/login-page.component'; -import { AuthGuard } from './auth/auth.guard'; - -const routes: Routes = [ - { - path: '', - pathMatch: 'full', - component: ProductsPageComponent - }, - { - path: 'login', - component: LoginPageComponent, - canActivate: [AuthGuard] - }, - { - path: 'product/:id', - component: ProductPageComponent - }, - { - path: 'cart', - component: CartPageComponent - } -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule {} diff --git a/apps/angular-ecommerce/src/app/app.component.html b/apps/angular-ecommerce/src/app/app.component.html deleted file mode 100644 index 010d4f03..00000000 --- a/apps/angular-ecommerce/src/app/app.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -
- -
diff --git a/apps/angular-ecommerce/src/app/app.component.ts b/apps/angular-ecommerce/src/app/app.component.ts deleted file mode 100644 index f45969e5..00000000 --- a/apps/angular-ecommerce/src/app/app.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html' -}) -export class AppComponent {} diff --git a/apps/angular-ecommerce/src/app/app.module.ts b/apps/angular-ecommerce/src/app/app.module.ts deleted file mode 100644 index b4e94070..00000000 --- a/apps/angular-ecommerce/src/app/app.module.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { HttpClientModule } from '@angular/common/http'; -import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; -import { environment } from '../environments/environment'; -import { ProductsModule } from './products/products.module'; -import { AuthModule } from './auth/auth.module'; -import { ShellModule } from './shell/shell.module'; -import { CartModule } from './cart/cart.module'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { ToastrModule } from 'ngx-toastr'; - -@NgModule({ - declarations: [AppComponent], - imports: [ - BrowserModule, - AppRoutingModule, - HttpClientModule, - BrowserAnimationsModule, - ToastrModule.forRoot(), - environment.production ? [] : AkitaNgDevtools.forRoot({ shallow: false, sortAlphabetically: true }), - ProductsModule, - CartModule, - AuthModule, - ShellModule - ], - bootstrap: [AppComponent] -}) -export class AppModule {} diff --git a/apps/angular-ecommerce/src/app/auth/auth.guard.ts b/apps/angular-ecommerce/src/app/auth/auth.guard.ts deleted file mode 100644 index 251b5b0f..00000000 --- a/apps/angular-ecommerce/src/app/auth/auth.guard.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Injectable } from '@angular/core'; -import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; -import { Observable } from 'rxjs'; -import { AuthQuery } from './state/auth.query'; - -@Injectable({ providedIn: 'root' }) -export class AuthGuard implements CanActivate { - constructor(private authQuery: AuthQuery, private router: Router) {} - - canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean { - if (this.authQuery.isLoggedIn() === true) { - this.router.navigateByUrl('/'); - return false; - } else { - return true; - } - } -} diff --git a/apps/angular-ecommerce/src/app/auth/auth.module.ts b/apps/angular-ecommerce/src/app/auth/auth.module.ts deleted file mode 100644 index e6fe047e..00000000 --- a/apps/angular-ecommerce/src/app/auth/auth.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { LoginPageComponent } from './login-page/login-page.component'; -import { ReactiveFormsModule } from '@angular/forms'; - -@NgModule({ - declarations: [LoginPageComponent], - imports: [CommonModule, ReactiveFormsModule] -}) -export class AuthModule {} diff --git a/apps/angular-ecommerce/src/app/auth/is-logged-in.directive.ts b/apps/angular-ecommerce/src/app/auth/is-logged-in.directive.ts deleted file mode 100644 index 3accf7e6..00000000 --- a/apps/angular-ecommerce/src/app/auth/is-logged-in.directive.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; -import { AuthQuery } from './state/auth.query'; -import { untilDestroyed } from 'ngx-take-until-destroy'; - -@Directive({ - selector: '[showIfLoggedIn]' -}) -export class IsLoggedInDirective implements OnInit, OnDestroy { - @Input('showIfLoggedIn') renderTemplate = true; - - constructor(private authQuery: AuthQuery, private vcr: ViewContainerRef, private tpl: TemplateRef) {} - - ngOnInit() { - this.authQuery.isLoggedIn$.pipe(untilDestroyed(this)).subscribe(isLoggedIn => { - this.vcr.clear(); - if (isLoggedIn && this.renderTemplate) { - this.vcr.createEmbeddedView(this.tpl); - } - - if (!isLoggedIn && !this.renderTemplate) { - this.vcr.createEmbeddedView(this.tpl); - } - }); - } - - ngOnDestroy() {} -} diff --git a/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.html b/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.html deleted file mode 100644 index 1e709fae..00000000 --- a/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.html +++ /dev/null @@ -1,22 +0,0 @@ -
- -
- - - Try nope@gmail.com -
- -
- - -
- -
- -
- -
- {{error}} -
- -
diff --git a/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.ts b/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.ts deleted file mode 100644 index 035746c9..00000000 --- a/apps/angular-ecommerce/src/app/auth/login-page/login-page.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Component } from '@angular/core'; -import { FormControl, FormGroup, Validators } from '@angular/forms'; -import { AuthService } from '../state/auth.service'; -import { ToastrService } from 'ngx-toastr'; -import { Router } from '@angular/router'; - -@Component({ - templateUrl: './login-page.component.html' -}) -export class LoginPageComponent { - loginForm = new FormGroup({ - email: new FormControl('', Validators.required), - password: new FormControl('', Validators.required) - }); - error: string | null = null; - - constructor(private authService: AuthService, private router: Router, private toastr: ToastrService) {} - - submit() { - this.error = null; - if (this.loginForm.valid) { - this.authService.login(this.loginForm.value).subscribe({ - next: ({ name }) => { - this.toastr.success(`Welcome ${name}`); - this.router.navigateByUrl('/'); - }, - error: error => { - this.error = error.error.errorMsg; - } - }); - } - } -} diff --git a/apps/angular-ecommerce/src/app/auth/state/auth.query.ts b/apps/angular-ecommerce/src/app/auth/state/auth.query.ts deleted file mode 100644 index cd5819e1..00000000 --- a/apps/angular-ecommerce/src/app/auth/state/auth.query.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Query } from '@datorama/akita'; -import { AuthState, AuthStore } from './auth.store'; - -@Injectable({ providedIn: 'root' }) -export class AuthQuery extends Query { - isLoggedIn$ = this.select(state => !!state.token); - - isLoggedIn() { - return !!this.getValue().token; - } - - constructor(protected store: AuthStore) { - super(store); - } -} diff --git a/apps/angular-ecommerce/src/app/auth/state/auth.service.ts b/apps/angular-ecommerce/src/app/auth/state/auth.service.ts deleted file mode 100644 index b7797a68..00000000 --- a/apps/angular-ecommerce/src/app/auth/state/auth.service.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { AuthState, AuthStore } from './auth.store'; -import { tap } from 'rxjs/operators'; -import { API } from '../../api'; - -@Injectable({ providedIn: 'root' }) -export class AuthService { - constructor(private authStore: AuthStore, private http: HttpClient) {} - - login(cred: { email: string; password: string }) { - return this.http.post(`${API}/login`, cred).pipe(tap(({ token, name }) => this.authStore.update({ token, name }))); - } - - logout() { - this.authStore.reset(); - localStorage.removeItem('AkitaProducts'); - } -} diff --git a/apps/angular-ecommerce/src/app/auth/state/auth.store.ts b/apps/angular-ecommerce/src/app/auth/state/auth.store.ts deleted file mode 100644 index 5f78eb4e..00000000 --- a/apps/angular-ecommerce/src/app/auth/state/auth.store.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Store, StoreConfig } from '@datorama/akita'; - -export interface AuthState { - token: string; - name: string; -} - -export function createInitialState(): AuthState { - return { - name: null, - token: null - }; -} - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'auth', resettable: true }) -export class AuthStore extends Store { - constructor() { - super(createInitialState()); - } -} diff --git a/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.html b/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.html deleted file mode 100644 index ea23dd7c..00000000 --- a/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.html +++ /dev/null @@ -1,39 +0,0 @@ -
-

Summary

- - - - - - - - - - - - - - - - - - - -
TitleQuantityTotal
{{item.title}}{{item.quantity}}{{item.total}}$
- -
- Total: {{total$ | async}}$ -
- -
- -
- -
- - - -
- You don't have any items in your cart. -
-
diff --git a/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.ts b/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.ts deleted file mode 100644 index 1017b531..00000000 --- a/apps/angular-ecommerce/src/app/cart/cart-page/cart-page.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Component } from '@angular/core'; -import { CartQuery } from '../state/cart.query'; -import { ID } from '@datorama/akita'; -import { CartService } from '../state/cart.service'; -import { AuthQuery } from '../../auth/state/auth.query'; -import { Router } from '@angular/router'; - -@Component({ - templateUrl: './cart-page.component.html' -}) -export class CartPageComponent { - items$ = this.cartQuery.selectAll(); - count$ = this.cartQuery.selectCount(); - total$ = this.cartQuery.selectTotal$; - - constructor(private cartQuery: CartQuery, private authQuery: AuthQuery, private router: Router, private cartService: CartService) {} - - remove(productId: ID) { - this.cartService.remove(productId); - } - - checkout() { - if (this.authQuery.isLoggedIn()) { - // checkout - } else { - this.router.navigateByUrl('login'); - } - } -} diff --git a/apps/angular-ecommerce/src/app/cart/cart.module.ts b/apps/angular-ecommerce/src/app/cart/cart.module.ts deleted file mode 100644 index 745d5641..00000000 --- a/apps/angular-ecommerce/src/app/cart/cart.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { CartPageComponent } from './cart-page/cart-page.component'; - -@NgModule({ - declarations: [CartPageComponent], - imports: [CommonModule] -}) -export class CartModule {} diff --git a/apps/angular-ecommerce/src/app/cart/state/cart.model.ts b/apps/angular-ecommerce/src/app/cart/state/cart.model.ts deleted file mode 100644 index 7eca6c48..00000000 --- a/apps/angular-ecommerce/src/app/cart/state/cart.model.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ID } from '@datorama/akita'; -import { Product } from '../../products/state/product.model'; - -export interface CartItem { - productId: ID; - quantity: number; - title: Product['title']; - price: Product['additionalData']['price']; - total: number; -} diff --git a/apps/angular-ecommerce/src/app/cart/state/cart.query.ts b/apps/angular-ecommerce/src/app/cart/state/cart.query.ts deleted file mode 100644 index 96b6a896..00000000 --- a/apps/angular-ecommerce/src/app/cart/state/cart.query.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Injectable } from '@angular/core'; -import { QueryEntity } from '@datorama/akita'; -import { CartState, CartStore } from './cart.store'; -import { CartItem } from './cart.model'; -import { map } from 'rxjs/operators'; - -@Injectable({ providedIn: 'root' }) -export class CartQuery extends QueryEntity { - selectTotal$ = this.selectAll().pipe(map(items => items.reduce((acc, item) => acc + item.total, 0))); - - constructor(protected store: CartStore) { - super(store); - } -} diff --git a/apps/angular-ecommerce/src/app/cart/state/cart.service.ts b/apps/angular-ecommerce/src/app/cart/state/cart.service.ts deleted file mode 100644 index 81812c3d..00000000 --- a/apps/angular-ecommerce/src/app/cart/state/cart.service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Injectable } from '@angular/core'; -import { CartStore } from './cart.store'; -import { ID } from '@datorama/akita'; -import { Product } from '../../products/state/product.model'; - -@Injectable({ providedIn: 'root' }) -export class CartService { - constructor(private cartStore: CartStore) {} - - add(product: Product, quantity: number) { - this.cartStore.upsert( - product.id, - { - title: product.title, - price: product.additionalData.price, - total: product.additionalData.price * quantity, - quantity, - }, - (id, newState) => ({ - productId: id, - ...newState, - }) - ); - } - - remove(productId: ID) { - this.cartStore.remove(productId); - } -} diff --git a/apps/angular-ecommerce/src/app/cart/state/cart.store.ts b/apps/angular-ecommerce/src/app/cart/state/cart.store.ts deleted file mode 100644 index dbe9daba..00000000 --- a/apps/angular-ecommerce/src/app/cart/state/cart.store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Injectable } from '@angular/core'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; -import { CartItem } from './cart.model'; - -export interface CartState extends EntityState {} - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'cart', idKey: 'productId' }) -export class CartStore extends EntityStore { - constructor() { - super(); - } -} diff --git a/apps/angular-ecommerce/src/app/products/filters/filters.component.css b/apps/angular-ecommerce/src/app/products/filters/filters.component.css deleted file mode 100644 index 35b5abb9..00000000 --- a/apps/angular-ecommerce/src/app/products/filters/filters.component.css +++ /dev/null @@ -1,4 +0,0 @@ -:host { - width: 210px; - margin-right: 20px; -} diff --git a/apps/angular-ecommerce/src/app/products/filters/filters.component.html b/apps/angular-ecommerce/src/app/products/filters/filters.component.html deleted file mode 100644 index 9098e5f3..00000000 --- a/apps/angular-ecommerce/src/app/products/filters/filters.component.html +++ /dev/null @@ -1,50 +0,0 @@ -
- -
-
Condition
- -
- - -
- -
- - -
- -
- - -
-
Location
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
Delivery Options
-
- - -
-
- -
diff --git a/apps/angular-ecommerce/src/app/products/filters/filters.component.ts b/apps/angular-ecommerce/src/app/products/filters/filters.component.ts deleted file mode 100644 index b6ca0a37..00000000 --- a/apps/angular-ecommerce/src/app/products/filters/filters.component.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { FormControl, FormGroup } from '@angular/forms'; -import { ProductsService } from '../state/products.service'; -import { untilDestroyed } from 'ngx-take-until-destroy'; -import { ProductsQuery } from '../state/products.query'; -import { tap } from 'rxjs/operators'; - -@Component({ - selector: 'app-filters', - templateUrl: './filters.component.html', - styleUrls: ['./filters.component.css'] -}) -export class FiltersComponent implements OnInit { - filters = new FormGroup({ - condition: new FormControl(), - location: new FormControl(), - deliveryOption: new FormControl(false) - }); - - constructor(private productsService: ProductsService, private productsQuery: ProductsQuery) {} - - ngOnInit() { - this.filters.patchValue(this.productsQuery.filters); - - this.filters.valueChanges - .pipe( - tap(() => this.productsService.invalidateCache()), - untilDestroyed(this) - ) - .subscribe(filters => this.productsService.updateFilters(filters)); - } - - ngOnDestroy() {} -} diff --git a/apps/angular-ecommerce/src/app/products/product-page/product-page.component.css b/apps/angular-ecommerce/src/app/products/product-page/product-page.component.css deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-ecommerce/src/app/products/product-page/product-page.component.html b/apps/angular-ecommerce/src/app/products/product-page/product-page.component.html deleted file mode 100644 index 97bbae62..00000000 --- a/apps/angular-ecommerce/src/app/products/product-page/product-page.component.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
-

{{product.title}}

-

{{product.additionalData.description}}

-
-
- -
    -
  • Department: {{product.additionalData.department}}
  • -
  • Material: {{product.additionalData.productMaterial}}
  • -
  • Color: {{product.additionalData.color}}
  • -
  • Adjective: {{product.additionalData.productAdjective}}
  • -
  • Price: {{ product.additionalData.price }}$
  • -
- -
- -
- - -
- -
- -
- -
- -
diff --git a/apps/angular-ecommerce/src/app/products/product-page/product-page.component.ts b/apps/angular-ecommerce/src/app/products/product-page/product-page.component.ts deleted file mode 100644 index 603e833c..00000000 --- a/apps/angular-ecommerce/src/app/products/product-page/product-page.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ProductsQuery } from '../state/products.query'; -import { ProductsService } from '../state/products.service'; -import { ActivatedRoute } from '@angular/router'; -import { FormControl } from '@angular/forms'; -import { CartService } from '../../cart/state/cart.service'; -import { ToastrService } from 'ngx-toastr'; -import { Product } from '../state/product.model'; - -@Component({ - templateUrl: './product-page.component.html', - styleUrls: ['./product-page.component.css'] -}) -export class ProductPageComponent implements OnInit { - product$ = this.productsQuery.selectProduct(this.productId); - quantity = new FormControl(1); - - get productId() { - return this.activatedRoute.snapshot.params.id; - } - - constructor( - private activatedRoute: ActivatedRoute, - private cartService: CartService, - private toastr: ToastrService, - private productsService: ProductsService, - private productsQuery: ProductsQuery - ) {} - - ngOnInit() { - if (this.productsQuery.hasProduct(this.productId) === false) { - this.productsService.getProduct(this.productId).subscribe({ - error() { - // show error - } - }); - } - } - - addToCart(product: Product) { - this.cartService.add(product, this.quantity.value); - this.toastr.success(`Added to cart`); - } -} diff --git a/apps/angular-ecommerce/src/app/products/product/product.component.css b/apps/angular-ecommerce/src/app/products/product/product.component.css deleted file mode 100644 index 812addd7..00000000 --- a/apps/angular-ecommerce/src/app/products/product/product.component.css +++ /dev/null @@ -1,4 +0,0 @@ -:host { - width: 32%; - margin-right: 10px !important; -} diff --git a/apps/angular-ecommerce/src/app/products/product/product.component.html b/apps/angular-ecommerce/src/app/products/product/product.component.html deleted file mode 100644 index 8161be16..00000000 --- a/apps/angular-ecommerce/src/app/products/product/product.component.html +++ /dev/null @@ -1,9 +0,0 @@ -
- Card image cap -
-
{{product.title}}
-
-
- Details -
-
diff --git a/apps/angular-ecommerce/src/app/products/product/product.component.ts b/apps/angular-ecommerce/src/app/products/product/product.component.ts deleted file mode 100644 index 4ef49dec..00000000 --- a/apps/angular-ecommerce/src/app/products/product/product.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component, Input } from '@angular/core'; -import { BaseProduct } from '../state/product.model'; - -@Component({ - selector: 'app-base-product', - templateUrl: './product.component.html', - styleUrls: ['./product.component.css'] -}) -export class ProductComponent { - @Input() product: BaseProduct; -} diff --git a/apps/angular-ecommerce/src/app/products/products-page/products-page.component.html b/apps/angular-ecommerce/src/app/products/products-page/products-page.component.html deleted file mode 100644 index 96dfcd83..00000000 --- a/apps/angular-ecommerce/src/app/products/products-page/products-page.component.html +++ /dev/null @@ -1,24 +0,0 @@ -
- - - - - -
- - - -
- -
- -
-
- - -
-
-
- -
diff --git a/apps/angular-ecommerce/src/app/products/products-page/products-page.component.ts b/apps/angular-ecommerce/src/app/products/products-page/products-page.component.ts deleted file mode 100644 index 1fcc6165..00000000 --- a/apps/angular-ecommerce/src/app/products/products-page/products-page.component.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { combineLatest, EMPTY, Observable } from 'rxjs'; -import { BaseProduct } from '../state/product.model'; -import { ProductsService } from '../state/products.service'; -import { ProductsQuery } from '../state/products.query'; -import { switchMap } from 'rxjs/operators'; -import { untilDestroyed } from 'ngx-take-until-destroy'; - -@Component({ - templateUrl: './products-page.component.html' -}) -export class ProductsPageComponent implements OnInit { - isLoading$: Observable; - products$: Observable; - - constructor(private productsService: ProductsService, private productsQuery: ProductsQuery) {} - - ngOnInit() { - this.isLoading$ = this.productsQuery.selectLoading(); - this.products$ = this.productsQuery.selectAll(); - - combineLatest([this.productsQuery.selectHasCache(), this.productsQuery.selectFilters$, this.productsQuery.selectSearchTerm$]) - .pipe( - switchMap(([cached, filters, term]) => { - return cached ? EMPTY : this.productsService.getAll(term, filters); - }), - untilDestroyed(this) - ) - .subscribe({ - error() { - // show error - } - }); - } - - ngOnDestroy() {} -} diff --git a/apps/angular-ecommerce/src/app/products/products.module.ts b/apps/angular-ecommerce/src/app/products/products.module.ts deleted file mode 100644 index d20edc72..00000000 --- a/apps/angular-ecommerce/src/app/products/products.module.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { ProductComponent } from './product/product.component'; -import { FiltersComponent } from './filters/filters.component'; -import { ProductPageComponent } from './product-page/product-page.component'; -import { ProductsPageComponent } from './products-page/products-page.component'; -import { ReactiveFormsModule } from '@angular/forms'; -import { RouterModule } from '@angular/router'; -import { SearchProductComponent } from './search-product/search-product.component'; - -@NgModule({ - declarations: [ProductComponent, FiltersComponent, ProductPageComponent, ProductsPageComponent, SearchProductComponent], - imports: [CommonModule, ReactiveFormsModule, RouterModule] -}) -export class ProductsModule {} diff --git a/apps/angular-ecommerce/src/app/products/search-product/search-product.component.html b/apps/angular-ecommerce/src/app/products/search-product/search-product.component.html deleted file mode 100644 index 2b7e96d8..00000000 --- a/apps/angular-ecommerce/src/app/products/search-product/search-product.component.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
diff --git a/apps/angular-ecommerce/src/app/products/search-product/search-product.component.ts b/apps/angular-ecommerce/src/app/products/search-product/search-product.component.ts deleted file mode 100644 index 338b68b0..00000000 --- a/apps/angular-ecommerce/src/app/products/search-product/search-product.component.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; -import { FormControl } from '@angular/forms'; -import { ProductsService } from '../state/products.service'; -import { ProductsQuery } from '../state/products.query'; - -@Component({ - selector: 'app-search-product', - templateUrl: './search-product.component.html' -}) -export class SearchProductComponent implements OnInit { - searchControl = new FormControl(); - - constructor(private productsService: ProductsService, private productsQuery: ProductsQuery) {} - - ngOnInit() { - this.searchControl.patchValue(this.productsQuery.searchTerm); - - this.searchControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe(term => this.productsService.updateSearchTerm(term)); - } -} diff --git a/apps/angular-ecommerce/src/app/products/state/product.model.ts b/apps/angular-ecommerce/src/app/products/state/product.model.ts deleted file mode 100644 index e70888e8..00000000 --- a/apps/angular-ecommerce/src/app/products/state/product.model.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ID } from '@datorama/akita'; - -export type AdditionalData = { - price: number; - productAdjective: string; - productMaterial: string; - description: string; - department: string; - color: string; -}; - -export interface BaseProduct { - id: ID; - title: string; - image: string; -} - -export interface Product extends BaseProduct { - additionalData?: AdditionalData; -} diff --git a/apps/angular-ecommerce/src/app/products/state/products.query.ts b/apps/angular-ecommerce/src/app/products/state/products.query.ts deleted file mode 100644 index 961f2e00..00000000 --- a/apps/angular-ecommerce/src/app/products/state/products.query.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Injectable } from '@angular/core'; -import { filterNil, ID, QueryEntity } from '@datorama/akita'; -import { ProductsStore, ProductsState } from './products.store'; -import { Product } from './product.model'; -import { filter } from 'rxjs/operators'; - -@Injectable({ providedIn: 'root' }) -export class ProductsQuery extends QueryEntity { - selectFilters$ = this.select('filters'); - selectSearchTerm$ = this.select('searchTerm'); - - get filters() { - return this.getValue().filters; - } - - get searchTerm() { - return this.getValue().searchTerm; - } - - constructor(protected store: ProductsStore) { - super(store); - } - - hasProduct(id: ID) { - return this.hasEntity(id) && !!this.getEntity(id).additionalData; - } - - selectProduct(id: ID) { - return this.selectEntity(id).pipe( - filterNil, - filter(({ additionalData }) => !!additionalData) - ); - } -} diff --git a/apps/angular-ecommerce/src/app/products/state/products.service.ts b/apps/angular-ecommerce/src/app/products/state/products.service.ts deleted file mode 100644 index 24178a39..00000000 --- a/apps/angular-ecommerce/src/app/products/state/products.service.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { ProductsStore } from './products.store'; -import { BaseProduct, Product } from './product.model'; -import { tap } from 'rxjs/operators'; -import { API } from '../../api'; -import { ID } from '@datorama/akita'; - -@Injectable({ providedIn: 'root' }) -export class ProductsService { - constructor(private productsStore: ProductsStore, private http: HttpClient) {} - - getAll(term: string, filters) { - return this.http - .get(`${API}/products`, { params: { term, ...filters } }) - .pipe(tap((products) => this.productsStore.set(products))); - } - - getProduct(id: ID) { - return this.http.get(`${API}/product/${id}`).pipe(tap((product) => this.productsStore.upsert(id, product, (id, product) => ({ id, ...product })))); - } - - updateFilters(filters) { - this.productsStore.update({ filters }); - } - - invalidateCache() { - this.productsStore.setHasCache(false); - } - - updateSearchTerm(searchTerm: string) { - this.productsStore.update({ searchTerm }); - this.invalidateCache(); - } -} diff --git a/apps/angular-ecommerce/src/app/products/state/products.store.ts b/apps/angular-ecommerce/src/app/products/state/products.store.ts deleted file mode 100644 index 1935331f..00000000 --- a/apps/angular-ecommerce/src/app/products/state/products.store.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Injectable } from '@angular/core'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; -import { Product } from './product.model'; - -export interface ProductsState extends EntityState { - searchTerm: string; - filters: { - condition: string; - location: string; - deliveryOption: boolean; - }; -} - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'products' }) -export class ProductsStore extends EntityStore { - constructor() { - super({ - searchTerm: '', - filters: { - condition: null, - location: null, - deliveryOption: false - } - }); - } -} diff --git a/apps/angular-ecommerce/src/app/shell/nav/nav.component.css b/apps/angular-ecommerce/src/app/shell/nav/nav.component.css deleted file mode 100644 index 3dad0f7a..00000000 --- a/apps/angular-ecommerce/src/app/shell/nav/nav.component.css +++ /dev/null @@ -1,3 +0,0 @@ -.navbar-light { - background-color: #e3f2fd; -} diff --git a/apps/angular-ecommerce/src/app/shell/nav/nav.component.html b/apps/angular-ecommerce/src/app/shell/nav/nav.component.html deleted file mode 100644 index 6cdb6c03..00000000 --- a/apps/angular-ecommerce/src/app/shell/nav/nav.component.html +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/apps/angular-ecommerce/src/app/shell/nav/nav.component.ts b/apps/angular-ecommerce/src/app/shell/nav/nav.component.ts deleted file mode 100644 index 2d705b37..00000000 --- a/apps/angular-ecommerce/src/app/shell/nav/nav.component.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Component } from '@angular/core'; -import { AuthService } from '../../auth/state/auth.service'; -import { Router } from '@angular/router'; -import { CartQuery } from '../../cart/state/cart.query'; - -@Component({ - selector: 'app-nav', - templateUrl: './nav.component.html', - styleUrls: ['./nav.component.css'] -}) -export class NavComponent { - cartCount$ = this.cartQuery.selectCount(); - - constructor(private cartQuery: CartQuery, private router: Router, private authService: AuthService) {} - - logout() { - this.authService.logout(); - this.router.navigateByUrl('/'); - } -} diff --git a/apps/angular-ecommerce/src/app/shell/shell.module.ts b/apps/angular-ecommerce/src/app/shell/shell.module.ts deleted file mode 100644 index 76ff954d..00000000 --- a/apps/angular-ecommerce/src/app/shell/shell.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { NavComponent } from './nav/nav.component'; -import { RouterModule } from '@angular/router'; -import { IsLoggedInDirective } from '../auth/is-logged-in.directive'; - -@NgModule({ - declarations: [NavComponent, IsLoggedInDirective], - exports: [NavComponent, IsLoggedInDirective], - imports: [CommonModule, RouterModule] -}) -export class ShellModule {} diff --git a/apps/angular-ecommerce/src/assets/.gitkeep b/apps/angular-ecommerce/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-ecommerce/src/assets/akita.svg b/apps/angular-ecommerce/src/assets/akita.svg deleted file mode 100644 index 37727626..00000000 --- a/apps/angular-ecommerce/src/assets/akita.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - Group 21 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/angular-ecommerce/src/assets/cart.svg b/apps/angular-ecommerce/src/assets/cart.svg deleted file mode 100644 index 1d5aee44..00000000 --- a/apps/angular-ecommerce/src/assets/cart.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/angular-ecommerce/src/environments/environment.prod.ts b/apps/angular-ecommerce/src/environments/environment.prod.ts deleted file mode 100644 index 3612073b..00000000 --- a/apps/angular-ecommerce/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/apps/angular-ecommerce/src/environments/environment.ts b/apps/angular-ecommerce/src/environments/environment.ts deleted file mode 100644 index 7b4f817a..00000000 --- a/apps/angular-ecommerce/src/environments/environment.ts +++ /dev/null @@ -1,16 +0,0 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. - -export const environment = { - production: false -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/apps/angular-ecommerce/src/favicon.ico b/apps/angular-ecommerce/src/favicon.ico deleted file mode 100644 index 4380a260..00000000 Binary files a/apps/angular-ecommerce/src/favicon.ico and /dev/null differ diff --git a/apps/angular-ecommerce/src/index.html b/apps/angular-ecommerce/src/index.html deleted file mode 100644 index 69b582e1..00000000 --- a/apps/angular-ecommerce/src/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - AngularEcommerce - - - - - - - - - - diff --git a/apps/angular-ecommerce/src/main.ts b/apps/angular-ecommerce/src/main.ts deleted file mode 100644 index 2dc3529f..00000000 --- a/apps/angular-ecommerce/src/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; -import { persistState } from '@datorama/akita'; - -if (environment.production) { - enableProdMode(); -} - -persistState({ - include: ['auth.token', 'cart'], - key: 'AkitaProducts' -}); - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/apps/angular-ecommerce/src/polyfills.ts b/apps/angular-ecommerce/src/polyfills.ts deleted file mode 100644 index e49856ec..00000000 --- a/apps/angular-ecommerce/src/polyfills.ts +++ /dev/null @@ -1,62 +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/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/apps/angular-ecommerce/src/styles.scss b/apps/angular-ecommerce/src/styles.scss deleted file mode 100644 index a46bb4da..00000000 --- a/apps/angular-ecommerce/src/styles.scss +++ /dev/null @@ -1,4 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ -*:focus { - outline: none !important; -} diff --git a/apps/angular-ecommerce/src/test-setup.ts b/apps/angular-ecommerce/src/test-setup.ts deleted file mode 100644 index 8d88704e..00000000 --- a/apps/angular-ecommerce/src/test-setup.ts +++ /dev/null @@ -1 +0,0 @@ -import 'jest-preset-angular'; diff --git a/apps/angular-ecommerce/tsconfig.app.json b/apps/angular-ecommerce/tsconfig.app.json deleted file mode 100644 index e9fa6dfd..00000000 --- a/apps/angular-ecommerce/tsconfig.app.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": [] - }, - "files": ["src/main.ts", "src/polyfills.ts"] -} diff --git a/apps/angular-ecommerce/tsconfig.json b/apps/angular-ecommerce/tsconfig.json deleted file mode 100644 index 89375a39..00000000 --- a/apps/angular-ecommerce/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["node", "jest"] - } -} diff --git a/apps/angular-ecommerce/tsconfig.spec.json b/apps/angular-ecommerce/tsconfig.spec.json deleted file mode 100644 index cfff29a5..00000000 --- a/apps/angular-ecommerce/tsconfig.spec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "files": ["src/test-setup.ts"], - "include": ["**/*.spec.ts", "**/*.d.ts"] -} diff --git a/apps/angular-ecommerce/tslint.json b/apps/angular-ecommerce/tslint.json deleted file mode 100644 index 362e0dc6..00000000 --- a/apps/angular-ecommerce/tslint.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "app", "camelCase"], - "component-selector": [true, "element", "app", "kebab-case"] - }, - "linterOptions": { - "exclude": ["!**/*"] - } -} diff --git a/apps/angular-store-app-e2e/cypress.json b/apps/angular-store-app-e2e/cypress.json deleted file mode 100644 index 7c6402fc..00000000 --- a/apps/angular-store-app-e2e/cypress.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileServerFolder": ".", - "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, - "videosFolder": "../../dist/cypress/apps/angular-store-app-e2e/videos", - "screenshotsFolder": "../../dist/cypress/apps/angular-store-app-e2e/screenshots", - "chromeWebSecurity": false -} diff --git a/apps/angular-store-app-e2e/src/fixtures/example.json b/apps/angular-store-app-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed6..00000000 --- a/apps/angular-store-app-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/angular-store-app-e2e/src/integration/app.spec.ts b/apps/angular-store-app-e2e/src/integration/app.spec.ts deleted file mode 100644 index e979d200..00000000 --- a/apps/angular-store-app-e2e/src/integration/app.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('angular-store-app', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome to angular-store-app!'); - }); -}); diff --git a/apps/angular-store-app-e2e/src/plugins/index.js b/apps/angular-store-app-e2e/src/plugins/index.js deleted file mode 100644 index 9067e75a..00000000 --- a/apps/angular-store-app-e2e/src/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config - - // Preprocess Typescript file using Nx helper - on('file:preprocessor', preprocessTypescript(config)); -}; diff --git a/apps/angular-store-app-e2e/src/support/app.po.ts b/apps/angular-store-app-e2e/src/support/app.po.ts deleted file mode 100644 index 32934246..00000000 --- a/apps/angular-store-app-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/angular-store-app-e2e/src/support/commands.ts b/apps/angular-store-app-e2e/src/support/commands.ts deleted file mode 100644 index 61b3a3e3..00000000 --- a/apps/angular-store-app-e2e/src/support/commands.ts +++ /dev/null @@ -1,31 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/angular-store-app-e2e/src/support/index.ts b/apps/angular-store-app-e2e/src/support/index.ts deleted file mode 100644 index 3d469a6b..00000000 --- a/apps/angular-store-app-e2e/src/support/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/angular-store-app-e2e/tsconfig.e2e.json b/apps/angular-store-app-e2e/tsconfig.e2e.json deleted file mode 100644 index 824748ba..00000000 --- a/apps/angular-store-app-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc" - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/apps/angular-store-app-e2e/tsconfig.json b/apps/angular-store-app-e2e/tsconfig.json deleted file mode 100644 index d8d4ea3e..00000000 --- a/apps/angular-store-app-e2e/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["cypress", "node"] - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/apps/angular-store-app-e2e/tslint.json b/apps/angular-store-app-e2e/tslint.json deleted file mode 100644 index 467a90cd..00000000 --- a/apps/angular-store-app-e2e/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": {}, - "linterOptions": { - "exclude": [ - "!**/*" - ] - } -} diff --git a/apps/angular-store-app/src/app/app.module.ts b/apps/angular-store-app/src/app/app.module.ts index 2165b8a6..d376b9a8 100644 --- a/apps/angular-store-app/src/app/app.module.ts +++ b/apps/angular-store-app/src/app/app.module.ts @@ -14,6 +14,8 @@ import { AuthGuard } from './auth/auth.guard'; import { HttpMethod, NG_ENTITY_SERVICE_CONFIG, NgEntityServiceGlobalConfig } from '@datorama/akita-ng-entity-service'; import { AkitaNgRouterStoreModule } from '@datorama/akita-ng-router-store'; import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; +import { CartEffects } from './cart/state/cart.effects'; +import { AkitaNgEffectsModule } from '@datorama/akita-ng-effects'; @NgModule({ declarations: [AppComponent, NavComponent, ProductPageComponent], @@ -27,23 +29,24 @@ import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; CartModule, AuthModule, AkitaNgRouterStoreModule, - AkitaNgDevtools.forRoot() + AkitaNgDevtools.forRoot(), + AkitaNgEffectsModule.forRoot([CartEffects]), ], providers: [ AuthGuard, { provide: NG_ENTITY_SERVICE_CONFIG, - useFactory: function() { + useFactory: function () { return { baseUrl: 'https://jsonplaceholder.typicode.com', httpMethods: { - PUT: HttpMethod.PATCH - } + PUT: HttpMethod.PATCH, + }, } as NgEntityServiceGlobalConfig; }, - deps: [] - } + deps: [], + }, ], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) export class AppModule {} diff --git a/apps/angular-store-app/src/app/cart/cart.component.ts b/apps/angular-store-app/src/app/cart/cart.component.ts index 3e916316..068f1d95 100644 --- a/apps/angular-store-app/src/app/cart/cart.component.ts +++ b/apps/angular-store-app/src/app/cart/cart.component.ts @@ -1,9 +1,10 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { Product } from '../products/state/products.model'; -import { CartService } from './state/cart.service'; import { CartQuery } from './state/cart.query'; import { CartItem } from './state/cart.model'; +import { Actions } from '@datorama/akita-ng-effects'; +import { CartActions } from './state/cart.actions'; @Component({ selector: 'app-cart', @@ -13,15 +14,18 @@ import { CartItem } from './state/cart.model'; export class CartComponent implements OnInit { items$: Observable<(CartItem & Product)[]>; total$: Observable; + notify$: Observable; - constructor(private cartQuery: CartQuery, private cartService: CartService) {} + constructor(private cartQuery: CartQuery, private actions: Actions) { + } ngOnInit() { - this.items$ = this.cartQuery.selectItems$; - this.total$ = this.cartQuery.selectTotal$; + this.items$ = this.cartQuery.selectItems$; + this.total$ = this.cartQuery.selectTotal$; + this.notify$ = this.cartQuery.selectNotification$; } remove({ productId }: CartItem) { - this.cartService.remove(productId); + this.actions.dispatch(CartActions.removeItem({ productId })); } } diff --git a/apps/angular-store-app/src/app/cart/state/cart.actions.ts b/apps/angular-store-app/src/app/cart/state/cart.actions.ts new file mode 100644 index 00000000..65186edc --- /dev/null +++ b/apps/angular-store-app/src/app/cart/state/cart.actions.ts @@ -0,0 +1,11 @@ +import { createAction, props } from '@datorama/akita-ng-effects'; +import { ID } from '@datorama/akita'; + +export namespace CartActions { + export const removeItem = createAction('Remove Item', props<{ productId: ID }>()); + export const removeItemSuccess = createAction('Remove Item Success'); + + export const test = createAction('Testing Action'); +} +// alternatively +// export const removeItem = createAction("[Cart] Remove Item", payload<{productId: ID}>()) diff --git a/apps/angular-store-app/src/app/cart/state/cart.effects.ts b/apps/angular-store-app/src/app/cart/state/cart.effects.ts new file mode 100644 index 00000000..b935a011 --- /dev/null +++ b/apps/angular-store-app/src/app/cart/state/cart.effects.ts @@ -0,0 +1,32 @@ +import { Injectable } from '@angular/core'; +import { Actions, createEffect, Effect, ofType } from '@datorama/akita-ng-effects'; +import { CartActions } from './cart.actions'; +import { map, switchMap, tap } from 'rxjs/operators'; +import { CartStore } from './cart.store'; +import { timer } from 'rxjs'; + +@Injectable() +export class CartEffects { + constructor( + private actions$: Actions, + private cartStore: CartStore + ) { + } + + removeItem$ = createEffect(() => + this.actions$.pipe( + ofType(CartActions.removeItem), + tap(({ productId }) => this.cartStore.remove(productId)), + map(_ => CartActions.removeItemSuccess()) + ) + ); + + @Effect({ dispatch: false }) + removeItemSuccess = this.actions$.pipe( + ofType(CartActions.removeItemSuccess), + tap(_ => this.cartStore.notify(true)), + switchMap(state => timer(3000).pipe( + tap(_ => this.cartStore.notify(false)) + )) + ); +} diff --git a/apps/angular-store-app/src/app/cart/state/cart.query.ts b/apps/angular-store-app/src/app/cart/state/cart.query.ts index 2967f62a..3917cbb9 100644 --- a/apps/angular-store-app/src/app/cart/state/cart.query.ts +++ b/apps/angular-store-app/src/app/cart/state/cart.query.ts @@ -17,6 +17,8 @@ export class CartQuery extends QueryEntity { ); selectTotal$ = this.selectItems$.pipe(map(items => items.reduce((acc, item) => acc + item.total, 0))); + + selectNotification$ = this.select((state) => state.notify); } function joinItems([cartItems, products]) { diff --git a/apps/angular-store-app/src/app/cart/state/cart.store.ts b/apps/angular-store-app/src/app/cart/state/cart.store.ts index f5a99093..10874670 100644 --- a/apps/angular-store-app/src/app/cart/state/cart.store.ts +++ b/apps/angular-store-app/src/app/cart/state/cart.store.ts @@ -24,4 +24,8 @@ export class CartStore extends EntityStore { }; }); } + + notify(notify: boolean) { + this.update(state => ({ ...state, notify })); + } } diff --git a/apps/angular-store-app/src/app/contacts/contacts.module.ts b/apps/angular-store-app/src/app/contacts/contacts.module.ts index cae1dde9..7b0f4299 100644 --- a/apps/angular-store-app/src/app/contacts/contacts.module.ts +++ b/apps/angular-store-app/src/app/contacts/contacts.module.ts @@ -4,6 +4,8 @@ import { ContactsPageComponent } from './contacts-page/contacts-page.component'; import { RouterModule, Routes } from '@angular/router'; import { ContentLoaderModule } from '@netbasal/content-loader'; import { ReactiveFormsModule } from '@angular/forms'; +import { AkitaNgEffectsModule } from '@datorama/akita-ng-effects'; +import { ContactEffects } from './state/contact.effects'; const routes: Routes = [ { @@ -13,7 +15,14 @@ const routes: Routes = [ ]; @NgModule({ - imports: [CommonModule, ReactiveFormsModule, ContentLoaderModule, RouterModule.forChild(routes)], + imports: [ + CommonModule, + ReactiveFormsModule, + ContentLoaderModule, + RouterModule.forChild(routes), + AkitaNgEffectsModule.forFeature([ContactEffects]) + ], declarations: [ContactsPageComponent] }) -export class ContactsModule {} +export class ContactsModule { +} diff --git a/apps/angular-store-app/src/app/contacts/state/contact.effects.ts b/apps/angular-store-app/src/app/contacts/state/contact.effects.ts new file mode 100644 index 00000000..36c98b33 --- /dev/null +++ b/apps/angular-store-app/src/app/contacts/state/contact.effects.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@angular/core'; +import { Actions } from '@datorama/akita-ng-effects'; + +@Injectable() +export class ContactEffects { + constructor(private actions$: Actions) { + } +} diff --git a/apps/angular-store-app/src/app/forms-manager/forms-manager/forms-manager.component.ts b/apps/angular-store-app/src/app/forms-manager/forms-manager/forms-manager.component.ts index d6a75991..0a8dc1b3 100644 --- a/apps/angular-store-app/src/app/forms-manager/forms-manager/forms-manager.component.ts +++ b/apps/angular-store-app/src/app/forms-manager/forms-manager/forms-manager.component.ts @@ -1,12 +1,13 @@ import { Component, OnInit } from '@angular/core'; import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; -import { untilDestroyed } from 'ngx-take-until-destroy'; import { AkitaNgFormsManager, setValidators } from '@datorama/akita-ng-forms-manager'; +import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; +@UntilDestroy() @Component({ selector: 'app-forms-manager', templateUrl: './forms-manager.component.html', - styleUrls: ['./forms-manager.component.css'] + styleUrls: ['./forms-manager.component.css'], }) export class FormsManagerComponent implements OnInit { email: FormControl; @@ -20,14 +21,14 @@ export class FormsManagerComponent implements OnInit { ngOnInit() { this.email = new FormControl(null, Validators.email); - const createControl = value => new FormControl(value); + const createControl = (value) => new FormControl(value); this.arr = new FormArray([createControl('One')]); this.config = this.builder.group({ skills: this.builder.array([]), someBoolean: this.builder.control(false), - minAge: this.builder.control(null) + minAge: this.builder.control(null), }); this.group = new FormGroup({ @@ -40,22 +41,22 @@ export class FormsManagerComponent implements OnInit { prefix: new FormControl(), a: new FormGroup({ b: new FormControl(), - c: new FormControl() - }) - }) + c: new FormControl(), + }), + }), }); this.formsManager .selectValue('settings', 'minPrice') .pipe(untilDestroyed(this)) - .subscribe(minPrice => { + .subscribe((minPrice) => { setValidators(this.group.get('price'), Validators.min(minPrice)); }); - const createSkillControl = val => new FormControl(null, Validators.required); + const createSkillControl = (val) => new FormControl(null, Validators.required); this.settings = new FormGroup({ - minPrice: new FormControl(10) + minPrice: new FormControl(10), }); this.formsManager.upsert('settings', this.settings); @@ -63,7 +64,7 @@ export class FormsManagerComponent implements OnInit { this.formsManager .upsert('single', this.email) .upsert('config', this.config, { - arrControlFactory: { skills: createSkillControl } + arrControlFactory: { skills: createSkillControl }, }) .upsert('group', this.group) .upsert('array', this.arr, { arrControlFactory: createControl }); diff --git a/apps/angular-store-app/src/app/posts/posts.component.ts b/apps/angular-store-app/src/app/posts/posts.component.ts index 914839c0..d419ab88 100644 --- a/apps/angular-store-app/src/app/posts/posts.component.ts +++ b/apps/angular-store-app/src/app/posts/posts.component.ts @@ -1,43 +1,28 @@ import { Component, OnInit } from '@angular/core'; -import { PostsQuery, PostsService } from './state'; -import { - filterMethod, - NgEntityServiceNotifier, - NgEntityServiceLoader, - ofType -} from '@datorama/akita-ng-entity-service'; -import { untilDestroyed } from 'ngx-take-until-destroy'; +import { filterMethod, NgEntityServiceLoader, NgEntityServiceNotifier, ofType } from '@datorama/akita-ng-entity-service'; +import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; import { memo } from 'helpful-decorators'; +import { PostsQuery, PostsService } from './state'; +@UntilDestroy() @Component({ templateUrl: './posts.component.html', - styleUrls: ['./posts.css'] + styleUrls: ['./posts.css'], }) export class PostsComponent implements OnInit { posts$ = this.postsQuery.selectAll(); loaders = this.loader.loadersFor(); - constructor( - private postsQuery: PostsQuery, - private postsService: PostsService, - private loader: NgEntityServiceLoader, - private notifier: NgEntityServiceNotifier - ) {} + constructor(private postsQuery: PostsQuery, private postsService: PostsService, private loader: NgEntityServiceLoader, private notifier: NgEntityServiceNotifier) {} ngOnInit() { - this.notifier.action$ - .pipe( - ofType('success'), - filterMethod('DELETE'), - untilDestroyed(this) - ) - .subscribe(v => console.log(v)); + this.notifier.action$.pipe(ofType('success'), filterMethod('DELETE'), untilDestroyed(this)).subscribe((v) => console.log(v)); this.postsService .get({ - mapResponseFn: res => { + mapResponseFn: (res) => { return res; - } + }, }) .subscribe(); this.loaders.deleteEntity(3); @@ -58,7 +43,7 @@ export class PostsComponent implements OnInit { remove(id) { this.postsService .delete(id, { - successMsg: 'Deleted Successfully' + successMsg: 'Deleted Successfully', }) .subscribe(); } diff --git a/apps/angular-store-app/src/app/product-page/product-page.component.ts b/apps/angular-store-app/src/app/product-page/product-page.component.ts index beb318c4..491785f7 100644 --- a/apps/angular-store-app/src/app/product-page/product-page.component.ts +++ b/apps/angular-store-app/src/app/product-page/product-page.component.ts @@ -1,17 +1,18 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; import { filter, map, switchMap } from 'rxjs/operators'; -import { untilDestroyed } from 'ngx-take-until-destroy'; -import { ProductsService } from '../products/state/products.service'; import { ProductsQuery } from '../products/state/products.query'; +import { ProductsService } from '../products/state/products.service'; +@UntilDestroy() @Component({ template: ` -
+

{{ product.title }}

{{ product.description }}
- ` + `, }) export class ProductPageComponent implements OnInit, OnDestroy { product$ = this.productsQuery.selectEntity(this.productId); @@ -21,10 +22,10 @@ export class ProductPageComponent implements OnInit, OnDestroy { ngOnInit() { this.activatedRoute.paramMap .pipe( - map(params => params.get('id')), - filter(id => !this.productsQuery.hasEntity(id)), + map((params) => params.get('id')), + filter((id) => !this.productsQuery.hasEntity(id)), untilDestroyed(this), - switchMap(id => this.productsService.getProduct(id)) + switchMap((id) => this.productsService.getProduct(id)) ) .subscribe(); } diff --git a/apps/angular-store-app/src/app/todos-app/filter/todos-filters.component.ts b/apps/angular-store-app/src/app/todos-app/filter/todos-filters.component.ts index f63f5f17..7d962d90 100644 --- a/apps/angular-store-app/src/app/todos-app/filter/todos-filters.component.ts +++ b/apps/angular-store-app/src/app/todos-app/filter/todos-filters.component.ts @@ -1,18 +1,19 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; -import { TodoFilter, VISIBILITY_FILTER } from './filter.model'; import { FormControl } from '@angular/forms'; -import { untilDestroyed } from 'ngx-take-until-destroy'; +import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; +import { TodoFilter, VISIBILITY_FILTER } from './filter.model'; +@UntilDestroy() @Component({ selector: 'app-todos-filters', template: `
`, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) export class TodosFiltersComponent implements OnInit, OnDestroy { _active; @@ -33,7 +34,7 @@ export class TodosFiltersComponent implements OnInit, OnDestroy { ngOnInit() { this.control = new FormControl(this._active); - this.control.valueChanges.pipe(untilDestroyed(this)).subscribe(c => { + this.control.valueChanges.pipe(untilDestroyed(this)).subscribe((c) => { this.update.emit(c); }); } diff --git a/apps/angular-store-app/src/app/todos-app/todo/todo.component.ts b/apps/angular-store-app/src/app/todos-app/todo/todo.component.ts index 1b40aebb..239a15d4 100644 --- a/apps/angular-store-app/src/app/todos-app/todo/todo.component.ts +++ b/apps/angular-store-app/src/app/todos-app/todo/todo.component.ts @@ -1,13 +1,14 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; -import { Todo } from '../state/todo.model'; import { FormControl } from '@angular/forms'; -import { untilDestroyed } from 'ngx-take-until-destroy'; import { ID } from '@datorama/akita'; +import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; +import { Todo } from '../state/todo.model'; +@UntilDestroy() @Component({ selector: 'app-todo', templateUrl: './todo.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) export class TodoComponent implements OnInit, OnDestroy { @Input() diff --git a/apps/angular-twitter-like-e2e/cypress.json b/apps/angular-twitter-like-e2e/cypress.json deleted file mode 100644 index 15f0728a..00000000 --- a/apps/angular-twitter-like-e2e/cypress.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileServerFolder": ".", - "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, - "videosFolder": "../../dist/cypress/apps/angular-twitter-like-e2e/videos", - "screenshotsFolder": "../../dist/cypress/apps/angular-twitter-like-e2e/screenshots", - "chromeWebSecurity": false -} diff --git a/apps/angular-twitter-like-e2e/src/fixtures/example.json b/apps/angular-twitter-like-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed6..00000000 --- a/apps/angular-twitter-like-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/angular-twitter-like-e2e/src/integration/app.spec.ts b/apps/angular-twitter-like-e2e/src/integration/app.spec.ts deleted file mode 100644 index 463d1172..00000000 --- a/apps/angular-twitter-like-e2e/src/integration/app.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('angular-twitter-like', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome to angular-twitter-like!'); - }); -}); diff --git a/apps/angular-twitter-like-e2e/src/plugins/index.js b/apps/angular-twitter-like-e2e/src/plugins/index.js deleted file mode 100644 index 9067e75a..00000000 --- a/apps/angular-twitter-like-e2e/src/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config - - // Preprocess Typescript file using Nx helper - on('file:preprocessor', preprocessTypescript(config)); -}; diff --git a/apps/angular-twitter-like-e2e/src/support/app.po.ts b/apps/angular-twitter-like-e2e/src/support/app.po.ts deleted file mode 100644 index 32934246..00000000 --- a/apps/angular-twitter-like-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/angular-twitter-like-e2e/src/support/commands.ts b/apps/angular-twitter-like-e2e/src/support/commands.ts deleted file mode 100644 index 61b3a3e3..00000000 --- a/apps/angular-twitter-like-e2e/src/support/commands.ts +++ /dev/null @@ -1,31 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/angular-twitter-like-e2e/src/support/index.ts b/apps/angular-twitter-like-e2e/src/support/index.ts deleted file mode 100644 index 3d469a6b..00000000 --- a/apps/angular-twitter-like-e2e/src/support/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/angular-twitter-like-e2e/tsconfig.e2e.json b/apps/angular-twitter-like-e2e/tsconfig.e2e.json deleted file mode 100644 index 824748ba..00000000 --- a/apps/angular-twitter-like-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc" - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/apps/angular-twitter-like-e2e/tsconfig.json b/apps/angular-twitter-like-e2e/tsconfig.json deleted file mode 100644 index d8d4ea3e..00000000 --- a/apps/angular-twitter-like-e2e/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["cypress", "node"] - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/apps/angular-twitter-like-e2e/tslint.json b/apps/angular-twitter-like-e2e/tslint.json deleted file mode 100644 index 36892e47..00000000 --- a/apps/angular-twitter-like-e2e/tslint.json +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "../../tslint.json", "linterOptions": { "exclude": ["!**/*"] }, "rules": {} } diff --git a/apps/angular-twitter-like/README.md b/apps/angular-twitter-like/README.md deleted file mode 100644 index b8860c06..00000000 --- a/apps/angular-twitter-like/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Akita Twitter - -## Prerequisites - -`yarn global add @nrwl/cli` - -## Run - -Run the `nx` command from the repo root aka workspace root - -`nx serve angular-twitter-like` diff --git a/apps/angular-twitter-like/browserslist b/apps/angular-twitter-like/browserslist deleted file mode 100644 index 80848532..00000000 --- a/apps/angular-twitter-like/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/apps/angular-twitter-like/jest.config.js b/apps/angular-twitter-like/jest.config.js deleted file mode 100644 index 5af46a10..00000000 --- a/apps/angular-twitter-like/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - name: 'angular-twitter-like', - preset: '../../jest.config.js', - coverageDirectory: '../../coverage/apps/angular-twitter-like', - snapshotSerializers: [ - 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', - 'jest-preset-angular/build/AngularSnapshotSerializer.js', - 'jest-preset-angular/build/HTMLCommentSerializer.js' - ] -}; diff --git a/apps/angular-twitter-like/src/app/app-routing.module.ts b/apps/angular-twitter-like/src/app/app-routing.module.ts deleted file mode 100644 index 9bf56dc8..00000000 --- a/apps/angular-twitter-like/src/app/app-routing.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NotificationsComponent } from './notifications/notifications.component'; -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { TweetsComponent } from './tweets/tweets.component'; - -const routes: Routes = [ - { path: '', redirectTo: 'tweets', pathMatch: 'full' }, - { path: 'tweets', component: TweetsComponent }, - { path: 'notifications', component: NotificationsComponent } -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule {} diff --git a/apps/angular-twitter-like/src/app/app.component.html b/apps/angular-twitter-like/src/app/app.component.html deleted file mode 100644 index 74efab8d..00000000 --- a/apps/angular-twitter-like/src/app/app.component.html +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/apps/angular-twitter-like/src/app/app.component.ts b/apps/angular-twitter-like/src/app/app.component.ts deleted file mode 100644 index f45969e5..00000000 --- a/apps/angular-twitter-like/src/app/app.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html' -}) -export class AppComponent {} diff --git a/apps/angular-twitter-like/src/app/app.module.ts b/apps/angular-twitter-like/src/app/app.module.ts deleted file mode 100644 index a6c5a9b8..00000000 --- a/apps/angular-twitter-like/src/app/app.module.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; - -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { TweetsModule } from './tweets/tweets.module'; -import { NotificationsComponent } from './notifications/notifications.component'; -import { AkitaNgDevtools } from '@datorama/akita-ngdevtools'; - -@NgModule({ - declarations: [AppComponent, NotificationsComponent], - imports: [BrowserModule, AppRoutingModule, TweetsModule, AkitaNgDevtools.forRoot()], - bootstrap: [AppComponent] -}) -export class AppModule {} diff --git a/apps/angular-twitter-like/src/app/notifications/notifications.component.html b/apps/angular-twitter-like/src/app/notifications/notifications.component.html deleted file mode 100644 index 1b13ab67..00000000 --- a/apps/angular-twitter-like/src/app/notifications/notifications.component.html +++ /dev/null @@ -1,4 +0,0 @@ -
-

Notifications

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam blanditiis deserunt eum exercitationem, libero maxime mollitia qui. Aliquid dicta doloremque impedit molestiae molestias nam nostrum officiis sapiente temporibus unde. Beatae!

-
diff --git a/apps/angular-twitter-like/src/app/notifications/notifications.component.ts b/apps/angular-twitter-like/src/app/notifications/notifications.component.ts deleted file mode 100644 index dc89adb6..00000000 --- a/apps/angular-twitter-like/src/app/notifications/notifications.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-notifications', - templateUrl: './notifications.component.html' -}) -export class NotificationsComponent {} diff --git a/apps/angular-twitter-like/src/app/tweets/state/tweet.model.ts b/apps/angular-twitter-like/src/app/tweets/state/tweet.model.ts deleted file mode 100644 index 3ff659b3..00000000 --- a/apps/angular-twitter-like/src/app/tweets/state/tweet.model.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ID } from '@datorama/akita'; - -export type Tweet = { - id: ID; - username: string; - text: string; -}; diff --git a/apps/angular-twitter-like/src/app/tweets/state/tweets.query.ts b/apps/angular-twitter-like/src/app/tweets/state/tweets.query.ts deleted file mode 100644 index 07e5f201..00000000 --- a/apps/angular-twitter-like/src/app/tweets/state/tweets.query.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ID, QueryEntity } from '@datorama/akita'; -import { TweetsStore, TweetsState } from './tweets.store'; -import { Tweet } from './tweet.model'; -import { map } from 'rxjs/operators'; - -@Injectable({ providedIn: 'root' }) -export class TweetsQuery extends QueryEntity { - selectNewTweetsCount$ = this.select('unseenTweets').pipe(map(tweets => Object.keys(tweets).length)); - - constructor(protected store: TweetsStore) { - super(store); - } - - hasMore() { - return this.getValue().hasMore; - } - - getNextPage() { - return this.getValue().page; - } - - isUnseenTweet(id: ID) { - return this.getValue().unseenTweets.hasOwnProperty(id); - } -} diff --git a/apps/angular-twitter-like/src/app/tweets/state/tweets.service.ts b/apps/angular-twitter-like/src/app/tweets/state/tweets.service.ts deleted file mode 100644 index aaad34a2..00000000 --- a/apps/angular-twitter-like/src/app/tweets/state/tweets.service.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Injectable } from '@angular/core'; -import { TweetsStore } from './tweets.store'; -import { getTweets, newTweets } from '../tweets.data'; -import { tap } from 'rxjs/operators'; - -@Injectable({ providedIn: 'root' }) -export class TweetsService { - constructor(private tweetsStore: TweetsStore) {} - - get(page: number) { - this.tweetsStore.setLoading(true); - return getTweets({ page }).pipe(tap(res => this.updateTweets(res))); - } - - pollNewTweets() { - return newTweets().pipe( - tap(tweets => { - this.tweetsStore.add(tweets, { prepend: true }); - this.tweetsStore.update(state => ({ - unseenTweets: { - ...state.unseenTweets, - ...tweets.reduce((acc, t) => { - acc[t.id] = true; - return acc; - }, {}) - } - })); - }) - ); - } - - resetNewTweets() { - this.tweetsStore.update({ unseenTweets: {} }); - } - - private updateTweets(response) { - const nextPage = response.currentPage + 1; - this.tweetsStore.add(response.data); - this.tweetsStore.update({ hasMore: response.hasMore, page: nextPage }); - this.tweetsStore.setLoading(false); - } -} diff --git a/apps/angular-twitter-like/src/app/tweets/state/tweets.store.ts b/apps/angular-twitter-like/src/app/tweets/state/tweets.store.ts deleted file mode 100644 index 5abe8dce..00000000 --- a/apps/angular-twitter-like/src/app/tweets/state/tweets.store.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Injectable } from '@angular/core'; -import { EntityState, EntityStore, HashMap, StoreConfig } from '@datorama/akita'; -import { Tweet } from './tweet.model'; - -export interface TweetsState extends EntityState { - hasMore: boolean; - page: number; - unseenTweets: HashMap; -} - -const initialState: TweetsState = { - hasMore: true, - unseenTweets: {}, - page: 1 -}; - -@Injectable({ providedIn: 'root' }) -@StoreConfig({ name: 'tweets' }) -export class TweetsStore extends EntityStore { - constructor() { - super(initialState); - } -} diff --git a/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.css b/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.css deleted file mode 100644 index 134dddf3..00000000 --- a/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.css +++ /dev/null @@ -1,4 +0,0 @@ -:host { - margin-bottom: 1em; - display: block; -} diff --git a/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.ts b/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.ts deleted file mode 100644 index 932e4fc0..00000000 --- a/apps/angular-twitter-like/src/app/tweets/tweet/tweet.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component, Input } from '@angular/core'; -import { Tweet } from '../state/tweet.model'; - -@Component({ - selector: 'app-tweet', - template: ` -
-
-
{{ tweet.username }}
-

{{ tweet.text }}

-
-
- `, - styleUrls: ['./tweet.component.css'] -}) -export class TweetComponent { - @Input() tweet: Tweet; -} diff --git a/apps/angular-twitter-like/src/app/tweets/tweets.component.ts b/apps/angular-twitter-like/src/app/tweets/tweets.component.ts deleted file mode 100644 index e0ade95a..00000000 --- a/apps/angular-twitter-like/src/app/tweets/tweets.component.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { TweetsService } from './state/tweets.service'; -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { TweetsQuery } from './state/tweets.query'; -import { untilDestroyed } from 'ngx-take-until-destroy'; -import { ID } from '@datorama/akita'; - -@Component({ - template: ` -
-
-
See {{ newTweetsCount }} new Tweets
- - -
- -
- Fetching tweets... -
-
- ` -}) -export class TweetsComponent implements OnInit, OnDestroy { - tweets$ = this.tweetsQuery.selectAll(); - isLoading$ = this.tweetsQuery.selectLoading(); - newTweetsCount$ = this.tweetsQuery.selectNewTweetsCount$; - - constructor(private tweetsQuery: TweetsQuery, private tweetsService: TweetsService) {} - - ngOnInit() { - this.fetchTweets(); - this.tweetsService - .pollNewTweets() - .pipe(untilDestroyed(this)) - .subscribe({ - error() { - // show error - } - }); - } - - getMore() { - this.fetchTweets(); - } - - resetNewTweets() { - this.tweetsService.resetNewTweets(); - } - - ngOnDestroy() {} - - private fetchTweets() { - if (this.tweetsQuery.hasMore()) { - this.tweetsService.get(this.tweetsQuery.getNextPage()).subscribe({ - error() { - // show error - } - }); - } - } - - isUnseenTweet(id: ID) { - return this.tweetsQuery.isUnseenTweet(id); - } -} diff --git a/apps/angular-twitter-like/src/app/tweets/tweets.data.ts b/apps/angular-twitter-like/src/app/tweets/tweets.data.ts deleted file mode 100644 index ae9e1ba0..00000000 --- a/apps/angular-twitter-like/src/app/tweets/tweets.data.ts +++ /dev/null @@ -1,53 +0,0 @@ -import * as faker from 'faker'; -import { timer } from 'rxjs'; -import { map, mapTo } from 'rxjs/operators'; - -const count = 50; -const data = []; - -for (let i = 0; i < count; i++) { - data.push({ - id: faker.random.number(), - username: faker.name.findName(), - text: faker.lorem.sentence() - }); -} - -export function getData(params = { page: 1 }) { - const perPage = 10; - const offset = (params.page - 1) * perPage; - const paginatedItems = data.slice(offset, offset + perPage); - const hasMore = offset + perPage !== data.length; - - return { - currentPage: params.page, - hasMore, - perPage: perPage, - total: data.length, - lastPage: Math.ceil(data.length / perPage), - data: paginatedItems - }; -} - -export const newTweets = function() { - return timer(3000, 8000).pipe( - map(() => { - return [ - { - id: faker.random.number(), - username: faker.name.findName(), - text: faker.lorem.sentence() - }, - { - id: faker.random.number(), - username: faker.name.findName(), - text: faker.lorem.sentence() - } - ]; - }) - ); -}; - -export const getTweets = function(params?) { - return timer(500).pipe(mapTo(getData(params))); -}; diff --git a/apps/angular-twitter-like/src/app/tweets/tweets.module.ts b/apps/angular-twitter-like/src/app/tweets/tweets.module.ts deleted file mode 100644 index 8879daac..00000000 --- a/apps/angular-twitter-like/src/app/tweets/tweets.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { TweetsComponent } from './tweets.component'; -import { TweetComponent } from './tweet/tweet.component'; -import { InfiniteScrollModule } from 'ngx-infinite-scroll'; -import { RouterModule } from '@angular/router'; - -@NgModule({ - imports: [CommonModule, InfiniteScrollModule, RouterModule], - declarations: [TweetsComponent, TweetComponent] -}) -export class TweetsModule {} diff --git a/apps/angular-twitter-like/src/assets/.gitkeep b/apps/angular-twitter-like/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/angular-twitter-like/src/environments/environment.prod.ts b/apps/angular-twitter-like/src/environments/environment.prod.ts deleted file mode 100644 index 3612073b..00000000 --- a/apps/angular-twitter-like/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/apps/angular-twitter-like/src/environments/environment.ts b/apps/angular-twitter-like/src/environments/environment.ts deleted file mode 100644 index 7b4f817a..00000000 --- a/apps/angular-twitter-like/src/environments/environment.ts +++ /dev/null @@ -1,16 +0,0 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. - -export const environment = { - production: false -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/apps/angular-twitter-like/src/favicon.ico b/apps/angular-twitter-like/src/favicon.ico deleted file mode 100644 index 317ebcb2..00000000 Binary files a/apps/angular-twitter-like/src/favicon.ico and /dev/null differ diff --git a/apps/angular-twitter-like/src/index.html b/apps/angular-twitter-like/src/index.html deleted file mode 100644 index 6c87f541..00000000 --- a/apps/angular-twitter-like/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - AngularTwitterLike - - - - - - - - - diff --git a/apps/angular-twitter-like/src/main.ts b/apps/angular-twitter-like/src/main.ts deleted file mode 100644 index fa4e0aef..00000000 --- a/apps/angular-twitter-like/src/main.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/apps/angular-twitter-like/src/polyfills.ts b/apps/angular-twitter-like/src/polyfills.ts deleted file mode 100644 index e49856ec..00000000 --- a/apps/angular-twitter-like/src/polyfills.ts +++ /dev/null @@ -1,62 +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/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/apps/angular-twitter-like/src/styles.css b/apps/angular-twitter-like/src/styles.css deleted file mode 100644 index c1cc2b65..00000000 --- a/apps/angular-twitter-like/src/styles.css +++ /dev/null @@ -1,24 +0,0 @@ -.container { - margin: 5em auto; -} - -.navbar-fixed-top { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - top: 0; - border-width: 0 0 1px; -} - -.collapse:not(.show) { - display: block !important; -} - -.pointer { - cursor: pointer; -} - -.hidden { - display: none !important; -} diff --git a/apps/angular-twitter-like/src/test-setup.ts b/apps/angular-twitter-like/src/test-setup.ts deleted file mode 100644 index 8d88704e..00000000 --- a/apps/angular-twitter-like/src/test-setup.ts +++ /dev/null @@ -1 +0,0 @@ -import 'jest-preset-angular'; diff --git a/apps/angular-twitter-like/tsconfig.app.json b/apps/angular-twitter-like/tsconfig.app.json deleted file mode 100644 index e9fa6dfd..00000000 --- a/apps/angular-twitter-like/tsconfig.app.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": [] - }, - "files": ["src/main.ts", "src/polyfills.ts"] -} diff --git a/apps/angular-twitter-like/tsconfig.json b/apps/angular-twitter-like/tsconfig.json deleted file mode 100644 index 89375a39..00000000 --- a/apps/angular-twitter-like/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["node", "jest"] - } -} diff --git a/apps/angular-twitter-like/tsconfig.spec.json b/apps/angular-twitter-like/tsconfig.spec.json deleted file mode 100644 index cfff29a5..00000000 --- a/apps/angular-twitter-like/tsconfig.spec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "files": ["src/test-setup.ts"], - "include": ["**/*.spec.ts", "**/*.d.ts"] -} diff --git a/apps/angular-twitter-like/tslint.json b/apps/angular-twitter-like/tslint.json deleted file mode 100644 index 362e0dc6..00000000 --- a/apps/angular-twitter-like/tslint.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "app", "camelCase"], - "component-selector": [true, "element", "app", "kebab-case"] - }, - "linterOptions": { - "exclude": ["!**/*"] - } -} diff --git a/apps/react-akita-app-e2e/.eslintrc b/apps/react-akita-app-e2e/.eslintrc deleted file mode 100644 index fc12bddb..00000000 --- a/apps/react-akita-app-e2e/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": ["../../.eslintrc", "plugin:cypress/recommended"], - "rules": {}, - "ignorePatterns": ["!**/*"] -} diff --git a/apps/react-akita-app-e2e/cypress.json b/apps/react-akita-app-e2e/cypress.json deleted file mode 100644 index f559c5a4..00000000 --- a/apps/react-akita-app-e2e/cypress.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileServerFolder": ".", - "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, - "videosFolder": "../../dist/cypress/apps/react-akita-app-e2e/videos", - "screenshotsFolder": "../../dist/cypress/apps/react-akita-app-e2e/screenshots", - "chromeWebSecurity": false -} diff --git a/apps/react-akita-app-e2e/src/fixtures/example.json b/apps/react-akita-app-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed6..00000000 --- a/apps/react-akita-app-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/react-akita-app-e2e/src/integration/app.spec.ts b/apps/react-akita-app-e2e/src/integration/app.spec.ts deleted file mode 100644 index 5c921581..00000000 --- a/apps/react-akita-app-e2e/src/integration/app.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('react-akita-app', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome to react-akita-app!'); - }); -}); diff --git a/apps/react-akita-app-e2e/src/plugins/index.js b/apps/react-akita-app-e2e/src/plugins/index.js deleted file mode 100644 index 9067e75a..00000000 --- a/apps/react-akita-app-e2e/src/plugins/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config - - // Preprocess Typescript file using Nx helper - on('file:preprocessor', preprocessTypescript(config)); -}; diff --git a/apps/react-akita-app-e2e/src/support/app.po.ts b/apps/react-akita-app-e2e/src/support/app.po.ts deleted file mode 100644 index 32934246..00000000 --- a/apps/react-akita-app-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/react-akita-app-e2e/src/support/commands.ts b/apps/react-akita-app-e2e/src/support/commands.ts deleted file mode 100644 index 61b3a3e3..00000000 --- a/apps/react-akita-app-e2e/src/support/commands.ts +++ /dev/null @@ -1,31 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/react-akita-app-e2e/src/support/index.ts b/apps/react-akita-app-e2e/src/support/index.ts deleted file mode 100644 index 3d469a6b..00000000 --- a/apps/react-akita-app-e2e/src/support/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/react-akita-app-e2e/tsconfig.e2e.json b/apps/react-akita-app-e2e/tsconfig.e2e.json deleted file mode 100644 index 824748ba..00000000 --- a/apps/react-akita-app-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc" - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/apps/react-akita-app-e2e/tsconfig.json b/apps/react-akita-app-e2e/tsconfig.json deleted file mode 100644 index d8d4ea3e..00000000 --- a/apps/react-akita-app-e2e/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "types": ["cypress", "node"] - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/apps/react-akita-app/.babelrc b/apps/react-akita-app/.babelrc deleted file mode 100644 index 09d67939..00000000 --- a/apps/react-akita-app/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["@nrwl/react/babel"], - "plugins": [] -} diff --git a/apps/react-akita-app/.browserslistrc b/apps/react-akita-app/.browserslistrc deleted file mode 100644 index 46a100ae..00000000 --- a/apps/react-akita-app/.browserslistrc +++ /dev/null @@ -1,14 +0,0 @@ -# This file is used by: -# 1. autoprefixer to adjust CSS to support the below specified browsers -# 2. babel preset-env to adjust included polyfills -# -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries -# -# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 diff --git a/apps/react-akita-app/.eslintrc b/apps/react-akita-app/.eslintrc deleted file mode 100644 index 102a02d9..00000000 --- a/apps/react-akita-app/.eslintrc +++ /dev/null @@ -1,205 +0,0 @@ -{ - "env": { "browser": true, "commonjs": true, "es6": true, "jest": true, "node": true }, - "settings": { "react": { "version": "detect" } }, - "plugins": ["import", "jsx-a11y", "react", "react-hooks"], - "rules": { - "array-callback-return": "warn", - "dot-location": ["warn", "property"], - "eqeqeq": ["warn", "smart"], - "new-parens": "warn", - "no-caller": "warn", - "no-cond-assign": ["warn", "except-parens"], - "no-const-assign": "warn", - "no-control-regex": "warn", - "no-delete-var": "warn", - "no-dupe-args": "warn", - "no-dupe-keys": "warn", - "no-duplicate-case": "warn", - "no-empty-character-class": "warn", - "no-empty-pattern": "warn", - "no-eval": "warn", - "no-ex-assign": "warn", - "no-extend-native": "warn", - "no-extra-bind": "warn", - "no-extra-label": "warn", - "no-fallthrough": "warn", - "no-func-assign": "warn", - "no-implied-eval": "warn", - "no-invalid-regexp": "warn", - "no-iterator": "warn", - "no-label-var": "warn", - "no-labels": ["warn", { "allowLoop": true, "allowSwitch": false }], - "no-lone-blocks": "warn", - "no-loop-func": "warn", - "no-mixed-operators": [ - "warn", - { - "groups": [ - ["&", "|", "^", "~", "<<", ">>", ">>>"], - ["==", "!=", "===", "!==", ">", ">=", "<", "<="], - ["&&", "||"], - ["in", "instanceof"] - ], - "allowSamePrecedence": false - } - ], - "no-multi-str": "warn", - "no-native-reassign": "warn", - "no-negated-in-lhs": "warn", - "no-new-func": "warn", - "no-new-object": "warn", - "no-new-symbol": "warn", - "no-new-wrappers": "warn", - "no-obj-calls": "warn", - "no-octal": "warn", - "no-octal-escape": "warn", - "no-redeclare": "warn", - "no-regex-spaces": "warn", - "no-restricted-syntax": ["warn", "WithStatement"], - "no-script-url": "warn", - "no-self-assign": "warn", - "no-self-compare": "warn", - "no-sequences": "warn", - "no-shadow-restricted-names": "warn", - "no-sparse-arrays": "warn", - "no-template-curly-in-string": "warn", - "no-this-before-super": "warn", - "no-throw-literal": "warn", - "no-restricted-globals": [ - "error", - "addEventListener", - "blur", - "close", - "closed", - "confirm", - "defaultStatus", - "defaultstatus", - "event", - "external", - "find", - "focus", - "frameElement", - "frames", - "history", - "innerHeight", - "innerWidth", - "length", - "location", - "locationbar", - "menubar", - "moveBy", - "moveTo", - "name", - "onblur", - "onerror", - "onfocus", - "onload", - "onresize", - "onunload", - "open", - "opener", - "opera", - "outerHeight", - "outerWidth", - "pageXOffset", - "pageYOffset", - "parent", - "print", - "removeEventListener", - "resizeBy", - "resizeTo", - "screen", - "screenLeft", - "screenTop", - "screenX", - "screenY", - "scroll", - "scrollbars", - "scrollBy", - "scrollTo", - "scrollX", - "scrollY", - "self", - "status", - "statusbar", - "stop", - "toolbar", - "top" - ], - "no-unexpected-multiline": "warn", - "no-unreachable": "warn", - "no-unused-expressions": ["error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }], - "no-unused-labels": "warn", - "no-useless-computed-key": "warn", - "no-useless-concat": "warn", - "no-useless-escape": "warn", - "no-useless-rename": ["warn", { "ignoreDestructuring": false, "ignoreImport": false, "ignoreExport": false }], - "no-with": "warn", - "no-whitespace-before-property": "warn", - "react-hooks/exhaustive-deps": "warn", - "require-yield": "warn", - "rest-spread-spacing": ["warn", "never"], - "strict": ["warn", "never"], - "unicode-bom": ["warn", "never"], - "use-isnan": "warn", - "valid-typeof": "warn", - "no-restricted-properties": [ - "error", - { "object": "require", "property": "ensure", "message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting" }, - { "object": "System", "property": "import", "message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting" } - ], - "getter-return": "warn", - "import/first": "error", - "import/no-amd": "error", - "import/no-webpack-loader-syntax": "error", - "react/forbid-foreign-prop-types": ["warn", { "allowInPropTypes": true }], - "react/jsx-no-comment-textnodes": "warn", - "react/jsx-no-duplicate-props": "warn", - "react/jsx-no-target-blank": "warn", - "react/jsx-no-undef": "error", - "react/jsx-pascal-case": ["warn", { "allowAllCaps": true, "ignore": [] }], - "react/jsx-uses-react": "warn", - "react/jsx-uses-vars": "warn", - "react/no-danger-with-children": "warn", - "react/no-direct-mutation-state": "warn", - "react/no-is-mounted": "warn", - "react/no-typos": "error", - "react/react-in-jsx-scope": "error", - "react/require-render-return": "error", - "react/style-prop-object": "warn", - "jsx-a11y/accessible-emoji": "warn", - "jsx-a11y/alt-text": "warn", - "jsx-a11y/anchor-has-content": "warn", - "jsx-a11y/anchor-is-valid": ["warn", { "aspects": ["noHref", "invalidHref"] }], - "jsx-a11y/aria-activedescendant-has-tabindex": "warn", - "jsx-a11y/aria-props": "warn", - "jsx-a11y/aria-proptypes": "warn", - "jsx-a11y/aria-role": "warn", - "jsx-a11y/aria-unsupported-elements": "warn", - "jsx-a11y/heading-has-content": "warn", - "jsx-a11y/iframe-has-title": "warn", - "jsx-a11y/img-redundant-alt": "warn", - "jsx-a11y/no-access-key": "warn", - "jsx-a11y/no-distracting-elements": "warn", - "jsx-a11y/no-redundant-roles": "warn", - "jsx-a11y/role-has-required-aria-props": "warn", - "jsx-a11y/role-supports-aria-props": "warn", - "jsx-a11y/scope": "warn", - "react-hooks/rules-of-hooks": "error", - "default-case": "off", - "no-dupe-class-members": "off", - "no-undef": "off", - "@typescript-eslint/consistent-type-assertions": "warn", - "no-array-constructor": "off", - "@typescript-eslint/no-array-constructor": "warn", - "@typescript-eslint/no-namespace": "error", - "no-use-before-define": "off", - "@typescript-eslint/no-use-before-define": ["warn", { "functions": false, "classes": false, "variables": false, "typedefs": false }], - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": ["warn", { "args": "none", "ignoreRestSiblings": true }], - "no-useless-constructor": "off", - "@typescript-eslint/no-useless-constructor": "warn" - }, - "extends": ["../../.eslintrc"], - "ignorePatterns": ["!**/*"] -} diff --git a/apps/react-akita-app/README.md b/apps/react-akita-app/README.md deleted file mode 100644 index c88defdb..00000000 --- a/apps/react-akita-app/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Akita React App - -## Prerequisites - -`yarn global add @nrwl/cli` - -## Run - -Run the `nx` command from the repo root aka workspace root - -`nx serve react-akita-app` diff --git a/apps/react-akita-app/jest.config.js b/apps/react-akita-app/jest.config.js deleted file mode 100644 index bf80257e..00000000 --- a/apps/react-akita-app/jest.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - name: 'react-akita-app', - preset: '../../jest.config.js', - transform: { - '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nrwl/react/plugins/jest', - '^.+\\.[tj]sx?$': 'ts-jest' - }, - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'], - coverageDirectory: '../../coverage/apps/react-akita-app' -}; diff --git a/apps/react-akita-app/src/app/app.css b/apps/react-akita-app/src/app/app.css deleted file mode 100644 index 37e43260..00000000 --- a/apps/react-akita-app/src/app/app.css +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Remove template code below - */ - -.app { - font-family: sans-serif; - min-width: 300px; - max-width: 600px; - margin: 50px auto; -} - -.app .gutter-left { - margin-left: 9px; -} - -.app .col-span-2 { - grid-column: span 2; -} - -.app .flex { - display: flex; - align-items: center; - justify-content: center; -} - -.app header { - background-color: #143055; - color: white; - padding: 5px; - border-radius: 3px; -} - -.app main { - padding: 0 36px; -} - -.app p { - text-align: center; -} - -.app h1 { - text-align: center; - margin-left: 18px; - font-size: 24px; -} - -.app h2 { - text-align: center; - font-size: 20px; - margin: 40px 0 10px 0; -} - -.app .resources { - text-align: center; - list-style: none; - padding: 0; - display: grid; - grid-gap: 9px; - grid-template-columns: 1fr 1fr; -} - -.app .resource { - color: #0094ba; - height: 36px; - background-color: rgba(0, 0, 0, 0); - border: 1px solid rgba(0, 0, 0, 0.12); - border-radius: 4px; - padding: 3px 9px; - text-decoration: none; -} - -.app .resource:hover { - background-color: rgba(68, 138, 255, 0.04); -} - -.app pre { - padding: 9px; - border-radius: 4px; - background-color: black; - color: #eee; -} - -.app details { - border-radius: 4px; - color: #333; - background-color: rgba(0, 0, 0, 0); - border: 1px solid rgba(0, 0, 0, 0.12); - padding: 3px 9px; - margin-bottom: 9px; -} - -.app summary { - outline: none; - height: 36px; - line-height: 36px; -} - -.app .github-star-container { - margin-top: 12px; - line-height: 20px; -} - -.app .github-star-container a { - display: flex; - align-items: center; - text-decoration: none; - color: #333; -} - -.app .github-star-badge { - color: #24292e; - display: flex; - align-items: center; - font-size: 12px; - padding: 3px 10px; - border: 1px solid rgba(27, 31, 35, 0.2); - border-radius: 3px; - background-image: linear-gradient(-180deg, #fafbfc, #eff3f6 90%); - margin-left: 4px; - font-weight: 600; -} - -.app .github-star-badge:hover { - background-image: linear-gradient(-180deg, #f0f3f6, #e6ebf1 90%); - border-color: rgba(27, 31, 35, 0.35); - background-position: -0.5em; -} -.app .github-star-badge .material-icons { - height: 16px; - width: 16px; - margin-right: 4px; -} diff --git a/apps/react-akita-app/src/app/app.spec.tsx b/apps/react-akita-app/src/app/app.spec.tsx deleted file mode 100644 index 47dfc58e..00000000 --- a/apps/react-akita-app/src/app/app.spec.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; - -import { BrowserRouter } from 'react-router-dom'; - -import App from './app'; - -describe('App', () => { - it('should render successfully', () => { - const { baseElement } = render( - - - - ); - - expect(baseElement).toBeTruthy(); - }); - - it('should have a greeting as the title', () => { - const { getByText } = render( - - - - ); - - expect(getByText('Welcome to react-akita-app!')).toBeTruthy(); - }); -}); diff --git a/apps/react-akita-app/src/app/app.tsx b/apps/react-akita-app/src/app/app.tsx deleted file mode 100644 index cbaaabb7..00000000 --- a/apps/react-akita-app/src/app/app.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; -import { BrowserRouter as Router, Route } from 'react-router-dom'; -import { akitaDevtools, persistState } from '@datorama/akita'; -import Loadable from 'react-loadable'; - -import './app.css'; -import { LoginPageComponent } from './session/LoginPage'; -import { ProtectedRoute } from './protected-route'; -import { NavWithRouter } from './nav'; -import { TodosPageComponent } from './todos/TodosPage'; - -akitaDevtools(); - -persistState({ - include: ['session.token'] -}); - -const Loading = () =>
Loading...
; - -const Home = Loadable({ - loader: () => import('./home-page'), - loading: Loading -}); - -const Books = Loadable({ - loader: () => import('./books/BooksPage'), - loading: Loading -}); - -const Users = Loadable({ - loader: () => import('./users/usersPage'), - loading: Loading -}); - -Books.preload(); -Users.preload(); - -export class App extends React.PureComponent { - render() { - return ( - - - - - - - - - - - ); - } -} - -export default App; diff --git a/apps/react-akita-app/src/app/books/Book.tsx b/apps/react-akita-app/src/app/books/Book.tsx deleted file mode 100644 index e16b20bb..00000000 --- a/apps/react-akita-app/src/app/books/Book.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { pure } from 'recompose'; -import { Book as BookModel } from './state'; - -export const Book = pure(({ title, price }: BookModel) => { - console.log('Book - rerender'); - return ( -
-

{title}

-

Price: {price}$

-
- ); -}); - -export const Books = pure(({ books }: { books: BookModel[] }) => { - console.log('Books - rerender'); - return books.map(book => ); -}); diff --git a/apps/react-akita-app/src/app/books/BooksPage.tsx b/apps/react-akita-app/src/app/books/BooksPage.tsx deleted file mode 100644 index 38ad35c6..00000000 --- a/apps/react-akita-app/src/app/books/BooksPage.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import { Book, booksQuery, booksService } from './state'; -import { untilDestroyed } from '../take-until'; -import { Books } from './Book'; - -export default class BooksPageComponent extends React.PureComponent { - state: { books: Book[]; loading: boolean } = { books: [], loading: true }; - - componentDidMount() { - booksQuery - .selectAll() - .pipe(untilDestroyed(this)) - .subscribe(books => this.setState({ books })); - - booksQuery - .selectLoading() - .pipe(untilDestroyed(this)) - .subscribe(loading => this.setState({ loading })); - - booksService.fetch(); - } - - render() { - const isLoading = this.state.loading; - let view; - if (isLoading) { - view =

Loading Books...

; - } else { - view = ; - } - - return {view}; - } -} diff --git a/apps/react-akita-app/src/app/books/state/book.model.ts b/apps/react-akita-app/src/app/books/state/book.model.ts deleted file mode 100644 index 134fdad3..00000000 --- a/apps/react-akita-app/src/app/books/state/book.model.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { guid, ID } from '@datorama/akita'; - -export interface Book { - id: ID; - title: string; - price: number; -} - -export function createBook(params: Partial) { - return { - id: guid(), - ...params - } as Book; -} diff --git a/apps/react-akita-app/src/app/books/state/books.query.ts b/apps/react-akita-app/src/app/books/state/books.query.ts deleted file mode 100644 index 3b8a3ed9..00000000 --- a/apps/react-akita-app/src/app/books/state/books.query.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { BooksStore, BooksState, booksStore } from './books.store'; -import { QueryEntity } from '@datorama/akita'; - -export class BooksQuery extends QueryEntity { - constructor(protected store: BooksStore) { - super(store); - } -} - -export const booksQuery = new BooksQuery(booksStore); diff --git a/apps/react-akita-app/src/app/books/state/books.service.ts b/apps/react-akita-app/src/app/books/state/books.service.ts deleted file mode 100644 index cb7722d4..00000000 --- a/apps/react-akita-app/src/app/books/state/books.service.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { BooksStore, booksStore } from './books.store'; -import { timer } from 'rxjs'; -import { createBook } from './book.model'; - -export class BooksService { - constructor(private booksStore: BooksStore) {} - - fetch() { - // simulate http request - timer(1000).subscribe(() => { - this.booksStore.set([createBook({ title: 'Book', price: 10 })]); - }); - } -} - -export const booksService = new BooksService(booksStore); diff --git a/apps/react-akita-app/src/app/books/state/books.store.ts b/apps/react-akita-app/src/app/books/state/books.store.ts deleted file mode 100644 index d56272c4..00000000 --- a/apps/react-akita-app/src/app/books/state/books.store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Book } from './book.model'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; - -export interface BooksState extends EntityState {} - -@StoreConfig({ name: 'books' }) -export class BooksStore extends EntityStore { - constructor() { - super(); - } -} - -export const booksStore = new BooksStore(); diff --git a/apps/react-akita-app/src/app/books/state/index.ts b/apps/react-akita-app/src/app/books/state/index.ts deleted file mode 100644 index fdfde236..00000000 --- a/apps/react-akita-app/src/app/books/state/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './books.query'; -export * from './books.store'; -export * from './books.service'; -export * from './book.model'; diff --git a/apps/react-akita-app/src/app/home-page.tsx b/apps/react-akita-app/src/app/home-page.tsx deleted file mode 100644 index e87c12ff..00000000 --- a/apps/react-akita-app/src/app/home-page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; - -export default () =>

Welcome to react-akita-app!

; diff --git a/apps/react-akita-app/src/app/logo.svg b/apps/react-akita-app/src/app/logo.svg deleted file mode 100644 index 8fa84ab5..00000000 --- a/apps/react-akita-app/src/app/logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/apps/react-akita-app/src/app/nav.tsx b/apps/react-akita-app/src/app/nav.tsx deleted file mode 100644 index 9a9d18b2..00000000 --- a/apps/react-akita-app/src/app/nav.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { IfLoggedIn } from './session/ifLoggedIn'; -import React from 'react'; -import { withRouter } from 'react-router'; -import { sessionService } from './session/state'; -import { Link } from 'react-router-dom'; - -class Nav extends React.Component { - logout = () => { - sessionService.logout(); - this.props.history.push('/'); - }; - - render() { - return ( -
-
    -
  • - Home -
  • - -
  • - Todos -
  • - -
  • - Users -
  • - - -
  • - Books -
  • -
    - - -
  • - -
  • -
    - - -
  • - Login -
  • -
    -
- -
-
- ); - } -} - -export const NavWithRouter = withRouter(Nav); diff --git a/apps/react-akita-app/src/app/protected-route.tsx b/apps/react-akita-app/src/app/protected-route.tsx deleted file mode 100644 index efca6498..00000000 --- a/apps/react-akita-app/src/app/protected-route.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { sessionQuery } from './session/state'; -import React from 'react'; -import { Route, Redirect } from 'react-router-dom'; - -// https://tylermcginnis.com/react-router-protected-routes-authentication/ -export const ProtectedRoute = ({ component: Component, ...rest }) => ( - - sessionQuery.isLoggedIn() === true ? ( - - ) : ( - - ) - } - /> -); diff --git a/apps/react-akita-app/src/app/session/LoginPage.tsx b/apps/react-akita-app/src/app/session/LoginPage.tsx deleted file mode 100644 index 3d0d05cc..00000000 --- a/apps/react-akita-app/src/app/session/LoginPage.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { sessionService } from './state'; - -export class LoginPageComponent extends React.PureComponent { - login = () => { - sessionService.login(); - this.props.history.push('/books'); - }; - - render() { - return ( -
- -
- ); - } -} diff --git a/apps/react-akita-app/src/app/session/ifLoggedIn.tsx b/apps/react-akita-app/src/app/session/ifLoggedIn.tsx deleted file mode 100644 index 9feb58d1..00000000 --- a/apps/react-akita-app/src/app/session/ifLoggedIn.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { sessionQuery } from './state'; -import { untilDestroyed } from '../take-until'; - -export class IfLoggedIn extends React.PureComponent { - state = { isLoggedIn: false }; - - constructor(props) { - super(props); - } - - componentDidMount() { - sessionQuery.selectIsLoggedIn$.pipe(untilDestroyed(this)).subscribe(isLoggedIn => this.setState({ isLoggedIn })); - } - - render() { - let view = null; - - if (this.props.show !== false && this.state.isLoggedIn === true) { - view = this.props.children; - } - - if (this.props.show === false && this.state.isLoggedIn === false) { - view = this.props.children; - } - - return {view}; - } -} diff --git a/apps/react-akita-app/src/app/session/state/index.ts b/apps/react-akita-app/src/app/session/state/index.ts deleted file mode 100644 index c091c531..00000000 --- a/apps/react-akita-app/src/app/session/state/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './session.query'; -export * from './session.store'; -export * from './session.service'; diff --git a/apps/react-akita-app/src/app/session/state/session.query.ts b/apps/react-akita-app/src/app/session/state/session.query.ts deleted file mode 100644 index 742e76a1..00000000 --- a/apps/react-akita-app/src/app/session/state/session.query.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SessionState, SessionStore, sessionStore } from './session.store'; -import { Query } from '@datorama/akita'; - -export class SessionQuery extends Query { - selectIsLoggedIn$ = this.select(state => !!state.token); - - constructor(protected store: SessionStore) { - super(store); - } - - isLoggedIn() { - return !!this.getValue().token; - } -} - -export const sessionQuery = new SessionQuery(sessionStore); diff --git a/apps/react-akita-app/src/app/session/state/session.service.ts b/apps/react-akita-app/src/app/session/state/session.service.ts deleted file mode 100644 index 063a9508..00000000 --- a/apps/react-akita-app/src/app/session/state/session.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { SessionStore, sessionStore } from './session.store'; - -export class SessionService { - constructor(private sessionStore: SessionStore) {} - - login() { - this.sessionStore.update({ token: 'JWT' }); - } - - logout() { - this.sessionStore.update({ token: null }); - } -} - -export const sessionService = new SessionService(sessionStore); diff --git a/apps/react-akita-app/src/app/session/state/session.store.ts b/apps/react-akita-app/src/app/session/state/session.store.ts deleted file mode 100644 index 5316a6ef..00000000 --- a/apps/react-akita-app/src/app/session/state/session.store.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Store, StoreConfig } from '@datorama/akita'; - -export interface SessionState { - token: string; -} - -export function createInitialState(): SessionState { - return { - token: '' - }; -} - -@StoreConfig({ name: 'session' }) -export class SessionStore extends Store { - constructor() { - super(createInitialState()); - } -} - -export const sessionStore = new SessionStore(); diff --git a/apps/react-akita-app/src/app/star.svg b/apps/react-akita-app/src/app/star.svg deleted file mode 100644 index 901053d3..00000000 --- a/apps/react-akita-app/src/app/star.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/apps/react-akita-app/src/app/take-until.ts b/apps/react-akita-app/src/app/take-until.ts deleted file mode 100644 index 737eeaef..00000000 --- a/apps/react-akita-app/src/app/take-until.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Observable, Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; - -export const untilDestroyed = (componentInstance, destroyMethodName = 'componentWillUnmount') => (source: Observable) => { - const originalDestroy = componentInstance[destroyMethodName]; - - if (!componentInstance['__takeUntilDestroy']) { - componentInstance['__takeUntilDestroy'] = new Subject(); - - componentInstance[destroyMethodName] = function() { - componentInstance['__takeUntilDestroy'].next(true); - componentInstance['__takeUntilDestroy'].complete(); - typeof originalDestroy === 'function' && originalDestroy.apply(this, arguments); - }; - } - - return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); -}; diff --git a/apps/react-akita-app/src/app/todos/AddTodo.tsx b/apps/react-akita-app/src/app/todos/AddTodo.tsx deleted file mode 100644 index a0055d1b..00000000 --- a/apps/react-akita-app/src/app/todos/AddTodo.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; - -export class AddTodo extends React.PureComponent { - render() { - let input; - console.log('AddTodo - render()'); - return ( -
-
{ - e.preventDefault(); - if (!input.value.trim()) { - return; - } - this.props.add(input.value); - input.value = ''; - }} - > - (input = node)} placeholder="Todo.." /> - -
-
- ); - } -} diff --git a/apps/react-akita-app/src/app/todos/Filters.tsx b/apps/react-akita-app/src/app/todos/Filters.tsx deleted file mode 100644 index 7904896a..00000000 --- a/apps/react-akita-app/src/app/todos/Filters.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; - -export class Filters extends React.PureComponent { - render() { - console.log('Filters - render()'); - - return ( -
- Show: - -
- ); - } -} diff --git a/apps/react-akita-app/src/app/todos/Todos.tsx b/apps/react-akita-app/src/app/todos/Todos.tsx deleted file mode 100644 index 7a6473a8..00000000 --- a/apps/react-akita-app/src/app/todos/Todos.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; - -export class Todo extends React.PureComponent { - toggleTodo = () => this.props.toggleTodo(this.props.id); - onDelete = () => this.props.onDelete(this.props.id); - - render() { - console.log(`Todo ${this.props.id} - render() `); - return ( -
  • - - {this.props.text} - - -
  • - ); - } -} - -export class TodoList extends React.PureComponent { - toggleTodo = id => this.props.toggleTodo(id); - onDelete = id => this.props.onDelete(id); - - render() { - console.log('TodoList - render()'); - return ( -
      - {this.props.todos.map(todo => ( - - ))} -
    - ); - } -} diff --git a/apps/react-akita-app/src/app/todos/TodosPage.tsx b/apps/react-akita-app/src/app/todos/TodosPage.tsx deleted file mode 100644 index c210a2d2..00000000 --- a/apps/react-akita-app/src/app/todos/TodosPage.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; -import { AddTodo } from './AddTodo'; -import { Filters } from './Filters'; -import { TodoList } from './Todos'; -import { untilDestroyed } from '../take-until'; -import { todosService } from './state/todos.service'; -import { todosQuery } from './state/todos.query'; -import { Todo } from './state/todo.model'; -import { ID } from '@datorama/akita'; - -export class TodosPageComponent extends React.PureComponent { - state: { todos: Todo[]; filter: string } = { todos: [], filter: '' }; - - constructor(props) { - super(props); - } - - add = (text: string) => todosService.add(text); - - toggleTodo = (id: ID) => todosService.complete(id); - - deleteTodo = (id: ID) => todosService.delete(id); - - changeFilter = ({ target: { value } }) => { - todosService.updateFilter(value); - }; - - componentDidMount() { - todosQuery.selectVisibleTodos$.pipe(untilDestroyed(this)).subscribe(todos => this.setState({ todos })); - - todosQuery.selectVisibilityFilter$.pipe(untilDestroyed(this)).subscribe(filter => this.setState({ filter })); - } - - render() { - return ( -
    - - - -
    - ); - } -} diff --git a/apps/react-akita-app/src/app/todos/state/todo.model.ts b/apps/react-akita-app/src/app/todos/state/todo.model.ts deleted file mode 100644 index ea26fb35..00000000 --- a/apps/react-akita-app/src/app/todos/state/todo.model.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { guid, ID } from '@datorama/akita'; - -export type Todo = { - id: ID; - text: string; - completed: boolean; -}; - -export function createTodo(text: string) { - return { - id: guid(), - text, - completed: false - } as Todo; -} - -export enum VISIBILITY_FILTER { - SHOW_COMPLETED = 'SHOW_COMPLETED', - SHOW_ACTIVE = 'SHOW_ACTIVE', - SHOW_ALL = 'SHOW_ALL' -} diff --git a/apps/react-akita-app/src/app/todos/state/todos.query.ts b/apps/react-akita-app/src/app/todos/state/todos.query.ts deleted file mode 100644 index d675be71..00000000 --- a/apps/react-akita-app/src/app/todos/state/todos.query.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { TodosState, todosStore, TodosStore } from './todos.store'; -import { Todo } from './todo.model'; -import { combineLatest } from 'rxjs'; -import { QueryEntity } from '@datorama/akita'; - -export class TodosQuery extends QueryEntity { - selectVisibilityFilter$ = this.select(state => state.ui.filter); - - selectVisibleTodos$ = combineLatest(this.selectVisibilityFilter$, this.selectAll(), this.getVisibleTodos); - - constructor(protected store: TodosStore) { - super(store); - } - - private getVisibleTodos(filter: string, todos: Todo[]): Todo[] { - switch (filter) { - case 'SHOW_COMPLETED': - return todos.filter(t => t.completed); - case 'SHOW_ACTIVE': - return todos.filter(t => !t.completed); - default: - return todos; - } - } -} - -export const todosQuery = new TodosQuery(todosStore); diff --git a/apps/react-akita-app/src/app/todos/state/todos.service.ts b/apps/react-akita-app/src/app/todos/state/todos.service.ts deleted file mode 100644 index e4387379..00000000 --- a/apps/react-akita-app/src/app/todos/state/todos.service.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { TodosStore, todosStore } from './todos.store'; -import { createTodo, VISIBILITY_FILTER } from './todo.model'; -import { ID } from '@datorama/akita'; - -export class TodosService { - constructor(private todosStore: TodosStore) {} - - updateFilter(filter: VISIBILITY_FILTER) { - this.todosStore.update({ - ui: { - filter - } - }); - } - - complete(id: ID) { - todosStore.update(id, entity => ({ completed: !entity.completed })); - } - - add(text: string) { - const todo = createTodo(text); - this.todosStore.add(todo); - } - - delete(id: ID) { - this.todosStore.remove(id); - } -} - -export const todosService = new TodosService(todosStore); diff --git a/apps/react-akita-app/src/app/todos/state/todos.store.ts b/apps/react-akita-app/src/app/todos/state/todos.store.ts deleted file mode 100644 index d2f90037..00000000 --- a/apps/react-akita-app/src/app/todos/state/todos.store.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Todo, VISIBILITY_FILTER } from './todo.model'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; - -export interface TodosState extends EntityState { - ui: { - filter: VISIBILITY_FILTER; - }; -} - -const initialState = { - ui: { filter: VISIBILITY_FILTER.SHOW_ALL } -}; - -@StoreConfig({ name: 'todos' }) -export class TodosStore extends EntityStore { - constructor() { - super(initialState); - } -} - -export const todosStore = new TodosStore(); diff --git a/apps/react-akita-app/src/app/users/state/user.model.ts b/apps/react-akita-app/src/app/users/state/user.model.ts deleted file mode 100644 index 7e996cda..00000000 --- a/apps/react-akita-app/src/app/users/state/user.model.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ID } from '@datorama/akita'; - -export interface User { - id: ID; - username: string; - email: string; - avatar: string; -} diff --git a/apps/react-akita-app/src/app/users/state/users.query.ts b/apps/react-akita-app/src/app/users/state/users.query.ts deleted file mode 100644 index 1215d2e9..00000000 --- a/apps/react-akita-app/src/app/users/state/users.query.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { UsersStore, UsersState, usersStore } from './users.store'; -import { User } from './user.model'; -import { QueryEntity } from '@datorama/akita'; - -export class UsersQuery extends QueryEntity { - constructor(protected store: UsersStore) { - super(store); - } -} - -export const usersQuery = new UsersQuery(usersStore); diff --git a/apps/react-akita-app/src/app/users/state/users.service.ts b/apps/react-akita-app/src/app/users/state/users.service.ts deleted file mode 100644 index fb9fd572..00000000 --- a/apps/react-akita-app/src/app/users/state/users.service.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { UsersStore, usersStore } from './users.store'; -import { of } from 'rxjs'; -import data from '../users.data'; -import { User } from './user.model'; -import { ID } from '@datorama/akita'; - -export class UsersService { - constructor(private usersStore: UsersStore) {} - - get() { - of(data).subscribe(entities => { - this.usersStore.set(entities); - }); - } - - setActive(id: ID) { - this.usersStore.setActive(id); - } - - updateActive(user: User) { - this.usersStore.updateActive(user); - } -} - -export const usersService = new UsersService(usersStore); diff --git a/apps/react-akita-app/src/app/users/state/users.store.ts b/apps/react-akita-app/src/app/users/state/users.store.ts deleted file mode 100644 index 2bb0e280..00000000 --- a/apps/react-akita-app/src/app/users/state/users.store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { User } from './user.model'; -import { EntityState, EntityStore, StoreConfig } from '@datorama/akita'; - -export interface UsersState extends EntityState {} - -@StoreConfig({ name: 'users' }) -export class UsersStore extends EntityStore { - constructor() { - super(); - } -} - -export const usersStore = new UsersStore(); diff --git a/apps/react-akita-app/src/app/users/userInfo.tsx b/apps/react-akita-app/src/app/users/userInfo.tsx deleted file mode 100644 index 062e1c63..00000000 --- a/apps/react-akita-app/src/app/users/userInfo.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import * as React from 'react'; -import { User } from './state/user.model'; -import { ChangeEvent, FormEvent } from 'react'; - -interface Props { - active: User | null; - submit: Function; -} - -interface State { - active: User | null; -} - -/** - * In real-life you'll use form library - */ -export class UserInfo extends React.PureComponent { - state: { active: User | null } = { active: this.props.active }; - - handleChange = (event: ChangeEvent) => { - this.updateEmail(event.target.value); - }; - - componentWillReceiveProps({ active }: Props) { - if (active) { - this.updateEmail(active.email); - } - } - - updateEmail(email: string) { - this.setState({ - active: { - email - } - } as State); - } - - handleSubmit = (event: FormEvent) => { - event.preventDefault(); - this.props.submit({ email: this.state.active!.email }); - }; - - render() { - let view = null; - - if (this.state.active) { - const { email } = this.state.active; - - view = ( -
    -
    - - -
    -
    - ); - } - - return view; - } -} diff --git a/apps/react-akita-app/src/app/users/users.data.ts b/apps/react-akita-app/src/app/users/users.data.ts deleted file mode 100644 index bcaedef4..00000000 --- a/apps/react-akita-app/src/app/users/users.data.ts +++ /dev/null @@ -1,16 +0,0 @@ -import faker from 'faker'; -import { User } from './state/user.model'; - -const count = 10; -const data = []; - -for (let i = 0; i < count; i++) { - data.push({ - id: faker.random.number(), - username: faker.name.findName(), - email: faker.internet.email(), - avatar: faker.image.avatar() - }); -} - -export default data as User[]; diff --git a/apps/react-akita-app/src/app/users/usersList.tsx b/apps/react-akita-app/src/app/users/usersList.tsx deleted file mode 100644 index 56089473..00000000 --- a/apps/react-akita-app/src/app/users/usersList.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; -import { User as UserModel } from './state/user.model'; - -interface Props { - user: UserModel; - setActive: Function; -} - -export class User extends React.PureComponent { - render() { - console.log(`User ${this.props.user.username} - render()`); - const { avatar, username, email, id } = this.props.user; - - return ( -
  • - - {username} -

    {email}

    - - - edit - - -
  • - ); - } -} - -interface UsersProps { - users: User[]; - setActive: Function; -} - -export class Users extends React.PureComponent { - render() { - console.log('Users - render()'); - const users = this.props.users.map((user: any) => { - return ; - }); - - return
      {users}
    ; - } -} diff --git a/apps/react-akita-app/src/app/users/usersPage.tsx b/apps/react-akita-app/src/app/users/usersPage.tsx deleted file mode 100644 index 293ebe3d..00000000 --- a/apps/react-akita-app/src/app/users/usersPage.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import { Users } from './usersList'; -import { UserInfo } from './userInfo'; -import { User } from './state/user.model'; -import { usersService } from './state/users.service'; -import { usersQuery } from './state/users.query'; -import { ID } from '@datorama/akita'; - -interface Props {} - -interface State { - users: User[]; - active: User | null; -} - -export default class UsersPage extends React.PureComponent { - state = { users: [], active: null }; - - setActive = (id: ID) => usersService.setActive(id); - update = (newUser: User) => usersService.updateActive(newUser); - - componentDidMount() { - usersQuery.selectAll().subscribe(users => this.setState({ users })); - // @ts-ignore: TS thinks it's calling Observable.subscribe(next: null, error: null, complete: () => void) - usersQuery.selectActive().subscribe(active => this.setState({ active })); // TODO fix type error - usersService.get(); - } - - render() { - return ( -
    - - -
    - ); - } -} diff --git a/apps/react-akita-app/src/assets/.gitkeep b/apps/react-akita-app/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/react-akita-app/src/environments/environment.prod.ts b/apps/react-akita-app/src/environments/environment.prod.ts deleted file mode 100644 index 3612073b..00000000 --- a/apps/react-akita-app/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/apps/react-akita-app/src/environments/environment.ts b/apps/react-akita-app/src/environments/environment.ts deleted file mode 100644 index d9370e92..00000000 --- a/apps/react-akita-app/src/environments/environment.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// When building for production, this file is replaced with `environment.prod.ts`. - -export const environment = { - production: false -}; diff --git a/apps/react-akita-app/src/favicon.ico b/apps/react-akita-app/src/favicon.ico deleted file mode 100644 index a11777cc..00000000 Binary files a/apps/react-akita-app/src/favicon.ico and /dev/null differ diff --git a/apps/react-akita-app/src/index.html b/apps/react-akita-app/src/index.html deleted file mode 100644 index a4bd0dbf..00000000 --- a/apps/react-akita-app/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - ReactAkitaApp - - - - - - -
    - - diff --git a/apps/react-akita-app/src/main.tsx b/apps/react-akita-app/src/main.tsx deleted file mode 100644 index 0e962470..00000000 --- a/apps/react-akita-app/src/main.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -import { BrowserRouter } from 'react-router-dom'; - -import App from './app/app'; - -ReactDOM.render( - - - , - document.getElementById('root') -); diff --git a/apps/react-akita-app/src/polyfills.ts b/apps/react-akita-app/src/polyfills.ts deleted file mode 100644 index 2adf3d05..00000000 --- a/apps/react-akita-app/src/polyfills.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Polyfill stable language features. These imports will be optimized by `@babel/preset-env`. - * - * See: https://github.com/zloirock/core-js#babel - */ -import 'core-js/stable'; -import 'regenerator-runtime/runtime'; diff --git a/apps/react-akita-app/src/styles.css b/apps/react-akita-app/src/styles.css deleted file mode 100644 index 90d4ee00..00000000 --- a/apps/react-akita-app/src/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/apps/react-akita-app/tsconfig.app.json b/apps/react-akita-app/tsconfig.app.json deleted file mode 100644 index b898b6c5..00000000 --- a/apps/react-akita-app/tsconfig.app.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": [] - }, - "exclude": ["**/*.spec.ts", "**/*.spec.tsx"], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] -} diff --git a/apps/react-akita-app/tsconfig.json b/apps/react-akita-app/tsconfig.json deleted file mode 100644 index 740ff832..00000000 --- a/apps/react-akita-app/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "jsx": "react", - "allowJs": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "types": ["node", "jest"] - }, - "files": ["../../node_modules/@nrwl/react/typings/cssmodule.d.ts", "../../node_modules/@nrwl/react/typings/image.d.ts"], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] -} diff --git a/apps/react-akita-app/tsconfig.spec.json b/apps/react-akita-app/tsconfig.spec.json deleted file mode 100644 index 515f3c22..00000000 --- a/apps/react-akita-app/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js", "**/*.spec.jsx", "**/*.d.ts"] -} diff --git a/apps/svelte-todo/README.md b/apps/svelte-todo/README.md deleted file mode 100644 index c02b4bf8..00000000 --- a/apps/svelte-todo/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Akita Twitter - -## Prerequisites - -`yarn global add @nrwl/cli` - -## TODO - -Coming when Nx adds support for Svelte diff --git a/apps/svelte-todo/package.json b/apps/svelte-todo/package.json deleted file mode 100644 index 7d9cb55d..00000000 --- a/apps/svelte-todo/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "svelte-app", - "version": "1.0.0", - "scripts": { - "autobuild": "rollup -c -w", - "build": "rollup -c", - "dev": "run-p start:dev autobuild", - "start": "sirv public", - "start:dev": "sirv public --dev" - }, - "dependencies": { - "@datorama/akita": "^3.11.1", - "@datorama/akita-cli": "^4.0.0", - "axios": "^0.18.0", - "svelte-routing": "^1.1.0" - }, - "devDependencies": { - "npm-run-all": "^4.1.5", - "rollup": "^1.10.1", - "rollup-plugin-commonjs": "^9.3.4", - "rollup-plugin-livereload": "^1.0.0", - "rollup-plugin-node-resolve": "^4.2.3", - "rollup-plugin-svelte": "^5.0.3", - "rollup-plugin-terser": "^4.0.4", - "sirv-cli": "^0.4.0", - "svelte": "^3.0.0" - } -} diff --git a/apps/svelte-todo/public/bundle.css b/apps/svelte-todo/public/bundle.css deleted file mode 100644 index b32b7952..00000000 --- a/apps/svelte-todo/public/bundle.css +++ /dev/null @@ -1,4 +0,0 @@ -section.svelte-sog0wn{margin-top:20px} -li.svelte-1kjaqhi{display:flex;justify-content:space-between} - -/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/apps/svelte-todo/public/bundle.css.map b/apps/svelte-todo/public/bundle.css.map deleted file mode 100644 index fea24662..00000000 --- a/apps/svelte-todo/public/bundle.css.map +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": 3, - "file": "bundle.css", - "sources": [ - "../src/Todos.svelte", - "../src/Todo.svelte" - ], - "sourcesContent": [ - "\n\n\n\n\n\n
    \n

    Todos

    \n\n updateFilter(event.target.dataset.filterId)}/>\n\n addTodo(e.detail) }/>\n\n
      \n {#each $visibleTodos as todo, i (todo.id)}\n removeTodo(todo.id)}\n on:change={e => toggleCompleted(todo.id, e.target.checked)} />\n {/each}\n
    \n {$visibleTodos.length}\n
    \n", - "\n\n\n\n\n\n
  • \n
    \n \n {todo.title}\n
    \n\n \n
  • \n" - ], - "names": [], - "mappings": "AAwBE,OAAO,cAAC,CAAC,UAAU,CAAE,IAAI,CAAC;ACjB1B,EAAE,eAAC,CAAC,AACF,OAAO,CAAE,IAAI,CACb,eAAe,CAAE,aAAa,AAChC,CAAC" -} diff --git a/apps/svelte-todo/public/bundle.js b/apps/svelte-todo/public/bundle.js deleted file mode 100644 index 98538551..00000000 --- a/apps/svelte-todo/public/bundle.js +++ /dev/null @@ -1,12650 +0,0 @@ - -(function(l, i, v, e) { v = l.createElement(i); v.async = 1; v.src = '//' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; e = l.getElementsByTagName(i)[0]; e.parentNode.insertBefore(v, e)})(document, 'script'); -var app = (function () { - 'use strict'; - - function noop() {} - - function assign(tar, src) { - for (const k in src) tar[k] = src[k]; - return tar; - } - - function add_location(element, file, line, column, char) { - element.__svelte_meta = { - loc: { file, line, column, char } - }; - } - - function run(fn) { - return fn(); - } - - function blank_object() { - return Object.create(null); - } - - function run_all(fns) { - fns.forEach(run); - } - - function is_function(thing) { - return typeof thing === 'function'; - } - - function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); - } - - function not_equal(a, b) { - return a != a ? b == b : a !== b; - } - - function validate_store(store, name) { - if (!store || typeof store.subscribe !== 'function') { - throw new Error(`'${name}' is not a store with a 'subscribe' method`); - } - } - - function subscribe(component, store, callback) { - const unsub = store.subscribe(callback); - - component.$$.on_destroy.push(unsub.unsubscribe - ? () => unsub.unsubscribe() - : unsub); - } - - function create_slot(definition, ctx, fn) { - if (definition) { - const slot_ctx = get_slot_context(definition, ctx, fn); - return definition[0](slot_ctx); - } - } - - function get_slot_context(definition, ctx, fn) { - return definition[1] - ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {}))) - : ctx.$$scope.ctx; - } - - function get_slot_changes(definition, ctx, changed, fn) { - return definition[1] - ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {}))) - : ctx.$$scope.changed || {}; - } - - function append(target, node) { - target.appendChild(node); - } - - function insert(target, node, anchor) { - target.insertBefore(node, anchor || null); - } - - function detach(node) { - node.parentNode.removeChild(node); - } - - function destroy_each(iterations, detaching) { - for (let i = 0; i < iterations.length; i += 1) { - if (iterations[i]) iterations[i].d(detaching); - } - } - - function element(name) { - return document.createElement(name); - } - - function text(data) { - return document.createTextNode(data); - } - - function space() { - return text(' '); - } - - function empty() { - return text(''); - } - - function listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); - } - - function attr(node, attribute, value) { - if (value == null) node.removeAttribute(attribute); - else node.setAttribute(attribute, value); - } - - function set_attributes(node, attributes) { - for (const key in attributes) { - if (key === 'style') { - node.style.cssText = attributes[key]; - } else if (key in node) { - node[key] = attributes[key]; - } else { - attr(node, key, attributes[key]); - } - } - } - - function children(element) { - return Array.from(element.childNodes); - } - - function set_data(text, data) { - data = '' + data; - if (text.data !== data) text.data = data; - } - - function toggle_class(element, name, toggle) { - element.classList[toggle ? 'add' : 'remove'](name); - } - - function custom_event(type, detail) { - const e = document.createEvent('CustomEvent'); - e.initCustomEvent(type, false, false, detail); - return e; - } - - let current_component; - - function set_current_component(component) { - current_component = component; - } - - function get_current_component() { - if (!current_component) throw new Error(`Function called outside component initialization`); - return current_component; - } - - function onMount(fn) { - get_current_component().$$.on_mount.push(fn); - } - - function onDestroy(fn) { - get_current_component().$$.on_destroy.push(fn); - } - - function createEventDispatcher() { - const component = current_component; - - return (type, detail) => { - const callbacks = component.$$.callbacks[type]; - - if (callbacks) { - // TODO are there situations where events could be dispatched - // in a server (non-DOM) environment? - const event = custom_event(type, detail); - callbacks.slice().forEach(fn => { - fn.call(component, event); - }); - } - }; - } - - function setContext(key, context) { - get_current_component().$$.context.set(key, context); - } - - function getContext(key) { - return get_current_component().$$.context.get(key); - } - - // TODO figure out if we still want to support - // shorthand events, or if we want to implement - // a real bubbling mechanism - function bubble(component, event) { - const callbacks = component.$$.callbacks[event.type]; - - if (callbacks) { - callbacks.slice().forEach(fn => fn(event)); - } - } - - const dirty_components = []; - - const resolved_promise = Promise.resolve(); - let update_scheduled = false; - const binding_callbacks = []; - const render_callbacks = []; - const flush_callbacks = []; - - function schedule_update() { - if (!update_scheduled) { - update_scheduled = true; - resolved_promise.then(flush); - } - } - - function add_render_callback(fn) { - render_callbacks.push(fn); - } - - function flush() { - const seen_callbacks = new Set(); - - do { - // first, call beforeUpdate functions - // and update components - while (dirty_components.length) { - const component = dirty_components.shift(); - set_current_component(component); - update(component.$$); - } - - while (binding_callbacks.length) binding_callbacks.shift()(); - - // then, once components are updated, call - // afterUpdate functions. This may cause - // subsequent updates... - while (render_callbacks.length) { - const callback = render_callbacks.pop(); - if (!seen_callbacks.has(callback)) { - callback(); - - // ...so guard against infinite loops - seen_callbacks.add(callback); - } - } - } while (dirty_components.length); - - while (flush_callbacks.length) { - flush_callbacks.pop()(); - } - - update_scheduled = false; - } - - function update($$) { - if ($$.fragment) { - $$.update($$.dirty); - run_all($$.before_render); - $$.fragment.p($$.dirty, $$.ctx); - $$.dirty = null; - - $$.after_render.forEach(add_render_callback); - } - } - - let outros; - - function group_outros() { - outros = { - remaining: 0, - callbacks: [] - }; - } - - function check_outros() { - if (!outros.remaining) { - run_all(outros.callbacks); - } - } - - function on_outro(callback) { - outros.callbacks.push(callback); - } - - function destroy_block(block, lookup) { - block.d(1); - lookup.delete(block.key); - } - - function outro_and_destroy_block(block, lookup) { - on_outro(() => { - destroy_block(block, lookup); - }); - - block.o(1); - } - - function update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { - let o = old_blocks.length; - let n = list.length; - - let i = o; - const old_indexes = {}; - while (i--) old_indexes[old_blocks[i].key] = i; - - const new_blocks = []; - const new_lookup = new Map(); - const deltas = new Map(); - - i = n; - while (i--) { - const child_ctx = get_context(ctx, list, i); - const key = get_key(child_ctx); - let block = lookup.get(key); - - if (!block) { - block = create_each_block(key, child_ctx); - block.c(); - } else if (dynamic) { - block.p(changed, child_ctx); - } - - new_lookup.set(key, new_blocks[i] = block); - - if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); - } - - const will_move = new Set(); - const did_move = new Set(); - - function insert(block) { - if (block.i) block.i(1); - block.m(node, next); - lookup.set(block.key, block); - next = block.first; - n--; - } - - while (o && n) { - const new_block = new_blocks[n - 1]; - const old_block = old_blocks[o - 1]; - const new_key = new_block.key; - const old_key = old_block.key; - - if (new_block === old_block) { - // do nothing - next = new_block.first; - o--; - n--; - } - - else if (!new_lookup.has(old_key)) { - // remove old block - destroy(old_block, lookup); - o--; - } - - else if (!lookup.has(new_key) || will_move.has(new_key)) { - insert(new_block); - } - - else if (did_move.has(old_key)) { - o--; - - } else if (deltas.get(new_key) > deltas.get(old_key)) { - did_move.add(new_key); - insert(new_block); - - } else { - will_move.add(old_key); - o--; - } - } - - while (o--) { - const old_block = old_blocks[o]; - if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); - } - - while (n) insert(new_blocks[n - 1]); - - return new_blocks; - } - - function get_spread_update(levels, updates) { - const update = {}; - - const to_null_out = {}; - const accounted_for = { $$scope: 1 }; - - let i = levels.length; - while (i--) { - const o = levels[i]; - const n = updates[i]; - - if (n) { - for (const key in o) { - if (!(key in n)) to_null_out[key] = 1; - } - - for (const key in n) { - if (!accounted_for[key]) { - update[key] = n[key]; - accounted_for[key] = 1; - } - } - - levels[i] = n; - } else { - for (const key in o) { - accounted_for[key] = 1; - } - } - } - - for (const key in to_null_out) { - if (!(key in update)) update[key] = undefined; - } - - return update; - } - - function mount_component(component, target, anchor) { - const { fragment, on_mount, on_destroy, after_render } = component.$$; - - fragment.m(target, anchor); - - // onMount happens after the initial afterUpdate. Because - // afterUpdate callbacks happen in reverse order (inner first) - // we schedule onMount callbacks before afterUpdate callbacks - add_render_callback(() => { - const new_on_destroy = on_mount.map(run).filter(is_function); - if (on_destroy) { - on_destroy.push(...new_on_destroy); - } else { - // Edge case - component was destroyed immediately, - // most likely as a result of a binding initialising - run_all(new_on_destroy); - } - component.$$.on_mount = []; - }); - - after_render.forEach(add_render_callback); - } - - function destroy(component, detaching) { - if (component.$$) { - run_all(component.$$.on_destroy); - component.$$.fragment.d(detaching); - - // TODO null out other refs, including component.$$ (but need to - // preserve final state?) - component.$$.on_destroy = component.$$.fragment = null; - component.$$.ctx = {}; - } - } - - function make_dirty(component, key) { - if (!component.$$.dirty) { - dirty_components.push(component); - schedule_update(); - component.$$.dirty = {}; - } - component.$$.dirty[key] = true; - } - - function init(component, options, instance, create_fragment, not_equal$$1, prop_names) { - const parent_component = current_component; - set_current_component(component); - - const props = options.props || {}; - - const $$ = component.$$ = { - fragment: null, - ctx: null, - - // state - props: prop_names, - update: noop, - not_equal: not_equal$$1, - bound: blank_object(), - - // lifecycle - on_mount: [], - on_destroy: [], - before_render: [], - after_render: [], - context: new Map(parent_component ? parent_component.$$.context : []), - - // everything else - callbacks: blank_object(), - dirty: null - }; - - let ready = false; - - $$.ctx = instance - ? instance(component, props, (key, value) => { - if ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) { - if ($$.bound[key]) $$.bound[key](value); - if (ready) make_dirty(component, key); - } - }) - : props; - - $$.update(); - ready = true; - run_all($$.before_render); - $$.fragment = create_fragment($$.ctx); - - if (options.target) { - if (options.hydrate) { - $$.fragment.l(children(options.target)); - } else { - $$.fragment.c(); - } - - if (options.intro && component.$$.fragment.i) component.$$.fragment.i(); - mount_component(component, options.target, options.anchor); - flush(); - } - - set_current_component(parent_component); - } - - class SvelteComponent { - $destroy() { - destroy(this, true); - this.$destroy = noop; - } - - $on(type, callback) { - const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); - callbacks.push(callback); - - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) callbacks.splice(index, 1); - }; - } - - $set() { - // overridden by instance, if it has props - } - } - - class SvelteComponentDev extends SvelteComponent { - constructor(options) { - if (!options || (!options.target && !options.$$inline)) { - throw new Error(`'target' is a required option`); - } - - super(); - } - - $destroy() { - super.$destroy(); - this.$destroy = () => { - console.warn(`Component was already destroyed`); // eslint-disable-line no-console - }; - } - } - - function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; - } - - function writable(value, start = noop) { - let stop; - const subscribers = []; - - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (!stop) return; // not ready - subscribers.forEach(s => s[1]()); - subscribers.forEach(s => s[0](value)); - } - } - - function update(fn) { - set(fn(value)); - } - - function subscribe(run, invalidate = noop) { - const subscriber = [run, invalidate]; - subscribers.push(subscriber); - if (subscribers.length === 1) stop = start(set) || noop; - run(value); - - return () => { - const index = subscribers.indexOf(subscriber); - if (index !== -1) subscribers.splice(index, 1); - if (subscribers.length === 0) stop(); - }; - } - - return { set, update, subscribe }; - } - - function derived(stores, fn, initial_value) { - const single = !Array.isArray(stores); - if (single) stores = [stores]; - - const auto = fn.length < 2; - - return readable(initial_value, set => { - let inited = false; - const values = []; - - let pending = 0; - - const sync = () => { - if (pending) return; - const result = fn(single ? values[0] : values, set); - if (auto) set(result); - }; - - const unsubscribers = stores.map((store, i) => store.subscribe( - value => { - values[i] = value; - pending &= ~(1 << i); - if (inited) sync(); - }, - () => { - pending |= (1 << i); - }) - ); - - inited = true; - sync(); - - return function stop() { - run_all(unsubscribers); - }; - }); - } - - const LOCATION = {}; - const ROUTER = {}; - - /** - * Adapted from https://github.com/reach/router/blob/b60e6dd781d5d3a4bdaaf4de665649c0f6a7e78d/src/lib/history.js - * - * https://github.com/reach/router/blob/master/LICENSE - * */ - - function getLocation(source) { - return { - ...source.location, - state: source.history.state, - key: (source.history.state && source.history.state.key) || "initial" - }; - } - - function createHistory(source, options) { - const listeners = []; - let location = getLocation(source); - - return { - get location() { - return location; - }, - - listen(listener) { - listeners.push(listener); - - const popstateListener = () => { - location = getLocation(source); - listener({ location, action: "POP" }); - }; - - source.addEventListener("popstate", popstateListener); - - return () => { - source.removeEventListener("popstate", popstateListener); - - const index = listeners.indexOf(listener); - listeners.splice(index, 1); - }; - }, - - navigate(to, { state, replace = false } = {}) { - state = { ...state, key: Date.now() + "" }; - // try...catch iOS Safari limits to 100 pushState calls - try { - if (replace) { - source.history.replaceState(state, null, to); - } else { - source.history.pushState(state, null, to); - } - } catch (e) { - source.location[replace ? "replace" : "assign"](to); - } - - location = getLocation(source); - listeners.forEach(listener => listener({ location, action: "PUSH" })); - } - }; - } - - // Stores history entries in memory for testing or other platforms like Native - function createMemorySource(initialPathname = "/") { - let index = 0; - const stack = [{ pathname: initialPathname, search: "" }]; - const states = []; - - return { - get location() { - return stack[index]; - }, - addEventListener(name, fn) {}, - removeEventListener(name, fn) {}, - history: { - get entries() { - return stack; - }, - get index() { - return index; - }, - get state() { - return states[index]; - }, - pushState(state, _, uri) { - const [pathname, search = ""] = uri.split("?"); - index++; - stack.push({ pathname, search }); - states.push(state); - }, - replaceState(state, _, uri) { - const [pathname, search = ""] = uri.split("?"); - stack[index] = { pathname, search }; - states[index] = state; - } - } - }; - } - - // Global history uses window.history as the source if available, - // otherwise a memory history - const canUseDOM = Boolean( - typeof window !== "undefined" && - window.document && - window.document.createElement - ); - const globalHistory = createHistory(canUseDOM ? window : createMemorySource()); - const { navigate } = globalHistory; - - /** - * Adapted from https://github.com/reach/router/blob/b60e6dd781d5d3a4bdaaf4de665649c0f6a7e78d/src/lib/utils.js - * - * https://github.com/reach/router/blob/master/LICENSE - * */ - - const paramRe = /^:(.+)/; - - const SEGMENT_POINTS = 4; - const STATIC_POINTS = 3; - const DYNAMIC_POINTS = 2; - const SPLAT_PENALTY = 1; - const ROOT_POINTS = 1; - - /** - * Check if `string` starts with `search` - * @param {string} string - * @param {string} search - * @return {boolean} - */ - function startsWith(string, search) { - return string.substr(0, search.length) === search; - } - - /** - * Check if `segment` is a root segment - * @param {string} segment - * @return {boolean} - */ - function isRootSegment(segment) { - return segment === ""; - } - - /** - * Check if `segment` is a dynamic segment - * @param {string} segment - * @return {boolean} - */ - function isDynamic(segment) { - return paramRe.test(segment); - } - - /** - * Check if `segment` is a splat - * @param {string} segment - * @return {boolean} - */ - function isSplat(segment) { - return segment[0] === "*"; - } - - /** - * Split up the URI into segments delimited by `/` - * @param {string} uri - * @return {string[]} - */ - function segmentize(uri) { - return ( - uri - // Strip starting/ending `/` - .replace(/(^\/+|\/+$)/g, "") - .split("/") - ); - } - - /** - * Strip `str` of potential start and end `/` - * @param {string} str - * @return {string} - */ - function stripSlashes(str) { - return str.replace(/(^\/+|\/+$)/g, ""); - } - - /** - * Score a route depending on how its individual segments look - * @param {object} route - * @param {number} index - * @return {object} - */ - function rankRoute(route, index) { - const score = route.default - ? 0 - : segmentize(route.path).reduce((score, segment) => { - score += SEGMENT_POINTS; - - if (isRootSegment(segment)) { - score += ROOT_POINTS; - } else if (isDynamic(segment)) { - score += DYNAMIC_POINTS; - } else if (isSplat(segment)) { - score -= SEGMENT_POINTS + SPLAT_PENALTY; - } else { - score += STATIC_POINTS; - } - - return score; - }, 0); - - return { route, score, index }; - } - - /** - * Give a score to all routes and sort them on that - * @param {object[]} routes - * @return {object[]} - */ - function rankRoutes(routes) { - return ( - routes - .map(rankRoute) - // If two routes have the exact same score, we go by index instead - .sort((a, b) => - a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index - ) - ); - } - - /** - * Ranks and picks the best route to match. Each segment gets the highest - * amount of points, then the type of segment gets an additional amount of - * points where - * - * static > dynamic > splat > root - * - * This way we don't have to worry about the order of our routes, let the - * computers do it. - * - * A route looks like this - * - * { path, default, value } - * - * And a returned match looks like: - * - * { route, params, uri } - * - * @param {object[]} routes - * @param {string} uri - * @return {?object} - */ - function pick(routes, uri) { - let match; - let default_; - - const [uriPathname] = uri.split("?"); - const uriSegments = segmentize(uriPathname); - const isRootUri = uriSegments[0] === ""; - const ranked = rankRoutes(routes); - - for (let i = 0, l = ranked.length; i < l; i++) { - const route = ranked[i].route; - let missed = false; - - if (route.default) { - default_ = { - route, - params: {}, - uri - }; - continue; - } - - const routeSegments = segmentize(route.path); - const params = {}; - const max = Math.max(uriSegments.length, routeSegments.length); - let index = 0; - - for (; index < max; index++) { - const routeSegment = routeSegments[index]; - const uriSegment = uriSegments[index]; - - if (isSplat(routeSegment)) { - // Hit a splat, just grab the rest, and return a match - // uri: /files/documents/work - // route: /files/* or /files/*splatname - const splatName = routeSegment === '*' ? '*' : routeSegment.slice(1); - - params[splatName] = uriSegments - .slice(index) - .map(decodeURIComponent) - .join("/"); - break; - } - - if (uriSegment === undefined) { - // URI is shorter than the route, no match - // uri: /users - // route: /users/:userId - missed = true; - break; - } - - let dynamicMatch = paramRe.exec(routeSegment); - - if (dynamicMatch && !isRootUri) { - const value = decodeURIComponent(uriSegment); - params[dynamicMatch[1]] = value; - } else if (routeSegment !== uriSegment) { - // Current segments don't match, not dynamic, not splat, so no match - // uri: /users/123/settings - // route: /users/:id/profile - missed = true; - break; - } - } - - if (!missed) { - match = { - route, - params, - uri: "/" + uriSegments.slice(0, index).join("/") - }; - break; - } - } - - return match || default_ || null; - } - - /** - * Check if the `path` matches the `uri`. - * @param {string} path - * @param {string} uri - * @return {?object} - */ - function match(route, uri) { - return pick([route], uri); - } - - /** - * Add the query to the pathname if a query is given - * @param {string} pathname - * @param {string} [query] - * @return {string} - */ - function addQuery(pathname, query) { - return pathname + (query ? `?${query}` : ""); - } - - /** - * Resolve URIs as though every path is a directory, no files. Relative URIs - * in the browser can feel awkward because not only can you be "in a directory", - * you can be "at a file", too. For example: - * - * browserSpecResolve('foo', '/bar/') => /bar/foo - * browserSpecResolve('foo', '/bar') => /foo - * - * But on the command line of a file system, it's not as complicated. You can't - * `cd` from a file, only directories. This way, links have to know less about - * their current path. To go deeper you can do this: - * - * - * // instead of - * - * - * Just like `cd`, if you want to go deeper from the command line, you do this: - * - * cd deeper - * # not - * cd $(pwd)/deeper - * - * By treating every path as a directory, linking to relative paths should - * require less contextual information and (fingers crossed) be more intuitive. - * @param {string} to - * @param {string} base - * @return {string} - */ - function resolve(to, base) { - // /foo/bar, /baz/qux => /foo/bar - if (startsWith(to, "/")) { - return to; - } - - const [toPathname, toQuery] = to.split("?"); - const [basePathname] = base.split("?"); - const toSegments = segmentize(toPathname); - const baseSegments = segmentize(basePathname); - - // ?a=b, /users?b=c => /users?a=b - if (toSegments[0] === "") { - return addQuery(basePathname, toQuery); - } - - // profile, /users/789 => /users/789/profile - if (!startsWith(toSegments[0], ".")) { - const pathname = baseSegments.concat(toSegments).join("/"); - - return addQuery((basePathname === "/" ? "" : "/") + pathname, toQuery); - } - - // ./ , /users/123 => /users/123 - // ../ , /users/123 => /users - // ../.. , /users/123 => / - // ../../one, /a/b/c/d => /a/b/one - // .././one , /a/b/c/d => /a/b/c/one - const allSegments = baseSegments.concat(toSegments); - const segments = []; - - allSegments.forEach(segment => { - if (segment === "..") { - segments.pop(); - } else if (segment !== ".") { - segments.push(segment); - } - }); - - return addQuery("/" + segments.join("/"), toQuery); - } - - /** - * Combines the `basepath` and the `path` into one path. - * @param {string} basepath - * @param {string} path - */ - function combinePaths(basepath, path) { - return `${stripSlashes( - path === "/" ? basepath : `${stripSlashes(basepath)}/${stripSlashes(path)}` - )}/*`; - } - - /** - * Decides whether a given `event` should result in a navigation or not. - * @param {object} event - */ - function shouldNavigate(event) { - return ( - !event.defaultPrevented && - event.button === 0 && - !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) - ); - } - - /* node_modules/svelte-routing/src/Router.svelte generated by Svelte v3.2.1 */ - - function create_fragment(ctx) { - var current; - - const default_slot_1 = ctx.$$slots.default; - const default_slot = create_slot(default_slot_1, ctx, null); - - return { - c: function create() { - if (default_slot) default_slot.c(); - }, - - l: function claim(nodes) { - if (default_slot) default_slot.l(nodes); - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - - current = true; - }, - - p: function update(changed, ctx) { - if (default_slot && default_slot.p && changed.$$scope) { - default_slot.p(get_slot_changes(default_slot_1, ctx, changed,), get_slot_context(default_slot_1, ctx, null)); - } - }, - - i: function intro(local) { - if (current) return; - if (default_slot && default_slot.i) default_slot.i(local); - current = true; - }, - - o: function outro(local) { - if (default_slot && default_slot.o) default_slot.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (default_slot) default_slot.d(detaching); - } - }; - } - - function instance($$self, $$props, $$invalidate) { - let $base, $location, $routes; - - - - let { basepath = "/", url = null } = $$props; - - const locationContext = getContext(LOCATION); - const routerContext = getContext(ROUTER); - - const routes = writable([]); validate_store(routes, 'routes'); subscribe($$self, routes, $$value => { $routes = $$value; $$invalidate('$routes', $routes); }); - const activeRoute = writable(null); - let hasActiveRoute = false; // Used in SSR to synchronously set that a Route is active. - - // If locationContext is not set, this is the topmost Router in the tree. - // If the `url` prop is given we force the location to it. - const location = - locationContext || - writable(url ? { pathname: url } : globalHistory.location); validate_store(location, 'location'); subscribe($$self, location, $$value => { $location = $$value; $$invalidate('$location', $location); }); - - // If routerContext is set, the routerBase of the parent Router - // will be the base for this Router's descendants. - // If routerContext is not set, the path and resolved uri will both - // have the value of the basepath prop. - const base = routerContext - ? routerContext.routerBase - : writable({ - path: basepath, - uri: basepath - }); validate_store(base, 'base'); subscribe($$self, base, $$value => { $base = $$value; $$invalidate('$base', $base); }); - - const routerBase = derived([base, activeRoute], ([base, activeRoute]) => { - // If there is no activeRoute, the routerBase will be identical to the base. - if (activeRoute === null) { - return base; - } - - const { path: basepath } = base; - const { route, uri } = activeRoute; - // Remove the potential /* or /*splatname from - // the end of the child Routes relative paths. - const path = route.default ? basepath : route.path.replace(/\*.*$/, ""); - - return { path, uri }; - }); - - function registerRoute(route) { - const { path: basepath } = $base; - let { path } = route; - - // We store the original path in the _path property so we can reuse - // it when the basepath changes. The only thing that matters is that - // the route reference is intact, so mutation is fine. - route._path = path; - route.path = combinePaths(basepath, path); - - if (typeof window === "undefined") { - // In SSR we should set the activeRoute immediately if it is a match. - // If there are more Routes being registered after a match is found, - // we just skip them. - if (hasActiveRoute) { - return; - } - - const matchingRoute = match(route, $location.pathname); - if (matchingRoute) { - activeRoute.set(matchingRoute); - $$invalidate('hasActiveRoute', hasActiveRoute = true); - } - } else { - routes.update(rs => { - rs.push(route); - return rs; - }); - } - } - - function unregisterRoute(route) { - routes.update(rs => { - const index = rs.indexOf(route); - rs.splice(index, 1); - return rs; - }); - } - - if (!locationContext) { - // The topmost Router in the tree is responsible for updating - // the location store and supplying it through context. - onMount(() => { - const unlisten = globalHistory.listen(history => { - location.set(history.location); - }); - - return unlisten; - }); - - setContext(LOCATION, location); - } - - setContext(ROUTER, { - activeRoute, - base, - routerBase, - registerRoute, - unregisterRoute - }); - - let { $$slots = {}, $$scope } = $$props; - - $$self.$set = $$props => { - if ('basepath' in $$props) $$invalidate('basepath', basepath = $$props.basepath); - if ('url' in $$props) $$invalidate('url', url = $$props.url); - if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); - }; - - $$self.$$.update = ($$dirty = { $base: 1, $routes: 1, $location: 1 }) => { - if ($$dirty.$base) { { - const { path: basepath } = $base; - routes.update(rs => { - rs.forEach(r => (r.path = combinePaths(basepath, r._path))); - return rs; - }); - } } - if ($$dirty.$routes || $$dirty.$location) { { - const bestMatch = pick($routes, $location.pathname); - activeRoute.set(bestMatch); - } } - }; - - return { - basepath, - url, - routes, - location, - base, - $$slots, - $$scope - }; - } - - class Router extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance, create_fragment, safe_not_equal, ["basepath", "url"]); - } - - get basepath() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set basepath(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get url() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set url(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* node_modules/svelte-routing/src/Route.svelte generated by Svelte v3.2.1 */ - - // (41:0) {#if $activeRoute !== null && $activeRoute.route === route} - function create_if_block(ctx) { - var current_block_type_index, if_block, if_block_anchor, current; - - var if_block_creators = [ - create_if_block_1, - create_else_block - ]; - - var if_blocks = []; - - function select_block_type(ctx) { - if (ctx.component !== null) return 0; - return 1; - } - - current_block_type_index = select_block_type(ctx); - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - - return { - c: function create() { - if_block.c(); - if_block_anchor = empty(); - }, - - m: function mount(target, anchor) { - if_blocks[current_block_type_index].m(target, anchor); - insert(target, if_block_anchor, anchor); - current = true; - }, - - p: function update(changed, ctx) { - var previous_block_index = current_block_type_index; - current_block_type_index = select_block_type(ctx); - if (current_block_type_index === previous_block_index) { - if_blocks[current_block_type_index].p(changed, ctx); - } else { - group_outros(); - on_outro(() => { - if_blocks[previous_block_index].d(1); - if_blocks[previous_block_index] = null; - }); - if_block.o(1); - check_outros(); - - if_block = if_blocks[current_block_type_index]; - if (!if_block) { - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - if_block.c(); - } - if_block.i(1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - }, - - i: function intro(local) { - if (current) return; - if (if_block) if_block.i(); - current = true; - }, - - o: function outro(local) { - if (if_block) if_block.o(); - current = false; - }, - - d: function destroy(detaching) { - if_blocks[current_block_type_index].d(detaching); - - if (detaching) { - detach(if_block_anchor); - } - } - }; - } - - // (44:2) {:else} - function create_else_block(ctx) { - var current; - - const default_slot_1 = ctx.$$slots.default; - const default_slot = create_slot(default_slot_1, ctx, null); - - return { - c: function create() { - if (default_slot) default_slot.c(); - }, - - l: function claim(nodes) { - if (default_slot) default_slot.l(nodes); - }, - - m: function mount(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - - current = true; - }, - - p: function update(changed, ctx) { - if (default_slot && default_slot.p && changed.$$scope) { - default_slot.p(get_slot_changes(default_slot_1, ctx, changed,), get_slot_context(default_slot_1, ctx, null)); - } - }, - - i: function intro(local) { - if (current) return; - if (default_slot && default_slot.i) default_slot.i(local); - current = true; - }, - - o: function outro(local) { - if (default_slot && default_slot.o) default_slot.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (default_slot) default_slot.d(detaching); - } - }; - } - - // (42:2) {#if component !== null} - function create_if_block_1(ctx) { - var switch_instance_anchor, current; - - var switch_instance_spread_levels = [ - ctx.routeParams - ]; - - var switch_value = ctx.component; - - function switch_props(ctx) { - let switch_instance_props = {}; - for (var i = 0; i < switch_instance_spread_levels.length; i += 1) { - switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); - } - return { - props: switch_instance_props, - $$inline: true - }; - } - - if (switch_value) { - var switch_instance = new switch_value(switch_props(ctx)); - } - - return { - c: function create() { - if (switch_instance) switch_instance.$$.fragment.c(); - switch_instance_anchor = empty(); - }, - - m: function mount(target, anchor) { - if (switch_instance) { - mount_component(switch_instance, target, anchor); - } - - insert(target, switch_instance_anchor, anchor); - current = true; - }, - - p: function update(changed, ctx) { - var switch_instance_changes = changed.routeParams ? get_spread_update(switch_instance_spread_levels, [ - ctx.routeParams - ]) : {}; - - if (switch_value !== (switch_value = ctx.component)) { - if (switch_instance) { - group_outros(); - const old_component = switch_instance; - on_outro(() => { - old_component.$destroy(); - }); - old_component.$$.fragment.o(1); - check_outros(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props(ctx)); - - switch_instance.$$.fragment.c(); - switch_instance.$$.fragment.i(1); - mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); - } else { - switch_instance = null; - } - } - - else if (switch_value) { - switch_instance.$set(switch_instance_changes); - } - }, - - i: function intro(local) { - if (current) return; - if (switch_instance) switch_instance.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - if (switch_instance) switch_instance.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (detaching) { - detach(switch_instance_anchor); - } - - if (switch_instance) switch_instance.$destroy(detaching); - } - }; - } - - function create_fragment$1(ctx) { - var if_block_anchor, current; - - var if_block = (ctx.$activeRoute !== null && ctx.$activeRoute.route === ctx.route) && create_if_block(ctx); - - return { - c: function create() { - if (if_block) if_block.c(); - if_block_anchor = empty(); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - current = true; - }, - - p: function update(changed, ctx) { - if (ctx.$activeRoute !== null && ctx.$activeRoute.route === ctx.route) { - if (if_block) { - if_block.p(changed, ctx); - if_block.i(1); - } else { - if_block = create_if_block(ctx); - if_block.c(); - if_block.i(1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - } else if (if_block) { - group_outros(); - on_outro(() => { - if_block.d(1); - if_block = null; - }); - - if_block.o(1); - check_outros(); - } - }, - - i: function intro(local) { - if (current) return; - if (if_block) if_block.i(); - current = true; - }, - - o: function outro(local) { - if (if_block) if_block.o(); - current = false; - }, - - d: function destroy(detaching) { - if (if_block) if_block.d(detaching); - - if (detaching) { - detach(if_block_anchor); - } - } - }; - } - - function instance$1($$self, $$props, $$invalidate) { - let $activeRoute; - - - - let { path = "", component = null } = $$props; - - const { registerRoute, unregisterRoute, activeRoute } = getContext(ROUTER); validate_store(activeRoute, 'activeRoute'); subscribe($$self, activeRoute, $$value => { $activeRoute = $$value; $$invalidate('$activeRoute', $activeRoute); }); - - const route = { - path, - // If no path prop is given, this Route will act as the default Route - // that is rendered if no other Route in the Router is a match. - default: path === "" - }; - let routeParams = {}; - - registerRoute(route); - - // There is no need to unregister Routes in SSR since it will all be - // thrown away anyway. - if (typeof window !== "undefined") { - onDestroy(() => { - unregisterRoute(route); - }); - } - - let { $$slots = {}, $$scope } = $$props; - - $$self.$set = $$props => { - if ('path' in $$props) $$invalidate('path', path = $$props.path); - if ('component' in $$props) $$invalidate('component', component = $$props.component); - if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); - }; - - $$self.$$.update = ($$dirty = { $activeRoute: 1 }) => { - if ($$dirty.$activeRoute) { if ($activeRoute && $activeRoute.route === route) { - const { params } = $activeRoute; - $$invalidate('routeParams', routeParams = Object.keys(params).reduce((acc, param) => { - if (param !== "*") { - acc[param] = params[param]; - } - return acc; - }, {})); - } } - }; - - return { - path, - component, - activeRoute, - route, - routeParams, - $activeRoute, - $$slots, - $$scope - }; - } - - class Route extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$1, create_fragment$1, safe_not_equal, ["path", "component"]); - } - - get path() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set path(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get component() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set component(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* node_modules/svelte-routing/src/Link.svelte generated by Svelte v3.2.1 */ - - const file = "node_modules/svelte-routing/src/Link.svelte"; - - function create_fragment$2(ctx) { - var a, current, dispose; - - const default_slot_1 = ctx.$$slots.default; - const default_slot = create_slot(default_slot_1, ctx, null); - - var a_levels = [ - { href: ctx.href }, - { "aria-current": ctx.ariaCurrent }, - ctx.props - ]; - - var a_data = {}; - for (var i = 0; i < a_levels.length; i += 1) { - a_data = assign(a_data, a_levels[i]); - } - - return { - c: function create() { - a = element("a"); - - if (default_slot) default_slot.c(); - - set_attributes(a, a_data); - add_location(a, file, 40, 0, 1249); - dispose = listen(a, "click", ctx.onClick); - }, - - l: function claim(nodes) { - if (default_slot) default_slot.l(a_nodes); - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, a, anchor); - - if (default_slot) { - default_slot.m(a, null); - } - - current = true; - }, - - p: function update(changed, ctx) { - if (default_slot && default_slot.p && changed.$$scope) { - default_slot.p(get_slot_changes(default_slot_1, ctx, changed,), get_slot_context(default_slot_1, ctx, null)); - } - - set_attributes(a, get_spread_update(a_levels, [ - (changed.href) && { href: ctx.href }, - (changed.ariaCurrent) && { "aria-current": ctx.ariaCurrent }, - (changed.props) && ctx.props - ])); - }, - - i: function intro(local) { - if (current) return; - if (default_slot && default_slot.i) default_slot.i(local); - current = true; - }, - - o: function outro(local) { - if (default_slot && default_slot.o) default_slot.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (detaching) { - detach(a); - } - - if (default_slot) default_slot.d(detaching); - dispose(); - } - }; - } - - function instance$2($$self, $$props, $$invalidate) { - let $base, $location; - - - - let { to = "#", replace = false, state = {}, getProps = () => ({}) } = $$props; - - const { base } = getContext(ROUTER); validate_store(base, 'base'); subscribe($$self, base, $$value => { $base = $$value; $$invalidate('$base', $base); }); - const location = getContext(LOCATION); validate_store(location, 'location'); subscribe($$self, location, $$value => { $location = $$value; $$invalidate('$location', $location); }); - const dispatch = createEventDispatcher(); - - let href, isPartiallyCurrent, isCurrent, props; - - function onClick(event) { - dispatch("click", event); - - if (shouldNavigate(event)) { - event.preventDefault(); - // Don't push another entry to the history stack when the user - // clicks on a Link to the page they are currently on. - const shouldReplace = $location.pathname === href || replace; - navigate(href, { state, replace: shouldReplace }); - } - } - - let { $$slots = {}, $$scope } = $$props; - - $$self.$set = $$props => { - if ('to' in $$props) $$invalidate('to', to = $$props.to); - if ('replace' in $$props) $$invalidate('replace', replace = $$props.replace); - if ('state' in $$props) $$invalidate('state', state = $$props.state); - if ('getProps' in $$props) $$invalidate('getProps', getProps = $$props.getProps); - if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); - }; - - let ariaCurrent; - - $$self.$$.update = ($$dirty = { to: 1, $base: 1, $location: 1, href: 1, isCurrent: 1, getProps: 1, isPartiallyCurrent: 1 }) => { - if ($$dirty.to || $$dirty.$base) { $$invalidate('href', href = to === "/" ? $base.uri : resolve(to, $base.uri)); } - if ($$dirty.$location || $$dirty.href) { $$invalidate('isPartiallyCurrent', isPartiallyCurrent = startsWith($location.pathname, href)); } - if ($$dirty.href || $$dirty.$location) { $$invalidate('isCurrent', isCurrent = href === $location.pathname); } - if ($$dirty.isCurrent) { $$invalidate('ariaCurrent', ariaCurrent = isCurrent ? "page" : undefined); } - if ($$dirty.getProps || $$dirty.$location || $$dirty.href || $$dirty.isPartiallyCurrent || $$dirty.isCurrent) { $$invalidate('props', props = getProps({ - location: $location, - href, - isPartiallyCurrent, - isCurrent - })); } - }; - - return { - to, - replace, - state, - getProps, - base, - location, - href, - props, - onClick, - ariaCurrent, - $$slots, - $$scope - }; - } - - class Link extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$2, create_fragment$2, safe_not_equal, ["to", "replace", "state", "getProps"]); - } - - get to() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set to(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get replace() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set replace(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get state() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set state(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get getProps() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set getProps(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/Home.svelte generated by Svelte v3.2.1 */ - - const file$1 = "src/Home.svelte"; - - function create_fragment$3(ctx) { - var h1; - - return { - c: function create() { - h1 = element("h1"); - h1.textContent = "Home Page"; - add_location(h1, file$1, 0, 0, 0); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, h1, anchor); - }, - - p: noop, - i: noop, - o: noop, - - d: function destroy(detaching) { - if (detaching) { - detach(h1); - } - } - }; - } - - class Home extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, null, create_fragment$3, safe_not_equal, []); - } - } - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; - } - - function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - } - - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - } - - function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - } - - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - } - - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - } - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function isFunction(x) { - return typeof x === 'function'; - } - //# sourceMappingURL=isFunction.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var _enable_super_gross_mode_that_will_cause_bad_things = false; - var config = { - Promise: undefined, - set useDeprecatedSynchronousErrorHandling(value) { - if (value) { - var error = /*@__PURE__*/ new Error(); - /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); - } - _enable_super_gross_mode_that_will_cause_bad_things = value; - }, - get useDeprecatedSynchronousErrorHandling() { - return _enable_super_gross_mode_that_will_cause_bad_things; - }, - }; - //# sourceMappingURL=config.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function hostReportError(err) { - setTimeout(function () { throw err; }, 0); - } - //# sourceMappingURL=hostReportError.js.map - - /** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */ - var empty$1 = { - closed: true, - next: function (value) { }, - error: function (err) { - if (config.useDeprecatedSynchronousErrorHandling) { - throw err; - } - else { - hostReportError(err); - } - }, - complete: function () { } - }; - //# sourceMappingURL=Observer.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); - //# sourceMappingURL=isArray.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function isObject(x) { - return x !== null && typeof x === 'object'; - } - //# sourceMappingURL=isObject.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function UnsubscriptionErrorImpl(errors) { - Error.call(this); - this.message = errors ? - errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : ''; - this.name = 'UnsubscriptionError'; - this.errors = errors; - return this; - } - UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - var UnsubscriptionError = UnsubscriptionErrorImpl; - //# sourceMappingURL=UnsubscriptionError.js.map - - /** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */ - var Subscription = /*@__PURE__*/ (function () { - function Subscription(unsubscribe) { - this.closed = false; - this._parentOrParents = null; - this._subscriptions = null; - if (unsubscribe) { - this._unsubscribe = unsubscribe; - } - } - Subscription.prototype.unsubscribe = function () { - var errors; - if (this.closed) { - return; - } - var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; - this.closed = true; - this._parentOrParents = null; - this._subscriptions = null; - if (_parentOrParents instanceof Subscription) { - _parentOrParents.remove(this); - } - else if (_parentOrParents !== null) { - for (var index = 0; index < _parentOrParents.length; ++index) { - var parent_1 = _parentOrParents[index]; - parent_1.remove(this); - } - } - if (isFunction(_unsubscribe)) { - try { - _unsubscribe.call(this); - } - catch (e) { - errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; - } - } - if (isArray(_subscriptions)) { - var index = -1; - var len = _subscriptions.length; - while (++index < len) { - var sub = _subscriptions[index]; - if (isObject(sub)) { - try { - sub.unsubscribe(); - } - catch (e) { - errors = errors || []; - if (e instanceof UnsubscriptionError) { - errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); - } - else { - errors.push(e); - } - } - } - } - } - if (errors) { - throw new UnsubscriptionError(errors); - } - }; - Subscription.prototype.add = function (teardown) { - var subscription = teardown; - if (!teardown) { - return Subscription.EMPTY; - } - switch (typeof teardown) { - case 'function': - subscription = new Subscription(teardown); - case 'object': - if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { - return subscription; - } - else if (this.closed) { - subscription.unsubscribe(); - return subscription; - } - else if (!(subscription instanceof Subscription)) { - var tmp = subscription; - subscription = new Subscription(); - subscription._subscriptions = [tmp]; - } - break; - default: { - throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); - } - } - var _parentOrParents = subscription._parentOrParents; - if (_parentOrParents === null) { - subscription._parentOrParents = this; - } - else if (_parentOrParents instanceof Subscription) { - if (_parentOrParents === this) { - return subscription; - } - subscription._parentOrParents = [_parentOrParents, this]; - } - else if (_parentOrParents.indexOf(this) === -1) { - _parentOrParents.push(this); - } - else { - return subscription; - } - var subscriptions = this._subscriptions; - if (subscriptions === null) { - this._subscriptions = [subscription]; - } - else { - subscriptions.push(subscription); - } - return subscription; - }; - Subscription.prototype.remove = function (subscription) { - var subscriptions = this._subscriptions; - if (subscriptions) { - var subscriptionIndex = subscriptions.indexOf(subscription); - if (subscriptionIndex !== -1) { - subscriptions.splice(subscriptionIndex, 1); - } - } - }; - Subscription.EMPTY = (function (empty) { - empty.closed = true; - return empty; - }(new Subscription())); - return Subscription; - }()); - function flattenUnsubscriptionErrors(errors) { - return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []); - } - //# sourceMappingURL=Subscription.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var rxSubscriber = typeof Symbol === 'function' - ? /*@__PURE__*/ Symbol('rxSubscriber') - : '@@rxSubscriber_' + /*@__PURE__*/ Math.random(); - //# sourceMappingURL=rxSubscriber.js.map - - /** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ - var Subscriber = /*@__PURE__*/ (function (_super) { - __extends(Subscriber, _super); - function Subscriber(destinationOrNext, error, complete) { - var _this = _super.call(this) || this; - _this.syncErrorValue = null; - _this.syncErrorThrown = false; - _this.syncErrorThrowable = false; - _this.isStopped = false; - switch (arguments.length) { - case 0: - _this.destination = empty$1; - break; - case 1: - if (!destinationOrNext) { - _this.destination = empty$1; - break; - } - if (typeof destinationOrNext === 'object') { - if (destinationOrNext instanceof Subscriber) { - _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; - _this.destination = destinationOrNext; - destinationOrNext.add(_this); - } - else { - _this.syncErrorThrowable = true; - _this.destination = new SafeSubscriber(_this, destinationOrNext); - } - break; - } - default: - _this.syncErrorThrowable = true; - _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); - break; - } - return _this; - } - Subscriber.prototype[rxSubscriber] = function () { return this; }; - Subscriber.create = function (next, error, complete) { - var subscriber = new Subscriber(next, error, complete); - subscriber.syncErrorThrowable = false; - return subscriber; - }; - Subscriber.prototype.next = function (value) { - if (!this.isStopped) { - this._next(value); - } - }; - Subscriber.prototype.error = function (err) { - if (!this.isStopped) { - this.isStopped = true; - this._error(err); - } - }; - Subscriber.prototype.complete = function () { - if (!this.isStopped) { - this.isStopped = true; - this._complete(); - } - }; - Subscriber.prototype.unsubscribe = function () { - if (this.closed) { - return; - } - this.isStopped = true; - _super.prototype.unsubscribe.call(this); - }; - Subscriber.prototype._next = function (value) { - this.destination.next(value); - }; - Subscriber.prototype._error = function (err) { - this.destination.error(err); - this.unsubscribe(); - }; - Subscriber.prototype._complete = function () { - this.destination.complete(); - this.unsubscribe(); - }; - Subscriber.prototype._unsubscribeAndRecycle = function () { - var _parentOrParents = this._parentOrParents; - this._parentOrParents = null; - this.unsubscribe(); - this.closed = false; - this.isStopped = false; - this._parentOrParents = _parentOrParents; - return this; - }; - return Subscriber; - }(Subscription)); - var SafeSubscriber = /*@__PURE__*/ (function (_super) { - __extends(SafeSubscriber, _super); - function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { - var _this = _super.call(this) || this; - _this._parentSubscriber = _parentSubscriber; - var next; - var context = _this; - if (isFunction(observerOrNext)) { - next = observerOrNext; - } - else if (observerOrNext) { - next = observerOrNext.next; - error = observerOrNext.error; - complete = observerOrNext.complete; - if (observerOrNext !== empty$1) { - context = Object.create(observerOrNext); - if (isFunction(context.unsubscribe)) { - _this.add(context.unsubscribe.bind(context)); - } - context.unsubscribe = _this.unsubscribe.bind(_this); - } - } - _this._context = context; - _this._next = next; - _this._error = error; - _this._complete = complete; - return _this; - } - SafeSubscriber.prototype.next = function (value) { - if (!this.isStopped && this._next) { - var _parentSubscriber = this._parentSubscriber; - if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(this._next, value); - } - else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var _parentSubscriber = this._parentSubscriber; - var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling; - if (this._error) { - if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(this._error, err); - this.unsubscribe(); - } - else { - this.__tryOrSetError(_parentSubscriber, this._error, err); - this.unsubscribe(); - } - } - else if (!_parentSubscriber.syncErrorThrowable) { - this.unsubscribe(); - if (useDeprecatedSynchronousErrorHandling) { - throw err; - } - hostReportError(err); - } - else { - if (useDeprecatedSynchronousErrorHandling) { - _parentSubscriber.syncErrorValue = err; - _parentSubscriber.syncErrorThrown = true; - } - else { - hostReportError(err); - } - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.complete = function () { - var _this = this; - if (!this.isStopped) { - var _parentSubscriber = this._parentSubscriber; - if (this._complete) { - var wrappedComplete = function () { return _this._complete.call(_this._context); }; - if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(wrappedComplete); - this.unsubscribe(); - } - else { - this.__tryOrSetError(_parentSubscriber, wrappedComplete); - this.unsubscribe(); - } - } - else { - this.unsubscribe(); - } - } - }; - SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { - try { - fn.call(this._context, value); - } - catch (err) { - this.unsubscribe(); - if (config.useDeprecatedSynchronousErrorHandling) { - throw err; - } - else { - hostReportError(err); - } - } - }; - SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { - if (!config.useDeprecatedSynchronousErrorHandling) { - throw new Error('bad call'); - } - try { - fn.call(this._context, value); - } - catch (err) { - if (config.useDeprecatedSynchronousErrorHandling) { - parent.syncErrorValue = err; - parent.syncErrorThrown = true; - return true; - } - else { - hostReportError(err); - return true; - } - } - return false; - }; - SafeSubscriber.prototype._unsubscribe = function () { - var _parentSubscriber = this._parentSubscriber; - this._context = null; - this._parentSubscriber = null; - _parentSubscriber.unsubscribe(); - }; - return SafeSubscriber; - }(Subscriber)); - //# sourceMappingURL=Subscriber.js.map - - /** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */ - function canReportError(observer) { - while (observer) { - var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; - if (closed_1 || isStopped) { - return false; - } - else if (destination && destination instanceof Subscriber) { - observer = destination; - } - else { - observer = null; - } - } - return true; - } - //# sourceMappingURL=canReportError.js.map - - /** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ - function toSubscriber(nextOrObserver, error, complete) { - if (nextOrObserver) { - if (nextOrObserver instanceof Subscriber) { - return nextOrObserver; - } - if (nextOrObserver[rxSubscriber]) { - return nextOrObserver[rxSubscriber](); - } - } - if (!nextOrObserver && !error && !complete) { - return new Subscriber(empty$1); - } - return new Subscriber(nextOrObserver, error, complete); - } - //# sourceMappingURL=toSubscriber.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable'; - //# sourceMappingURL=observable.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function noop$1() { } - //# sourceMappingURL=noop.js.map - - /** PURE_IMPORTS_START _noop PURE_IMPORTS_END */ - function pipeFromArray(fns) { - if (!fns) { - return noop$1; - } - if (fns.length === 1) { - return fns[0]; - } - return function piped(input) { - return fns.reduce(function (prev, fn) { return fn(prev); }, input); - }; - } - //# sourceMappingURL=pipe.js.map - - /** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ - var Observable = /*@__PURE__*/ (function () { - function Observable(subscribe) { - this._isScalar = false; - if (subscribe) { - this._subscribe = subscribe; - } - } - Observable.prototype.lift = function (operator) { - var observable = new Observable(); - observable.source = this; - observable.operator = operator; - return observable; - }; - Observable.prototype.subscribe = function (observerOrNext, error, complete) { - var operator = this.operator; - var sink = toSubscriber(observerOrNext, error, complete); - if (operator) { - sink.add(operator.call(sink, this.source)); - } - else { - sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? - this._subscribe(sink) : - this._trySubscribe(sink)); - } - if (config.useDeprecatedSynchronousErrorHandling) { - if (sink.syncErrorThrowable) { - sink.syncErrorThrowable = false; - if (sink.syncErrorThrown) { - throw sink.syncErrorValue; - } - } - } - return sink; - }; - Observable.prototype._trySubscribe = function (sink) { - try { - return this._subscribe(sink); - } - catch (err) { - if (config.useDeprecatedSynchronousErrorHandling) { - sink.syncErrorThrown = true; - sink.syncErrorValue = err; - } - if (canReportError(sink)) { - sink.error(err); - } - else { - console.warn(err); - } - } - }; - Observable.prototype.forEach = function (next, promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var subscription; - subscription = _this.subscribe(function (value) { - try { - next(value); - } - catch (err) { - reject(err); - if (subscription) { - subscription.unsubscribe(); - } - } - }, reject, resolve); - }); - }; - Observable.prototype._subscribe = function (subscriber) { - var source = this.source; - return source && source.subscribe(subscriber); - }; - Observable.prototype[observable] = function () { - return this; - }; - Observable.prototype.pipe = function () { - var operations = []; - for (var _i = 0; _i < arguments.length; _i++) { - operations[_i] = arguments[_i]; - } - if (operations.length === 0) { - return this; - } - return pipeFromArray(operations)(this); - }; - Observable.prototype.toPromise = function (promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var value; - _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); - }); - }; - Observable.create = function (subscribe) { - return new Observable(subscribe); - }; - return Observable; - }()); - function getPromiseCtor(promiseCtor) { - if (!promiseCtor) { - promiseCtor = Promise; - } - if (!promiseCtor) { - throw new Error('no Promise impl found'); - } - return promiseCtor; - } - //# sourceMappingURL=Observable.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function ObjectUnsubscribedErrorImpl() { - Error.call(this); - this.message = 'object unsubscribed'; - this.name = 'ObjectUnsubscribedError'; - return this; - } - ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; - //# sourceMappingURL=ObjectUnsubscribedError.js.map - - /** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ - var SubjectSubscription = /*@__PURE__*/ (function (_super) { - __extends(SubjectSubscription, _super); - function SubjectSubscription(subject, subscriber) { - var _this = _super.call(this) || this; - _this.subject = subject; - _this.subscriber = subscriber; - _this.closed = false; - return _this; - } - SubjectSubscription.prototype.unsubscribe = function () { - if (this.closed) { - return; - } - this.closed = true; - var subject = this.subject; - var observers = subject.observers; - this.subject = null; - if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { - return; - } - var subscriberIndex = observers.indexOf(this.subscriber); - if (subscriberIndex !== -1) { - observers.splice(subscriberIndex, 1); - } - }; - return SubjectSubscription; - }(Subscription)); - //# sourceMappingURL=SubjectSubscription.js.map - - /** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ - var SubjectSubscriber = /*@__PURE__*/ (function (_super) { - __extends(SubjectSubscriber, _super); - function SubjectSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - return _this; - } - return SubjectSubscriber; - }(Subscriber)); - var Subject = /*@__PURE__*/ (function (_super) { - __extends(Subject, _super); - function Subject() { - var _this = _super.call(this) || this; - _this.observers = []; - _this.closed = false; - _this.isStopped = false; - _this.hasError = false; - _this.thrownError = null; - return _this; - } - Subject.prototype[rxSubscriber] = function () { - return new SubjectSubscriber(this); - }; - Subject.prototype.lift = function (operator) { - var subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - }; - Subject.prototype.next = function (value) { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - if (!this.isStopped) { - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].next(value); - } - } - }; - Subject.prototype.error = function (err) { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - this.hasError = true; - this.thrownError = err; - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].error(err); - } - this.observers.length = 0; - }; - Subject.prototype.complete = function () { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].complete(); - } - this.observers.length = 0; - }; - Subject.prototype.unsubscribe = function () { - this.isStopped = true; - this.closed = true; - this.observers = null; - }; - Subject.prototype._trySubscribe = function (subscriber) { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - else { - return _super.prototype._trySubscribe.call(this, subscriber); - } - }; - Subject.prototype._subscribe = function (subscriber) { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - else if (this.hasError) { - subscriber.error(this.thrownError); - return Subscription.EMPTY; - } - else if (this.isStopped) { - subscriber.complete(); - return Subscription.EMPTY; - } - else { - this.observers.push(subscriber); - return new SubjectSubscription(this, subscriber); - } - }; - Subject.prototype.asObservable = function () { - var observable = new Observable(); - observable.source = this; - return observable; - }; - Subject.create = function (destination, source) { - return new AnonymousSubject(destination, source); - }; - return Subject; - }(Observable)); - var AnonymousSubject = /*@__PURE__*/ (function (_super) { - __extends(AnonymousSubject, _super); - function AnonymousSubject(destination, source) { - var _this = _super.call(this) || this; - _this.destination = destination; - _this.source = source; - return _this; - } - AnonymousSubject.prototype.next = function (value) { - var destination = this.destination; - if (destination && destination.next) { - destination.next(value); - } - }; - AnonymousSubject.prototype.error = function (err) { - var destination = this.destination; - if (destination && destination.error) { - this.destination.error(err); - } - }; - AnonymousSubject.prototype.complete = function () { - var destination = this.destination; - if (destination && destination.complete) { - this.destination.complete(); - } - }; - AnonymousSubject.prototype._subscribe = function (subscriber) { - var source = this.source; - if (source) { - return this.source.subscribe(subscriber); - } - else { - return Subscription.EMPTY; - } - }; - return AnonymousSubject; - }(Subject)); - //# sourceMappingURL=Subject.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function refCount() { - return function refCountOperatorFunction(source) { - return source.lift(new RefCountOperator(source)); - }; - } - var RefCountOperator = /*@__PURE__*/ (function () { - function RefCountOperator(connectable) { - this.connectable = connectable; - } - RefCountOperator.prototype.call = function (subscriber, source) { - var connectable = this.connectable; - connectable._refCount++; - var refCounter = new RefCountSubscriber(subscriber, connectable); - var subscription = source.subscribe(refCounter); - if (!refCounter.closed) { - refCounter.connection = connectable.connect(); - } - return subscription; - }; - return RefCountOperator; - }()); - var RefCountSubscriber = /*@__PURE__*/ (function (_super) { - __extends(RefCountSubscriber, _super); - function RefCountSubscriber(destination, connectable) { - var _this = _super.call(this, destination) || this; - _this.connectable = connectable; - return _this; - } - RefCountSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (!connectable) { - this.connection = null; - return; - } - this.connectable = null; - var refCount = connectable._refCount; - if (refCount <= 0) { - this.connection = null; - return; - } - connectable._refCount = refCount - 1; - if (refCount > 1) { - this.connection = null; - return; - } - var connection = this.connection; - var sharedConnection = connectable._connection; - this.connection = null; - if (sharedConnection && (!connection || sharedConnection === connection)) { - sharedConnection.unsubscribe(); - } - }; - return RefCountSubscriber; - }(Subscriber)); - //# sourceMappingURL=refCount.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ - var ConnectableObservable = /*@__PURE__*/ (function (_super) { - __extends(ConnectableObservable, _super); - function ConnectableObservable(source, subjectFactory) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subjectFactory = subjectFactory; - _this._refCount = 0; - _this._isComplete = false; - return _this; - } - ConnectableObservable.prototype._subscribe = function (subscriber) { - return this.getSubject().subscribe(subscriber); - }; - ConnectableObservable.prototype.getSubject = function () { - var subject = this._subject; - if (!subject || subject.isStopped) { - this._subject = this.subjectFactory(); - } - return this._subject; - }; - ConnectableObservable.prototype.connect = function () { - var connection = this._connection; - if (!connection) { - this._isComplete = false; - connection = this._connection = new Subscription(); - connection.add(this.source - .subscribe(new ConnectableSubscriber(this.getSubject(), this))); - if (connection.closed) { - this._connection = null; - connection = Subscription.EMPTY; - } - } - return connection; - }; - ConnectableObservable.prototype.refCount = function () { - return refCount()(this); - }; - return ConnectableObservable; - }(Observable)); - var connectableProto = ConnectableObservable.prototype; - var connectableObservableDescriptor = { - operator: { value: null }, - _refCount: { value: 0, writable: true }, - _subject: { value: null, writable: true }, - _connection: { value: null, writable: true }, - _subscribe: { value: connectableProto._subscribe }, - _isComplete: { value: connectableProto._isComplete, writable: true }, - getSubject: { value: connectableProto.getSubject }, - connect: { value: connectableProto.connect }, - refCount: { value: connectableProto.refCount } - }; - var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { - __extends(ConnectableSubscriber, _super); - function ConnectableSubscriber(destination, connectable) { - var _this = _super.call(this, destination) || this; - _this.connectable = connectable; - return _this; - } - ConnectableSubscriber.prototype._error = function (err) { - this._unsubscribe(); - _super.prototype._error.call(this, err); - }; - ConnectableSubscriber.prototype._complete = function () { - this.connectable._isComplete = true; - this._unsubscribe(); - _super.prototype._complete.call(this); - }; - ConnectableSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (connectable) { - this.connectable = null; - var connection = connectable._connection; - connectable._refCount = 0; - connectable._subject = null; - connectable._connection = null; - if (connection) { - connection.unsubscribe(); - } - } - }; - return ConnectableSubscriber; - }(SubjectSubscriber)); - //# sourceMappingURL=ConnectableObservable.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ - //# sourceMappingURL=groupBy.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ - var BehaviorSubject = /*@__PURE__*/ (function (_super) { - __extends(BehaviorSubject, _super); - function BehaviorSubject(_value) { - var _this = _super.call(this) || this; - _this._value = _value; - return _this; - } - Object.defineProperty(BehaviorSubject.prototype, "value", { - get: function () { - return this.getValue(); - }, - enumerable: true, - configurable: true - }); - BehaviorSubject.prototype._subscribe = function (subscriber) { - var subscription = _super.prototype._subscribe.call(this, subscriber); - if (subscription && !subscription.closed) { - subscriber.next(this._value); - } - return subscription; - }; - BehaviorSubject.prototype.getValue = function () { - if (this.hasError) { - throw this.thrownError; - } - else if (this.closed) { - throw new ObjectUnsubscribedError(); - } - else { - return this._value; - } - }; - BehaviorSubject.prototype.next = function (value) { - _super.prototype.next.call(this, this._value = value); - }; - return BehaviorSubject; - }(Subject)); - //# sourceMappingURL=BehaviorSubject.js.map - - /** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ - var Action = /*@__PURE__*/ (function (_super) { - __extends(Action, _super); - function Action(scheduler, work) { - return _super.call(this) || this; - } - Action.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - return this; - }; - return Action; - }(Subscription)); - //# sourceMappingURL=Action.js.map - - /** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ - var AsyncAction = /*@__PURE__*/ (function (_super) { - __extends(AsyncAction, _super); - function AsyncAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.pending = false; - return _this; - } - AsyncAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (this.closed) { - return this; - } - this.state = state; - var id = this.id; - var scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); - } - this.pending = true; - this.delay = delay; - this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); - return this; - }; - AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - return setInterval(scheduler.flush.bind(scheduler, this), delay); - }; - AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && this.delay === delay && this.pending === false) { - return id; - } - clearInterval(id); - return undefined; - }; - AsyncAction.prototype.execute = function (state, delay) { - if (this.closed) { - return new Error('executing a cancelled action'); - } - this.pending = false; - var error = this._execute(state, delay); - if (error) { - return error; - } - else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - }; - AsyncAction.prototype._execute = function (state, delay) { - var errored = false; - var errorValue = undefined; - try { - this.work(state); - } - catch (e) { - errored = true; - errorValue = !!e && e || new Error(e); - } - if (errored) { - this.unsubscribe(); - return errorValue; - } - }; - AsyncAction.prototype._unsubscribe = function () { - var id = this.id; - var scheduler = this.scheduler; - var actions = scheduler.actions; - var index = actions.indexOf(this); - this.work = null; - this.state = null; - this.pending = false; - this.scheduler = null; - if (index !== -1) { - actions.splice(index, 1); - } - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); - } - this.delay = null; - }; - return AsyncAction; - }(Action)); - //# sourceMappingURL=AsyncAction.js.map - - /** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ - var QueueAction = /*@__PURE__*/ (function (_super) { - __extends(QueueAction, _super); - function QueueAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - QueueAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay > 0) { - return _super.prototype.schedule.call(this, state, delay); - } - this.delay = delay; - this.state = state; - this.scheduler.flush(this); - return this; - }; - QueueAction.prototype.execute = function (state, delay) { - return (delay > 0 || this.closed) ? - _super.prototype.execute.call(this, state, delay) : - this._execute(state, delay); - }; - QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - return scheduler.flush(this); - }; - return QueueAction; - }(AsyncAction)); - //# sourceMappingURL=QueueAction.js.map - - var Scheduler = /*@__PURE__*/ (function () { - function Scheduler(SchedulerAction, now) { - if (now === void 0) { - now = Scheduler.now; - } - this.SchedulerAction = SchedulerAction; - this.now = now; - } - Scheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - return new this.SchedulerAction(this, work).schedule(state, delay); - }; - Scheduler.now = function () { return Date.now(); }; - return Scheduler; - }()); - //# sourceMappingURL=Scheduler.js.map - - /** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ - var AsyncScheduler = /*@__PURE__*/ (function (_super) { - __extends(AsyncScheduler, _super); - function AsyncScheduler(SchedulerAction, now) { - if (now === void 0) { - now = Scheduler.now; - } - var _this = _super.call(this, SchedulerAction, function () { - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { - return AsyncScheduler.delegate.now(); - } - else { - return now(); - } - }) || this; - _this.actions = []; - _this.active = false; - _this.scheduled = undefined; - return _this; - } - AsyncScheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { - return AsyncScheduler.delegate.schedule(work, delay, state); - } - else { - return _super.prototype.schedule.call(this, work, delay, state); - } - }; - AsyncScheduler.prototype.flush = function (action) { - var actions = this.actions; - if (this.active) { - actions.push(action); - return; - } - var error; - this.active = true; - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (action = actions.shift()); - this.active = false; - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - return AsyncScheduler; - }(Scheduler)); - //# sourceMappingURL=AsyncScheduler.js.map - - /** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - var QueueScheduler = /*@__PURE__*/ (function (_super) { - __extends(QueueScheduler, _super); - function QueueScheduler() { - return _super !== null && _super.apply(this, arguments) || this; - } - return QueueScheduler; - }(AsyncScheduler)); - //# sourceMappingURL=QueueScheduler.js.map - - /** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ - var queue = /*@__PURE__*/ new QueueScheduler(QueueAction); - //# sourceMappingURL=queue.js.map - - /** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); }); - function empty$2(scheduler) { - return scheduler ? emptyScheduled(scheduler) : EMPTY; - } - function emptyScheduled(scheduler) { - return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); - } - //# sourceMappingURL=empty.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function isScheduler(value) { - return value && typeof value.schedule === 'function'; - } - //# sourceMappingURL=isScheduler.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var subscribeToArray = function (array) { - return function (subscriber) { - for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { - subscriber.next(array[i]); - } - subscriber.complete(); - }; - }; - //# sourceMappingURL=subscribeToArray.js.map - - /** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ - function scheduleArray(input, scheduler) { - return new Observable(function (subscriber) { - var sub = new Subscription(); - var i = 0; - sub.add(scheduler.schedule(function () { - if (i === input.length) { - subscriber.complete(); - return; - } - subscriber.next(input[i++]); - if (!subscriber.closed) { - sub.add(this.schedule()); - } - })); - return sub; - }); - } - //# sourceMappingURL=scheduleArray.js.map - - /** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */ - function fromArray(input, scheduler) { - if (!scheduler) { - return new Observable(subscribeToArray(input)); - } - else { - return scheduleArray(input, scheduler); - } - } - //# sourceMappingURL=fromArray.js.map - - /** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */ - function of() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var scheduler = args[args.length - 1]; - if (isScheduler(scheduler)) { - args.pop(); - return scheduleArray(args, scheduler); - } - else { - return fromArray(args); - } - } - //# sourceMappingURL=of.js.map - - /** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - function throwError(error, scheduler) { - if (!scheduler) { - return new Observable(function (subscriber) { return subscriber.error(error); }); - } - else { - return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); - } - } - function dispatch(_a) { - var error = _a.error, subscriber = _a.subscriber; - subscriber.error(error); - } - //# sourceMappingURL=throwError.js.map - - /** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ - var Notification = /*@__PURE__*/ (function () { - function Notification(kind, value, error) { - this.kind = kind; - this.value = value; - this.error = error; - this.hasValue = kind === 'N'; - } - Notification.prototype.observe = function (observer) { - switch (this.kind) { - case 'N': - return observer.next && observer.next(this.value); - case 'E': - return observer.error && observer.error(this.error); - case 'C': - return observer.complete && observer.complete(); - } - }; - Notification.prototype.do = function (next, error, complete) { - var kind = this.kind; - switch (kind) { - case 'N': - return next && next(this.value); - case 'E': - return error && error(this.error); - case 'C': - return complete && complete(); - } - }; - Notification.prototype.accept = function (nextOrObserver, error, complete) { - if (nextOrObserver && typeof nextOrObserver.next === 'function') { - return this.observe(nextOrObserver); - } - else { - return this.do(nextOrObserver, error, complete); - } - }; - Notification.prototype.toObservable = function () { - var kind = this.kind; - switch (kind) { - case 'N': - return of(this.value); - case 'E': - return throwError(this.error); - case 'C': - return empty$2(); - } - throw new Error('unexpected notification kind value'); - }; - Notification.createNext = function (value) { - if (typeof value !== 'undefined') { - return new Notification('N', value); - } - return Notification.undefinedValueNotification; - }; - Notification.createError = function (err) { - return new Notification('E', undefined, err); - }; - Notification.createComplete = function () { - return Notification.completeNotification; - }; - Notification.completeNotification = new Notification('C'); - Notification.undefinedValueNotification = new Notification('N', undefined); - return Notification; - }()); - //# sourceMappingURL=Notification.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ - var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { - __extends(ObserveOnSubscriber, _super); - function ObserveOnSubscriber(destination, scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - var _this = _super.call(this, destination) || this; - _this.scheduler = scheduler; - _this.delay = delay; - return _this; - } - ObserveOnSubscriber.dispatch = function (arg) { - var notification = arg.notification, destination = arg.destination; - notification.observe(destination); - this.unsubscribe(); - }; - ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - var destination = this.destination; - destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); - }; - ObserveOnSubscriber.prototype._next = function (value) { - this.scheduleMessage(Notification.createNext(value)); - }; - ObserveOnSubscriber.prototype._error = function (err) { - this.scheduleMessage(Notification.createError(err)); - this.unsubscribe(); - }; - ObserveOnSubscriber.prototype._complete = function () { - this.scheduleMessage(Notification.createComplete()); - this.unsubscribe(); - }; - return ObserveOnSubscriber; - }(Subscriber)); - var ObserveOnMessage = /*@__PURE__*/ (function () { - function ObserveOnMessage(notification, destination) { - this.notification = notification; - this.destination = destination; - } - return ObserveOnMessage; - }()); - //# sourceMappingURL=observeOn.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ - var ReplaySubject = /*@__PURE__*/ (function (_super) { - __extends(ReplaySubject, _super); - function ReplaySubject(bufferSize, windowTime, scheduler) { - if (bufferSize === void 0) { - bufferSize = Number.POSITIVE_INFINITY; - } - if (windowTime === void 0) { - windowTime = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this) || this; - _this.scheduler = scheduler; - _this._events = []; - _this._infiniteTimeWindow = false; - _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; - _this._windowTime = windowTime < 1 ? 1 : windowTime; - if (windowTime === Number.POSITIVE_INFINITY) { - _this._infiniteTimeWindow = true; - _this.next = _this.nextInfiniteTimeWindow; - } - else { - _this.next = _this.nextTimeWindow; - } - return _this; - } - ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { - var _events = this._events; - _events.push(value); - if (_events.length > this._bufferSize) { - _events.shift(); - } - _super.prototype.next.call(this, value); - }; - ReplaySubject.prototype.nextTimeWindow = function (value) { - this._events.push(new ReplayEvent(this._getNow(), value)); - this._trimBufferThenGetEvents(); - _super.prototype.next.call(this, value); - }; - ReplaySubject.prototype._subscribe = function (subscriber) { - var _infiniteTimeWindow = this._infiniteTimeWindow; - var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); - var scheduler = this.scheduler; - var len = _events.length; - var subscription; - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - else if (this.isStopped || this.hasError) { - subscription = Subscription.EMPTY; - } - else { - this.observers.push(subscriber); - subscription = new SubjectSubscription(this, subscriber); - } - if (scheduler) { - subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); - } - if (_infiniteTimeWindow) { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i]); - } - } - else { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i].value); - } - } - if (this.hasError) { - subscriber.error(this.thrownError); - } - else if (this.isStopped) { - subscriber.complete(); - } - return subscription; - }; - ReplaySubject.prototype._getNow = function () { - return (this.scheduler || queue).now(); - }; - ReplaySubject.prototype._trimBufferThenGetEvents = function () { - var now = this._getNow(); - var _bufferSize = this._bufferSize; - var _windowTime = this._windowTime; - var _events = this._events; - var eventsCount = _events.length; - var spliceCount = 0; - while (spliceCount < eventsCount) { - if ((now - _events[spliceCount].time) < _windowTime) { - break; - } - spliceCount++; - } - if (eventsCount > _bufferSize) { - spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); - } - if (spliceCount > 0) { - _events.splice(0, spliceCount); - } - return _events; - }; - return ReplaySubject; - }(Subject)); - var ReplayEvent = /*@__PURE__*/ (function () { - function ReplayEvent(time, value) { - this.time = time; - this.value = value; - } - return ReplayEvent; - }()); - //# sourceMappingURL=ReplaySubject.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ - //# sourceMappingURL=AsyncSubject.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=Immediate.js.map - - /** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ - //# sourceMappingURL=AsapAction.js.map - - /** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=AsapScheduler.js.map - - /** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=asap.js.map - - /** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ - var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction); - //# sourceMappingURL=async.js.map - - /** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ - //# sourceMappingURL=AnimationFrameAction.js.map - - /** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=AnimationFrameScheduler.js.map - - /** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=animationFrame.js.map - - /** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=VirtualTimeScheduler.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function identity(x) { - return x; - } - //# sourceMappingURL=identity.js.map - - /** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - function isObservable(obj) { - return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); - } - //# sourceMappingURL=isObservable.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function ArgumentOutOfRangeErrorImpl() { - Error.call(this); - this.message = 'argument out of range'; - this.name = 'ArgumentOutOfRangeError'; - return this; - } - ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; - //# sourceMappingURL=ArgumentOutOfRangeError.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=EmptyError.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=TimeoutError.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function map(project, thisArg) { - return function mapOperation(source) { - if (typeof project !== 'function') { - throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); - } - return source.lift(new MapOperator(project, thisArg)); - }; - } - var MapOperator = /*@__PURE__*/ (function () { - function MapOperator(project, thisArg) { - this.project = project; - this.thisArg = thisArg; - } - MapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); - }; - return MapOperator; - }()); - var MapSubscriber = /*@__PURE__*/ (function (_super) { - __extends(MapSubscriber, _super); - function MapSubscriber(destination, project, thisArg) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.count = 0; - _this.thisArg = thisArg || _this; - return _this; - } - MapSubscriber.prototype._next = function (value) { - var result; - try { - result = this.project.call(this.thisArg, value, this.count++); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(result); - }; - return MapSubscriber; - }(Subscriber)); - //# sourceMappingURL=map.js.map - - /** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=bindCallback.js.map - - /** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ - //# sourceMappingURL=bindNodeCallback.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - var OuterSubscriber = /*@__PURE__*/ (function (_super) { - __extends(OuterSubscriber, _super); - function OuterSubscriber() { - return _super !== null && _super.apply(this, arguments) || this; - } - OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - OuterSubscriber.prototype.notifyError = function (error, innerSub) { - this.destination.error(error); - }; - OuterSubscriber.prototype.notifyComplete = function (innerSub) { - this.destination.complete(); - }; - return OuterSubscriber; - }(Subscriber)); - //# sourceMappingURL=OuterSubscriber.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - var InnerSubscriber = /*@__PURE__*/ (function (_super) { - __extends(InnerSubscriber, _super); - function InnerSubscriber(parent, outerValue, outerIndex) { - var _this = _super.call(this) || this; - _this.parent = parent; - _this.outerValue = outerValue; - _this.outerIndex = outerIndex; - _this.index = 0; - return _this; - } - InnerSubscriber.prototype._next = function (value) { - this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); - }; - InnerSubscriber.prototype._error = function (error) { - this.parent.notifyError(error, this); - this.unsubscribe(); - }; - InnerSubscriber.prototype._complete = function () { - this.parent.notifyComplete(this); - this.unsubscribe(); - }; - return InnerSubscriber; - }(Subscriber)); - //# sourceMappingURL=InnerSubscriber.js.map - - /** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ - var subscribeToPromise = function (promise) { - return function (subscriber) { - promise.then(function (value) { - if (!subscriber.closed) { - subscriber.next(value); - subscriber.complete(); - } - }, function (err) { return subscriber.error(err); }) - .then(null, hostReportError); - return subscriber; - }; - }; - //# sourceMappingURL=subscribeToPromise.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function getSymbolIterator() { - if (typeof Symbol !== 'function' || !Symbol.iterator) { - return '@@iterator'; - } - return Symbol.iterator; - } - var iterator = /*@__PURE__*/ getSymbolIterator(); - //# sourceMappingURL=iterator.js.map - - /** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ - var subscribeToIterable = function (iterable) { - return function (subscriber) { - var iterator$1 = iterable[iterator](); - do { - var item = iterator$1.next(); - if (item.done) { - subscriber.complete(); - break; - } - subscriber.next(item.value); - if (subscriber.closed) { - break; - } - } while (true); - if (typeof iterator$1.return === 'function') { - subscriber.add(function () { - if (iterator$1.return) { - iterator$1.return(); - } - }); - } - return subscriber; - }; - }; - //# sourceMappingURL=subscribeToIterable.js.map - - /** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - var subscribeToObservable = function (obj) { - return function (subscriber) { - var obs = obj[observable](); - if (typeof obs.subscribe !== 'function') { - throw new TypeError('Provided object does not correctly implement Symbol.observable'); - } - else { - return obs.subscribe(subscriber); - } - }; - }; - //# sourceMappingURL=subscribeToObservable.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); - //# sourceMappingURL=isArrayLike.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function isPromise(value) { - return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; - } - //# sourceMappingURL=isPromise.js.map - - /** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ - var subscribeTo = function (result) { - if (!!result && typeof result[observable] === 'function') { - return subscribeToObservable(result); - } - else if (isArrayLike(result)) { - return subscribeToArray(result); - } - else if (isPromise(result)) { - return subscribeToPromise(result); - } - else if (!!result && typeof result[iterator] === 'function') { - return subscribeToIterable(result); - } - else { - var value = isObject(result) ? 'an invalid object' : "'" + result + "'"; - var msg = "You provided " + value + " where a stream was expected." - + ' You can provide an Observable, Promise, Array, or Iterable.'; - throw new TypeError(msg); - } - }; - //# sourceMappingURL=subscribeTo.js.map - - /** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */ - function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) { - if (destination === void 0) { - destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); - } - if (destination.closed) { - return undefined; - } - if (result instanceof Observable) { - return result.subscribe(destination); - } - return subscribeTo(result)(destination); - } - //# sourceMappingURL=subscribeToResult.js.map - - /** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ - var NONE = {}; - function combineLatest() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var resultSelector = null; - var scheduler = null; - if (isScheduler(observables[observables.length - 1])) { - scheduler = observables.pop(); - } - if (typeof observables[observables.length - 1] === 'function') { - resultSelector = observables.pop(); - } - if (observables.length === 1 && isArray(observables[0])) { - observables = observables[0]; - } - return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); - } - var CombineLatestOperator = /*@__PURE__*/ (function () { - function CombineLatestOperator(resultSelector) { - this.resultSelector = resultSelector; - } - CombineLatestOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); - }; - return CombineLatestOperator; - }()); - var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { - __extends(CombineLatestSubscriber, _super); - function CombineLatestSubscriber(destination, resultSelector) { - var _this = _super.call(this, destination) || this; - _this.resultSelector = resultSelector; - _this.active = 0; - _this.values = []; - _this.observables = []; - return _this; - } - CombineLatestSubscriber.prototype._next = function (observable) { - this.values.push(NONE); - this.observables.push(observable); - }; - CombineLatestSubscriber.prototype._complete = function () { - var observables = this.observables; - var len = observables.length; - if (len === 0) { - this.destination.complete(); - } - else { - this.active = len; - this.toRespond = len; - for (var i = 0; i < len; i++) { - var observable = observables[i]; - this.add(subscribeToResult(this, observable, observable, i)); - } - } - }; - CombineLatestSubscriber.prototype.notifyComplete = function (unused) { - if ((this.active -= 1) === 0) { - this.destination.complete(); - } - }; - CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var values = this.values; - var oldVal = values[outerIndex]; - var toRespond = !this.toRespond - ? 0 - : oldVal === NONE ? --this.toRespond : this.toRespond; - values[outerIndex] = innerValue; - if (toRespond === 0) { - if (this.resultSelector) { - this._tryResultSelector(values); - } - else { - this.destination.next(values.slice()); - } - } - }; - CombineLatestSubscriber.prototype._tryResultSelector = function (values) { - var result; - try { - result = this.resultSelector.apply(this, values); - } - catch (err) { - this.destination.error(err); - return; - } - this.destination.next(result); - }; - return CombineLatestSubscriber; - }(OuterSubscriber)); - //# sourceMappingURL=combineLatest.js.map - - /** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */ - function scheduleObservable(input, scheduler) { - return new Observable(function (subscriber) { - var sub = new Subscription(); - sub.add(scheduler.schedule(function () { - var observable$1 = input[observable](); - sub.add(observable$1.subscribe({ - next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, - error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, - complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, - })); - })); - return sub; - }); - } - //# sourceMappingURL=scheduleObservable.js.map - - /** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ - function schedulePromise(input, scheduler) { - return new Observable(function (subscriber) { - var sub = new Subscription(); - sub.add(scheduler.schedule(function () { - return input.then(function (value) { - sub.add(scheduler.schedule(function () { - subscriber.next(value); - sub.add(scheduler.schedule(function () { return subscriber.complete(); })); - })); - }, function (err) { - sub.add(scheduler.schedule(function () { return subscriber.error(err); })); - }); - })); - return sub; - }); - } - //# sourceMappingURL=schedulePromise.js.map - - /** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */ - function scheduleIterable(input, scheduler) { - if (!input) { - throw new Error('Iterable cannot be null'); - } - return new Observable(function (subscriber) { - var sub = new Subscription(); - var iterator$1; - sub.add(function () { - if (iterator$1 && typeof iterator$1.return === 'function') { - iterator$1.return(); - } - }); - sub.add(scheduler.schedule(function () { - iterator$1 = input[iterator](); - sub.add(scheduler.schedule(function () { - if (subscriber.closed) { - return; - } - var value; - var done; - try { - var result = iterator$1.next(); - value = result.value; - done = result.done; - } - catch (err) { - subscriber.error(err); - return; - } - if (done) { - subscriber.complete(); - } - else { - subscriber.next(value); - this.schedule(); - } - })); - })); - return sub; - }); - } - //# sourceMappingURL=scheduleIterable.js.map - - /** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - function isInteropObservable(input) { - return input && typeof input[observable] === 'function'; - } - //# sourceMappingURL=isInteropObservable.js.map - - /** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ - function isIterable(input) { - return input && typeof input[iterator] === 'function'; - } - //# sourceMappingURL=isIterable.js.map - - /** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */ - function scheduled(input, scheduler) { - if (input != null) { - if (isInteropObservable(input)) { - return scheduleObservable(input, scheduler); - } - else if (isPromise(input)) { - return schedulePromise(input, scheduler); - } - else if (isArrayLike(input)) { - return scheduleArray(input, scheduler); - } - else if (isIterable(input) || typeof input === 'string') { - return scheduleIterable(input, scheduler); - } - } - throw new TypeError((input !== null && typeof input || input) + ' is not observable'); - } - //# sourceMappingURL=scheduled.js.map - - /** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */ - function from(input, scheduler) { - if (!scheduler) { - if (input instanceof Observable) { - return input; - } - return new Observable(subscribeTo(input)); - } - else { - return scheduled(input, scheduler); - } - } - //# sourceMappingURL=from.js.map - - /** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */ - function mergeMap(project, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; - } - else if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; - } - var MergeMapOperator = /*@__PURE__*/ (function () { - function MergeMapOperator(project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - this.project = project; - this.concurrent = concurrent; - } - MergeMapOperator.prototype.call = function (observer, source) { - return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); - }; - return MergeMapOperator; - }()); - var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { - __extends(MergeMapSubscriber, _super); - function MergeMapSubscriber(destination, project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.concurrent = concurrent; - _this.hasCompleted = false; - _this.buffer = []; - _this.active = 0; - _this.index = 0; - return _this; - } - MergeMapSubscriber.prototype._next = function (value) { - if (this.active < this.concurrent) { - this._tryNext(value); - } - else { - this.buffer.push(value); - } - }; - MergeMapSubscriber.prototype._tryNext = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (err) { - this.destination.error(err); - return; - } - this.active++; - this._innerSub(result, value, index); - }; - MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { - var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - subscribeToResult(this, ish, value, index, innerSubscriber); - }; - MergeMapSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.active === 0 && this.buffer.length === 0) { - this.destination.complete(); - } - this.unsubscribe(); - }; - MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - this.remove(innerSub); - this.active--; - if (buffer.length > 0) { - this._next(buffer.shift()); - } - else if (this.active === 0 && this.hasCompleted) { - this.destination.complete(); - } - }; - return MergeMapSubscriber; - }(OuterSubscriber)); - //# sourceMappingURL=mergeMap.js.map - - /** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ - function mergeAll(concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - return mergeMap(identity, concurrent); - } - //# sourceMappingURL=mergeAll.js.map - - /** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ - //# sourceMappingURL=concatAll.js.map - - /** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */ - //# sourceMappingURL=concat.js.map - - /** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ - //# sourceMappingURL=defer.js.map - - /** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */ - //# sourceMappingURL=forkJoin.js.map - - /** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ - //# sourceMappingURL=fromEvent.js.map - - /** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ - //# sourceMappingURL=fromEventPattern.js.map - - /** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=generate.js.map - - /** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ - //# sourceMappingURL=iif.js.map - - /** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ - function isNumeric(val) { - return !isArray(val) && (val - parseFloat(val) + 1) >= 0; - } - //# sourceMappingURL=isNumeric.js.map - - /** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ - //# sourceMappingURL=interval.js.map - - /** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ - function merge() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var concurrent = Number.POSITIVE_INFINITY; - var scheduler = null; - var last = observables[observables.length - 1]; - if (isScheduler(last)) { - scheduler = observables.pop(); - if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { - concurrent = observables.pop(); - } - } - else if (typeof last === 'number') { - concurrent = observables.pop(); - } - if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) { - return observables[0]; - } - return mergeAll(concurrent)(fromArray(observables, scheduler)); - } - //# sourceMappingURL=merge.js.map - - /** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ - //# sourceMappingURL=never.js.map - - /** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ - //# sourceMappingURL=onErrorResumeNext.js.map - - /** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ - //# sourceMappingURL=pairs.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=not.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function filter(predicate, thisArg) { - return function filterOperatorFunction(source) { - return source.lift(new FilterOperator(predicate, thisArg)); - }; - } - var FilterOperator = /*@__PURE__*/ (function () { - function FilterOperator(predicate, thisArg) { - this.predicate = predicate; - this.thisArg = thisArg; - } - FilterOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); - }; - return FilterOperator; - }()); - var FilterSubscriber = /*@__PURE__*/ (function (_super) { - __extends(FilterSubscriber, _super); - function FilterSubscriber(destination, predicate, thisArg) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.thisArg = thisArg; - _this.count = 0; - return _this; - } - FilterSubscriber.prototype._next = function (value) { - var result; - try { - result = this.predicate.call(this.thisArg, value, this.count++); - } - catch (err) { - this.destination.error(err); - return; - } - if (result) { - this.destination.next(value); - } - }; - return FilterSubscriber; - }(Subscriber)); - //# sourceMappingURL=filter.js.map - - /** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */ - //# sourceMappingURL=partition.js.map - - /** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=race.js.map - - /** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - //# sourceMappingURL=range.js.map - - /** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ - function timer(dueTime, periodOrScheduler, scheduler) { - if (dueTime === void 0) { - dueTime = 0; - } - var period = -1; - if (isNumeric(periodOrScheduler)) { - period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); - } - else if (isScheduler(periodOrScheduler)) { - scheduler = periodOrScheduler; - } - if (!isScheduler(scheduler)) { - scheduler = async; - } - return new Observable(function (subscriber) { - var due = isNumeric(dueTime) - ? dueTime - : (+dueTime - scheduler.now()); - return scheduler.schedule(dispatch$1, due, { - index: 0, period: period, subscriber: subscriber - }); - }); - } - function dispatch$1(state) { - var index = state.index, period = state.period, subscriber = state.subscriber; - subscriber.next(index); - if (subscriber.closed) { - return; - } - else if (period === -1) { - return subscriber.complete(); - } - state.index = index + 1; - this.schedule(state, period); - } - //# sourceMappingURL=timer.js.map - - /** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ - //# sourceMappingURL=using.js.map - - /** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */ - //# sourceMappingURL=zip.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=index.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - function audit(durationSelector) { - return function auditOperatorFunction(source) { - return source.lift(new AuditOperator(durationSelector)); - }; - } - var AuditOperator = /*@__PURE__*/ (function () { - function AuditOperator(durationSelector) { - this.durationSelector = durationSelector; - } - AuditOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); - }; - return AuditOperator; - }()); - var AuditSubscriber = /*@__PURE__*/ (function (_super) { - __extends(AuditSubscriber, _super); - function AuditSubscriber(destination, durationSelector) { - var _this = _super.call(this, destination) || this; - _this.durationSelector = durationSelector; - _this.hasValue = false; - return _this; - } - AuditSubscriber.prototype._next = function (value) { - this.value = value; - this.hasValue = true; - if (!this.throttled) { - var duration = void 0; - try { - var durationSelector = this.durationSelector; - duration = durationSelector(value); - } - catch (err) { - return this.destination.error(err); - } - var innerSubscription = subscribeToResult(this, duration); - if (!innerSubscription || innerSubscription.closed) { - this.clearThrottle(); - } - else { - this.add(this.throttled = innerSubscription); - } - } - }; - AuditSubscriber.prototype.clearThrottle = function () { - var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; - if (throttled) { - this.remove(throttled); - this.throttled = null; - throttled.unsubscribe(); - } - if (hasValue) { - this.value = null; - this.hasValue = false; - this.destination.next(value); - } - }; - AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { - this.clearThrottle(); - }; - AuditSubscriber.prototype.notifyComplete = function () { - this.clearThrottle(); - }; - return AuditSubscriber; - }(OuterSubscriber)); - //# sourceMappingURL=audit.js.map - - /** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ - function auditTime(duration, scheduler) { - if (scheduler === void 0) { - scheduler = async; - } - return audit(function () { return timer(duration, scheduler); }); - } - //# sourceMappingURL=auditTime.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=buffer.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=bufferCount.js.map - - /** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=bufferTime.js.map - - /** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ - //# sourceMappingURL=bufferToggle.js.map - - /** PURE_IMPORTS_START tslib,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=bufferWhen.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=catchError.js.map - - /** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ - //# sourceMappingURL=combineAll.js.map - - /** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ - //# sourceMappingURL=combineLatest.js.map - - /** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ - //# sourceMappingURL=concat.js.map - - /** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ - //# sourceMappingURL=concatMap.js.map - - /** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ - //# sourceMappingURL=concatMapTo.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=count.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=debounce.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ - function debounceTime(dueTime, scheduler) { - if (scheduler === void 0) { - scheduler = async; - } - return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; - } - var DebounceTimeOperator = /*@__PURE__*/ (function () { - function DebounceTimeOperator(dueTime, scheduler) { - this.dueTime = dueTime; - this.scheduler = scheduler; - } - DebounceTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); - }; - return DebounceTimeOperator; - }()); - var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { - __extends(DebounceTimeSubscriber, _super); - function DebounceTimeSubscriber(destination, dueTime, scheduler) { - var _this = _super.call(this, destination) || this; - _this.dueTime = dueTime; - _this.scheduler = scheduler; - _this.debouncedSubscription = null; - _this.lastValue = null; - _this.hasValue = false; - return _this; - } - DebounceTimeSubscriber.prototype._next = function (value) { - this.clearDebounce(); - this.lastValue = value; - this.hasValue = true; - this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); - }; - DebounceTimeSubscriber.prototype._complete = function () { - this.debouncedNext(); - this.destination.complete(); - }; - DebounceTimeSubscriber.prototype.debouncedNext = function () { - this.clearDebounce(); - if (this.hasValue) { - var lastValue = this.lastValue; - this.lastValue = null; - this.hasValue = false; - this.destination.next(lastValue); - } - }; - DebounceTimeSubscriber.prototype.clearDebounce = function () { - var debouncedSubscription = this.debouncedSubscription; - if (debouncedSubscription !== null) { - this.remove(debouncedSubscription); - debouncedSubscription.unsubscribe(); - this.debouncedSubscription = null; - } - }; - return DebounceTimeSubscriber; - }(Subscriber)); - function dispatchNext(subscriber) { - subscriber.debouncedNext(); - } - //# sourceMappingURL=debounceTime.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=defaultIfEmpty.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - function isDate(value) { - return value instanceof Date && !isNaN(+value); - } - //# sourceMappingURL=isDate.js.map - - /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ - function delay(delay, scheduler) { - if (scheduler === void 0) { - scheduler = async; - } - var absoluteDelay = isDate(delay); - var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); - return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; - } - var DelayOperator = /*@__PURE__*/ (function () { - function DelayOperator(delay, scheduler) { - this.delay = delay; - this.scheduler = scheduler; - } - DelayOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); - }; - return DelayOperator; - }()); - var DelaySubscriber = /*@__PURE__*/ (function (_super) { - __extends(DelaySubscriber, _super); - function DelaySubscriber(destination, delay, scheduler) { - var _this = _super.call(this, destination) || this; - _this.delay = delay; - _this.scheduler = scheduler; - _this.queue = []; - _this.active = false; - _this.errored = false; - return _this; - } - DelaySubscriber.dispatch = function (state) { - var source = state.source; - var queue = source.queue; - var scheduler = state.scheduler; - var destination = state.destination; - while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { - queue.shift().notification.observe(destination); - } - if (queue.length > 0) { - var delay_1 = Math.max(0, queue[0].time - scheduler.now()); - this.schedule(state, delay_1); - } - else { - this.unsubscribe(); - source.active = false; - } - }; - DelaySubscriber.prototype._schedule = function (scheduler) { - this.active = true; - var destination = this.destination; - destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { - source: this, destination: this.destination, scheduler: scheduler - })); - }; - DelaySubscriber.prototype.scheduleNotification = function (notification) { - if (this.errored === true) { - return; - } - var scheduler = this.scheduler; - var message = new DelayMessage(scheduler.now() + this.delay, notification); - this.queue.push(message); - if (this.active === false) { - this._schedule(scheduler); - } - }; - DelaySubscriber.prototype._next = function (value) { - this.scheduleNotification(Notification.createNext(value)); - }; - DelaySubscriber.prototype._error = function (err) { - this.errored = true; - this.queue = []; - this.destination.error(err); - this.unsubscribe(); - }; - DelaySubscriber.prototype._complete = function () { - this.scheduleNotification(Notification.createComplete()); - this.unsubscribe(); - }; - return DelaySubscriber; - }(Subscriber)); - var DelayMessage = /*@__PURE__*/ (function () { - function DelayMessage(time, notification) { - this.time = time; - this.notification = notification; - } - return DelayMessage; - }()); - //# sourceMappingURL=delay.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=delayWhen.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=dematerialize.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=distinct.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function distinctUntilChanged(compare, keySelector) { - return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; - } - var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { - function DistinctUntilChangedOperator(compare, keySelector) { - this.compare = compare; - this.keySelector = keySelector; - } - DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); - }; - return DistinctUntilChangedOperator; - }()); - var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { - __extends(DistinctUntilChangedSubscriber, _super); - function DistinctUntilChangedSubscriber(destination, compare, keySelector) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.hasKey = false; - if (typeof compare === 'function') { - _this.compare = compare; - } - return _this; - } - DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { - return x === y; - }; - DistinctUntilChangedSubscriber.prototype._next = function (value) { - var key; - try { - var keySelector = this.keySelector; - key = keySelector ? keySelector(value) : value; - } - catch (err) { - return this.destination.error(err); - } - var result = false; - if (this.hasKey) { - try { - var compare = this.compare; - result = compare(this.key, key); - } - catch (err) { - return this.destination.error(err); - } - } - else { - this.hasKey = true; - } - if (!result) { - this.key = key; - this.destination.next(value); - } - }; - return DistinctUntilChangedSubscriber; - }(Subscriber)); - //# sourceMappingURL=distinctUntilChanged.js.map - - /** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ - //# sourceMappingURL=distinctUntilKeyChanged.js.map - - /** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=throwIfEmpty.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - function take(count) { - return function (source) { - if (count === 0) { - return empty$2(); - } - else { - return source.lift(new TakeOperator(count)); - } - }; - } - var TakeOperator = /*@__PURE__*/ (function () { - function TakeOperator(total) { - this.total = total; - if (this.total < 0) { - throw new ArgumentOutOfRangeError; - } - } - TakeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TakeSubscriber(subscriber, this.total)); - }; - return TakeOperator; - }()); - var TakeSubscriber = /*@__PURE__*/ (function (_super) { - __extends(TakeSubscriber, _super); - function TakeSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; - return _this; - } - TakeSubscriber.prototype._next = function (value) { - var total = this.total; - var count = ++this.count; - if (count <= total) { - this.destination.next(value); - if (count === total) { - this.destination.complete(); - this.unsubscribe(); - } - } - }; - return TakeSubscriber; - }(Subscriber)); - //# sourceMappingURL=take.js.map - - /** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ - //# sourceMappingURL=elementAt.js.map - - /** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */ - //# sourceMappingURL=endWith.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=every.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=exhaust.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ - //# sourceMappingURL=exhaustMap.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=expand.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ - //# sourceMappingURL=finalize.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=find.js.map - - /** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ - //# sourceMappingURL=findIndex.js.map - - /** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ - //# sourceMappingURL=first.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=ignoreElements.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=isEmpty.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - //# sourceMappingURL=takeLast.js.map - - /** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ - //# sourceMappingURL=last.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=mapTo.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ - //# sourceMappingURL=materialize.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=scan.js.map - - /** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ - //# sourceMappingURL=reduce.js.map - - /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - //# sourceMappingURL=max.js.map - - /** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ - //# sourceMappingURL=merge.js.map - - /** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ - //# sourceMappingURL=mergeMapTo.js.map - - /** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */ - //# sourceMappingURL=mergeScan.js.map - - /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - //# sourceMappingURL=min.js.map - - /** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ - //# sourceMappingURL=multicast.js.map - - /** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=onErrorResumeNext.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function pairwise() { - return function (source) { return source.lift(new PairwiseOperator()); }; - } - var PairwiseOperator = /*@__PURE__*/ (function () { - function PairwiseOperator() { - } - PairwiseOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new PairwiseSubscriber(subscriber)); - }; - return PairwiseOperator; - }()); - var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { - __extends(PairwiseSubscriber, _super); - function PairwiseSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.hasPrev = false; - return _this; - } - PairwiseSubscriber.prototype._next = function (value) { - var pair; - if (this.hasPrev) { - pair = [this.prev, value]; - } - else { - this.hasPrev = true; - } - this.prev = value; - if (pair) { - this.destination.next(pair); - } - }; - return PairwiseSubscriber; - }(Subscriber)); - //# sourceMappingURL=pairwise.js.map - - /** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ - //# sourceMappingURL=partition.js.map - - /** PURE_IMPORTS_START _map PURE_IMPORTS_END */ - //# sourceMappingURL=pluck.js.map - - /** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ - //# sourceMappingURL=publish.js.map - - /** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ - //# sourceMappingURL=publishBehavior.js.map - - /** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ - //# sourceMappingURL=publishLast.js.map - - /** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ - //# sourceMappingURL=publishReplay.js.map - - /** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ - //# sourceMappingURL=race.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ - //# sourceMappingURL=repeat.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=repeatWhen.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=retry.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=retryWhen.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=sample.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ - //# sourceMappingURL=sampleTime.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=sequenceEqual.js.map - - /** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ - //# sourceMappingURL=share.js.map - - /** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ - //# sourceMappingURL=shareReplay.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ - //# sourceMappingURL=single.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - function skip(count) { - return function (source) { return source.lift(new SkipOperator(count)); }; - } - var SkipOperator = /*@__PURE__*/ (function () { - function SkipOperator(total) { - this.total = total; - } - SkipOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SkipSubscriber(subscriber, this.total)); - }; - return SkipOperator; - }()); - var SkipSubscriber = /*@__PURE__*/ (function (_super) { - __extends(SkipSubscriber, _super); - function SkipSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; - return _this; - } - SkipSubscriber.prototype._next = function (x) { - if (++this.count > this.total) { - this.destination.next(x); - } - }; - return SkipSubscriber; - }(Subscriber)); - //# sourceMappingURL=skip.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ - //# sourceMappingURL=skipLast.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=skipUntil.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=skipWhile.js.map - - /** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=startWith.js.map - - /** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ - //# sourceMappingURL=SubscribeOnObservable.js.map - - /** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ - //# sourceMappingURL=subscribeOn.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ - function switchMap(project, resultSelector) { - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; - } - return function (source) { return source.lift(new SwitchMapOperator(project)); }; - } - var SwitchMapOperator = /*@__PURE__*/ (function () { - function SwitchMapOperator(project) { - this.project = project; - } - SwitchMapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); - }; - return SwitchMapOperator; - }()); - var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { - __extends(SwitchMapSubscriber, _super); - function SwitchMapSubscriber(destination, project) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.index = 0; - return _this; - } - SwitchMapSubscriber.prototype._next = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (error) { - this.destination.error(error); - return; - } - this._innerSub(result, value, index); - }; - SwitchMapSubscriber.prototype._innerSub = function (result, value, index) { - var innerSubscription = this.innerSubscription; - if (innerSubscription) { - innerSubscription.unsubscribe(); - } - var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber); - }; - SwitchMapSubscriber.prototype._complete = function () { - var innerSubscription = this.innerSubscription; - if (!innerSubscription || innerSubscription.closed) { - _super.prototype._complete.call(this); - } - this.unsubscribe(); - }; - SwitchMapSubscriber.prototype._unsubscribe = function () { - this.innerSubscription = null; - }; - SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - var destination = this.destination; - destination.remove(innerSub); - this.innerSubscription = null; - if (this.isStopped) { - _super.prototype._complete.call(this); - } - }; - SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - return SwitchMapSubscriber; - }(OuterSubscriber)); - //# sourceMappingURL=switchMap.js.map - - /** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ - //# sourceMappingURL=switchAll.js.map - - /** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ - //# sourceMappingURL=switchMapTo.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=takeUntil.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - //# sourceMappingURL=takeWhile.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ - //# sourceMappingURL=tap.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=throttle.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ - //# sourceMappingURL=throttleTime.js.map - - /** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ - //# sourceMappingURL=timeInterval.js.map - - /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=timeoutWith.js.map - - /** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ - //# sourceMappingURL=timeout.js.map - - /** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ - //# sourceMappingURL=timestamp.js.map - - /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - //# sourceMappingURL=toArray.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=window.js.map - - /** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ - //# sourceMappingURL=windowCount.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ - //# sourceMappingURL=windowTime.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=windowToggle.js.map - - /** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=windowWhen.js.map - - /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - //# sourceMappingURL=withLatestFrom.js.map - - /** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ - //# sourceMappingURL=zip.js.map - - /** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ - //# sourceMappingURL=zipAll.js.map - - /** PURE_IMPORTS_START PURE_IMPORTS_END */ - //# sourceMappingURL=index.js.map - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template T - * @param {?} value - * @return {?} - */ - function isArray$1(value) { - return Array.isArray(value); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template T - * @param {?} arr - * @return {?} - */ - function isEmpty(arr) { - if (isArray$1(arr)) { - return arr.length === 0; - } - return false; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template E - * @param {?} entities - * @param {?} idKey - * @param {?} preAddEntity - * @return {?} - */ - function toEntitiesObject(entities, idKey, preAddEntity) { - var e_1, _a; - /** @type {?} */ - var acc = { - entities: {}, - ids: [] - }; - try { - for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) { - var entity = entities_1_1.value; - // evaluate the middleware first to support dynamic ids - /** @type {?} */ - var current = preAddEntity(entity); - acc.entities[current[idKey]] = current; - acc.ids.push(current[idKey]); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1); - } - finally { if (e_1) throw e_1.error; } - } - return acc; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template E - * @param {?} entities - * @param {?} id - * @return {?} - */ - function hasEntity(entities, id) { - return entities.hasOwnProperty(id); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template E - * @param {?} state - * @return {?} - */ - function hasActiveState(state) { - return state.hasOwnProperty('active'); - } - // @internal - /** - * @param {?} active - * @return {?} - */ - function isMultiActiveState(active) { - return isArray$1(active); - } - // @internal - /** - * @template E - * @param {?} __0 - * @return {?} - */ - function resolveActiveEntity(_a) { - var active = _a.active, ids = _a.ids, entities = _a.entities; - if (isMultiActiveState(active)) { - return getExitingActives(active, ids); - } - if (hasEntity(entities, active) === false) { - return null; - } - return active; - } - // @internal - /** - * @param {?} currentActivesIds - * @param {?} newIds - * @return {?} - */ - function getExitingActives(currentActivesIds, newIds) { - /** @type {?} */ - var filtered = currentActivesIds.filter((/** - * @param {?} id - * @return {?} - */ - function (id) { return newIds.indexOf(id) > -1; })); - /** Return the same reference if nothing has changed */ - if (filtered.length === currentActivesIds.length) { - return currentActivesIds; - } - return filtered; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template Entity - * @param {?} state - * @return {?} - */ - function isEntityState(state) { - return state.entities && state.ids; - } - // @internal - /** - * @template E - * @param {?} entities - * @param {?} preAddEntity - * @return {?} - */ - function applyMiddleware(entities, preAddEntity) { - var e_1, _a; - /** @type {?} */ - var mapped = {}; - try { - for (var _b = __values(Object.keys(entities)), _c = _b.next(); !_c.done; _c = _b.next()) { - var id = _c.value; - mapped[id] = preAddEntity(entities[id]); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } - return mapped; - } - // @internal - /** - * @template S, E - * @param {?} __0 - * @return {?} - */ - function setEntities(_a) { - var state = _a.state, entities = _a.entities, idKey = _a.idKey, preAddEntity = _a.preAddEntity, isNativePreAdd = _a.isNativePreAdd; - /** @type {?} */ - var newEntities; - /** @type {?} */ - var newIds; - if (isArray$1(entities)) { - /** @type {?} */ - var resolve = toEntitiesObject(entities, idKey, preAddEntity); - newEntities = resolve.entities; - newIds = resolve.ids; - } - else if (isEntityState(entities)) { - newEntities = isNativePreAdd ? entities.entities : applyMiddleware(entities.entities, preAddEntity); - newIds = entities.ids; - } - else { - // it's an object - newEntities = isNativePreAdd ? entities : applyMiddleware(entities, preAddEntity); - newIds = Object.keys(newEntities).map((/** - * @param {?} id - * @return {?} - */ - function (id) { return (isNaN((/** @type {?} */ (id))) ? id : Number(id)); })); - } - /** @type {?} */ - var newState = __assign({}, state, { entities: newEntities, ids: newIds, loading: false }); - if (hasActiveState(state)) { - newState.active = resolveActiveEntity((/** @type {?} */ (newState))); - } - return newState; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - var - // @internal - AkitaError = /** @class */ (function (_super) { - __extends(AkitaError, _super); - function AkitaError(message) { - return _super.call(this, message) || this; - } - return AkitaError; - }(Error)); - // @internal - /** - * @param {?} name - * @param {?} className - * @return {?} - */ - function assertStoreHasName(name, className) { - if (!name) { - console.error("@StoreConfig({ name }) is missing in " + className); - } - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var currentAction = { - type: null, - entityIds: null, - skip: false - }; - /** @type {?} */ - var customActionActive = false; - /** - * @return {?} - */ - function resetCustomAction() { - customActionActive = false; - } - // public API for custom actions. Custom action always wins - /** - * @param {?} type - * @param {?=} entityIds - * @return {?} - */ - function logAction(type, entityIds) { - setAction(type, entityIds); - customActionActive = true; - } - /** - * @param {?} type - * @param {?=} entityIds - * @return {?} - */ - function setAction(type, entityIds) { - if (customActionActive === false) { - currentAction.type = type; - currentAction.entityIds = entityIds; - } - } - /** - * @param {?=} skip - * @return {?} - */ - function setSkipAction(skip$$1) { - if (skip$$1 === void 0) { skip$$1 = true; } - currentAction.skip = skip$$1; - } - /** - * @param {?} action - * @param {?=} entityIds - * @return {?} - */ - function action(action, entityIds) { - return (/** - * @param {?} target - * @param {?} propertyKey - * @param {?} descriptor - * @return {?} - */ - function (target, propertyKey, descriptor) { - /** @type {?} */ - var originalMethod = descriptor.value; - descriptor.value = (/** - * @param {...?} args - * @return {?} - */ - function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - logAction(action, entityIds); - return originalMethod.apply(this, args); - }); - return descriptor; - }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** @type {?} */ - var transactionFinished = new Subject(); - // @internal - /** @type {?} */ - var transactionInProcess = new BehaviorSubject(false); - // @internal - /** @type {?} */ - var transactionManager = { - activeTransactions: 0, - batchTransaction: null - }; - // @internal - /** - * @return {?} - */ - function startBatch() { - if (!isTransactionInProcess()) { - transactionManager.batchTransaction = new Subject(); - } - transactionManager.activeTransactions++; - transactionInProcess.next(true); - } - // @internal - /** - * @return {?} - */ - function endBatch() { - if (--transactionManager.activeTransactions === 0) { - transactionManager.batchTransaction.next(true); - transactionManager.batchTransaction.complete(); - transactionInProcess.next(false); - transactionFinished.next(true); - } - } - // @internal - /** - * @return {?} - */ - function isTransactionInProcess() { - return transactionManager.activeTransactions > 0; - } - // @internal - /** - * @return {?} - */ - function commit() { - return transactionManager.batchTransaction ? transactionManager.batchTransaction.asObservable() : of(true); - } - /** - * A logical transaction. - * Use this transaction to optimize the dispatch of all the stores. - * The following code will update the store, BUT emits only once - * - * \@example - * applyTransaction(() => { - * this.todosStore.add(new Todo(1, title)); - * this.todosStore.add(new Todo(2, title)); - * }); - * - * @template T - * @param {?} action - * @param {?=} thisArg - * @return {?} - */ - function applyTransaction(action$$1, thisArg) { - if (thisArg === void 0) { thisArg = undefined; } - startBatch(); - try { - return action$$1.apply(thisArg); - } - finally { - logAction('@Transaction'); - endBatch(); - } - } - /** - * A logical transaction. - * Use this transaction to optimize the dispatch of all the stores. - * - * The following code will update the store, BUT emits only once. - * - * \@example - * \@transaction - * addTodos() { - * this.todosStore.add(new Todo(1, title)); - * this.todosStore.add(new Todo(2, title)); - * } - * - * - * @return {?} - */ - function transaction() { - return (/** - * @param {?} target - * @param {?} propertyKey - * @param {?} descriptor - * @return {?} - */ - function (target, propertyKey, descriptor) { - /** @type {?} */ - var originalMethod = descriptor.value; - descriptor.value = (/** - * @param {...?} args - * @return {?} - */ - function () { - var _this = this; - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return applyTransaction((/** - * @return {?} - */ - function () { - return originalMethod.apply(_this, args); - }), this); - }); - return descriptor; - }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} o - * @return {?} - */ - function deepFreeze(o) { - Object.freeze(o); - /** @type {?} */ - var oIsFunction = typeof o === 'function'; - /** @type {?} */ - var hasOwnProp = Object.prototype.hasOwnProperty; - Object.getOwnPropertyNames(o).forEach((/** - * @param {?} prop - * @return {?} - */ - function (prop) { - if (hasOwnProp.call(o, prop) && - (oIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true) && - o[prop] !== null && - (typeof o[prop] === 'object' || typeof o[prop] === 'function') && - !Object.isFrozen(o[prop])) { - deepFreeze(o[prop]); - } - })); - return o; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var configKey = 'akitaConfig'; - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var CONFIG = { - resettable: false - }; - // @internal - /** - * @return {?} - */ - function getAkitaConfig() { - return CONFIG; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function toBoolean(value) { - return value != null && "" + value !== 'false'; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function isPlainObject(value) { - return toBoolean(value) && value.constructor.name === 'Object'; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function isFunction$1(value) { - return typeof value === 'function'; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** @type {?} */ - var $$deleteStore = new Subject(); - // @internal - /** @type {?} */ - var $$addStore = new ReplaySubject(50, 5000); - // @internal - /** @type {?} */ - var $$updateStore = new Subject(); - // @internal - /** - * @param {?} storeName - * @return {?} - */ - function dispatchDeleted(storeName) { - $$deleteStore.next(storeName); - } - // @internal - /** - * @param {?} storeName - * @return {?} - */ - function dispatchAdded(storeName) { - $$addStore.next(storeName); - } - // @internal - /** - * @param {?} storeName - * @return {?} - */ - function dispatchUpdate(storeName) { - $$updateStore.next(storeName); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var __DEV__ = true; - // @internal - /** - * @return {?} - */ - function isDev() { - return __DEV__; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var isBrowser = typeof window !== 'undefined'; - /** @type {?} */ - var isNativeScript = typeof global !== 'undefined' && typeof ((/** @type {?} */ (global))).__runtimeVersion !== 'undefined'; - // @internal - /** @type {?} */ - var isNotBrowser = !isBrowser && !isNativeScript; - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** @type {?} */ - var __stores__ = {}; - // @internal - /** @type {?} */ - var __queries__ = {}; - if (isBrowser && isDev()) { - ((/** @type {?} */ (window))).$$stores = __stores__; - ((/** @type {?} */ (window))).$$queries = __queries__; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * - * Store for managing any type of data - * - * \@example - * - * export interface SessionState { - * token: string; - * userDetails: UserDetails - * } - * - * export function createInitialState(): SessionState { - * return { - * token: '', - * userDetails: null - * }; - * } - * - * \@StoreConfig({ name: 'session' }) - * export class SessionStore extends Store { - * constructor() { - * super(createInitialState()); - * } - * } - * @template S - */ - var /** - * - * Store for managing any type of data - * - * \@example - * - * export interface SessionState { - * token: string; - * userDetails: UserDetails - * } - * - * export function createInitialState(): SessionState { - * return { - * token: '', - * userDetails: null - * }; - * } - * - * \@StoreConfig({ name: 'session' }) - * export class SessionStore extends Store { - * constructor() { - * super(createInitialState()); - * } - * } - * @template S - */ - Store = /** @class */ (function () { - function Store(initialState, options) { - if (options === void 0) { options = {}; } - this.options = options; - this.inTransaction = false; - this.cache = { - active: new BehaviorSubject(false), - ttl: null - }; - this.onInit((/** @type {?} */ (initialState))); - } - /** - * Set the loading state - * - * @example - * - * store.setLoading(true) - * - */ - /** - * Set the loading state - * - * \@example - * - * store.setLoading(true) - * - * @param {?=} loading - * @return {?} - */ - Store.prototype.setLoading = /** - * Set the loading state - * - * \@example - * - * store.setLoading(true) - * - * @param {?=} loading - * @return {?} - */ - function (loading) { - if (loading === void 0) { loading = false; } - if (loading !== ((/** @type {?} */ (this._value()))).loading) { - isDev() && setAction('Set Loading'); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return ((/** @type {?} */ (__assign({}, state, { loading: loading })))); })); - } - }; - /** - * - * Set whether the data is cached - * - * @example - * - * store.setHasCache(true) - * store.setHasCache(false) - * - */ - /** - * - * Set whether the data is cached - * - * \@example - * - * store.setHasCache(true) - * store.setHasCache(false) - * - * @param {?} hasCache - * @return {?} - */ - Store.prototype.setHasCache = /** - * - * Set whether the data is cached - * - * \@example - * - * store.setHasCache(true) - * store.setHasCache(false) - * - * @param {?} hasCache - * @return {?} - */ - function (hasCache) { - if (hasCache !== this.cache.active.value) { - this.cache.active.next(hasCache); - } - }; - /** - * Set the error state - * - * @example - * - * store.setError({text: 'unable to load data' }) - * - */ - /** - * Set the error state - * - * \@example - * - * store.setError({text: 'unable to load data' }) - * - * @template T - * @param {?} error - * @return {?} - */ - Store.prototype.setError = /** - * Set the error state - * - * \@example - * - * store.setError({text: 'unable to load data' }) - * - * @template T - * @param {?} error - * @return {?} - */ - function (error) { - if (error !== ((/** @type {?} */ (this._value()))).error) { - isDev() && setAction('Set Error'); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return ((/** @type {?} */ (__assign({}, state, { error: error })))); })); - } - }; - // @internal - // @internal - /** - * @template R - * @param {?} project - * @return {?} - */ - Store.prototype._select = - // @internal - /** - * @template R - * @param {?} project - * @return {?} - */ - function (project) { - return this.store.asObservable().pipe(map(project), distinctUntilChanged()); - }; - // @internal - // @internal - /** - * @return {?} - */ - Store.prototype._value = - // @internal - /** - * @return {?} - */ - function () { - return this.storeValue; - }; - // @internal - // @internal - /** - * @return {?} - */ - Store.prototype._cache = - // @internal - /** - * @return {?} - */ - function () { - return this.cache.active; - }; - Object.defineProperty(Store.prototype, "config", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.constructor[configKey] || {}; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Store.prototype, "storeName", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return ((/** @type {?} */ (this.config))).storeName || ((/** @type {?} */ (this.options))).storeName || this.options.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Store.prototype, "deepFreeze", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.config.deepFreezeFn || this.options.deepFreezeFn || deepFreeze; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Store.prototype, "cacheConfig", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.config.cache || this.options.cache; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Store.prototype, "resettable", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.config.resettable || this.options.resettable; - }, - enumerable: true, - configurable: true - }); - // @internal - // @internal - /** - * @param {?} newStateFn - * @param {?=} _dispatchAction - * @return {?} - */ - Store.prototype._setState = - // @internal - /** - * @param {?} newStateFn - * @param {?=} _dispatchAction - * @return {?} - */ - function (newStateFn, _dispatchAction) { - if (_dispatchAction === void 0) { _dispatchAction = true; } - this.storeValue = __DEV__ ? this.deepFreeze(newStateFn(this._value())) : newStateFn(this._value()); - if (!this.store) { - this.store = new BehaviorSubject(this.storeValue); - return; - } - if (isTransactionInProcess()) { - this.handleTransaction(); - return; - } - this.dispatch(this.storeValue, _dispatchAction); - }; - /** - * - * Reset the current store back to the initial value - * - * @example - * - * store.reset() - * - */ - /** - * - * Reset the current store back to the initial value - * - * \@example - * - * store.reset() - * - * @return {?} - */ - Store.prototype.reset = /** - * - * Reset the current store back to the initial value - * - * \@example - * - * store.reset() - * - * @return {?} - */ - function () { - var _this = this; - if (this.isResettable()) { - isDev() && setAction('Reset'); - this._setState((/** - * @return {?} - */ - function () { return Object.assign({}, _this._initialState); })); - this.setHasCache(false); - } - else { - isDev() && console.warn("You need to enable the reset functionality"); - } - }; - /** - * @param {?} stateOrCallback - * @return {?} - */ - Store.prototype.update = /** - * @param {?} stateOrCallback - * @return {?} - */ - function (stateOrCallback) { - var _this = this; - isDev() && setAction('Update'); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - /** @type {?} */ - var newState = isFunction$1(stateOrCallback) ? stateOrCallback(state) : stateOrCallback; - /** @type {?} */ - var merged = _this.akitaPreUpdate(state, (/** @type {?} */ (__assign({}, state, newState)))); - return isPlainObject(state) ? merged : new ((/** @type {?} */ (state))).constructor(merged); - })); - }; - /** - * @param {?} newOptions - * @return {?} - */ - Store.prototype.updateStoreConfig = /** - * @param {?} newOptions - * @return {?} - */ - function (newOptions) { - this.options = __assign({}, this.options, newOptions); - }; - // @internal - // @internal - /** - * @param {?} _ - * @param {?} nextState - * @return {?} - */ - Store.prototype.akitaPreUpdate = - // @internal - /** - * @param {?} _ - * @param {?} nextState - * @return {?} - */ - function (_, nextState) { - return nextState; - }; - /** - * @return {?} - */ - Store.prototype.ngOnDestroy = /** - * @return {?} - */ - function () { - this.destroy(); - }; - /** - * - * Destroy the store - * - * @example - * - * store.destroy() - * - */ - /** - * - * Destroy the store - * - * \@example - * - * store.destroy() - * - * @return {?} - */ - Store.prototype.destroy = /** - * - * Destroy the store - * - * \@example - * - * store.destroy() - * - * @return {?} - */ - function () { - if (isNotBrowser) - return; - if (!((/** @type {?} */ (window))).hmrEnabled && this === __stores__[this.storeName]) { - delete __stores__[this.storeName]; - dispatchDeleted(this.storeName); - this.setHasCache(false); - this.cache.active.complete(); - } - }; - /** - * @private - * @param {?} initialState - * @return {?} - */ - Store.prototype.onInit = /** - * @private - * @param {?} initialState - * @return {?} - */ - function (initialState) { - __stores__[this.storeName] = this; - this._setState((/** - * @return {?} - */ - function () { return initialState; })); - dispatchAdded(this.storeName); - if (this.isResettable()) { - this._initialState = initialState; - } - isDev() && assertStoreHasName(this.storeName, this.constructor.name); - }; - /** - * @private - * @param {?} state - * @param {?=} _dispatchAction - * @return {?} - */ - Store.prototype.dispatch = /** - * @private - * @param {?} state - * @param {?=} _dispatchAction - * @return {?} - */ - function (state, _dispatchAction) { - if (_dispatchAction === void 0) { _dispatchAction = true; } - this.store.next(state); - if (_dispatchAction) { - dispatchUpdate(this.storeName); - resetCustomAction(); - } - }; - /** - * @private - * @return {?} - */ - Store.prototype.watchTransaction = /** - * @private - * @return {?} - */ - function () { - var _this = this; - commit().subscribe((/** - * @return {?} - */ - function () { - _this.inTransaction = false; - _this.dispatch(_this._value()); - })); - }; - /** - * @private - * @return {?} - */ - Store.prototype.isResettable = /** - * @private - * @return {?} - */ - function () { - if (this.resettable === false) { - return false; - } - return this.resettable || getAkitaConfig().resettable; - }; - /** - * @private - * @return {?} - */ - Store.prototype.handleTransaction = /** - * @private - * @return {?} - */ - function () { - if (!this.inTransaction) { - this.watchTransaction(); - this.inTransaction = true; - } - }; - return Store; - }()); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} v - * @return {?} - */ - function isNil(v) { - return v === null || v === undefined; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function isObject$1(value) { - /** @type {?} */ - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} idOrOptions - * @param {?} ids - * @param {?} currentActive - * @return {?} - */ - function getActiveEntities(idOrOptions, ids, currentActive) { - /** @type {?} */ - var result; - if (isArray$1(idOrOptions)) { - result = idOrOptions; - } - else { - if (isObject$1(idOrOptions)) { - if (isNil(currentActive)) - return; - ((/** @type {?} */ (idOrOptions))) = Object.assign({ wrap: true }, idOrOptions); - /** @type {?} */ - var currentIdIndex = ids.indexOf((/** @type {?} */ (currentActive))); - if (((/** @type {?} */ (idOrOptions))).prev) { - /** @type {?} */ - var isFirst = currentIdIndex === 0; - if (isFirst && !((/** @type {?} */ (idOrOptions))).wrap) - return; - result = isFirst ? ids[ids.length - 1] : ((/** @type {?} */ (ids[currentIdIndex - 1]))); - } - else if (((/** @type {?} */ (idOrOptions))).next) { - /** @type {?} */ - var isLast = ids.length === currentIdIndex + 1; - if (isLast && !((/** @type {?} */ (idOrOptions))).wrap) - return; - result = isLast ? ids[0] : ((/** @type {?} */ (ids[currentIdIndex + 1]))); - } - } - else { - if (idOrOptions === currentActive) - return; - result = (/** @type {?} */ (idOrOptions)); - } - } - return result; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template S, E - * @param {?} __0 - * @return {?} - */ - function addEntities(_a) { - var state = _a.state, entities = _a.entities, idKey = _a.idKey, _b = _a.options, options = _b === void 0 ? {} : _b, preAddEntity = _a.preAddEntity; - var e_1, _c; - /** @type {?} */ - var newEntities = {}; - /** @type {?} */ - var newIds = []; - /** @type {?} */ - var hasNewEntities = false; - try { - for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) { - var entity = entities_1_1.value; - if (hasEntity(state.entities, entity[idKey]) === false) { - // evaluate the middleware first to support dynamic ids - /** @type {?} */ - var current = preAddEntity(entity); - /** @type {?} */ - var entityId = current[idKey]; - newEntities[entityId] = current; - if (options.prepend) - newIds.unshift(entityId); - else - newIds.push(entityId); - hasNewEntities = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (entities_1_1 && !entities_1_1.done && (_c = entities_1.return)) _c.call(entities_1); - } - finally { if (e_1) throw e_1.error; } - } - return hasNewEntities - ? { - newState: __assign({}, state, { entities: __assign({}, state.entities, newEntities), ids: options.prepend ? __spread(newIds, state.ids) : __spread(state.ids, newIds) }), - newIds: newIds - } - : null; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template T - * @param {?} value - * @return {?} - */ - function coerceArray(value) { - if (isNil(value)) { - return []; - } - return Array.isArray(value) ? value : [value]; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template S, E - * @param {?} __0 - * @return {?} - */ - function removeEntities(_a) { - var state = _a.state, ids = _a.ids; - var e_1, _b; - if (isNil(ids)) - return removeAllEntities(state); - /** @type {?} */ - var entities = state.entities; - /** @type {?} */ - var newEntities = {}; - try { - for (var _c = __values(state.ids), _d = _c.next(); !_d.done; _d = _c.next()) { - var id = _d.value; - if (ids.includes(id) === false) { - newEntities[id] = entities[id]; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_d && !_d.done && (_b = _c.return)) _b.call(_c); - } - finally { if (e_1) throw e_1.error; } - } - /** @type {?} */ - var newState = __assign({}, state, { entities: newEntities, ids: state.ids.filter((/** - * @param {?} current - * @return {?} - */ - function (current) { return ids.includes(current) === false; })) }); - if (hasActiveState(state)) { - newState.active = resolveActiveEntity(newState); - } - return newState; - } - // @internal - /** - * @template S - * @param {?} state - * @return {?} - */ - function removeAllEntities(state) { - return __assign({}, state, { entities: {}, ids: [], active: isMultiActiveState(state.active) ? [] : null }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** @type {?} */ - var getInitialEntitiesState = (/** - * @return {?} - */ - function () { - return ((/** @type {?} */ ({ - entities: {}, - ids: [], - loading: true, - error: null - }))); - }); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} val - * @return {?} - */ - function isDefined(val) { - return isNil(val) === false; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template S, E - * @param {?} __0 - * @return {?} - */ - function updateEntities(_a) { - var state = _a.state, ids = _a.ids, idKey = _a.idKey, newStateOrFn = _a.newStateOrFn, preUpdateEntity = _a.preUpdateEntity; - var e_1, _b; - /** @type {?} */ - var updatedEntities = {}; - /** @type {?} */ - var isUpdatingIdKey = false; - /** @type {?} */ - var idToUpdate; - try { - for (var ids_1 = __values(ids), ids_1_1 = ids_1.next(); !ids_1_1.done; ids_1_1 = ids_1.next()) { - var id = ids_1_1.value; - // if the entity doesn't exist don't do anything - if (hasEntity(state.entities, id) === false) { - continue; - } - /** @type {?} */ - var oldEntity = state.entities[id]; - /** @type {?} */ - var newState = isFunction$1(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn; - /** @type {?} */ - var isIdChanged = newState.hasOwnProperty(idKey) && newState[idKey] !== oldEntity[idKey]; - /** @type {?} */ - var newEntity = void 0; - idToUpdate = id; - if (isIdChanged) { - isUpdatingIdKey = true; - idToUpdate = newState[idKey]; - } - /** @type {?} */ - var merged = __assign({}, oldEntity, newState); - if (isPlainObject(oldEntity)) { - newEntity = merged; - } - else { - /** - * In case that new state is class of it's own, there's - * a possibility that it will be different than the old - * class. - * For example, Old state is an instance of animal class - * and new state is instance of person class. - * To avoid run over new person class with the old animal - * class we check if the new state is a class of it's own. - * If so, use it. Otherwise, use the old state class - */ - if (isPlainObject(newState)) { - newEntity = new ((/** @type {?} */ (oldEntity))).constructor(merged); - } - else { - newEntity = new ((/** @type {?} */ (newState))).constructor(merged); - } - } - updatedEntities[idToUpdate] = preUpdateEntity(oldEntity, newEntity); - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (ids_1_1 && !ids_1_1.done && (_b = ids_1.return)) _b.call(ids_1); - } - finally { if (e_1) throw e_1.error; } - } - /** @type {?} */ - var updatedIds = state.ids; - /** @type {?} */ - var stateEntities = state.entities; - if (isUpdatingIdKey) { - var _c = __read(ids, 1), id_1 = _c[0]; - var _d = state.entities, _e = id_1, deletedEntity = _d[_e], rest = __rest(_d, [typeof _e === "symbol" ? _e : _e + ""]); - stateEntities = rest; - updatedIds = state.ids.map((/** - * @param {?} current - * @return {?} - */ - function (current) { return (current === id_1 ? idToUpdate : current); })); - } - return __assign({}, state, { entities: __assign({}, stateEntities, updatedEntities), ids: updatedIds }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @enum {number} */ - var EntityActions = { - Set: 0, - Add: 1, - Update: 2, - Remove: 3, - }; - EntityActions[EntityActions.Set] = 'Set'; - EntityActions[EntityActions.Add] = 'Add'; - EntityActions[EntityActions.Update] = 'Update'; - EntityActions[EntityActions.Remove] = 'Remove'; - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var DEFAULT_ID_KEY = 'id'; - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * - * Store for managing a collection of entities - * - * \@example - * - * export interface WidgetsState extends EntityState { } - * - * \@StoreConfig({ name: 'widgets' }) - * export class WidgetsStore extends EntityStore { - * constructor() { - * super(); - * } - * } - * - * - * @template S, DEPRECATED - */ - var EntityStore = /** @class */ (function (_super) { - __extends(EntityStore, _super); - function EntityStore(initialState, options) { - if (initialState === void 0) { initialState = {}; } - if (options === void 0) { options = {}; } - var _this = _super.call(this, __assign({}, getInitialEntitiesState(), initialState), options) || this; - _this.options = options; - _this.entityActions = new Subject(); - return _this; - } - Object.defineProperty(EntityStore.prototype, "selectEntityAction$", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.entityActions.asObservable(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntityStore.prototype, "idKey", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return ((/** @type {?} */ (this.config))).idKey || this.options.idKey || DEFAULT_ID_KEY; - }, - enumerable: true, - configurable: true - }); - /** - * - * Replace current collection with provided collection - * - * @example - * - * this.store.set([Entity, Entity]) - * this.store.set({ids: [], entities: {}}) - * this.store.set({ 1: {}, 2: {}}) - * - */ - /** - * - * Replace current collection with provided collection - * - * \@example - * - * this.store.set([Entity, Entity]) - * this.store.set({ids: [], entities: {}}) - * this.store.set({ 1: {}, 2: {}}) - * - * @param {?} entities - * @return {?} - */ - EntityStore.prototype.set = /** - * - * Replace current collection with provided collection - * - * \@example - * - * this.store.set([Entity, Entity]) - * this.store.set({ids: [], entities: {}}) - * this.store.set({ 1: {}, 2: {}}) - * - * @param {?} entities - * @return {?} - */ - function (entities) { - var _this = this; - if (isNil(entities)) - return; - isDev() && setAction('Set Entity'); - /** @type {?} */ - var isNativePreAdd = this.akitaPreAddEntity === EntityStore.prototype.akitaPreAddEntity; - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - return setEntities({ - state: state, - entities: entities, - idKey: _this.idKey, - preAddEntity: _this.akitaPreAddEntity, - isNativePreAdd: isNativePreAdd - }); - })); - this.updateCache(); - if (this.hasInitialUIState()) { - this.handleUICreation(); - } - this.entityActions.next({ type: EntityActions.Set, ids: this.ids }); - }; - /** - * Add entities - * - * @example - * - * this.store.add([Entity, Entity]) - * this.store.add(Entity) - * this.store.add(Entity, { prepend: true }) - * - * this.store.add(Entity, { loading: false }) - */ - /** - * Add entities - * - * \@example - * - * this.store.add([Entity, Entity]) - * this.store.add(Entity) - * this.store.add(Entity, { prepend: true }) - * - * this.store.add(Entity, { loading: false }) - * @param {?} entities - * @param {?=} options - * @return {?} - */ - EntityStore.prototype.add = /** - * Add entities - * - * \@example - * - * this.store.add([Entity, Entity]) - * this.store.add(Entity) - * this.store.add(Entity, { prepend: true }) - * - * this.store.add(Entity, { loading: false }) - * @param {?} entities - * @param {?=} options - * @return {?} - */ - function (entities, options) { - if (options === void 0) { options = { loading: false }; } - /** @type {?} */ - var collection = coerceArray(entities); - if (isEmpty(collection)) - return; - /** @type {?} */ - var data = addEntities({ - state: this._value(), - preAddEntity: this.akitaPreAddEntity, - entities: collection, - idKey: this.idKey, - options: options - }); - if (data) { - isDev() && setAction('Add Entity'); - this._setState((/** - * @return {?} - */ - function () { return (__assign({}, data.newState, { loading: options.loading })); })); - if (this.hasInitialUIState()) { - this.handleUICreation(true); - } - this.entityActions.next({ type: EntityActions.Add, ids: data.newIds }); - } - }; - /** - * @param {?} idsOrFnOrState - * @param {?=} newStateOrFn - * @return {?} - */ - EntityStore.prototype.update = /** - * @param {?} idsOrFnOrState - * @param {?=} newStateOrFn - * @return {?} - */ - function (idsOrFnOrState, newStateOrFn) { - var _this = this; - if (isUndefined(newStateOrFn)) { - _super.prototype.update.call(this, (/** @type {?} */ (idsOrFnOrState))); - return; - } - /** @type {?} */ - var ids = []; - if (isFunction$1(idsOrFnOrState)) { - // We need to filter according the predicate function - ids = this.ids.filter((/** - * @param {?} id - * @return {?} - */ - function (id) { return ((/** @type {?} */ (idsOrFnOrState)))(_this.entities[id]); })); - } - else { - // If it's nil we want all of them - ids = isNil(idsOrFnOrState) ? this.ids : coerceArray(idsOrFnOrState); - } - if (isEmpty(ids)) - return; - isDev() && setAction('Update Entity', ids); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - return updateEntities({ - idKey: _this.idKey, - ids: ids, - preUpdateEntity: _this.akitaPreUpdateEntity, - state: state, - newStateOrFn: newStateOrFn - }); - })); - this.entityActions.next({ type: EntityActions.Update, ids: ids }); - }; - /** - * - * Create or update - * - * @example - * - * store.upsert(1, { active: true }) - * store.upsert([2, 3], { active: true }) - * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen})) - * - */ - /** - * - * Create or update - * - * \@example - * - * store.upsert(1, { active: true }) - * store.upsert([2, 3], { active: true }) - * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen})) - * - * @param {?} ids - * @param {?} newState - * @param {?=} options - * @return {?} - */ - EntityStore.prototype.upsert = /** - * - * Create or update - * - * \@example - * - * store.upsert(1, { active: true }) - * store.upsert([2, 3], { active: true }) - * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen})) - * - * @param {?} ids - * @param {?} newState - * @param {?=} options - * @return {?} - */ - function (ids, newState, options) { - var _this = this; - if (options === void 0) { options = {}; } - /** @type {?} */ - var toArray = coerceArray(ids); - /** @type {?} */ - var predicate = (/** - * @param {?} isUpdate - * @return {?} - */ - function (isUpdate) { return (/** - * @param {?} id - * @return {?} - */ - function (id) { return hasEntity(_this.entities, id) === isUpdate; }); }); - /** @type {?} */ - var isClassBased = isFunction$1(options.baseClass); - /** @type {?} */ - var updateIds = toArray.filter(predicate(true)); - /** @type {?} */ - var newEntities = toArray.filter(predicate(false)).map((/** - * @param {?} id - * @return {?} - */ - function (id) { - var _a; - /** @type {?} */ - var entity = isFunction$1(newState) ? newState((/** @type {?} */ ({}))) : newState; - /** @type {?} */ - var withId = __assign({}, ((/** @type {?} */ (entity))), (_a = {}, _a[_this.idKey] = id, _a)); - if (isClassBased) { - return new options.baseClass(withId); - } - return withId; - })); - // it can be any of the three types - this.update((/** @type {?} */ (updateIds)), (/** @type {?} */ (newState))); - this.add(newEntities); - isDev() && logAction('Upsert Entity'); - }; - /** - * - * Upsert entity collection (idKey must be present) - * - * @example - * - * store.upsertMany([ { id: 1 }, { id: 2 }]); - * - * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true }); - * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo }); - * - */ - /** - * - * Upsert entity collection (idKey must be present) - * - * \@example - * - * store.upsertMany([ { id: 1 }, { id: 2 }]); - * - * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true }); - * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo }); - * - * @param {?} entities - * @param {?=} options - * @return {?} - */ - EntityStore.prototype.upsertMany = /** - * - * Upsert entity collection (idKey must be present) - * - * \@example - * - * store.upsertMany([ { id: 1 }, { id: 2 }]); - * - * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true }); - * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo }); - * - * @param {?} entities - * @param {?=} options - * @return {?} - */ - function (entities, options) { - if (options === void 0) { options = {}; } - var e_1, _a; - /** @type {?} */ - var addedIds = []; - /** @type {?} */ - var updatedIds = []; - /** @type {?} */ - var updatedEntities = {}; - try { - // Update the state directly to optimize performance - for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) { - var entity = entities_1_1.value; - /** @type {?} */ - var id = entity[this.idKey]; - if (hasEntity(this.entities, id)) { - updatedEntities[id] = __assign({}, this._value().entities[id], entity); - updatedIds.push(id); - } - else { - /** @type {?} */ - var newEntity = options.baseClass ? new options.baseClass(entity) : entity; - addedIds.push(id); - updatedEntities[id] = newEntity; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1); - } - finally { if (e_1) throw e_1.error; } - } - isDev() && logAction('Upsert Many'); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return (__assign({}, state, { ids: addedIds.length ? __spread(state.ids, addedIds) : state.ids, entities: __assign({}, state.entities, updatedEntities), loading: !!options.loading })); })); - updatedIds.length && this.entityActions.next({ type: EntityActions.Update, ids: updatedIds }); - addedIds.length && this.entityActions.next({ type: EntityActions.Add, ids: addedIds }); - }; - /** - * - * Replace one or more entities (except the id property) - * - * - * @example - * - * this.store.replace(5, newEntity) - * this.store.replace([1,2,3], newEntity) - */ - /** - * - * Replace one or more entities (except the id property) - * - * - * \@example - * - * this.store.replace(5, newEntity) - * this.store.replace([1,2,3], newEntity) - * @param {?} ids - * @param {?} newState - * @return {?} - */ - EntityStore.prototype.replace = /** - * - * Replace one or more entities (except the id property) - * - * - * \@example - * - * this.store.replace(5, newEntity) - * this.store.replace([1,2,3], newEntity) - * @param {?} ids - * @param {?} newState - * @return {?} - */ - function (ids, newState) { - var e_2, _a; - /** @type {?} */ - var toArray = coerceArray(ids); - if (isEmpty(toArray)) - return; - /** @type {?} */ - var replaced = {}; - try { - for (var toArray_1 = __values(toArray), toArray_1_1 = toArray_1.next(); !toArray_1_1.done; toArray_1_1 = toArray_1.next()) { - var id = toArray_1_1.value; - newState[this.idKey] = id; - replaced[id] = newState; - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (toArray_1_1 && !toArray_1_1.done && (_a = toArray_1.return)) _a.call(toArray_1); - } - finally { if (e_2) throw e_2.error; } - } - isDev() && setAction('Replace Entity', ids); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return (__assign({}, state, { entities: __assign({}, state.entities, replaced) })); })); - }; - /** - * @param {?=} idsOrFn - * @return {?} - */ - EntityStore.prototype.remove = /** - * @param {?=} idsOrFn - * @return {?} - */ - function (idsOrFn) { - var _this = this; - if (isEmpty(this.ids)) - return; - /** @type {?} */ - var idPassed = isDefined(idsOrFn); - // null means remove all - /** @type {?} */ - var ids = []; - if (isFunction$1(idsOrFn)) { - ids = this.ids.filter((/** - * @param {?} entityId - * @return {?} - */ - function (entityId) { return idsOrFn(_this.entities[entityId]); })); - } - else { - ids = idPassed ? coerceArray(idsOrFn) : null; - } - if (isEmpty(ids)) - return; - isDev() && setAction('Remove Entity', ids); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return removeEntities({ state: state, ids: ids }); })); - if (ids === null) { - this.setHasCache(false); - } - this.handleUIRemove(ids); - this.entityActions.next({ type: EntityActions.Remove, ids: ids }); - }; - /** - * - * Update the active entity - * - * @example - * - * this.store.updateActive({ completed: true }) - * this.store.updateActive(active => { - * return { - * config: { - * ..active.config, - * date - * } - * } - * }) - */ - /** - * - * Update the active entity - * - * \@example - * - * this.store.updateActive({ completed: true }) - * this.store.updateActive(active => { - * return { - * config: { - * ..active.config, - * date - * } - * } - * }) - * @param {?} newStateOrCallback - * @return {?} - */ - EntityStore.prototype.updateActive = /** - * - * Update the active entity - * - * \@example - * - * this.store.updateActive({ completed: true }) - * this.store.updateActive(active => { - * return { - * config: { - * ..active.config, - * date - * } - * } - * }) - * @param {?} newStateOrCallback - * @return {?} - */ - function (newStateOrCallback) { - /** @type {?} */ - var ids = coerceArray(this.active); - isDev() && setAction('Update Active', ids); - this.update(ids, (/** @type {?} */ (newStateOrCallback))); - }; - /** - * @param {?} idOrOptions - * @return {?} - */ - EntityStore.prototype.setActive = /** - * @param {?} idOrOptions - * @return {?} - */ - function (idOrOptions) { - /** @type {?} */ - var active = getActiveEntities(idOrOptions, this.ids, this.active); - if (active === undefined) { - return; - } - isDev() && setAction('Set Active', active); - this._setActive(active); - }; - /** - * Add active entities - * - * @example - * - * store.addActive(2); - * store.addActive([3, 4, 5]); - */ - /** - * Add active entities - * - * \@example - * - * store.addActive(2); - * store.addActive([3, 4, 5]); - * @template T - * @param {?} ids - * @return {?} - */ - EntityStore.prototype.addActive = /** - * Add active entities - * - * \@example - * - * store.addActive(2); - * store.addActive([3, 4, 5]); - * @template T - * @param {?} ids - * @return {?} - */ - function (ids) { - var _this = this; - /** @type {?} */ - var toArray = coerceArray(ids); - if (isEmpty(toArray)) - return; - /** @type {?} */ - var everyExist = toArray.every((/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.active.indexOf(id) > -1; })); - if (everyExist) - return; - isDev() && setAction('Add Active', ids); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - /** - * Protect against case that one of the items in the array exist - * @type {?} - */ - var uniques = Array.from(new Set(__spread(((/** @type {?} */ (state.active))), toArray))); - return __assign({}, state, { active: uniques }); - })); - }; - /** - * Remove active entities - * - * @example - * - * store.removeActive(2) - * store.removeActive([3, 4, 5]) - */ - /** - * Remove active entities - * - * \@example - * - * store.removeActive(2) - * store.removeActive([3, 4, 5]) - * @template T - * @param {?} ids - * @return {?} - */ - EntityStore.prototype.removeActive = /** - * Remove active entities - * - * \@example - * - * store.removeActive(2) - * store.removeActive([3, 4, 5]) - * @template T - * @param {?} ids - * @return {?} - */ - function (ids) { - var _this = this; - /** @type {?} */ - var toArray = coerceArray(ids); - if (isEmpty(toArray)) - return; - /** @type {?} */ - var someExist = toArray.some((/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.active.indexOf(id) > -1; })); - if (!someExist) - return; - isDev() && setAction('Remove Active', ids); - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - return __assign({}, state, { active: state.active.filter((/** - * @param {?} currentId - * @return {?} - */ - function (currentId) { return toArray.indexOf(currentId) === -1; })) }); - })); - }; - /** - * Toggle active entities - * - * @example - * - * store.toggle(2) - * store.toggle([3, 4, 5]) - */ - /** - * Toggle active entities - * - * \@example - * - * store.toggle(2) - * store.toggle([3, 4, 5]) - * @template T - * @param {?} ids - * @return {?} - */ - EntityStore.prototype.toggleActive = /** - * Toggle active entities - * - * \@example - * - * store.toggle(2) - * store.toggle([3, 4, 5]) - * @template T - * @param {?} ids - * @return {?} - */ - function (ids) { - var _this = this; - /** @type {?} */ - var toArray = coerceArray(ids); - /** @type {?} */ - var filterExists = (/** - * @param {?} remove - * @return {?} - */ - function (remove) { return (/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.active.includes(id) === remove; }); }); - /** @type {?} */ - var remove = toArray.filter(filterExists(true)); - /** @type {?} */ - var add = toArray.filter(filterExists(false)); - this.removeActive(remove); - this.addActive(add); - isDev() && logAction('Toggle Active'); - }; - /** - * - * Create sub UI store for managing Entity's UI state - * - * @example - * - * export type ProductUI = { - * isLoading: boolean; - * isOpen: boolean - * } - * - * interface ProductsUIState extends EntityState {} - * - * export class ProductsStore EntityStore { - * ui: EntityUIStore; - * - * constructor() { - * super(); - * this.createUIStore(); - * } - * - * } - */ - /** - * - * Create sub UI store for managing Entity's UI state - * - * \@example - * - * export type ProductUI = { - * isLoading: boolean; - * isOpen: boolean - * } - * - * interface ProductsUIState extends EntityState {} - * - * export class ProductsStore EntityStore { - * ui: EntityUIStore; - * - * constructor() { - * super(); - * this.createUIStore(); - * } - * - * } - * @param {?=} initialState - * @param {?=} storeConfig - * @return {?} - */ - EntityStore.prototype.createUIStore = /** - * - * Create sub UI store for managing Entity's UI state - * - * \@example - * - * export type ProductUI = { - * isLoading: boolean; - * isOpen: boolean - * } - * - * interface ProductsUIState extends EntityState {} - * - * export class ProductsStore EntityStore { - * ui: EntityUIStore; - * - * constructor() { - * super(); - * this.createUIStore(); - * } - * - * } - * @param {?=} initialState - * @param {?=} storeConfig - * @return {?} - */ - function (initialState, storeConfig) { - if (initialState === void 0) { initialState = {}; } - if (storeConfig === void 0) { storeConfig = {}; } - /** @type {?} */ - var defaults = { name: "UI/" + this.storeName, idKey: this.idKey }; - this.ui = new EntityUIStore(initialState, __assign({}, defaults, storeConfig)); - return this.ui; - }; - // @internal - // @internal - /** - * @return {?} - */ - EntityStore.prototype.destroy = - // @internal - /** - * @return {?} - */ - function () { - _super.prototype.destroy.call(this); - if (this.ui instanceof EntityStore) { - this.ui.destroy(); - } - this.entityActions.complete(); - }; - // @internal - // @internal - /** - * @param {?} _ - * @param {?} nextEntity - * @return {?} - */ - EntityStore.prototype.akitaPreUpdateEntity = - // @internal - /** - * @param {?} _ - * @param {?} nextEntity - * @return {?} - */ - function (_, nextEntity) { - return nextEntity; - }; - // @internal - // @internal - /** - * @param {?} newEntity - * @return {?} - */ - EntityStore.prototype.akitaPreAddEntity = - // @internal - /** - * @param {?} newEntity - * @return {?} - */ - function (newEntity) { - return newEntity; - }; - Object.defineProperty(EntityStore.prototype, "ids", { - get: /** - * @private - * @return {?} - */ - function () { - return this._value().ids; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntityStore.prototype, "entities", { - get: /** - * @private - * @return {?} - */ - function () { - return this._value().entities; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntityStore.prototype, "active", { - get: /** - * @private - * @return {?} - */ - function () { - return this._value().active; - }, - enumerable: true, - configurable: true - }); - /** - * @private - * @param {?} ids - * @return {?} - */ - EntityStore.prototype._setActive = /** - * @private - * @param {?} ids - * @return {?} - */ - function (ids) { - this._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - return __assign({}, state, { active: ids }); - })); - }; - /** - * @private - * @return {?} - */ - EntityStore.prototype.updateCache = /** - * @private - * @return {?} - */ - function () { - var _this = this; - this.setHasCache(true); - /** @type {?} */ - var ttlConfig = this.cacheConfig && this.cacheConfig.ttl; - if (ttlConfig) { - if (this.cache.ttl !== null) { - clearTimeout(this.cache.ttl); - } - this.cache.ttl = (/** @type {?} */ (setTimeout((/** - * @return {?} - */ - function () { return _this.setHasCache(false); }), ttlConfig))); - } - }; - /** - * @private - * @param {?=} add - * @return {?} - */ - EntityStore.prototype.handleUICreation = /** - * @private - * @param {?=} add - * @return {?} - */ - function (add) { - var _this = this; - if (add === void 0) { add = false; } - /** @type {?} */ - var ids = this.ids; - /** @type {?} */ - var isFunc = isFunction$1(this.ui._akitaCreateEntityFn); - /** @type {?} */ - var uiEntities; - /** @type {?} */ - var createFn = (/** - * @param {?} id - * @return {?} - */ - function (id) { - var _a; - /** @type {?} */ - var current = _this.entities[id]; - /** @type {?} */ - var ui = isFunc ? _this.ui._akitaCreateEntityFn(current) : _this.ui._akitaCreateEntityFn; - return __assign((_a = {}, _a[_this.idKey] = current[_this.idKey], _a), ui); - }); - if (add) { - uiEntities = this.ids.filter((/** - * @param {?} id - * @return {?} - */ - function (id) { return isUndefined(_this.ui.entities[id]); })).map(createFn); - } - else { - uiEntities = ids.map(createFn); - } - add ? this.ui.add(uiEntities) : this.ui.set(uiEntities); - }; - /** - * @private - * @return {?} - */ - EntityStore.prototype.hasInitialUIState = /** - * @private - * @return {?} - */ - function () { - return this.hasUIStore() && isUndefined(this.ui._akitaCreateEntityFn) === false; - }; - /** - * @private - * @param {?} ids - * @return {?} - */ - EntityStore.prototype.handleUIRemove = /** - * @private - * @param {?} ids - * @return {?} - */ - function (ids) { - if (this.hasUIStore()) { - this.ui.remove(ids); - } - }; - /** - * @private - * @return {?} - */ - EntityStore.prototype.hasUIStore = /** - * @private - * @return {?} - */ - function () { - return this.ui instanceof EntityUIStore; - }; - var _a; - __decorate([ - transaction(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object, Object, Object]), - __metadata("design:returntype", void 0) - ], EntityStore.prototype, "upsert", null); - __decorate([ - transaction(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [typeof (_a = typeof T !== "undefined" && T) === "function" ? _a : Object]), - __metadata("design:returntype", void 0) - ], EntityStore.prototype, "toggleActive", null); - return EntityStore; - }(Store)); - // @internal - /** - * @template UIState, DEPRECATED - */ - var - // @internal - /** - * @template UIState, DEPRECATED - */ - EntityUIStore = /** @class */ (function (_super) { - __extends(EntityUIStore, _super); - function EntityUIStore(initialState, storeConfig) { - if (initialState === void 0) { initialState = {}; } - if (storeConfig === void 0) { storeConfig = {}; } - return _super.call(this, initialState, storeConfig) || this; - } - /** - * - * Set the initial UI entity state. This function will determine the entity's - * initial state when we call `set()` or `add()`. - * - * @example - * - * constructor() { - * super(); - * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true })); - * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true }); - * } - * - */ - /** - * - * Set the initial UI entity state. This function will determine the entity's - * initial state when we call `set()` or `add()`. - * - * \@example - * - * constructor() { - * super(); - * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true })); - * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true }); - * } - * - * @template EntityUI, Entity - * @param {?} createFn - * @return {?} - */ - EntityUIStore.prototype.setInitialEntityState = /** - * - * Set the initial UI entity state. This function will determine the entity's - * initial state when we call `set()` or `add()`. - * - * \@example - * - * constructor() { - * super(); - * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true })); - * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true }); - * } - * - * @template EntityUI, Entity - * @param {?} createFn - * @return {?} - */ - function (createFn) { - this._akitaCreateEntityFn = createFn; - }; - return EntityUIStore; - }(EntityStore)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var queryConfigKey = 'akitaQueryConfig'; - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function isString(value) { - return typeof value === 'string'; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @template S - */ - var /** - * @template S - */ - Query = /** @class */ (function () { - function Query(store) { - this.store = store; - this.__store__ = store; - if (isDev()) { - // @internal - __queries__[store.storeName] = this; - } - } - /** - * @template R - * @param {?=} project - * @return {?} - */ - Query.prototype.select = /** - * @template R - * @param {?=} project - * @return {?} - */ - function (project) { - /** @type {?} */ - var mapFn; - if (isFunction$1(project)) { - mapFn = project; - } - else if (isString(project)) { - mapFn = (/** - * @param {?} state - * @return {?} - */ - function (state) { return state[project]; }); - } - else { - mapFn = (/** - * @param {?} state - * @return {?} - */ - function (state) { return state; }); - } - return this.store._select(mapFn); - }; - /** - * Select the loading state - * - * @example - * - * this.query.selectLoading().subscribe(isLoading => {}) - */ - /** - * Select the loading state - * - * \@example - * - * this.query.selectLoading().subscribe(isLoading => {}) - * @return {?} - */ - Query.prototype.selectLoading = /** - * Select the loading state - * - * \@example - * - * this.query.selectLoading().subscribe(isLoading => {}) - * @return {?} - */ - function () { - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return ((/** @type {?} */ (state))).loading; })); - }; - /** - * Select the error state - * - * @example - * - * this.query.selectError().subscribe(error => {}) - */ - /** - * Select the error state - * - * \@example - * - * this.query.selectError().subscribe(error => {}) - * @template ErrorType - * @return {?} - */ - Query.prototype.selectError = /** - * Select the error state - * - * \@example - * - * this.query.selectError().subscribe(error => {}) - * @template ErrorType - * @return {?} - */ - function () { - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return ((/** @type {?} */ (state))).error; })); - }; - /** - * Get the store's value - * - * @example - * - * this.query.getValue() - * - */ - /** - * Get the store's value - * - * \@example - * - * this.query.getValue() - * - * @return {?} - */ - Query.prototype.getValue = /** - * Get the store's value - * - * \@example - * - * this.query.getValue() - * - * @return {?} - */ - function () { - return this.store._value(); - }; - /** - * Select the cache state - * - * @example - * - * this.query.selectHasCache().pipe( - * switchMap(hasCache => { - * return hasCache ? of() : http().pipe(res => store.set(res)) - * }) - * ) - */ - /** - * Select the cache state - * - * \@example - * - * this.query.selectHasCache().pipe( - * switchMap(hasCache => { - * return hasCache ? of() : http().pipe(res => store.set(res)) - * }) - * ) - * @return {?} - */ - Query.prototype.selectHasCache = /** - * Select the cache state - * - * \@example - * - * this.query.selectHasCache().pipe( - * switchMap(hasCache => { - * return hasCache ? of() : http().pipe(res => store.set(res)) - * }) - * ) - * @return {?} - */ - function () { - return this.store._cache().asObservable(); - }; - /** - * Whether we've cached data - * - * @example - * - * this.query.getHasCache() - * - */ - /** - * Whether we've cached data - * - * \@example - * - * this.query.getHasCache() - * - * @return {?} - */ - Query.prototype.getHasCache = /** - * Whether we've cached data - * - * \@example - * - * this.query.getHasCache() - * - * @return {?} - */ - function () { - return this.store._cache().value; - }; - Object.defineProperty(Query.prototype, "config", { - // @internal - get: - // @internal - /** - * @return {?} - */ - function () { - return this.constructor[queryConfigKey]; - }, - enumerable: true, - configurable: true - }); - return Query; - }()); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} options - * @param {?} config - * @return {?} - */ - function sortByOptions(options, config) { - options.sortBy = options.sortBy || (config && config.sortBy); - options.sortByOrder = options.sortByOrder || (config && config.sortByOrder); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @enum {string} */ - var Order = { - ASC: 'asc', - DESC: 'desc', - }; - // @internal - /** - * @param {?} key - * @param {?=} order - * @return {?} - */ - function compareValues(key, order) { - if (order === void 0) { order = Order.ASC; } - return (/** - * @param {?} a - * @param {?} b - * @return {?} - */ - function (a, b) { - if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) { - return 0; - } - /** @type {?} */ - var varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key]; - /** @type {?} */ - var varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key]; - /** @type {?} */ - var comparison = 0; - if (varA > varB) { - comparison = 1; - } - else if (varA < varB) { - comparison = -1; - } - return order == Order.DESC ? comparison * -1 : comparison; - }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template E, S - * @param {?} state - * @param {?} options - * @return {?} - */ - function entitiesToArray(state, options) { - /** @type {?} */ - var arr = []; - var ids = state.ids, entities = state.entities; - var filterBy = options.filterBy, limitTo = options.limitTo, sortBy = options.sortBy, sortByOrder = options.sortByOrder; - var _loop_1 = function (i) { - /** @type {?} */ - var entity = entities[ids[i]]; - if (!filterBy) { - arr.push(entity); - return "continue"; - } - /** @type {?} */ - var toArray = coerceArray(filterBy); - /** @type {?} */ - var allPass = toArray.every((/** - * @param {?} fn - * @return {?} - */ - function (fn) { return fn(entity, i); })); - if (allPass) { - arr.push(entity); - } - }; - for (var i = 0; i < ids.length; i++) { - _loop_1(i); - } - if (sortBy) { - /** @type {?} */ - var _sortBy_1 = isFunction$1(sortBy) ? sortBy : compareValues(sortBy, sortByOrder); - arr = arr.sort((/** - * @param {?} a - * @param {?} b - * @return {?} - */ - function (a, b) { return _sortBy_1(a, b, state); })); - } - /** @type {?} */ - var length = Math.min(limitTo || arr.length, arr.length); - return length === arr.length ? arr : arr.slice(0, length); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template S, E - * @param {?} state - * @param {?} options - * @return {?} - */ - function entitiesToMap(state, options) { - /** @type {?} */ - var map$$1 = {}; - var filterBy = options.filterBy, limitTo = options.limitTo; - var ids = state.ids, entities = state.entities; - if (!filterBy && !limitTo) { - return entities; - } - /** @type {?} */ - var hasLimit = isNil(limitTo) === false; - if (filterBy && hasLimit) { - /** @type {?} */ - var count = 0; - var _loop_1 = function (i, length_1) { - if (count === limitTo) - return "break"; - /** @type {?} */ - var id = ids[i]; - /** @type {?} */ - var entity = entities[id]; - /** @type {?} */ - var allPass = coerceArray(filterBy).every((/** - * @param {?} fn - * @return {?} - */ - function (fn) { return fn(entity, i); })); - if (allPass) { - map$$1[id] = entity; - count++; - } - }; - for (var i = 0, length_1 = ids.length; i < length_1; i++) { - var state_1 = _loop_1(i, length_1); - if (state_1 === "break") - break; - } - } - else { - /** @type {?} */ - var finalLength = Math.min(limitTo || ids.length, ids.length); - var _loop_2 = function (i) { - /** @type {?} */ - var id = ids[i]; - /** @type {?} */ - var entity = entities[id]; - if (!filterBy) { - map$$1[id] = entity; - return "continue"; - } - /** @type {?} */ - var allPass = coerceArray(filterBy).every((/** - * @param {?} fn - * @return {?} - */ - function (fn) { return fn(entity, i); })); - if (allPass) { - map$$1[id] = entity; - } - }; - for (var i = 0; i < finalLength; i++) { - _loop_2(i); - } - } - return map$$1; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @template E - * @param {?} predicate - * @param {?} entities - * @return {?} - */ - function findEntityByPredicate(predicate, entities) { - var e_1, _a; - try { - for (var _b = __values(Object.keys(entities)), _c = _b.next(); !_c.done; _c = _b.next()) { - var entityId = _c.value; - if (predicate(entities[entityId]) === true) { - return entityId; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } - return undefined; - } - // @internal - /** - * @param {?} id - * @param {?} project - * @return {?} - */ - function getEntity(id, project) { - return (/** - * @param {?} entities - * @return {?} - */ - function (entities) { - /** @type {?} */ - var entity = entities[id]; - if (isUndefined(entity)) { - return undefined; - } - if (!project) { - return entity; - } - if (isString(project)) { - return entity[project]; - } - return ((/** @type {?} */ (project)))(entity); - }); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * - * The Entity Query is similar to the general Query, with additional functionality tailored for EntityStores. - * - * class WidgetsQuery extends QueryEntity { - * constructor(protected store: WidgetsStore) { - * super(store); - * } - * } - * - * - * - * @template S, DEPRECATED - */ - var /** - * - * The Entity Query is similar to the general Query, with additional functionality tailored for EntityStores. - * - * class WidgetsQuery extends QueryEntity { - * constructor(protected store: WidgetsStore) { - * super(store); - * } - * } - * - * - * - * @template S, DEPRECATED - */ - QueryEntity = /** @class */ (function (_super) { - __extends(QueryEntity, _super); - function QueryEntity(store, options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this, store) || this; - _this.options = options; - _this.__store__ = store; - return _this; - } - /** - * @param {?=} options - * @return {?} - */ - QueryEntity.prototype.selectAll = /** - * @param {?=} options - * @return {?} - */ - function (options) { - var _this = this; - if (options === void 0) { options = { - asObject: false - }; } - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.entities; })).pipe(map((/** - * @return {?} - */ - function () { return _this.getAll(options); }))); - }; - /** - * @param {?=} options - * @return {?} - */ - QueryEntity.prototype.getAll = /** - * @param {?=} options - * @return {?} - */ - function (options) { - if (options === void 0) { options = { asObject: false, filterBy: undefined, limitTo: undefined }; } - if (options.asObject) { - return entitiesToMap(this.getValue(), options); - } - sortByOptions(options, this.config || this.options); - return entitiesToArray(this.getValue(), options); - }; - /** - * @template R - * @param {?} ids - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectMany = /** - * @template R - * @param {?} ids - * @param {?=} project - * @return {?} - */ - function (ids, project) { - var _this = this; - if (!ids || !ids.length) - return of([]); - /** @type {?} */ - var entities = ids.map((/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.selectEntity(id, project); })); - return combineLatest(entities).pipe(map((/** - * @param {?} v - * @return {?} - */ - function (v) { return v.filter(Boolean); })), auditTime(0)); - }; - /** - * @template R - * @param {?} idOrPredicate - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectEntity = /** - * @template R - * @param {?} idOrPredicate - * @param {?=} project - * @return {?} - */ - function (idOrPredicate, project) { - /** @type {?} */ - var id = idOrPredicate; - if (isFunction$1(idOrPredicate)) { - // For performance reason we expect the entity to be in the store - ((/** @type {?} */ (id))) = findEntityByPredicate(idOrPredicate, this.getValue().entities); - } - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.entities; })).pipe(map(getEntity(id, project)), distinctUntilChanged()); - }; - /** - * Get an entity by id - * - * @example - * - * this.query.getEntity(1); - */ - /** - * Get an entity by id - * - * \@example - * - * this.query.getEntity(1); - * @param {?} id - * @return {?} - */ - QueryEntity.prototype.getEntity = /** - * Get an entity by id - * - * \@example - * - * this.query.getEntity(1); - * @param {?} id - * @return {?} - */ - function (id) { - return this.getValue().entities[(/** @type {?} */ (id))]; - }; - /** - * Select the active entity's id - * - * @example - * - * this.query.selectActiveId() - */ - /** - * Select the active entity's id - * - * \@example - * - * this.query.selectActiveId() - * @return {?} - */ - QueryEntity.prototype.selectActiveId = /** - * Select the active entity's id - * - * \@example - * - * this.query.selectActiveId() - * @return {?} - */ - function () { - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return ((/** @type {?} */ (state))).active; })); - }; - /** - * Get the active id - * - * @example - * - * this.query.getActiveId() - */ - /** - * Get the active id - * - * \@example - * - * this.query.getActiveId() - * @return {?} - */ - QueryEntity.prototype.getActiveId = /** - * Get the active id - * - * \@example - * - * this.query.getActiveId() - * @return {?} - */ - function () { - return this.getValue().active; - }; - /** - * @template R - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectActive = /** - * @template R - * @param {?=} project - * @return {?} - */ - function (project) { - var _this = this; - if (isArray$1(this.getActive())) { - return this.selectActiveId().pipe(switchMap((/** - * @param {?} ids - * @return {?} - */ - function (ids) { return _this.selectMany(ids, project); }))); - } - return this.selectActiveId().pipe(switchMap((/** - * @param {?} ids - * @return {?} - */ - function (ids) { return _this.selectEntity(ids, project); }))); - }; - /** - * @return {?} - */ - QueryEntity.prototype.getActive = /** - * @return {?} - */ - function () { - var _this = this; - /** @type {?} */ - var activeId = this.getActiveId(); - if (isArray$1(activeId)) { - return activeId.map((/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.getValue().entities[(/** @type {?} */ (id))]; })); - } - return toBoolean(activeId) ? this.getEntity(activeId) : undefined; - }; - /** - * Select the store's entity collection length - * - * @example - * - * this.query.selectCount() - * this.query.selectCount(entity => entity.completed) - */ - /** - * Select the store's entity collection length - * - * \@example - * - * this.query.selectCount() - * this.query.selectCount(entity => entity.completed) - * @param {?=} predicate - * @return {?} - */ - QueryEntity.prototype.selectCount = /** - * Select the store's entity collection length - * - * \@example - * - * this.query.selectCount() - * this.query.selectCount(entity => entity.completed) - * @param {?=} predicate - * @return {?} - */ - function (predicate) { - var _this = this; - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.entities; })).pipe(map((/** - * @return {?} - */ - function () { return _this.getCount(predicate); }))); - }; - /** - * Get the store's entity collection length - * - * @example - * - * this.query.getCount() - * this.query.getCount(entity => entity.completed) - */ - /** - * Get the store's entity collection length - * - * \@example - * - * this.query.getCount() - * this.query.getCount(entity => entity.completed) - * @param {?=} predicate - * @return {?} - */ - QueryEntity.prototype.getCount = /** - * Get the store's entity collection length - * - * \@example - * - * this.query.getCount() - * this.query.getCount(entity => entity.completed) - * @param {?=} predicate - * @return {?} - */ - function (predicate) { - if (isFunction$1(predicate)) { - return this.getAll().filter(predicate).length; - } - return this.getValue().ids.length; - }; - /** - * @template R - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectLast = /** - * @template R - * @param {?=} project - * @return {?} - */ - function (project) { - return this.selectAt((/** - * @param {?} ids - * @return {?} - */ - function (ids) { return ids[ids.length - 1]; }), project); - }; - /** - * @template R - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectFirst = /** - * @template R - * @param {?=} project - * @return {?} - */ - function (project) { - return this.selectAt((/** - * @param {?} ids - * @return {?} - */ - function (ids) { return ids[0]; }), project); - }; - /** - * @param {?=} action - * @return {?} - */ - QueryEntity.prototype.selectEntityAction = /** - * @param {?=} action - * @return {?} - */ - function (action) { - if (isUndefined(action)) { - return this.store.selectEntityAction$; - } - return this.store.selectEntityAction$.pipe(filter((/** - * @param {?} ac - * @return {?} - */ - function (ac) { return ac.type === action; })), map((/** - * @param {?} action - * @return {?} - */ - function (action) { return action.ids; }))); - }; - /** - * @param {?=} projectOrIds - * @return {?} - */ - QueryEntity.prototype.hasEntity = /** - * @param {?=} projectOrIds - * @return {?} - */ - function (projectOrIds) { - var _this = this; - if (isNil(projectOrIds)) { - return this.getValue().ids.length > 0; - } - if (isFunction$1(projectOrIds)) { - return this.getAll().some(projectOrIds); - } - if (isArray$1(projectOrIds)) { - return projectOrIds.every((/** - * @param {?} id - * @return {?} - */ - function (id) { return ((/** @type {?} */ (id))) in _this.getValue().entities; })); - } - return ((/** @type {?} */ (projectOrIds))) in this.getValue().entities; - }; - /** - * Returns whether entity store has an active entity - * - * @example - * - * this.query.hasActive() - * this.query.hasActive(3) - * - */ - /** - * Returns whether entity store has an active entity - * - * \@example - * - * this.query.hasActive() - * this.query.hasActive(3) - * - * @param {?=} id - * @return {?} - */ - QueryEntity.prototype.hasActive = /** - * Returns whether entity store has an active entity - * - * \@example - * - * this.query.hasActive() - * this.query.hasActive(3) - * - * @param {?=} id - * @return {?} - */ - function (id) { - /** @type {?} */ - var active = this.getValue().active; - if (Array.isArray(active)) { - if (isDefined(id)) { - return active.includes(id); - } - return active.length > 0; - } - return isDefined(active); - }; - /** - * - * Create sub UI query for querying Entity's UI state - * - * @example - * - * - * export class ProductsQuery extends QueryEntity { - * ui: EntityUIQuery; - * - * constructor(protected store: ProductsStore) { - * super(store); - * this.createUIQuery(); - * } - * - * } - */ - /** - * - * Create sub UI query for querying Entity's UI state - * - * \@example - * - * - * export class ProductsQuery extends QueryEntity { - * ui: EntityUIQuery; - * - * constructor(protected store: ProductsStore) { - * super(store); - * this.createUIQuery(); - * } - * - * } - * @return {?} - */ - QueryEntity.prototype.createUIQuery = /** - * - * Create sub UI query for querying Entity's UI state - * - * \@example - * - * - * export class ProductsQuery extends QueryEntity { - * ui: EntityUIQuery; - * - * constructor(protected store: ProductsStore) { - * super(store); - * this.createUIQuery(); - * } - * - * } - * @return {?} - */ - function () { - this.ui = new EntityUIQuery(this.__store__.ui); - }; - /** - * @private - * @template R - * @param {?} mapFn - * @param {?=} project - * @return {?} - */ - QueryEntity.prototype.selectAt = /** - * @private - * @template R - * @param {?} mapFn - * @param {?=} project - * @return {?} - */ - function (mapFn, project) { - var _this = this; - return this.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return (/** @type {?} */ (state.ids)); })).pipe(map(mapFn), distinctUntilChanged(), switchMap((/** - * @param {?} id - * @return {?} - */ - function (id) { return _this.selectEntity(id, project); }))); - }; - return QueryEntity; - }(Query)); - // @internal - /** - * @template UIState, DEPRECATED - */ - var - // @internal - /** - * @template UIState, DEPRECATED - */ - EntityUIQuery = /** @class */ (function (_super) { - __extends(EntityUIQuery, _super); - function EntityUIQuery(store) { - return _super.call(this, store) || this; - } - return EntityUIQuery; - }(QueryEntity)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * \@example - * - * query.selectEntity(2).pipe(filterNil) - * @type {?} - */ - var filterNil = (/** - * @template T - * @param {?} source - * @return {?} - */ - function (source) { return source.pipe(filter((/** - * @param {?} value - * @return {?} - */ - function (value) { return value !== null && typeof value !== 'undefined'; }))); }); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * \@internal - * - * \@example - * - * getValue(state, 'todos.ui') - * - * @param {?} obj - * @param {?} prop - * @return {?} - */ - function getValue(obj, prop) { - /** return the whole state */ - if (prop.split('.').length === 1) { - return obj; - } - /** @type {?} */ - var removeStoreName = prop - .split('.') - .slice(1) - .join('.'); - return removeStoreName.split('.').reduce((/** - * @param {?} acc - * @param {?} part - * @return {?} - */ - function (acc, part) { return acc && acc[part]; }), obj); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * \@internal - * - * \@example - * setValue(state, 'todos.ui', { filter: {} }) - * @param {?} obj - * @param {?} prop - * @param {?} val - * @return {?} - */ - function setValue(obj, prop, val) { - /** @type {?} */ - var split = prop.split('.'); - if (split.length === 1) { - return val; - } - obj = __assign({}, obj); - /** @type {?} */ - var lastIndex = split.length - 2; - /** @type {?} */ - var removeStoreName = prop.split('.').slice(1); - removeStoreName.reduce((/** - * @param {?} acc - * @param {?} part - * @param {?} index - * @return {?} - */ - function (acc, part, index) { - if (index === lastIndex) { - acc[part] = val; - } - else { - acc[part] = __assign({}, acc[part]); - } - return acc && acc[part]; - }), obj); - return obj; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var skipStorageUpdate = false; - /** - * @return {?} - */ - function getSkipStorageUpdate() { - return skipStorageUpdate; - } - /** - * @param {?} v - * @return {?} - */ - function isPromise$1(v) { - return v && isFunction$1(v.then); - } - /** - * @param {?} asyncOrValue - * @return {?} - */ - function observify(asyncOrValue) { - if (isPromise$1(asyncOrValue) || isObservable(asyncOrValue)) { - return from(asyncOrValue); - } - return of(asyncOrValue); - } - /** - * @param {?=} params - * @return {?} - */ - function persistState(params) { - if (isNotBrowser) - return; - /** @type {?} */ - var defaults = { - key: 'AkitaStores', - storage: typeof localStorage === 'undefined' ? params.storage : localStorage, - deserialize: JSON.parse, - serialize: JSON.stringify, - include: [], - exclude: [], - persistOnDestroy: false, - preStorageUpdate: (/** - * @param {?} storeName - * @param {?} state - * @return {?} - */ - function (storeName, state) { - return state; - }), - preStoreUpdate: (/** - * @param {?} storeName - * @param {?} state - * @return {?} - */ - function (storeName, state) { - return state; - }), - skipStorageUpdate: getSkipStorageUpdate, - preStorageUpdateOperator: (/** - * @return {?} - */ - function () { return (/** - * @param {?} source - * @return {?} - */ - function (source) { return source; }); }) - }; - var _a = Object.assign({}, defaults, params), storage = _a.storage, deserialize = _a.deserialize, serialize = _a.serialize, include = _a.include, exclude = _a.exclude, key = _a.key, preStorageUpdate = _a.preStorageUpdate, persistOnDestroy = _a.persistOnDestroy, preStorageUpdateOperator = _a.preStorageUpdateOperator, preStoreUpdate = _a.preStoreUpdate, skipStorageUpdate = _a.skipStorageUpdate; - /** @type {?} */ - var hasInclude = include.length > 0; - /** @type {?} */ - var hasExclude = exclude.length > 0; - /** @type {?} */ - var includeStores; - if (hasInclude && hasExclude) { - throw new AkitaError('You can\'t use both include and exclude'); - } - if (hasInclude) { - includeStores = include.reduce((/** - * @param {?} acc - * @param {?} path - * @return {?} - */ - function (acc, path) { - /** @type {?} */ - var storeName = path.split('.')[0]; - acc[storeName] = path; - return acc; - }), {}); - } - /** @type {?} */ - var stores = {}; - /** @type {?} */ - var acc = {}; - /** @type {?} */ - var subscriptions = []; - /** @type {?} */ - var buffer = []; - /** - * @param {?} v - * @return {?} - */ - function _save(v) { - observify(v).subscribe((/** - * @return {?} - */ - function () { - /** @type {?} */ - var next = buffer.shift(); - next && _save(next); - })); - } - // when we use the local/session storage we perform the serialize, otherwise we let the passed storage implementation to do it - /** @type {?} */ - var isLocalStorage = typeof localStorage !== 'undefined' && (storage === localStorage || storage === sessionStorage); - observify(storage.getItem(key)).subscribe((/** - * @param {?} value - * @return {?} - */ - function (value) { - /** @type {?} */ - var storageState = isObject$1(value) ? value : deserialize(value || '{}'); - /** - * @param {?} storeCache - * @return {?} - */ - function save(storeCache) { - storageState['$cache'] = __assign({}, (storageState['$cache'] || {}), storeCache); - /** @type {?} */ - var storageValue = Object.assign({}, storageState, acc); - buffer.push(storage.setItem(key, isLocalStorage ? serialize(storageValue) : storageValue)); - _save(buffer.shift()); - } - /** - * @param {?} storeName - * @param {?} path - * @return {?} - */ - function subscribe(storeName, path) { - stores[storeName] = __stores__[storeName] - ._select((/** - * @param {?} state - * @return {?} - */ - function (state) { return getValue(state, path); })) - .pipe(skip(1), filter((/** - * @return {?} - */ - function () { return skipStorageUpdate() === false; })), preStorageUpdateOperator()) - .subscribe((/** - * @param {?} data - * @return {?} - */ - function (data) { - acc[storeName] = preStorageUpdate(storeName, data); - Promise.resolve().then((/** - * @return {?} - */ - function () { - var _a; - return save((_a = {}, _a[storeName] = __stores__[storeName]._cache().getValue(), _a)); - })); - })); - } - /** - * @param {?} storeName - * @param {?} store - * @param {?} path - * @return {?} - */ - function setInitial(storeName, store, path) { - if (storeName in storageState) { - setAction('@PersistState'); - store._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { - return setValue(state, path, preStoreUpdate(storeName, storageState[storeName])); - })); - /** @type {?} */ - var hasCache = storageState['$cache'] ? storageState['$cache'][storeName] : false; - __stores__[storeName].setHasCache(hasCache); - if (store.setDirty) { - store.setDirty(); - } - } - } - subscriptions.push($$deleteStore.subscribe((/** - * @param {?} storeName - * @return {?} - */ - function (storeName) { - if (stores[storeName]) { - if (persistOnDestroy === false) { - delete storageState[storeName]; - save(false); - } - stores[storeName].unsubscribe(); - stores[storeName] = null; - } - }))); - subscriptions.push($$addStore.subscribe((/** - * @param {?} storeName - * @return {?} - */ - function (storeName) { - if (hasExclude && exclude.includes(storeName)) { - return; - } - /** @type {?} */ - var store = __stores__[storeName]; - if (hasInclude) { - /** @type {?} */ - var path = includeStores[storeName]; - if (!path) { - return; - } - setInitial(storeName, store, path); - subscribe(storeName, path); - } - else { - setInitial(storeName, store, storeName); - subscribe(storeName, storeName); - } - }))); - })); - return { - destroy: /** - * @return {?} - */ - function () { - subscriptions.forEach((/** - * @param {?} s - * @return {?} - */ - function (s) { return s.unsubscribe(); })); - for (var i = 0, keys = Object.keys(stores); i < keys.length; i++) { - /** @type {?} */ - var storeName = keys[i]; - stores[storeName].unsubscribe(); - } - stores = {}; - }, - clear: /** - * @return {?} - */ - function () { - storage.clear(); - }, - clearStore: /** - * @param {?=} storeName - * @return {?} - */ - function (storeName) { - if (isNil(storeName)) { - /** @type {?} */ - var value_1 = observify(storage.setItem(key, '{}')); - value_1.subscribe(); - return; - } - /** @type {?} */ - var value = storage.getItem(key); - observify(value).subscribe((/** - * @param {?} v - * @return {?} - */ - function (v) { - /** @type {?} */ - var storageState = deserialize(v || '{}'); - if (storageState[storeName]) { - delete storageState[storeName]; - /** @type {?} */ - var value_2 = observify(storage.setItem(key, serialize(storageState))); - value_2.subscribe(); - } - })); - } - }; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @abstract - * @template State - */ - var /** - * @abstract - * @template State - */ - AkitaPlugin = /** @class */ (function () { - function AkitaPlugin(query, config) { - this.query = query; - if (config && config.resetFn) { - if (getAkitaConfig().resettable) { - this.onReset(config.resetFn); - } - } - } - /** This method is responsible for getting access to the query. */ - /** - * This method is responsible for getting access to the query. - * @protected - * @return {?} - */ - AkitaPlugin.prototype.getQuery = /** - * This method is responsible for getting access to the query. - * @protected - * @return {?} - */ - function () { - return this.query; - }; - /** This method is responsible for getting access to the store. */ - /** - * This method is responsible for getting access to the store. - * @protected - * @return {?} - */ - AkitaPlugin.prototype.getStore = /** - * This method is responsible for getting access to the store. - * @protected - * @return {?} - */ - function () { - return this.getQuery().__store__; - }; - /** This method is responsible tells whether the plugin is entityBased or not. */ - /** - * This method is responsible tells whether the plugin is entityBased or not. - * @protected - * @param {?} entityId - * @return {?} - */ - AkitaPlugin.prototype.isEntityBased = /** - * This method is responsible tells whether the plugin is entityBased or not. - * @protected - * @param {?} entityId - * @return {?} - */ - function (entityId) { - return toBoolean(entityId); - }; - /** This method is responsible for selecting the source; it can be the whole store or one entity. */ - /** - * This method is responsible for selecting the source; it can be the whole store or one entity. - * @protected - * @param {?} entityId - * @return {?} - */ - AkitaPlugin.prototype.selectSource = /** - * This method is responsible for selecting the source; it can be the whole store or one entity. - * @protected - * @param {?} entityId - * @return {?} - */ - function (entityId) { - if (this.isEntityBased(entityId)) { - return ((/** @type {?} */ (this.getQuery()))).selectEntity(entityId).pipe(filterNil); - } - return ((/** @type {?} */ (this.getQuery()))).select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state; })); - }; - /** - * @protected - * @param {?} entityId - * @return {?} - */ - AkitaPlugin.prototype.getSource = /** - * @protected - * @param {?} entityId - * @return {?} - */ - function (entityId) { - if (this.isEntityBased(entityId)) { - return ((/** @type {?} */ (this.getQuery()))).getEntity(entityId); - } - return this.getQuery().getValue(); - }; - /** This method is responsible for updating the store or one entity; it can be the whole store or one entity. */ - /** - * This method is responsible for updating the store or one entity; it can be the whole store or one entity. - * @protected - * @param {?} newState - * @param {?=} entityId - * @return {?} - */ - AkitaPlugin.prototype.updateStore = /** - * This method is responsible for updating the store or one entity; it can be the whole store or one entity. - * @protected - * @param {?} newState - * @param {?=} entityId - * @return {?} - */ - function (newState, entityId) { - if (this.isEntityBased(entityId)) { - this.getStore().update(entityId, newState); - } - else { - this.getStore()._setState((/** - * @param {?} state - * @return {?} - */ - function (state) { return (__assign({}, state, newState)); })); - } - }; - /** - * Function to invoke upon reset - */ - /** - * Function to invoke upon reset - * @private - * @param {?} fn - * @return {?} - */ - AkitaPlugin.prototype.onReset = /** - * Function to invoke upon reset - * @private - * @param {?} fn - * @return {?} - */ - function (fn) { - var _this = this; - /** @type {?} */ - var original = this.getStore().reset; - this.getStore().reset = (/** - * @param {...?} params - * @return {?} - */ - function () { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - /** It should run after the plugin destroy method */ - setTimeout((/** - * @return {?} - */ - function () { - original.apply(_this.getStore(), params); - fn(); - })); - }); - }; - return AkitaPlugin; - }()); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var paginatorDefaults = { - pagesControls: false, - range: false, - startWith: 1, - cacheTimeout: undefined, - clearStoreWithCache: true - }; - /** - * @template State - */ - var PaginatorPlugin = /** @class */ (function (_super) { - __extends(PaginatorPlugin, _super); - function PaginatorPlugin(query, config) { - if (config === void 0) { config = {}; } - var _this = _super.call(this, query, { - resetFn: (/** - * @return {?} - */ - function () { - _this.initial = false; - _this.destroy({ clearCache: true, currentPage: 1 }); - }) - }) || this; - _this.query = query; - _this.config = config; - /** - * Save current filters, sorting, etc. in cache - */ - _this.metadata = new Map(); - _this.pages = new Map(); - _this.pagination = { - currentPage: 1, - perPage: 0, - total: 0, - lastPage: 0, - data: [] - }; - /** - * When the user navigates to a different page and return - * we don't want to call `clearCache` on first time. - */ - _this.initial = true; - /** - * Proxy to the query loading - */ - _this.isLoading$ = _this.query.selectLoading().pipe(delay(0)); - _this.config = Object.assign(paginatorDefaults, config); - var _a = _this.config, startWith = _a.startWith, cacheTimeout = _a.cacheTimeout; - _this.page = new BehaviorSubject(startWith); - if (isObservable(cacheTimeout)) { - _this.clearCacheSubscription = cacheTimeout.subscribe((/** - * @return {?} - */ - function () { return _this.clearCache(); })); - } - return _this; - } - Object.defineProperty(PaginatorPlugin.prototype, "pageChanges", { - /** - * Listen to page changes - */ - get: /** - * Listen to page changes - * @return {?} - */ - function () { - return this.page.asObservable(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(PaginatorPlugin.prototype, "currentPage", { - /** - * Get the current page number - */ - get: /** - * Get the current page number - * @return {?} - */ - function () { - return this.pagination.currentPage; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(PaginatorPlugin.prototype, "isFirst", { - /** - * Check if current page is the first one - */ - get: /** - * Check if current page is the first one - * @return {?} - */ - function () { - return this.currentPage === 1; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(PaginatorPlugin.prototype, "isLast", { - /** - * Check if current page is the last one - */ - get: /** - * Check if current page is the last one - * @return {?} - */ - function () { - return this.currentPage === this.pagination.lastPage; - }, - enumerable: true, - configurable: true - }); - /** - * Whether to generate an array of pages for *ngFor - * [1, 2, 3, 4] - */ - /** - * Whether to generate an array of pages for *ngFor - * [1, 2, 3, 4] - * @template THIS - * @this {THIS} - * @return {THIS} - */ - PaginatorPlugin.prototype.withControls = /** - * Whether to generate an array of pages for *ngFor - * [1, 2, 3, 4] - * @template THIS - * @this {THIS} - * @return {THIS} - */ - function () { - (/** @type {?} */ (this)).config.pagesControls = true; - return (/** @type {?} */ (this)); - }; - /** - * Whether to generate the `from` and `to` keys - * [1, 2, 3, 4] - */ - /** - * Whether to generate the `from` and `to` keys - * [1, 2, 3, 4] - * @template THIS - * @this {THIS} - * @return {THIS} - */ - PaginatorPlugin.prototype.withRange = /** - * Whether to generate the `from` and `to` keys - * [1, 2, 3, 4] - * @template THIS - * @this {THIS} - * @return {THIS} - */ - function () { - (/** @type {?} */ (this)).config.range = true; - return (/** @type {?} */ (this)); - }; - /** - * Set the loading state - */ - /** - * Set the loading state - * @param {?=} value - * @return {?} - */ - PaginatorPlugin.prototype.setLoading = /** - * Set the loading state - * @param {?=} value - * @return {?} - */ - function (value) { - if (value === void 0) { value = true; } - this.getStore().setLoading(value); - }; - /** - * Update the pagination object and add the page - */ - /** - * Update the pagination object and add the page - * @param {?} response - * @return {?} - */ - PaginatorPlugin.prototype.update = /** - * Update the pagination object and add the page - * @param {?} response - * @return {?} - */ - function (response) { - this.pagination = response; - this.addPage(response.data); - }; - /** - * - * Set the ids and add the page to store - */ - /** - * - * Set the ids and add the page to store - * @param {?} data - * @return {?} - */ - PaginatorPlugin.prototype.addPage = /** - * - * Set the ids and add the page to store - * @param {?} data - * @return {?} - */ - function (data) { - var _this = this; - this.pages.set(this.currentPage, { ids: data.map((/** - * @param {?} entity - * @return {?} - */ - function (entity) { return entity[_this.getStore().idKey]; })) }); - this.getStore().add(data); - }; - /** - * Clear the cache. - */ - /** - * Clear the cache. - * @param {?=} options - * @return {?} - */ - PaginatorPlugin.prototype.clearCache = /** - * Clear the cache. - * @param {?=} options - * @return {?} - */ - function (options) { - if (options === void 0) { options = {}; } - if (!this.initial) { - logAction('@Pagination - Clear Cache'); - if (options.clearStore !== false && (this.config.clearStoreWithCache || options.clearStore)) { - this.getStore().remove(); - } - this.pages = new Map(); - this.metadata = new Map(); - } - this.initial = false; - }; - /** - * @param {?} page - * @return {?} - */ - PaginatorPlugin.prototype.clearPage = /** - * @param {?} page - * @return {?} - */ - function (page) { - this.pages.delete(page); - }; - /** - * Clear the cache timeout and optionally the pages - */ - /** - * Clear the cache timeout and optionally the pages - * @param {?=} __0 - * @return {?} - */ - PaginatorPlugin.prototype.destroy = /** - * Clear the cache timeout and optionally the pages - * @param {?=} __0 - * @return {?} - */ - function (_a) { - var _b = _a === void 0 ? {} : _a, clearCache = _b.clearCache, currentPage = _b.currentPage; - if (this.clearCacheSubscription) { - this.clearCacheSubscription.unsubscribe(); - } - if (clearCache) { - this.clearCache(); - } - if (!isUndefined(currentPage)) { - this.setPage(currentPage); - } - this.initial = true; - }; - /** - * Whether the provided page is active - */ - /** - * Whether the provided page is active - * @param {?} page - * @return {?} - */ - PaginatorPlugin.prototype.isPageActive = /** - * Whether the provided page is active - * @param {?} page - * @return {?} - */ - function (page) { - return this.currentPage === page; - }; - /** - * Set the current page - */ - /** - * Set the current page - * @param {?} page - * @return {?} - */ - PaginatorPlugin.prototype.setPage = /** - * Set the current page - * @param {?} page - * @return {?} - */ - function (page) { - if (page !== this.currentPage || !this.hasPage(page)) { - this.page.next((this.pagination.currentPage = page)); - } - }; - /** - * Increment current page - */ - /** - * Increment current page - * @return {?} - */ - PaginatorPlugin.prototype.nextPage = /** - * Increment current page - * @return {?} - */ - function () { - if (this.currentPage !== this.pagination.lastPage) { - this.setPage(this.pagination.currentPage + 1); - } - }; - /** - * Decrement current page - */ - /** - * Decrement current page - * @return {?} - */ - PaginatorPlugin.prototype.prevPage = /** - * Decrement current page - * @return {?} - */ - function () { - if (this.pagination.currentPage > 1) { - this.setPage(this.pagination.currentPage - 1); - } - }; - /** - * Set current page to last - */ - /** - * Set current page to last - * @return {?} - */ - PaginatorPlugin.prototype.setLastPage = /** - * Set current page to last - * @return {?} - */ - function () { - this.setPage(this.pagination.lastPage); - }; - /** - * Set current page to first - */ - /** - * Set current page to first - * @return {?} - */ - PaginatorPlugin.prototype.setFirstPage = /** - * Set current page to first - * @return {?} - */ - function () { - this.setPage(1); - }; - /** - * Check if page exists in cache - */ - /** - * Check if page exists in cache - * @param {?} page - * @return {?} - */ - PaginatorPlugin.prototype.hasPage = /** - * Check if page exists in cache - * @param {?} page - * @return {?} - */ - function (page) { - return this.pages.has(page); - }; - /** - * Get the current page if it's in cache, otherwise invoke the request - */ - /** - * Get the current page if it's in cache, otherwise invoke the request - * @param {?} req - * @return {?} - */ - PaginatorPlugin.prototype.getPage = /** - * Get the current page if it's in cache, otherwise invoke the request - * @param {?} req - * @return {?} - */ - function (req) { - var _this = this; - /** @type {?} */ - var page = this.pagination.currentPage; - if (this.hasPage(page)) { - return this.selectPage(page); - } - else { - this.setLoading(true); - return from(req()).pipe(switchMap((/** - * @param {?} config - * @return {?} - */ - function (config) { - page = config.currentPage; - applyTransaction((/** - * @return {?} - */ - function () { - _this.setLoading(false); - _this.update(config); - })); - return _this.selectPage(page); - }))); - } - }; - /** - * @return {?} - */ - PaginatorPlugin.prototype.getQuery = /** - * @return {?} - */ - function () { - return this.query; - }; - /** - * @return {?} - */ - PaginatorPlugin.prototype.refreshCurrentPage = /** - * @return {?} - */ - function () { - if (isNil(this.currentPage) === false) { - this.clearPage(this.currentPage); - this.setPage(this.currentPage); - } - }; - /** - * @private - * @return {?} - */ - PaginatorPlugin.prototype.getFrom = /** - * @private - * @return {?} - */ - function () { - if (this.isFirst) { - return 1; - } - return (this.currentPage - 1) * this.pagination.perPage + 1; - }; - /** - * @private - * @return {?} - */ - PaginatorPlugin.prototype.getTo = /** - * @private - * @return {?} - */ - function () { - if (this.isLast) { - return this.pagination.total; - } - return this.currentPage * this.pagination.perPage; - }; - /** - * Select the page - */ - /** - * Select the page - * @private - * @param {?} page - * @return {?} - */ - PaginatorPlugin.prototype.selectPage = /** - * Select the page - * @private - * @param {?} page - * @return {?} - */ - function (page) { - var _this = this; - return this.query.selectAll({ asObject: true }).pipe(take(1), map((/** - * @param {?} entities - * @return {?} - */ - function (entities) { - /** @type {?} */ - var response = __assign({}, _this.pagination, { data: _this.pages.get(page).ids.map((/** - * @param {?} id - * @return {?} - */ - function (id) { return entities[id]; })) }); - var _a = _this.config, range = _a.range, pagesControls = _a.pagesControls; - /** If no total - calc it */ - if (isNaN(_this.pagination.total)) { - if (response.lastPage === 1) { - response.total = response.data ? response.data.length : 0; - } - else { - response.total = response.perPage * response.lastPage; - } - _this.pagination.total = response.total; - } - if (range) { - response.from = _this.getFrom(); - response.to = _this.getTo(); - } - if (pagesControls) { - response.pageControls = generatePages(_this.pagination.total, _this.pagination.perPage); - } - return response; - }))); - }; - __decorate([ - action('@Pagination - New Page'), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) - ], PaginatorPlugin.prototype, "update", null); - return PaginatorPlugin; - }(AkitaPlugin)); - /** - * Generate an array so we can ngFor them to navigate between pages - * @param {?} total - * @param {?} perPage - * @return {?} - */ - function generatePages(total, perPage) { - /** @type {?} */ - var len = Math.ceil(total / perPage); - /** @type {?} */ - var arr = []; - for (var i = 0; i < len; i++) { - arr.push(i + 1); - } - return arr; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // Todo: Return AbstractControl interface - /** - * @template T - */ - var - // Todo: Return AbstractControl interface - /** - * @template T - */ - PersistNgFormPlugin = /** @class */ (function (_super) { - __extends(PersistNgFormPlugin, _super); - function PersistNgFormPlugin(query, factoryFnOrPath, params) { - if (params === void 0) { params = {}; } - var _this = _super.call(this, query) || this; - _this.query = query; - _this.factoryFnOrPath = factoryFnOrPath; - _this.params = params; - _this.params = __assign({ debounceTime: 300, formKey: 'akitaForm', emitEvent: false, arrControlFactory: (/** - * @param {?} v - * @return {?} - */ - function (v) { return _this.builder.control(v); }) }, params); - _this.isRootKeys = toBoolean(factoryFnOrPath) === false; - _this.isKeyBased = isString(factoryFnOrPath) || _this.isRootKeys; - return _this; - } - /** - * @template THIS - * @this {THIS} - * @param {?} form - * @param {?=} builder - * @return {THIS} - */ - PersistNgFormPlugin.prototype.setForm = /** - * @template THIS - * @this {THIS} - * @param {?} form - * @param {?=} builder - * @return {THIS} - */ - function (form, builder) { - (/** @type {?} */ (this)).form = form; - (/** @type {?} */ (this)).builder = builder; - (/** @type {?} */ (this)).activate(); - return (/** @type {?} */ (this)); - }; - /** - * @param {?=} initialState - * @return {?} - */ - PersistNgFormPlugin.prototype.reset = /** - * @param {?=} initialState - * @return {?} - */ - function (initialState) { - var _this = this; - var _a; - /** @type {?} */ - var value; - if (initialState) { - value = initialState; - } - else { - value = this.isKeyBased ? this.initialValue : ((/** @type {?} */ (this))).factoryFnOrPath(); - } - if (this.isKeyBased) { - Object.keys(this.initialValue).forEach((/** - * @param {?} stateKey - * @return {?} - */ - function (stateKey) { - /** @type {?} */ - var value = _this.initialValue[stateKey]; - if (Array.isArray(value) && _this.builder) { - /** @type {?} */ - var formArray = _this.form.controls[stateKey]; - _this.cleanArray(formArray); - value.forEach((/** - * @param {?} v - * @param {?} i - * @return {?} - */ - function (v, i) { - _this.form.get(stateKey).insert(i, ((/** @type {?} */ (_this.params.arrControlFactory)))(v)); - })); - } - })); - } - this.form.patchValue(value, { emitEvent: this.params.emitEvent }); - /** @type {?} */ - var storeValue = this.isKeyBased ? setValue(this.getQuery().getValue(), this.getStore().storeName + "." + this.factoryFnOrPath, value) : (_a = {}, _a[this.params.formKey] = value, _a); - this.updateStore(storeValue); - }; - /** - * @private - * @param {?} control - * @return {?} - */ - PersistNgFormPlugin.prototype.cleanArray = /** - * @private - * @param {?} control - * @return {?} - */ - function (control) { - while (control.length !== 0) { - control.removeAt(0); - } - }; - /** - * @private - * @param {?} formValue - * @param {?} root - * @return {?} - */ - PersistNgFormPlugin.prototype.resolveInitialValue = /** - * @private - * @param {?} formValue - * @param {?} root - * @return {?} - */ - function (formValue, root) { - var _this = this; - if (!formValue) - return; - return Object.keys(formValue).reduce((/** - * @param {?} acc - * @param {?} stateKey - * @return {?} - */ - function (acc, stateKey) { - /** @type {?} */ - var value = root[stateKey]; - if (Array.isArray(value) && _this.builder) { - /** @type {?} */ - var factory_1 = _this.params.arrControlFactory; - _this.cleanArray(_this.form.get(stateKey)); - value.forEach((/** - * @param {?} v - * @param {?} i - * @return {?} - */ - function (v, i) { - _this.form.get(stateKey).insert(i, ((/** @type {?} */ (factory_1)))(v)); - })); - } - acc[stateKey] = root[stateKey]; - return acc; - }), {}); - }; - /** - * @private - * @return {?} - */ - PersistNgFormPlugin.prototype.activate = /** - * @private - * @return {?} - */ - function () { - var _this = this; - var _a; - /** @type {?} */ - var path; - if (this.isKeyBased) { - if (this.isRootKeys) { - this.initialValue = this.resolveInitialValue(this.form.value, this.getQuery().getValue()); - this.form.patchValue(this.initialValue, { emitEvent: this.params.emitEvent }); - } - else { - path = this.getStore().storeName + "." + this.factoryFnOrPath; - /** @type {?} */ - var root = getValue(this.getQuery().getValue(), path); - this.initialValue = this.resolveInitialValue(root, root); - this.form.patchValue(this.initialValue, { emitEvent: this.params.emitEvent }); - } - } - else { - if (!((/** @type {?} */ (this.getQuery().getValue())))[this.params.formKey]) { - logAction('@PersistNgFormPlugin activate'); - this.updateStore((_a = {}, _a[this.params.formKey] = ((/** @type {?} */ (this))).factoryFnOrPath(), _a)); - } - /** @type {?} */ - var value = this.getQuery().getValue()[this.params.formKey]; - this.form.patchValue(value); - } - this.formChanges = this.form.valueChanges.pipe(debounceTime(this.params.debounceTime)).subscribe((/** - * @param {?} value - * @return {?} - */ - function (value) { - logAction('@PersistForm - Update'); - /** @type {?} */ - var newState; - if (_this.isKeyBased) { - if (_this.isRootKeys) { - newState = (/** - * @param {?} state - * @return {?} - */ - function (state) { return (__assign({}, state, value)); }); - } - else { - newState = (/** - * @param {?} state - * @return {?} - */ - function (state) { return setValue(state, path, value); }); - } - } - else { - newState = (/** - * @return {?} - */ - function () { - var _a; - return (_a = {}, _a[_this.params.formKey] = value, _a); - }); - } - _this.updateStore(newState(_this.getQuery().getValue())); - })); - }; - /** - * @return {?} - */ - PersistNgFormPlugin.prototype.destroy = /** - * @return {?} - */ - function () { - this.formChanges && this.formChanges.unsubscribe(); - this.form = null; - this.builder = null; - }; - return PersistNgFormPlugin; - }(AkitaPlugin)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - // @internal - /** - * @param {?} value - * @return {?} - */ - function capitalize(value) { - return value && value.charAt(0).toUpperCase() + value.slice(1); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var subs = []; - /** - * @param {?=} ngZoneOrOptions - * @param {?=} options - * @return {?} - */ - function akitaDevtools(ngZoneOrOptions, options) { - if (options === void 0) { options = {}; } - if (isNotBrowser) - return; - if (!((/** @type {?} */ (window))).__REDUX_DEVTOOLS_EXTENSION__) { - return; - } - subs.length && subs.forEach((/** - * @param {?} s - * @return {?} - */ - function (s) { return s.unsubscribe(); })); - /** @type {?} */ - var isAngular = ngZoneOrOptions && ngZoneOrOptions['run']; - if (!isAngular) { - ngZoneOrOptions = ngZoneOrOptions || {}; - ((/** @type {?} */ (ngZoneOrOptions))).run = (/** - * @param {?} cb - * @return {?} - */ - function (cb) { return cb(); }); - options = (/** @type {?} */ (ngZoneOrOptions)); - } - /** @type {?} */ - var defaultOptions = { name: 'Akita', shallow: true }; - /** @type {?} */ - var merged = Object.assign({}, defaultOptions, options); - /** @type {?} */ - var devTools = ((/** @type {?} */ (window))).__REDUX_DEVTOOLS_EXTENSION__.connect(merged); - /** @type {?} */ - var appState = {}; - subs.push($$addStore.subscribe((/** - * @param {?} storeName - * @return {?} - */ - function (storeName) { - var _a; - appState = __assign({}, appState, (_a = {}, _a[storeName] = __stores__[storeName]._value(), _a)); - devTools.send({ type: "[" + capitalize(storeName) + "] - @@INIT" }, appState); - }))); - subs.push($$deleteStore.subscribe((/** - * @param {?} storeName - * @return {?} - */ - function (storeName) { - delete appState[storeName]; - devTools.send({ type: "[" + storeName + "] - Delete Store" }, appState); - }))); - subs.push($$updateStore.subscribe((/** - * @param {?} storeName - * @return {?} - */ - function (storeName) { - var _a; - var type = currentAction.type, entityIds = currentAction.entityIds, skip$$1 = currentAction.skip; - if (skip$$1) { - setSkipAction(false); - return; - } - /** @type {?} */ - var store = __stores__[storeName]; - if (!store) { - return; - } - if (options.shallow === false && appState[storeName]) { - /** @type {?} */ - var isEqual = JSON.stringify(store._value()) === JSON.stringify(appState[storeName]); - if (isEqual) - return; - } - appState = __assign({}, appState, (_a = {}, _a[storeName] = store._value(), _a)); - /** @type {?} */ - var normalize = capitalize(storeName); - /** @type {?} */ - var msg = isDefined(entityIds) ? "[" + normalize + "] - " + type + " (ids: " + entityIds + ")" : "[" + normalize + "] - " + type; - if (options.logTrace) { - console.group(msg); - console.trace(); - console.groupEnd(); - } - devTools.send({ type: msg }, appState); - }))); - subs.push(devTools.subscribe((/** - * @param {?} message - * @return {?} - */ - function (message) { - if (message.type === 'ACTION') { - var _a = __read(message.payload.split('.'), 1), storeName_1 = _a[0]; - if (__stores__[storeName_1]) { - ((/** @type {?} */ (ngZoneOrOptions))).run((/** - * @return {?} - */ - function () { - /** @type {?} */ - var funcCall = message.payload.replace(storeName_1, "this['" + storeName_1 + "']"); - try { - new Function("" + funcCall).call(__stores__); - } - catch (e) { - console.warn('Unknown Method ☹️'); - } - })); - } - } - if (message.type === 'DISPATCH') { - /** @type {?} */ - var payloadType = message.payload.type; - if (payloadType === 'COMMIT') { - devTools.init(appState); - return; - } - if (message.state) { - /** @type {?} */ - var rootState_1 = JSON.parse(message.state); - var _loop_1 = function (i, keys) { - /** @type {?} */ - var storeName = keys[i]; - if (__stores__[storeName]) { - ((/** @type {?} */ (ngZoneOrOptions))).run((/** - * @return {?} - */ - function () { - __stores__[storeName]._setState((/** - * @return {?} - */ - function () { return rootState_1[storeName]; }), false); - })); - } - }; - for (var i = 0, keys = Object.keys(rootState_1); i < keys.length; i++) { - _loop_1(i, keys); - } - } - } - }))); - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * Each plugin that wants to add support for entities should extend this interface. - * @abstract - * @template State, P - */ - var /** - * Each plugin that wants to add support for entities should extend this interface. - * @abstract - * @template State, P - */ - EntityCollectionPlugin = /** @class */ (function () { - function EntityCollectionPlugin(query, entityIds) { - this.query = query; - this.entityIds = entityIds; - this.entities = new Map(); - } - /** - * Get the entity plugin instance. - */ - /** - * Get the entity plugin instance. - * @protected - * @param {?} id - * @return {?} - */ - EntityCollectionPlugin.prototype.getEntity = /** - * Get the entity plugin instance. - * @protected - * @param {?} id - * @return {?} - */ - function (id) { - return this.entities.get(id); - }; - /** - * Whether the entity plugin exist. - */ - /** - * Whether the entity plugin exist. - * @protected - * @param {?} id - * @return {?} - */ - EntityCollectionPlugin.prototype.hasEntity = /** - * Whether the entity plugin exist. - * @protected - * @param {?} id - * @return {?} - */ - function (id) { - return this.entities.has(id); - }; - /** - * Remove the entity plugin instance. - */ - /** - * Remove the entity plugin instance. - * @protected - * @param {?} id - * @return {?} - */ - EntityCollectionPlugin.prototype.removeEntity = /** - * Remove the entity plugin instance. - * @protected - * @param {?} id - * @return {?} - */ - function (id) { - this.destroy(id); - return this.entities.delete(id); - }; - /** - * Set the entity plugin instance. - */ - /** - * Set the entity plugin instance. - * @protected - * @param {?} id - * @param {?} plugin - * @return {?} - */ - EntityCollectionPlugin.prototype.createEntity = /** - * Set the entity plugin instance. - * @protected - * @param {?} id - * @param {?} plugin - * @return {?} - */ - function (id, plugin) { - return this.entities.set(id, plugin); - }; - /** - * If the user passes `entityIds` we take them; otherwise, we take all. - */ - /** - * If the user passes `entityIds` we take them; otherwise, we take all. - * @protected - * @return {?} - */ - EntityCollectionPlugin.prototype.getIds = /** - * If the user passes `entityIds` we take them; otherwise, we take all. - * @protected - * @return {?} - */ - function () { - return isUndefined(this.entityIds) ? this.query.getValue().ids : coerceArray(this.entityIds); - }; - /** - * When you call one of the plugin methods, you can pass id/ids or undefined which means all. - */ - /** - * When you call one of the plugin methods, you can pass id/ids or undefined which means all. - * @protected - * @param {?=} ids - * @return {?} - */ - EntityCollectionPlugin.prototype.resolvedIds = /** - * When you call one of the plugin methods, you can pass id/ids or undefined which means all. - * @protected - * @param {?=} ids - * @return {?} - */ - function (ids) { - return isUndefined(ids) ? this.getIds() : coerceArray(ids); - }; - /** - * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically. - * - * For example in your plugin you may do the following: - * - * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids)); - */ - /** - * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically. - * - * For example in your plugin you may do the following: - * - * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids)); - * @protected - * @param {?} ids - * @param {?=} actions - * @return {?} - */ - EntityCollectionPlugin.prototype.rebase = /** - * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically. - * - * For example in your plugin you may do the following: - * - * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids)); - * @protected - * @param {?} ids - * @param {?=} actions - * @return {?} - */ - function (ids, actions) { - var _this = this; - if (actions === void 0) { actions = {}; } - /** - * - * If the user passes `entityIds` & we have new ids check if we need to add/remove instances. - * - * This phase will be called only upon update. - */ - if (toBoolean(ids)) { - /** - * Which means all - */ - if (isUndefined(this.entityIds)) { - for (var i = 0, len = ids.length; i < len; i++) { - /** @type {?} */ - var entityId = ids[i]; - if (this.hasEntity(entityId) === false) { - isFunction$1(actions.beforeAdd) && actions.beforeAdd(entityId); - /** @type {?} */ - var plugin = this.instantiatePlugin(entityId); - this.entities.set(entityId, plugin); - isFunction$1(actions.afterAdd) && actions.afterAdd(plugin); - } - } - this.entities.forEach((/** - * @param {?} plugin - * @param {?} entityId - * @return {?} - */ - function (plugin, entityId) { - if (ids.indexOf(entityId) === -1) { - isFunction$1(actions.beforeRemove) && actions.beforeRemove(plugin); - _this.removeEntity(entityId); - } - })); - } - else { - /** - * Which means the user passes specific ids - * @type {?} - */ - var _ids = coerceArray(this.entityIds); - for (var i = 0, len = _ids.length; i < len; i++) { - /** @type {?} */ - var entityId = _ids[i]; - /** The Entity in current ids and doesn't exist, add it. */ - if (ids.indexOf(entityId) > -1 && this.hasEntity(entityId) === false) { - isFunction$1(actions.beforeAdd) && actions.beforeAdd(entityId); - /** @type {?} */ - var plugin = this.instantiatePlugin(entityId); - this.entities.set(entityId, plugin); - isFunction$1(actions.afterAdd) && actions.afterAdd(plugin); - } - else { - this.entities.forEach((/** - * @param {?} plugin - * @param {?} entityId - * @return {?} - */ - function (plugin, entityId) { - /** The Entity not in current ids and exists, remove it. */ - if (ids.indexOf(entityId) === -1 && _this.hasEntity(entityId) === true) { - isFunction$1(actions.beforeRemove) && actions.beforeRemove(plugin); - _this.removeEntity(entityId); - } - })); - } - } - } - } - else { - /** - * Otherwise, start with the provided ids or all. - */ - this.getIds().forEach((/** - * @param {?} id - * @return {?} - */ - function (id) { - if (!_this.hasEntity(id)) - _this.createEntity(id, _this.instantiatePlugin(id)); - })); - } - }; - /** - * Listen for add/remove entities. - */ - /** - * Listen for add/remove entities. - * @protected - * @return {?} - */ - EntityCollectionPlugin.prototype.selectIds = /** - * Listen for add/remove entities. - * @protected - * @return {?} - */ - function () { - return this.query.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.ids; })); - }; - /** - * Base method for activation, you can override it if you need to. - */ - /** - * Base method for activation, you can override it if you need to. - * @protected - * @param {?=} ids - * @return {?} - */ - EntityCollectionPlugin.prototype.activate = /** - * Base method for activation, you can override it if you need to. - * @protected - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.rebase(ids); - }; - /** - * Loop over each id and invoke the plugin method. - */ - /** - * Loop over each id and invoke the plugin method. - * @protected - * @param {?} ids - * @param {?} cb - * @return {?} - */ - EntityCollectionPlugin.prototype.forEachId = /** - * Loop over each id and invoke the plugin method. - * @protected - * @param {?} ids - * @param {?} cb - * @return {?} - */ - function (ids, cb) { - /** @type {?} */ - var _ids = this.resolvedIds(ids); - for (var i = 0, len = _ids.length; i < len; i++) { - /** @type {?} */ - var id = _ids[i]; - if (this.hasEntity(id)) { - cb(this.getEntity(id)); - } - } - }; - return EntityCollectionPlugin; - }()); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @template State - */ - var /** - * @template State - */ - StateHistoryPlugin = /** @class */ (function (_super) { - __extends(StateHistoryPlugin, _super); - function StateHistoryPlugin(query, params, _entityId) { - if (params === void 0) { params = {}; } - var _this = _super.call(this, query, { - resetFn: (/** - * @return {?} - */ - function () { return _this.clear(); }) - }) || this; - _this.query = query; - _this.params = params; - _this._entityId = _entityId; - /** - * Allow skipping an update from outside - */ - _this.skip = false; - _this.history = { - past: [], - present: null, - future: [] - }; - /** - * Skip the update when redo/undo - */ - _this.skipUpdate = false; - params.maxAge = !!params.maxAge ? params.maxAge : 10; - params.comparator = params.comparator || ((/** - * @return {?} - */ - function () { return true; })); - _this.activate(); - return _this; - } - Object.defineProperty(StateHistoryPlugin.prototype, "hasPast", { - get: /** - * @return {?} - */ - function () { - return this.history.past.length > 0; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(StateHistoryPlugin.prototype, "hasFuture", { - get: /** - * @return {?} - */ - function () { - return this.history.future.length > 0; - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - StateHistoryPlugin.prototype.activate = /** - * @return {?} - */ - function () { - var _this = this; - this.history.present = this.getSource(this._entityId); - this.subscription = ((/** @type {?} */ (this))).selectSource(this._entityId).pipe(pairwise()) - .subscribe((/** - * @param {?} __0 - * @return {?} - */ - function (_a) { - var _b = __read(_a, 2), past = _b[0], present = _b[1]; - if (_this.skip) { - _this.skip = false; - return; - } - /** - * comparator: (prev, current) => isEqual(prev, current) === false - * @type {?} - */ - var shouldUpdate = _this.params.comparator(past, present); - if (!_this.skipUpdate && shouldUpdate) { - if (_this.history.past.length === _this.params.maxAge) { - _this.history.past = _this.history.past.slice(1); - } - _this.history.past = __spread(_this.history.past, [past]); - _this.history.present = present; - } - })); - }; - /** - * @return {?} - */ - StateHistoryPlugin.prototype.undo = /** - * @return {?} - */ - function () { - if (this.history.past.length > 0) { - var _a = this.history, past = _a.past, present = _a.present; - /** @type {?} */ - var previous = past[past.length - 1]; - this.history.past = past.slice(0, past.length - 1); - this.history.present = previous; - this.history.future = __spread([present], this.history.future); - this.update(); - } - }; - /** - * @return {?} - */ - StateHistoryPlugin.prototype.redo = /** - * @return {?} - */ - function () { - if (this.history.future.length > 0) { - var _a = this.history, past = _a.past, present = _a.present; - /** @type {?} */ - var next = this.history.future[0]; - /** @type {?} */ - var newFuture = this.history.future.slice(1); - this.history.past = __spread(past, [present]); - this.history.present = next; - this.history.future = newFuture; - this.update('Redo'); - } - }; - /** - * @param {?} index - * @return {?} - */ - StateHistoryPlugin.prototype.jumpToPast = /** - * @param {?} index - * @return {?} - */ - function (index) { - if (index < 0 || index >= this.history.past.length) - return; - var _a = this.history, past = _a.past, future = _a.future; - /** - * - * const past = [1, 2, 3, 4, 5]; - * - * newPast = past.slice(0, 2) = [1, 2]; - * present = past[index] = 3; - * [...past.slice(2 + 1), ...future] = [4, 5]; - * - * @type {?} - */ - var newPast = past.slice(0, index); - /** @type {?} */ - var newFuture = __spread(past.slice(index + 1), future); - /** @type {?} */ - var newPresent = past[index]; - this.history.past = newPast; - this.history.present = newPresent; - this.history.future = newFuture; - this.update(); - }; - /** - * @param {?} index - * @return {?} - */ - StateHistoryPlugin.prototype.jumpToFuture = /** - * @param {?} index - * @return {?} - */ - function (index) { - if (index < 0 || index >= this.history.future.length) - return; - var _a = this.history, past = _a.past, future = _a.future; - /** @type {?} */ - var newPast = __spread(past, future.slice(0, index)); - /** @type {?} */ - var newPresent = future[index]; - /** @type {?} */ - var newFuture = future.slice(index + 1); - this.history.past = newPast; - this.history.present = newPresent; - this.history.future = newFuture; - this.update('Redo'); - }; - /** - * Clear the history - * - * @param customUpdateFn Callback function for only clearing part of the history - * - * @example - * - * stateHistory.clear((history) => { - * return { - * past: history.past, - * present: history.present, - * future: [] - * }; - * }); - */ - /** - * Clear the history - * - * \@example - * - * stateHistory.clear((history) => { - * return { - * past: history.past, - * present: history.present, - * future: [] - * }; - * }); - * @param {?=} customUpdateFn Callback function for only clearing part of the history - * - * @return {?} - */ - StateHistoryPlugin.prototype.clear = /** - * Clear the history - * - * \@example - * - * stateHistory.clear((history) => { - * return { - * past: history.past, - * present: history.present, - * future: [] - * }; - * }); - * @param {?=} customUpdateFn Callback function for only clearing part of the history - * - * @return {?} - */ - function (customUpdateFn) { - this.history = isFunction$1(customUpdateFn) ? customUpdateFn(this.history) : { - past: [], - present: null, - future: [] - }; - }; - /** - * @param {?=} clearHistory - * @return {?} - */ - StateHistoryPlugin.prototype.destroy = /** - * @param {?=} clearHistory - * @return {?} - */ - function (clearHistory) { - if (clearHistory === void 0) { clearHistory = false; } - if (clearHistory) { - this.clear(); - } - this.subscription.unsubscribe(); - }; - /** - * @return {?} - */ - StateHistoryPlugin.prototype.ignoreNext = /** - * @return {?} - */ - function () { - this.skip = true; - }; - /** - * @private - * @param {?=} action - * @return {?} - */ - StateHistoryPlugin.prototype.update = /** - * @private - * @param {?=} action - * @return {?} - */ - function (action$$1) { - if (action$$1 === void 0) { action$$1 = 'Undo'; } - this.skipUpdate = true; - logAction("@StateHistory - " + action$$1); - this.updateStore(this.history.present, this._entityId); - this.skipUpdate = false; - }; - return StateHistoryPlugin; - }(AkitaPlugin)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @template State, P - */ - var /** - * @template State, P - */ - EntityStateHistoryPlugin = /** @class */ (function (_super) { - __extends(EntityStateHistoryPlugin, _super); - function EntityStateHistoryPlugin(query, params) { - if (params === void 0) { params = {}; } - var _this = _super.call(this, query, params.entityIds) || this; - _this.query = query; - _this.params = params; - params.maxAge = toBoolean(params.maxAge) ? params.maxAge : 10; - _this.activate(); - _this.selectIds() - .pipe(skip(1)) - .subscribe((/** - * @param {?} ids - * @return {?} - */ - function (ids) { return _this.activate(ids); })); - return _this; - } - /** - * @param {?=} ids - * @return {?} - */ - EntityStateHistoryPlugin.prototype.redo = /** - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.redo(); })); - }; - /** - * @param {?=} ids - * @return {?} - */ - EntityStateHistoryPlugin.prototype.undo = /** - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.undo(); })); - }; - /** - * @param {?} id - * @return {?} - */ - EntityStateHistoryPlugin.prototype.hasPast = /** - * @param {?} id - * @return {?} - */ - function (id) { - if (this.hasEntity(id)) { - return this.getEntity(id).hasPast; - } - }; - /** - * @param {?} id - * @return {?} - */ - EntityStateHistoryPlugin.prototype.hasFuture = /** - * @param {?} id - * @return {?} - */ - function (id) { - if (this.hasEntity(id)) { - return this.getEntity(id).hasFuture; - } - }; - /** - * @param {?} ids - * @param {?} index - * @return {?} - */ - EntityStateHistoryPlugin.prototype.jumpToFuture = /** - * @param {?} ids - * @param {?} index - * @return {?} - */ - function (ids, index) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.jumpToFuture(index); })); - }; - /** - * @param {?} ids - * @param {?} index - * @return {?} - */ - EntityStateHistoryPlugin.prototype.jumpToPast = /** - * @param {?} ids - * @param {?} index - * @return {?} - */ - function (ids, index) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.jumpToPast(index); })); - }; - /** - * @param {?=} ids - * @return {?} - */ - EntityStateHistoryPlugin.prototype.clear = /** - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.clear(); })); - }; - /** - * @param {?=} ids - * @param {?=} clearHistory - * @return {?} - */ - EntityStateHistoryPlugin.prototype.destroy = /** - * @param {?=} ids - * @param {?=} clearHistory - * @return {?} - */ - function (ids, clearHistory) { - if (clearHistory === void 0) { clearHistory = false; } - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.destroy(clearHistory); })); - }; - /** - * @param {?=} ids - * @return {?} - */ - EntityStateHistoryPlugin.prototype.ignoreNext = /** - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.ignoreNext(); })); - }; - /** - * @protected - * @param {?} id - * @return {?} - */ - EntityStateHistoryPlugin.prototype.instantiatePlugin = /** - * @protected - * @param {?} id - * @return {?} - */ - function (id) { - return (/** @type {?} */ (new StateHistoryPlugin(this.query, this.params, id))); - }; - return EntityStateHistoryPlugin; - }(EntityCollectionPlugin)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var dirtyCheckDefaultParams = { - comparator: (/** - * @param {?} head - * @param {?} current - * @return {?} - */ - function (head, current) { return JSON.stringify(head) !== JSON.stringify(current); }) - }; - /** - * @param {?} nestedObj - * @param {?} path - * @return {?} - */ - function getNestedPath(nestedObj, path) { - /** @type {?} */ - var pathAsArray = path.split('.'); - return pathAsArray.reduce((/** - * @param {?} obj - * @param {?} key - * @return {?} - */ - function (obj, key) { return (obj && obj[key] !== 'undefined' ? obj[key] : undefined); }), nestedObj); - } - /** - * @template State - */ - var /** - * @template State - */ - DirtyCheckPlugin = /** @class */ (function (_super) { - __extends(DirtyCheckPlugin, _super); - function DirtyCheckPlugin(query, params, _entityId) { - var _this = _super.call(this, query) || this; - _this.query = query; - _this.params = params; - _this._entityId = _entityId; - _this.dirty = new BehaviorSubject(false); - _this.active = false; - _this._reset = new Subject(); - _this.isDirty$ = _this.dirty.asObservable().pipe(distinctUntilChanged()); - _this.reset$ = _this._reset.asObservable(); - _this.params = __assign({}, dirtyCheckDefaultParams, params); - if (_this.params.watchProperty) { - /** @type {?} */ - var watchProp = (/** @type {?} */ (coerceArray(_this.params.watchProperty))); - if (query instanceof QueryEntity && watchProp.includes('entities') && !watchProp.includes('ids')) { - watchProp.push('ids'); - } - _this.params.watchProperty = watchProp; - } - return _this; - } - /** - * @param {?=} params - * @return {?} - */ - DirtyCheckPlugin.prototype.reset = /** - * @param {?=} params - * @return {?} - */ - function (params) { - if (params === void 0) { params = {}; } - /** @type {?} */ - var currentValue = this.head; - if (isFunction$1(params.updateFn)) { - if (this.isEntityBased(this._entityId)) { - currentValue = params.updateFn(this.head, ((/** @type {?} */ (this.getQuery()))).getEntity(this._entityId)); - } - else { - currentValue = params.updateFn(this.head, ((/** @type {?} */ (this.getQuery()))).getValue()); - } - } - logAction("@DirtyCheck - Revert"); - this.updateStore(currentValue, this._entityId); - this._reset.next(); - }; - /** - * @template THIS - * @this {THIS} - * @return {THIS} - */ - DirtyCheckPlugin.prototype.setHead = /** - * @template THIS - * @this {THIS} - * @return {THIS} - */ - function () { - if (!(/** @type {?} */ (this)).active) { - (/** @type {?} */ (this)).activate(); - (/** @type {?} */ (this)).active = true; - } - else { - (/** @type {?} */ (this)).head = (/** @type {?} */ (this))._getHead(); - } - (/** @type {?} */ (this)).updateDirtiness(false); - return (/** @type {?} */ (this)); - }; - /** - * @return {?} - */ - DirtyCheckPlugin.prototype.isDirty = /** - * @return {?} - */ - function () { - return !!this.dirty.value; - }; - /** - * @return {?} - */ - DirtyCheckPlugin.prototype.hasHead = /** - * @return {?} - */ - function () { - return !!this.getHead(); - }; - /** - * @return {?} - */ - DirtyCheckPlugin.prototype.destroy = /** - * @return {?} - */ - function () { - this.head = null; - this.subscription && this.subscription.unsubscribe(); - this._reset && this._reset.complete(); - }; - /** - * @param {?} path - * @return {?} - */ - DirtyCheckPlugin.prototype.isPathDirty = /** - * @param {?} path - * @return {?} - */ - function (path) { - /** @type {?} */ - var head = this.getHead(); - /** @type {?} */ - var current = ((/** @type {?} */ (this.getQuery()))).getValue(); - /** @type {?} */ - var currentPathValue = getNestedPath(current, path); - /** @type {?} */ - var headPathValue = getNestedPath(head, path); - return this.params.comparator(currentPathValue, headPathValue); - }; - /** - * @protected - * @return {?} - */ - DirtyCheckPlugin.prototype.getHead = /** - * @protected - * @return {?} - */ - function () { - return this.head; - }; - /** - * @private - * @return {?} - */ - DirtyCheckPlugin.prototype.activate = /** - * @private - * @return {?} - */ - function () { - var _this = this; - this.head = this._getHead(); - /** - * if we are tracking specific properties select only the relevant ones - * @type {?} - */ - var source = this.params.watchProperty - ? ((/** @type {?} */ (this.params.watchProperty))).map((/** - * @param {?} prop - * @return {?} - */ - function (prop) { - return _this.query.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state[prop]; })).pipe(map((/** - * @param {?} val - * @return {?} - */ - function (val) { return ({ - val: val, - __akitaKey: prop - }); }))); - })) - : [this.selectSource(this._entityId)]; - this.subscription = combineLatest.apply(void 0, __spread(source)).pipe(skip(1)) - .subscribe((/** - * @param {?} currentState - * @return {?} - */ - function (currentState) { - if (isUndefined(_this.head)) - return; - /** - * __akitaKey is used to determine if we are tracking a specific property or a store change - * @type {?} - */ - var isChange = currentState.some((/** - * @param {?} state - * @return {?} - */ - function (state) { - /** @type {?} */ - var head = state.__akitaKey ? _this.head[(/** @type {?} */ (state.__akitaKey))] : _this.head; - /** @type {?} */ - var compareTo = state.__akitaKey ? state.val : state; - return _this.params.comparator(head, compareTo); - })); - _this.updateDirtiness(isChange); - })); - }; - /** - * @private - * @param {?} isDirty - * @return {?} - */ - DirtyCheckPlugin.prototype.updateDirtiness = /** - * @private - * @param {?} isDirty - * @return {?} - */ - function (isDirty) { - this.dirty.next(isDirty); - }; - /** - * @private - * @return {?} - */ - DirtyCheckPlugin.prototype._getHead = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var head = this.getSource(this._entityId); - if (this.params.watchProperty) { - head = this.getWatchedValues((/** @type {?} */ (head))); - } - return head; - }; - /** - * @private - * @param {?} source - * @return {?} - */ - DirtyCheckPlugin.prototype.getWatchedValues = /** - * @private - * @param {?} source - * @return {?} - */ - function (source) { - return ((/** @type {?} */ (this.params.watchProperty))).reduce((/** - * @param {?} watched - * @param {?} prop - * @return {?} - */ - function (watched, prop) { - watched[prop] = source[prop]; - return watched; - }), (/** @type {?} */ ({}))); - }; - return DirtyCheckPlugin; - }(AkitaPlugin)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @template State, P - */ - var /** - * @template State, P - */ - EntityDirtyCheckPlugin = /** @class */ (function (_super) { - __extends(EntityDirtyCheckPlugin, _super); - function EntityDirtyCheckPlugin(query, params) { - if (params === void 0) { params = {}; } - var _this = _super.call(this, query, params.entityIds) || this; - _this.query = query; - _this.params = params; - _this._someDirty = new Subject(); - _this.someDirty$ = merge(_this.query.select((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.entities; })), _this._someDirty.asObservable()).pipe(auditTime(0), map((/** - * @return {?} - */ - function () { return _this.checkSomeDirty(); }))); - _this.params = __assign({}, dirtyCheckDefaultParams, params); - // TODO lazy activate? - _this.activate(); - _this.selectIds() - .pipe(skip(1)) - .subscribe((/** - * @param {?} ids - * @return {?} - */ - function (ids) { - _super.prototype.rebase.call(_this, ids, { afterAdd: (/** - * @param {?} plugin - * @return {?} - */ - function (plugin) { return plugin.setHead(); }) }); - })); - return _this; - } - /** - * @template THIS - * @this {THIS} - * @param {?=} ids - * @return {THIS} - */ - EntityDirtyCheckPlugin.prototype.setHead = /** - * @template THIS - * @this {THIS} - * @param {?=} ids - * @return {THIS} - */ - function (ids) { - if ((/** @type {?} */ (this)).params.entityIds && ids) { - /** @type {?} */ - var toArray_1 = (/** @type {?} */ (coerceArray(ids))); - /** @type {?} */ - var someAreWatched = coerceArray((/** @type {?} */ (this)).params.entityIds).some((/** - * @param {?} id - * @return {?} - */ - function (id) { return toArray_1.indexOf(id) > -1; })); - if (someAreWatched === false) { - return (/** @type {?} */ (this)); - } - } - (/** @type {?} */ (this)).forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.setHead(); })); - (/** @type {?} */ (this))._someDirty.next(); - return (/** @type {?} */ (this)); - }; - /** - * @param {?} id - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.hasHead = /** - * @param {?} id - * @return {?} - */ - function (id) { - if (this.entities.has(id)) { - /** @type {?} */ - var entity = this.getEntity(id); - return entity.hasHead(); - } - return false; - }; - /** - * @param {?=} ids - * @param {?=} params - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.reset = /** - * @param {?=} ids - * @param {?=} params - * @return {?} - */ - function (ids, params) { - if (params === void 0) { params = {}; } - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.reset(params); })); - }; - /** - * @param {?} id - * @param {?=} asObservable - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.isDirty = /** - * @param {?} id - * @param {?=} asObservable - * @return {?} - */ - function (id, asObservable) { - if (asObservable === void 0) { asObservable = true; } - if (this.entities.has(id)) { - /** @type {?} */ - var entity = this.getEntity(id); - return asObservable ? entity.isDirty$ : entity.isDirty(); - } - return false; - }; - /** - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.someDirty = /** - * @return {?} - */ - function () { - return this.checkSomeDirty(); - }; - /** - * @param {?} id - * @param {?} path - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.isPathDirty = /** - * @param {?} id - * @param {?} path - * @return {?} - */ - function (id, path) { - if (this.entities.has(id)) { - /** @type {?} */ - var head = ((/** @type {?} */ (this.getEntity(id)))).getHead(); - /** @type {?} */ - var current = this.query.getEntity(id); - /** @type {?} */ - var currentPathValue = getNestedPath(current, path); - /** @type {?} */ - var headPathValue = getNestedPath(head, path); - return this.params.comparator(currentPathValue, headPathValue); - } - return null; - }; - /** - * @param {?=} ids - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.destroy = /** - * @param {?=} ids - * @return {?} - */ - function (ids) { - this.forEachId(ids, (/** - * @param {?} e - * @return {?} - */ - function (e) { return e.destroy(); })); - /** complete only when the plugin destroys */ - if (!ids) { - this._someDirty.complete(); - } - }; - /** - * @protected - * @param {?} id - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.instantiatePlugin = /** - * @protected - * @param {?} id - * @return {?} - */ - function (id) { - return (/** @type {?} */ (new DirtyCheckPlugin(this.query, this.params, id))); - }; - /** - * @private - * @return {?} - */ - EntityDirtyCheckPlugin.prototype.checkSomeDirty = /** - * @private - * @return {?} - */ - function () { - var e_1, _a; - /** @type {?} */ - var entitiesIds = this.resolvedIds(); - try { - for (var entitiesIds_1 = __values(entitiesIds), entitiesIds_1_1 = entitiesIds_1.next(); !entitiesIds_1_1.done; entitiesIds_1_1 = entitiesIds_1.next()) { - var id = entitiesIds_1_1.value; - if (this.getEntity(id).isDirty()) { - return true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (entitiesIds_1_1 && !entitiesIds_1_1.done && (_a = entitiesIds_1.return)) _a.call(entitiesIds_1); - } - finally { if (e_1) throw e_1.error; } - } - return false; - }; - return EntityDirtyCheckPlugin; - }(EntityCollectionPlugin)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * Generate random guid - * - * \@example - * - * { - * id: guid() - * } - * - * @return {?} - */ - function guid() { - return 'xxxxxx4xyx'.replace(/[xy]/g, (/** - * @param {?} c - * @return {?} - */ - function (c) { - /** @type {?} */ - var r = (Math.random() * 16) | 0; - /** @type {?} */ - var v = c == 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - })); - } - /** - * @template State - * @param {?} initialState - * @param {?} options - * @return {?} - */ - function createEntityStore(initialState, options) { - return new EntityStore(initialState, options); - } - /** - * @template State - * @param {?} store - * @param {?} options - * @return {?} - */ - function createEntityQuery(store, options) { - return new QueryEntity(store, options); - } - - //# sourceMappingURL=datorama-akita.js.map - - const initialState = { - filter: "SHOW_ALL" - }; - - const todosStore = createEntityStore(initialState, { - name: 'todos' - }); - - const todosQuery = createEntityQuery(todosStore); - - const selectFilter = todosQuery.select('filter'); - - const visibleTodos = combineLatest( - selectFilter, - todosQuery.selectAll(), - function getVisibleTodos(filter, todos) { - switch (filter) { - case "SHOW_COMPLETED": - return todos.filter(t => t.completed); - case "SHOW_ACTIVE": - return todos.filter(t => !t.completed); - default: - return todos; - } - } - ); - - async function addTodo(title) { - const todo = { - title, - completed: false, - }; - const idFromServer = await Promise.resolve(guid()); - todosStore.add({ - id: idFromServer, - ...todo - }); - } - - async function toggleCompleted(id, completed) { - await Promise.resolve(); - todosStore.update(id, { - completed - }); - } - - async function removeTodo(id) { - await Promise.resolve(); - todosStore.remove(id); - } - - function updateFilter(filter) { - todosStore.update({ - filter - }); - } - - /* src/Todo.svelte generated by Svelte v3.2.1 */ - - const file$2 = "src/Todo.svelte"; - - function create_fragment$4(ctx) { - var li, div, input, input_checked_value, t0, t1_value = ctx.todo.title, t1, t2, button, dispose; - - return { - c: function create() { - li = element("li"); - div = element("div"); - input = element("input"); - t0 = space(); - t1 = text(t1_value); - t2 = space(); - button = element("button"); - button.textContent = "X"; - attr(input, "type", "checkbox"); - input.checked = input_checked_value = ctx.todo.completed; - add_location(input, file$2, 15, 4, 194); - add_location(div, file$2, 14, 2, 184); - button.type = "button"; - button.className = "btn btn-sm btn-danger"; - add_location(button, file$2, 19, 2, 285); - li.className = "list-group-item svelte-1kjaqhi"; - add_location(li, file$2, 13, 0, 153); - - dispose = [ - listen(input, "change", ctx.change_handler), - listen(button, "click", ctx.click_handler) - ]; - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, li, anchor); - append(li, div); - append(div, input); - append(div, t0); - append(div, t1); - append(li, t2); - append(li, button); - }, - - p: function update(changed, ctx) { - if ((changed.todo) && input_checked_value !== (input_checked_value = ctx.todo.completed)) { - input.checked = input_checked_value; - } - - if ((changed.todo) && t1_value !== (t1_value = ctx.todo.title)) { - set_data(t1, t1_value); - } - }, - - i: noop, - o: noop, - - d: function destroy(detaching) { - if (detaching) { - detach(li); - } - - run_all(dispose); - } - }; - } - - function instance$3($$self, $$props, $$invalidate) { - let { todo } = $$props; - - function change_handler(event) { - bubble($$self, event); - } - - function click_handler(event) { - bubble($$self, event); - } - - $$self.$set = $$props => { - if ('todo' in $$props) $$invalidate('todo', todo = $$props.todo); - }; - - return { todo, change_handler, click_handler }; - } - - class Todo extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$3, create_fragment$4, not_equal, ["todo"]); - - const { ctx } = this.$$; - const props = options.props || {}; - if (ctx.todo === undefined && !('todo' in props)) { - console.warn(" was created without expected prop 'todo'"); - } - } - - get todo() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set todo(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/AddTodo.svelte generated by Svelte v3.2.1 */ - - const file$3 = "src/AddTodo.svelte"; - - function create_fragment$5(ctx) { - var div, input, dispose; - - return { - c: function create() { - div = element("div"); - input = element("input"); - input.className = "form-control"; - input.placeholder = "Add todo.."; - add_location(input, file$3, 10, 2, 189); - div.className = "form-group"; - add_location(div, file$3, 9, 0, 162); - - dispose = [ - listen(input, "input", ctx.input_input_handler), - listen(input, "keydown", ctx.keydown_handler) - ]; - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, div, anchor); - append(div, input); - - input.value = ctx.todo; - }, - - p: function update(changed, ctx) { - if (changed.todo && (input.value !== ctx.todo)) input.value = ctx.todo; - }, - - i: noop, - o: noop, - - d: function destroy(detaching) { - if (detaching) { - detach(div); - } - - run_all(dispose); - } - }; - } - - function instance$4($$self, $$props, $$invalidate) { - const dispatch = createEventDispatcher(); - - let todo = ""; - - function input_input_handler() { - todo = this.value; - $$invalidate('todo', todo); - } - - function keydown_handler(event) { - if (event.key === 'Enter') { - dispatch('todo', todo); - todo = ''; $$invalidate('todo', todo); - } - } - - return { - dispatch, - todo, - input_input_handler, - keydown_handler - }; - } - - class AddTodo extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$4, create_fragment$5, not_equal, []); - } - } - - /* src/Filters.svelte generated by Svelte v3.2.1 */ - - const file$4 = "src/Filters.svelte"; - - function get_each_context(ctx, list, i) { - const child_ctx = Object.create(ctx); - child_ctx.filter = list[i]; - return child_ctx; - } - - // (19:2) {#each filters as filter} - function create_each_block(ctx) { - var button, t_value = ctx.filter.label, t, button_data_filter_id_value, dispose; - - return { - c: function create() { - button = element("button"); - t = text(t_value); - button.type = "button"; - button.className = "btn btn-outline-dark"; - button.dataset.filterId = button_data_filter_id_value = ctx.filter.id; - toggle_class(button, "active", ctx.filter.id === ctx.$currentFilter ? 'active' : ''); - add_location(button, file$4, 19, 3, 290); - dispose = listen(button, "click", ctx.click_handler); - }, - - m: function mount(target, anchor) { - insert(target, button, anchor); - append(button, t); - }, - - p: function update(changed, ctx) { - if ((changed.filters || changed.$currentFilter)) { - toggle_class(button, "active", ctx.filter.id === ctx.$currentFilter ? 'active' : ''); - } - }, - - d: function destroy(detaching) { - if (detaching) { - detach(button); - } - - dispose(); - } - }; - } - - function create_fragment$6(ctx) { - var div; - - var each_value = ctx.filters; - - var each_blocks = []; - - for (var i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); - } - - return { - c: function create() { - div = element("div"); - - for (var i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - div.className = "btn-group"; - add_location(div, file$4, 17, 0, 235); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, div, anchor); - - for (var i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(div, null); - } - }, - - p: function update(changed, ctx) { - if (changed.filters || changed.$currentFilter) { - each_value = ctx.filters; - - for (var i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context(ctx, each_value, i); - - if (each_blocks[i]) { - each_blocks[i].p(changed, child_ctx); - } else { - each_blocks[i] = create_each_block(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(div, null); - } - } - - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - }, - - i: noop, - o: noop, - - d: function destroy(detaching) { - if (detaching) { - detach(div); - } - - destroy_each(each_blocks, detaching); - } - }; - } - - function instance$5($$self, $$props, $$invalidate) { - let $currentFilter; - - let { currentFilter } = $$props; validate_store(currentFilter, 'currentFilter'); subscribe($$self, currentFilter, $$value => { $currentFilter = $$value; $$invalidate('$currentFilter', $currentFilter); }); - - const filters = [{ - id: 'SHOW_ALL', - label: 'All' - },{ - id: 'SHOW_ACTIVE', - label: 'Active' - },{ - id: 'SHOW_COMPLETED', - label: 'Completed' - }]; - - function click_handler(event) { - bubble($$self, event); - } - - $$self.$set = $$props => { - if ('currentFilter' in $$props) $$invalidate('currentFilter', currentFilter = $$props.currentFilter); - }; - - return { - currentFilter, - filters, - $currentFilter, - click_handler - }; - } - - class Filters extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$5, create_fragment$6, not_equal, ["currentFilter"]); - - const { ctx } = this.$$; - const props = options.props || {}; - if (ctx.currentFilter === undefined && !('currentFilter' in props)) { - console.warn(" was created without expected prop 'currentFilter'"); - } - } - - get currentFilter() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set currentFilter(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/Todos.svelte generated by Svelte v3.2.1 */ - - const file$5 = "src/Todos.svelte"; - - function get_each_context$1(ctx, list, i) { - const child_ctx = Object.create(ctx); - child_ctx.todo = list[i]; - child_ctx.i = i; - return child_ctx; - } - - // (37:4) {#each $visibleTodos as todo, i (todo.id)} - function create_each_block$1(key_1, ctx) { - var first, current; - - function click_handler_1() { - return ctx.click_handler_1(ctx); - } - - function change_handler(...args) { - return ctx.change_handler(ctx, ...args); - } - - var todo_1 = new Todo({ - props: { todo: ctx.todo }, - $$inline: true - }); - todo_1.$on("click", click_handler_1); - todo_1.$on("change", change_handler); - - return { - key: key_1, - - first: null, - - c: function create() { - first = empty(); - todo_1.$$.fragment.c(); - this.first = first; - }, - - m: function mount(target, anchor) { - insert(target, first, anchor); - mount_component(todo_1, target, anchor); - current = true; - }, - - p: function update(changed, new_ctx) { - ctx = new_ctx; - var todo_1_changes = {}; - if (changed.$visibleTodos) todo_1_changes.todo = ctx.todo; - todo_1.$set(todo_1_changes); - }, - - i: function intro(local) { - if (current) return; - todo_1.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - todo_1.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (detaching) { - detach(first); - } - - todo_1.$destroy(detaching); - } - }; - } - - function create_fragment$7(ctx) { - var section, h1, t1, t2, t3, ul, each_blocks = [], each_1_lookup = new Map(), t4, t5_value = ctx.$visibleTodos.length, t5, current; - - var filters = new Filters({ - props: { currentFilter: selectFilter }, - $$inline: true - }); - filters.$on("click", ctx.click_handler); - - var addtodo = new AddTodo({ $$inline: true }); - addtodo.$on("todo", ctx.todo_handler); - - var each_value = ctx.$visibleTodos; - - const get_key = ctx => ctx.todo.id; - - for (var i = 0; i < each_value.length; i += 1) { - let child_ctx = get_each_context$1(ctx, each_value, i); - let key = get_key(child_ctx); - each_1_lookup.set(key, each_blocks[i] = create_each_block$1(key, child_ctx)); - } - - return { - c: function create() { - section = element("section"); - h1 = element("h1"); - h1.textContent = "Todos"; - t1 = space(); - filters.$$.fragment.c(); - t2 = space(); - addtodo.$$.fragment.c(); - t3 = space(); - ul = element("ul"); - - for (i = 0; i < each_blocks.length; i += 1) each_blocks[i].c(); - - t4 = space(); - t5 = text(t5_value); - add_location(h1, file$5, 28, 2, 416); - ul.className = "list-group"; - add_location(ul, file$5, 35, 2, 594); - section.className = "svelte-sog0wn"; - add_location(section, file$5, 27, 0, 404); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - insert(target, section, anchor); - append(section, h1); - append(section, t1); - mount_component(filters, section, null); - append(section, t2); - mount_component(addtodo, section, null); - append(section, t3); - append(section, ul); - - for (i = 0; i < each_blocks.length; i += 1) each_blocks[i].m(ul, null); - - append(section, t4); - append(section, t5); - current = true; - }, - - p: function update(changed, ctx) { - var filters_changes = {}; - if (changed.selectFilter) filters_changes.currentFilter = selectFilter; - filters.$set(filters_changes); - - const each_value = ctx.$visibleTodos; - - group_outros(); - each_blocks = update_keyed_each(each_blocks, changed, get_key, 1, ctx, each_value, each_1_lookup, ul, outro_and_destroy_block, create_each_block$1, null, get_each_context$1); - check_outros(); - - if ((!current || changed.$visibleTodos) && t5_value !== (t5_value = ctx.$visibleTodos.length)) { - set_data(t5, t5_value); - } - }, - - i: function intro(local) { - if (current) return; - filters.$$.fragment.i(local); - - addtodo.$$.fragment.i(local); - - for (var i = 0; i < each_value.length; i += 1) each_blocks[i].i(); - - current = true; - }, - - o: function outro(local) { - filters.$$.fragment.o(local); - addtodo.$$.fragment.o(local); - - for (i = 0; i < each_blocks.length; i += 1) each_blocks[i].o(); - - current = false; - }, - - d: function destroy(detaching) { - if (detaching) { - detach(section); - } - - filters.$destroy(); - - addtodo.$destroy(); - - for (i = 0; i < each_blocks.length; i += 1) each_blocks[i].d(); - } - }; - } - - function instance$6($$self, $$props, $$invalidate) { - let $visibleTodos; - - validate_store(visibleTodos, 'visibleTodos'); - subscribe($$self, visibleTodos, $$value => { $visibleTodos = $$value; $$invalidate('$visibleTodos', $visibleTodos); }); - - function click_handler(event) { - return updateFilter(event.target.dataset.filterId); - } - - function todo_handler(e) { - return addTodo(e.detail); - } - - function click_handler_1({ todo }) { - return removeTodo(todo.id); - } - - function change_handler({ todo }, e) { - return toggleCompleted(todo.id, e.target.checked); - } - - return { - $visibleTodos, - click_handler, - todo_handler, - click_handler_1, - change_handler - }; - } - - class Todos extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$6, create_fragment$7, not_equal, []); - } - } - - /* src/NavLink.svelte generated by Svelte v3.2.1 */ - - // (14:0) - function create_default_slot(ctx) { - var current; - - const default_slot_1 = ctx.$$slots.default; - const default_slot = create_slot(default_slot_1, ctx, null); - - return { - c: function create() { - if (default_slot) default_slot.c(); - }, - - l: function claim(nodes) { - if (default_slot) default_slot.l(nodes); - }, - - m: function mount(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - - current = true; - }, - - p: function update(changed, ctx) { - if (default_slot && default_slot.p && changed.$$scope) { - default_slot.p(get_slot_changes(default_slot_1, ctx, changed,), get_slot_context(default_slot_1, ctx, null)); - } - }, - - i: function intro(local) { - if (current) return; - if (default_slot && default_slot.i) default_slot.i(local); - current = true; - }, - - o: function outro(local) { - if (default_slot && default_slot.o) default_slot.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (default_slot) default_slot.d(detaching); - } - }; - } - - function create_fragment$8(ctx) { - var current; - - var link = new Link({ - props: { - to: ctx.to, - getProps: getProps, - $$slots: { default: [create_default_slot] }, - $$scope: { ctx } - }, - $$inline: true - }); - - return { - c: function create() { - link.$$.fragment.c(); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - mount_component(link, target, anchor); - current = true; - }, - - p: function update(changed, ctx) { - var link_changes = {}; - if (changed.to) link_changes.to = ctx.to; - if (changed.getProps) link_changes.getProps = getProps; - if (changed.$$scope) link_changes.$$scope = { changed, ctx }; - link.$set(link_changes); - }, - - i: function intro(local) { - if (current) return; - link.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - link.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - link.$destroy(detaching); - } - }; - } - - function getProps({ location, href, isPartiallyCurrent, isCurrent }) { - const isActive = href === "/" ? isCurrent : isPartiallyCurrent || isCurrent; - // The object returned here is spread on the anchor element's attributes - if (isActive) { - return { class: "active" }; - } - return {}; - } - - function instance$7($$self, $$props, $$invalidate) { - let { to = "" } = $$props; - - let { $$slots = {}, $$scope } = $$props; - - $$self.$set = $$props => { - if ('to' in $$props) $$invalidate('to', to = $$props.to); - if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); - }; - - return { to, $$slots, $$scope }; - } - - class NavLink extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$7, create_fragment$8, safe_not_equal, ["to"]); - } - - get to() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set to(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/App.svelte generated by Svelte v3.2.1 */ - - const file$6 = "src/App.svelte"; - - // (10:4) - function create_default_slot_4(ctx) { - var t; - - return { - c: function create() { - t = text("Home"); - }, - - m: function mount(target, anchor) { - insert(target, t, anchor); - }, - - d: function destroy(detaching) { - if (detaching) { - detach(t); - } - } - }; - } - - // (11:4) - function create_default_slot_3(ctx) { - var t; - - return { - c: function create() { - t = text("Todos"); - }, - - m: function mount(target, anchor) { - insert(target, t, anchor); - }, - - d: function destroy(detaching) { - if (detaching) { - detach(t); - } - } - }; - } - - // (14:4) - function create_default_slot_2(ctx) { - var current; - - var home = new Home({ $$inline: true }); - - return { - c: function create() { - home.$$.fragment.c(); - }, - - m: function mount(target, anchor) { - mount_component(home, target, anchor); - current = true; - }, - - i: function intro(local) { - if (current) return; - home.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - home.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - home.$destroy(detaching); - } - }; - } - - // (17:4) - function create_default_slot_1(ctx) { - var current; - - var todos = new Todos({ $$inline: true }); - - return { - c: function create() { - todos.$$.fragment.c(); - }, - - m: function mount(target, anchor) { - mount_component(todos, target, anchor); - current = true; - }, - - i: function intro(local) { - if (current) return; - todos.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - todos.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - todos.$destroy(detaching); - } - }; - } - - // (8:0) - function create_default_slot$1(ctx) { - var nav, t0, t1, div, t2, current; - - var navlink0 = new NavLink({ - props: { - to: "/", - $$slots: { default: [create_default_slot_4] }, - $$scope: { ctx } - }, - $$inline: true - }); - - var navlink1 = new NavLink({ - props: { - to: "todos", - $$slots: { default: [create_default_slot_3] }, - $$scope: { ctx } - }, - $$inline: true - }); - - var route0 = new Route({ - props: { - path: "/", - $$slots: { default: [create_default_slot_2] }, - $$scope: { ctx } - }, - $$inline: true - }); - - var route1 = new Route({ - props: { - path: "/todos", - $$slots: { default: [create_default_slot_1] }, - $$scope: { ctx } - }, - $$inline: true - }); - - return { - c: function create() { - nav = element("nav"); - navlink0.$$.fragment.c(); - t0 = space(); - navlink1.$$.fragment.c(); - t1 = space(); - div = element("div"); - route0.$$.fragment.c(); - t2 = space(); - route1.$$.fragment.c(); - add_location(nav, file$6, 8, 2, 203); - div.className = "container"; - add_location(div, file$6, 12, 2, 295); - }, - - m: function mount(target, anchor) { - insert(target, nav, anchor); - mount_component(navlink0, nav, null); - append(nav, t0); - mount_component(navlink1, nav, null); - insert(target, t1, anchor); - insert(target, div, anchor); - mount_component(route0, div, null); - append(div, t2); - mount_component(route1, div, null); - current = true; - }, - - p: function update(changed, ctx) { - var navlink0_changes = {}; - if (changed.$$scope) navlink0_changes.$$scope = { changed, ctx }; - navlink0.$set(navlink0_changes); - - var navlink1_changes = {}; - if (changed.$$scope) navlink1_changes.$$scope = { changed, ctx }; - navlink1.$set(navlink1_changes); - - var route0_changes = {}; - if (changed.$$scope) route0_changes.$$scope = { changed, ctx }; - route0.$set(route0_changes); - - var route1_changes = {}; - if (changed.$$scope) route1_changes.$$scope = { changed, ctx }; - route1.$set(route1_changes); - }, - - i: function intro(local) { - if (current) return; - navlink0.$$.fragment.i(local); - - navlink1.$$.fragment.i(local); - - route0.$$.fragment.i(local); - - route1.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - navlink0.$$.fragment.o(local); - navlink1.$$.fragment.o(local); - route0.$$.fragment.o(local); - route1.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - if (detaching) { - detach(nav); - } - - navlink0.$destroy(); - - navlink1.$destroy(); - - if (detaching) { - detach(t1); - detach(div); - } - - route0.$destroy(); - - route1.$destroy(); - } - }; - } - - function create_fragment$9(ctx) { - var current; - - var router = new Router({ - props: { - $$slots: { default: [create_default_slot$1] }, - $$scope: { ctx } - }, - $$inline: true - }); - - return { - c: function create() { - router.$$.fragment.c(); - }, - - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - - m: function mount(target, anchor) { - mount_component(router, target, anchor); - current = true; - }, - - p: function update(changed, ctx) { - var router_changes = {}; - if (changed.$$scope) router_changes.$$scope = { changed, ctx }; - router.$set(router_changes); - }, - - i: function intro(local) { - if (current) return; - router.$$.fragment.i(local); - - current = true; - }, - - o: function outro(local) { - router.$$.fragment.o(local); - current = false; - }, - - d: function destroy(detaching) { - router.$destroy(detaching); - } - }; - } - - class App extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, null, create_fragment$9, safe_not_equal, []); - } - } - - akitaDevtools(); - persistState(); - - const app = new App({ - target: document.body, - intro: true - }); - - return app; - -}()); -//# sourceMappingURL=bundle.js.map diff --git a/apps/svelte-todo/public/bundle.js.map b/apps/svelte-todo/public/bundle.js.map deleted file mode 100644 index a70c0879..00000000 --- a/apps/svelte-todo/public/bundle.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle.js","sources":["../node_modules/svelte/internal.mjs","../node_modules/svelte/store.mjs","../node_modules/svelte-routing/src/contexts.js","../node_modules/svelte-routing/src/history.js","../node_modules/svelte-routing/src/utils.js","../node_modules/svelte-routing/src/Router.svelte","../node_modules/svelte-routing/src/Route.svelte","../node_modules/svelte-routing/src/Link.svelte","../node_modules/tslib/tslib.es6.js","../node_modules/rxjs/_esm5/internal/util/isFunction.js","../node_modules/rxjs/_esm5/internal/config.js","../node_modules/rxjs/_esm5/internal/util/hostReportError.js","../node_modules/rxjs/_esm5/internal/Observer.js","../node_modules/rxjs/_esm5/internal/util/isArray.js","../node_modules/rxjs/_esm5/internal/util/isObject.js","../node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","../node_modules/rxjs/_esm5/internal/Subscription.js","../node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","../node_modules/rxjs/_esm5/internal/Subscriber.js","../node_modules/rxjs/_esm5/internal/util/canReportError.js","../node_modules/rxjs/_esm5/internal/util/toSubscriber.js","../node_modules/rxjs/_esm5/internal/symbol/observable.js","../node_modules/rxjs/_esm5/internal/util/noop.js","../node_modules/rxjs/_esm5/internal/util/pipe.js","../node_modules/rxjs/_esm5/internal/Observable.js","../node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","../node_modules/rxjs/_esm5/internal/SubjectSubscription.js","../node_modules/rxjs/_esm5/internal/Subject.js","../node_modules/rxjs/_esm5/internal/operators/refCount.js","../node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","../node_modules/rxjs/_esm5/internal/operators/groupBy.js","../node_modules/rxjs/_esm5/internal/BehaviorSubject.js","../node_modules/rxjs/_esm5/internal/scheduler/Action.js","../node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","../node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","../node_modules/rxjs/_esm5/internal/Scheduler.js","../node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","../node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","../node_modules/rxjs/_esm5/internal/scheduler/queue.js","../node_modules/rxjs/_esm5/internal/observable/empty.js","../node_modules/rxjs/_esm5/internal/util/isScheduler.js","../node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","../node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","../node_modules/rxjs/_esm5/internal/observable/fromArray.js","../node_modules/rxjs/_esm5/internal/observable/of.js","../node_modules/rxjs/_esm5/internal/observable/throwError.js","../node_modules/rxjs/_esm5/internal/Notification.js","../node_modules/rxjs/_esm5/internal/operators/observeOn.js","../node_modules/rxjs/_esm5/internal/ReplaySubject.js","../node_modules/rxjs/_esm5/internal/AsyncSubject.js","../node_modules/rxjs/_esm5/internal/util/Immediate.js","../node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js","../node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js","../node_modules/rxjs/_esm5/internal/scheduler/asap.js","../node_modules/rxjs/_esm5/internal/scheduler/async.js","../node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","../node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","../node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","../node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js","../node_modules/rxjs/_esm5/internal/util/identity.js","../node_modules/rxjs/_esm5/internal/util/isObservable.js","../node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","../node_modules/rxjs/_esm5/internal/util/EmptyError.js","../node_modules/rxjs/_esm5/internal/util/TimeoutError.js","../node_modules/rxjs/_esm5/internal/operators/map.js","../node_modules/rxjs/_esm5/internal/observable/bindCallback.js","../node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js","../node_modules/rxjs/_esm5/internal/OuterSubscriber.js","../node_modules/rxjs/_esm5/internal/InnerSubscriber.js","../node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","../node_modules/rxjs/_esm5/internal/symbol/iterator.js","../node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","../node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","../node_modules/rxjs/_esm5/internal/util/isArrayLike.js","../node_modules/rxjs/_esm5/internal/util/isPromise.js","../node_modules/rxjs/_esm5/internal/util/subscribeTo.js","../node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","../node_modules/rxjs/_esm5/internal/observable/combineLatest.js","../node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","../node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","../node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","../node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","../node_modules/rxjs/_esm5/internal/util/isIterable.js","../node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","../node_modules/rxjs/_esm5/internal/observable/from.js","../node_modules/rxjs/_esm5/internal/operators/mergeMap.js","../node_modules/rxjs/_esm5/internal/operators/mergeAll.js","../node_modules/rxjs/_esm5/internal/operators/concatAll.js","../node_modules/rxjs/_esm5/internal/observable/concat.js","../node_modules/rxjs/_esm5/internal/observable/defer.js","../node_modules/rxjs/_esm5/internal/observable/forkJoin.js","../node_modules/rxjs/_esm5/internal/observable/fromEvent.js","../node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","../node_modules/rxjs/_esm5/internal/observable/generate.js","../node_modules/rxjs/_esm5/internal/observable/iif.js","../node_modules/rxjs/_esm5/internal/util/isNumeric.js","../node_modules/rxjs/_esm5/internal/observable/interval.js","../node_modules/rxjs/_esm5/internal/observable/merge.js","../node_modules/rxjs/_esm5/internal/observable/never.js","../node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js","../node_modules/rxjs/_esm5/internal/observable/pairs.js","../node_modules/rxjs/_esm5/internal/util/not.js","../node_modules/rxjs/_esm5/internal/operators/filter.js","../node_modules/rxjs/_esm5/internal/observable/partition.js","../node_modules/rxjs/_esm5/internal/observable/race.js","../node_modules/rxjs/_esm5/internal/observable/range.js","../node_modules/rxjs/_esm5/internal/observable/timer.js","../node_modules/rxjs/_esm5/internal/observable/using.js","../node_modules/rxjs/_esm5/internal/observable/zip.js","../node_modules/rxjs/_esm5/index.js","../node_modules/rxjs/_esm5/internal/operators/audit.js","../node_modules/rxjs/_esm5/internal/operators/auditTime.js","../node_modules/rxjs/_esm5/internal/operators/buffer.js","../node_modules/rxjs/_esm5/internal/operators/bufferCount.js","../node_modules/rxjs/_esm5/internal/operators/bufferTime.js","../node_modules/rxjs/_esm5/internal/operators/bufferToggle.js","../node_modules/rxjs/_esm5/internal/operators/bufferWhen.js","../node_modules/rxjs/_esm5/internal/operators/catchError.js","../node_modules/rxjs/_esm5/internal/operators/combineAll.js","../node_modules/rxjs/_esm5/internal/operators/combineLatest.js","../node_modules/rxjs/_esm5/internal/operators/concat.js","../node_modules/rxjs/_esm5/internal/operators/concatMap.js","../node_modules/rxjs/_esm5/internal/operators/concatMapTo.js","../node_modules/rxjs/_esm5/internal/operators/count.js","../node_modules/rxjs/_esm5/internal/operators/debounce.js","../node_modules/rxjs/_esm5/internal/operators/debounceTime.js","../node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js","../node_modules/rxjs/_esm5/internal/util/isDate.js","../node_modules/rxjs/_esm5/internal/operators/delay.js","../node_modules/rxjs/_esm5/internal/operators/delayWhen.js","../node_modules/rxjs/_esm5/internal/operators/dematerialize.js","../node_modules/rxjs/_esm5/internal/operators/distinct.js","../node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","../node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","../node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js","../node_modules/rxjs/_esm5/internal/operators/take.js","../node_modules/rxjs/_esm5/internal/operators/elementAt.js","../node_modules/rxjs/_esm5/internal/operators/endWith.js","../node_modules/rxjs/_esm5/internal/operators/every.js","../node_modules/rxjs/_esm5/internal/operators/exhaust.js","../node_modules/rxjs/_esm5/internal/operators/exhaustMap.js","../node_modules/rxjs/_esm5/internal/operators/expand.js","../node_modules/rxjs/_esm5/internal/operators/finalize.js","../node_modules/rxjs/_esm5/internal/operators/find.js","../node_modules/rxjs/_esm5/internal/operators/findIndex.js","../node_modules/rxjs/_esm5/internal/operators/first.js","../node_modules/rxjs/_esm5/internal/operators/ignoreElements.js","../node_modules/rxjs/_esm5/internal/operators/isEmpty.js","../node_modules/rxjs/_esm5/internal/operators/takeLast.js","../node_modules/rxjs/_esm5/internal/operators/last.js","../node_modules/rxjs/_esm5/internal/operators/mapTo.js","../node_modules/rxjs/_esm5/internal/operators/materialize.js","../node_modules/rxjs/_esm5/internal/operators/scan.js","../node_modules/rxjs/_esm5/internal/operators/reduce.js","../node_modules/rxjs/_esm5/internal/operators/max.js","../node_modules/rxjs/_esm5/internal/operators/merge.js","../node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js","../node_modules/rxjs/_esm5/internal/operators/mergeScan.js","../node_modules/rxjs/_esm5/internal/operators/min.js","../node_modules/rxjs/_esm5/internal/operators/multicast.js","../node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js","../node_modules/rxjs/_esm5/internal/operators/pairwise.js","../node_modules/rxjs/_esm5/internal/operators/partition.js","../node_modules/rxjs/_esm5/internal/operators/pluck.js","../node_modules/rxjs/_esm5/internal/operators/publish.js","../node_modules/rxjs/_esm5/internal/operators/publishBehavior.js","../node_modules/rxjs/_esm5/internal/operators/publishLast.js","../node_modules/rxjs/_esm5/internal/operators/publishReplay.js","../node_modules/rxjs/_esm5/internal/operators/race.js","../node_modules/rxjs/_esm5/internal/operators/repeat.js","../node_modules/rxjs/_esm5/internal/operators/repeatWhen.js","../node_modules/rxjs/_esm5/internal/operators/retry.js","../node_modules/rxjs/_esm5/internal/operators/retryWhen.js","../node_modules/rxjs/_esm5/internal/operators/sample.js","../node_modules/rxjs/_esm5/internal/operators/sampleTime.js","../node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js","../node_modules/rxjs/_esm5/internal/operators/share.js","../node_modules/rxjs/_esm5/internal/operators/shareReplay.js","../node_modules/rxjs/_esm5/internal/operators/single.js","../node_modules/rxjs/_esm5/internal/operators/skip.js","../node_modules/rxjs/_esm5/internal/operators/skipLast.js","../node_modules/rxjs/_esm5/internal/operators/skipUntil.js","../node_modules/rxjs/_esm5/internal/operators/skipWhile.js","../node_modules/rxjs/_esm5/internal/operators/startWith.js","../node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js","../node_modules/rxjs/_esm5/internal/operators/subscribeOn.js","../node_modules/rxjs/_esm5/internal/operators/switchMap.js","../node_modules/rxjs/_esm5/internal/operators/switchAll.js","../node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","../node_modules/rxjs/_esm5/internal/operators/takeUntil.js","../node_modules/rxjs/_esm5/internal/operators/takeWhile.js","../node_modules/rxjs/_esm5/internal/operators/tap.js","../node_modules/rxjs/_esm5/internal/operators/throttle.js","../node_modules/rxjs/_esm5/internal/operators/throttleTime.js","../node_modules/rxjs/_esm5/internal/operators/timeInterval.js","../node_modules/rxjs/_esm5/internal/operators/timeoutWith.js","../node_modules/rxjs/_esm5/internal/operators/timeout.js","../node_modules/rxjs/_esm5/internal/operators/timestamp.js","../node_modules/rxjs/_esm5/internal/operators/toArray.js","../node_modules/rxjs/_esm5/internal/operators/window.js","../node_modules/rxjs/_esm5/internal/operators/windowCount.js","../node_modules/rxjs/_esm5/internal/operators/windowTime.js","../node_modules/rxjs/_esm5/internal/operators/windowToggle.js","../node_modules/rxjs/_esm5/internal/operators/windowWhen.js","../node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","../node_modules/rxjs/_esm5/internal/operators/zip.js","../node_modules/rxjs/_esm5/internal/operators/zipAll.js","../node_modules/rxjs/_esm5/operators/index.js","../node_modules/@datorama/akita/fesm5/datorama-akita.js","../src/state/todos.store.js","../src/state/todos.query.js","../src/state/todos.service.js","../src/Todo.svelte","../src/AddTodo.svelte","../src/Filters.svelte","../src/Todos.svelte","../src/NavLink.svelte","../src/main.js"],"sourcesContent":["function noop() {}\n\nconst identity = x => x;\n\nfunction assign(tar, src) {\n\tfor (const k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction is_promise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nfunction add_location(element, file, line, column, char) {\n\telement.__svelte_meta = {\n\t\tloc: { file, line, column, char }\n\t};\n}\n\nfunction run(fn) {\n\treturn fn();\n}\n\nfunction blank_object() {\n\treturn Object.create(null);\n}\n\nfunction run_all(fns) {\n\tfns.forEach(run);\n}\n\nfunction is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction not_equal(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction validate_store(store, name) {\n\tif (!store || typeof store.subscribe !== 'function') {\n\t\tthrow new Error(`'${name}' is not a store with a 'subscribe' method`);\n\t}\n}\n\nfunction subscribe(component, store, callback) {\n\tconst unsub = store.subscribe(callback);\n\n\tcomponent.$$.on_destroy.push(unsub.unsubscribe\n\t\t? () => unsub.unsubscribe()\n\t\t: unsub);\n}\n\nfunction create_slot(definition, ctx, fn) {\n\tif (definition) {\n\t\tconst slot_ctx = get_slot_context(definition, ctx, fn);\n\t\treturn definition[0](slot_ctx);\n\t}\n}\n\nfunction get_slot_context(definition, ctx, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n\t\t: ctx.$$scope.ctx;\n}\n\nfunction get_slot_changes(definition, ctx, changed, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n\t\t: ctx.$$scope.changed || {};\n}\n\nfunction exclude_internal_props(props) {\n\tconst result = {};\n\tfor (const k in props) if (k[0] !== '$') result[k] = props[k];\n\treturn result;\n}\n\nconst tasks = new Set();\nlet running = false;\n\nfunction run_tasks() {\n\ttasks.forEach(task => {\n\t\tif (!task[0](window.performance.now())) {\n\t\t\ttasks.delete(task);\n\t\t\ttask[1]();\n\t\t}\n\t});\n\n\trunning = tasks.size > 0;\n\tif (running) requestAnimationFrame(run_tasks);\n}\n\nfunction clear_loops() {\n\t// for testing...\n\ttasks.forEach(task => tasks.delete(task));\n\trunning = false;\n}\n\nfunction loop(fn) {\n\tlet task;\n\n\tif (!running) {\n\t\trunning = true;\n\t\trequestAnimationFrame(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise(fulfil => {\n\t\t\ttasks.add(task = [fn, fulfil]);\n\t\t}),\n\t\tabort() {\n\t\t\ttasks.delete(task);\n\t\t}\n\t};\n}\n\nfunction append(target, node) {\n\ttarget.appendChild(node);\n}\n\nfunction insert(target, node, anchor) {\n\ttarget.insertBefore(node, anchor || null);\n}\n\nfunction detach(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detach_between(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detach_before(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detach_after(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction destroy_each(iterations, detaching) {\n\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d(detaching);\n\t}\n}\n\nfunction element(name) {\n\treturn document.createElement(name);\n}\n\nfunction object_without_properties(obj, exclude) {\n\tconst target = {};\n\tfor (const k in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) {\n\t\t\ttarget[k] = obj[k];\n\t\t}\n\t}\n\treturn target;\n}\n\nfunction svg_element(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction space() {\n\treturn text(' ');\n}\n\nfunction empty() {\n\treturn text('');\n}\n\nfunction listen(node, event, handler, options) {\n\tnode.addEventListener(event, handler, options);\n\treturn () => node.removeEventListener(event, handler, options);\n}\n\nfunction prevent_default(fn) {\n\treturn function(event) {\n\t\tevent.preventDefault();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction stop_propagation(fn) {\n\treturn function(event) {\n\t\tevent.stopPropagation();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction attr(node, attribute, value) {\n\tif (value == null) node.removeAttribute(attribute);\n\telse node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n\tfor (const key in attributes) {\n\t\tif (key === 'style') {\n\t\t\tnode.style.cssText = attributes[key];\n\t\t} else if (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tattr(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction set_custom_element_data(node, prop, value) {\n\tif (prop in node) {\n\t\tnode[prop] = value;\n\t} else {\n\t\tattr(node, prop, value);\n\t}\n}\n\nfunction xlink_attr(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction get_binding_group_value(group) {\n\tconst value = [];\n\tfor (let i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction to_number(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction time_ranges_to_array(ranges) {\n\tconst array = [];\n\tfor (let i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children(element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claim_element(nodes, name, attributes, svg) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (let j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tconst attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? svg_element(name) : element(name);\n}\n\nfunction claim_text(nodes, data) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn text(data);\n}\n\nfunction set_data(text, data) {\n\tdata = '' + data;\n\tif (text.data !== data) text.data = data;\n}\n\nfunction set_input_type(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {\n\t\t// do nothing\n\t}\n}\n\nfunction set_style(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction select_option(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction select_options(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction select_value(select) {\n\tconst selected_option = select.querySelector(':checked') || select.options[0];\n\treturn selected_option && selected_option.__value;\n}\n\nfunction select_multiple_value(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n\nfunction add_resize_listener(element, fn) {\n\tif (getComputedStyle(element).position === 'static') {\n\t\telement.style.position = 'relative';\n\t}\n\n\tconst object = document.createElement('object');\n\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\tobject.type = 'text/html';\n\n\tlet win;\n\n\tobject.onload = () => {\n\t\twin = object.contentDocument.defaultView;\n\t\twin.addEventListener('resize', fn);\n\t};\n\n\tif (/Trident/.test(navigator.userAgent)) {\n\t\telement.appendChild(object);\n\t\tobject.data = 'about:blank';\n\t} else {\n\t\tobject.data = 'about:blank';\n\t\telement.appendChild(object);\n\t}\n\n\treturn {\n\t\tcancel: () => {\n\t\t\twin && win.removeEventListener && win.removeEventListener('resize', fn);\n\t\t\telement.removeChild(object);\n\t\t}\n\t};\n}\n\nfunction toggle_class(element, name, toggle) {\n\telement.classList[toggle ? 'add' : 'remove'](name);\n}\n\nfunction custom_event(type, detail) {\n\tconst e = document.createEvent('CustomEvent');\n\te.initCustomEvent(type, false, false, detail);\n\treturn e;\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n\tconst step = 16.666 / duration;\n\tlet keyframes = '{\\n';\n\n\tfor (let p = 0; p <= 1; p += step) {\n\t\tconst t = a + (b - a) * ease(p);\n\t\tkeyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n\t}\n\n\tconst rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n\tconst name = `__svelte_${hash(rule)}_${uid}`;\n\n\tif (!current_rules[name]) {\n\t\tif (!stylesheet) {\n\t\t\tconst style = element('style');\n\t\t\tdocument.head.appendChild(style);\n\t\t\tstylesheet = style.sheet;\n\t\t}\n\n\t\tcurrent_rules[name] = true;\n\t\tstylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n\t}\n\n\tconst animation = node.style.animation || '';\n\tnode.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n\n\tactive += 1;\n\treturn name;\n}\n\nfunction delete_rule(node, name) {\n\tnode.style.animation = (node.style.animation || '')\n\t\t.split(', ')\n\t\t.filter(name\n\t\t\t? anim => anim.indexOf(name) < 0 // remove specific animation\n\t\t\t: anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n\t\t)\n\t\t.join(', ');\n\n\tif (name && !--active) clear_rules();\n}\n\nfunction clear_rules() {\n\trequestAnimationFrame(() => {\n\t\tif (active) return;\n\t\tlet i = stylesheet.cssRules.length;\n\t\twhile (i--) stylesheet.deleteRule(i);\n\t\tcurrent_rules = {};\n\t});\n}\n\nfunction create_animation(node, from, fn, params) {\n\tif (!from) return noop;\n\n\tconst to = node.getBoundingClientRect();\n\tif (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop;\n\n\tconst {\n\t\tdelay = 0,\n\t\tduration = 300,\n\t\teasing = identity,\n\t\tstart: start_time = window.performance.now() + delay,\n\t\tend = start_time + duration,\n\t\ttick = noop,\n\t\tcss\n\t} = fn(node, { from, to }, params);\n\n\tlet running = true;\n\tlet started = false;\n\tlet name;\n\n\tconst css_text = node.style.cssText;\n\n\tfunction start() {\n\t\tif (css) {\n\t\t\tif (delay) node.style.cssText = css_text; // TODO create delayed animation instead?\n\t\t\tname = create_rule(node, 0, 1, duration, 0, easing, css);\n\t\t}\n\n\t\tstarted = true;\n\t}\n\n\tfunction stop() {\n\t\tif (css) delete_rule(node, name);\n\t\trunning = false;\n\t}\n\n\tloop(now => {\n\t\tif (!started && now >= start_time) {\n\t\t\tstart();\n\t\t}\n\n\t\tif (started && now >= end) {\n\t\t\ttick(1, 0);\n\t\t\tstop();\n\t\t}\n\n\t\tif (!running) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (started) {\n\t\t\tconst p = now - start_time;\n\t\t\tconst t = 0 + 1 * easing(p / duration);\n\t\t\ttick(t, 1 - t);\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif (delay) {\n\t\tif (css) node.style.cssText += css(0, 1);\n\t} else {\n\t\tstart();\n\t}\n\n\ttick(0, 1);\n\n\treturn stop;\n}\n\nfunction fix_position(node) {\n\tconst style = getComputedStyle(node);\n\n\tif (style.position !== 'absolute' && style.position !== 'fixed') {\n\t\tconst { width, height } = style;\n\t\tconst a = node.getBoundingClientRect();\n\t\tnode.style.position = 'absolute';\n\t\tnode.style.width = width;\n\t\tnode.style.height = height;\n\t\tconst b = node.getBoundingClientRect();\n\n\t\tif (a.left !== b.left || a.top !== b.top) {\n\t\t\tconst style = getComputedStyle(node);\n\t\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\t\t\tnode.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n\t\t}\n\t}\n}\n\nlet current_component;\n\nfunction set_current_component(component) {\n\tcurrent_component = component;\n}\n\nfunction get_current_component() {\n\tif (!current_component) throw new Error(`Function called outside component initialization`);\n\treturn current_component;\n}\n\nfunction beforeUpdate(fn) {\n\tget_current_component().$$.before_render.push(fn);\n}\n\nfunction onMount(fn) {\n\tget_current_component().$$.on_mount.push(fn);\n}\n\nfunction afterUpdate(fn) {\n\tget_current_component().$$.after_render.push(fn);\n}\n\nfunction onDestroy(fn) {\n\tget_current_component().$$.on_destroy.push(fn);\n}\n\nfunction createEventDispatcher() {\n\tconst component = current_component;\n\n\treturn (type, detail) => {\n\t\tconst callbacks = component.$$.callbacks[type];\n\n\t\tif (callbacks) {\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = custom_event(type, detail);\n\t\t\tcallbacks.slice().forEach(fn => {\n\t\t\t\tfn.call(component, event);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction setContext(key, context) {\n\tget_current_component().$$.context.set(key, context);\n}\n\nfunction getContext(key) {\n\treturn get_current_component().$$.context.get(key);\n}\n\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n\tconst callbacks = component.$$.callbacks[event.type];\n\n\tif (callbacks) {\n\t\tcallbacks.slice().forEach(fn => fn(event));\n\t}\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\n\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\n\nfunction schedule_update() {\n\tif (!update_scheduled) {\n\t\tupdate_scheduled = true;\n\t\tresolved_promise.then(flush);\n\t}\n}\n\nfunction tick() {\n\tschedule_update();\n\treturn resolved_promise;\n}\n\nfunction add_binding_callback(fn) {\n\tbinding_callbacks.push(fn);\n}\n\nfunction add_render_callback(fn) {\n\trender_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n\tflush_callbacks.push(fn);\n}\n\nfunction flush() {\n\tconst seen_callbacks = new Set();\n\n\tdo {\n\t\t// first, call beforeUpdate functions\n\t\t// and update components\n\t\twhile (dirty_components.length) {\n\t\t\tconst component = dirty_components.shift();\n\t\t\tset_current_component(component);\n\t\t\tupdate(component.$$);\n\t\t}\n\n\t\twhile (binding_callbacks.length) binding_callbacks.shift()();\n\n\t\t// then, once components are updated, call\n\t\t// afterUpdate functions. This may cause\n\t\t// subsequent updates...\n\t\twhile (render_callbacks.length) {\n\t\t\tconst callback = render_callbacks.pop();\n\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\tcallback();\n\n\t\t\t\t// ...so guard against infinite loops\n\t\t\t\tseen_callbacks.add(callback);\n\t\t\t}\n\t\t}\n\t} while (dirty_components.length);\n\n\twhile (flush_callbacks.length) {\n\t\tflush_callbacks.pop()();\n\t}\n\n\tupdate_scheduled = false;\n}\n\nfunction update($$) {\n\tif ($$.fragment) {\n\t\t$$.update($$.dirty);\n\t\trun_all($$.before_render);\n\t\t$$.fragment.p($$.dirty, $$.ctx);\n\t\t$$.dirty = null;\n\n\t\t$$.after_render.forEach(add_render_callback);\n\t}\n}\n\nlet promise;\n\nfunction wait() {\n\tif (!promise) {\n\t\tpromise = Promise.resolve();\n\t\tpromise.then(() => {\n\t\t\tpromise = null;\n\t\t});\n\t}\n\n\treturn promise;\n}\n\nfunction dispatch(node, direction, kind) {\n\tnode.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\n\nlet outros;\n\nfunction group_outros() {\n\toutros = {\n\t\tremaining: 0,\n\t\tcallbacks: []\n\t};\n}\n\nfunction check_outros() {\n\tif (!outros.remaining) {\n\t\trun_all(outros.callbacks);\n\t}\n}\n\nfunction on_outro(callback) {\n\toutros.callbacks.push(callback);\n}\n\nfunction create_in_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = false;\n\tlet animation_name;\n\tlet task;\n\tlet uid = 0;\n\n\tfunction cleanup() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n\t\ttick$$1(0, 1);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tif (task) task.abort();\n\t\trunning = true;\n\n\t\ttask = loop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(1, 0);\n\t\t\t\t\tcleanup();\n\t\t\t\t\treturn running = false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tlet started = false;\n\n\treturn {\n\t\tstart() {\n\t\t\tif (started) return;\n\n\t\t\tdelete_rule(node);\n\n\t\t\tif (typeof config === 'function') {\n\t\t\t\tconfig = config();\n\t\t\t\twait().then(go);\n\t\t\t} else {\n\t\t\t\tgo();\n\t\t\t}\n\t\t},\n\n\t\tinvalidate() {\n\t\t\tstarted = false;\n\t\t},\n\n\t\tend() {\n\t\t\tif (running) {\n\t\t\t\tcleanup();\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_out_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = true;\n\tlet animation_name;\n\n\tconst group = outros;\n\n\tgroup.remaining += 1;\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tloop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(0, 1);\n\n\t\t\t\t\tif (!--group.remaining) {\n\t\t\t\t\t\t// this will result in `end()` being called,\n\t\t\t\t\t\t// so we don't need to clean up here\n\t\t\t\t\t\trun_all(group.callbacks);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(1 - t, t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tif (typeof config === 'function') {\n\t\twait().then(() => {\n\t\t\tconfig = config();\n\t\t\tgo();\n\t\t});\n\t} else {\n\t\tgo();\n\t}\n\n\treturn {\n\t\tend(reset) {\n\t\t\tif (reset && config.tick) {\n\t\t\t\tconfig.tick(1, 0);\n\t\t\t}\n\n\t\t\tif (running) {\n\t\t\t\tif (animation_name) delete_rule(node, animation_name);\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n\tlet config = fn(node, params);\n\n\tlet t = intro ? 0 : 1;\n\n\tlet running_program = null;\n\tlet pending_program = null;\n\tlet animation_name = null;\n\n\tfunction clear_animation() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction init(program, duration) {\n\t\tconst d = program.b - t;\n\t\tduration *= Math.abs(d);\n\n\t\treturn {\n\t\t\ta: t,\n\t\t\tb: program.b,\n\t\t\td,\n\t\t\tduration,\n\t\t\tstart: program.start,\n\t\t\tend: program.start + duration,\n\t\t\tgroup: program.group\n\t\t};\n\t}\n\n\tfunction go(b) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tconst program = {\n\t\t\tstart: window.performance.now() + delay,\n\t\t\tb\n\t\t};\n\n\t\tif (!b) {\n\t\t\tprogram.group = outros;\n\t\t\toutros.remaining += 1;\n\t\t}\n\n\t\tif (running_program) {\n\t\t\tpending_program = program;\n\t\t} else {\n\t\t\t// if this is an intro, and there's a delay, we need to do\n\t\t\t// an initial tick and/or apply CSS animation immediately\n\t\t\tif (css) {\n\t\t\t\tclear_animation();\n\t\t\t\tanimation_name = create_rule(node, t, b, duration, delay, easing, css);\n\t\t\t}\n\n\t\t\tif (b) tick$$1(0, 1);\n\n\t\t\trunning_program = init(program, duration);\n\t\t\tadd_render_callback(() => dispatch(node, b, 'start'));\n\n\t\t\tloop(now => {\n\t\t\t\tif (pending_program && now > pending_program.start) {\n\t\t\t\t\trunning_program = init(pending_program, duration);\n\t\t\t\t\tpending_program = null;\n\n\t\t\t\t\tdispatch(node, running_program.b, 'start');\n\n\t\t\t\t\tif (css) {\n\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\tanimation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (running_program) {\n\t\t\t\t\tif (now >= running_program.end) {\n\t\t\t\t\t\ttick$$1(t = running_program.b, 1 - t);\n\t\t\t\t\t\tdispatch(node, running_program.b, 'end');\n\n\t\t\t\t\t\tif (!pending_program) {\n\t\t\t\t\t\t\t// we're done\n\t\t\t\t\t\t\tif (running_program.b) {\n\t\t\t\t\t\t\t\t// intro — we can tidy up immediately\n\t\t\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// outro — needs to be coordinated\n\t\t\t\t\t\t\t\tif (!--running_program.group.remaining) run_all(running_program.group.callbacks);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trunning_program = null;\n\t\t\t\t\t}\n\n\t\t\t\t\telse if (now >= running_program.start) {\n\t\t\t\t\t\tconst p = now - running_program.start;\n\t\t\t\t\t\tt = running_program.a + running_program.d * easing(p / running_program.duration);\n\t\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn !!(running_program || pending_program);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\trun(b) {\n\t\t\tif (typeof config === 'function') {\n\t\t\t\twait().then(() => {\n\t\t\t\t\tconfig = config();\n\t\t\t\t\tgo(b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgo(b);\n\t\t\t}\n\t\t},\n\n\t\tend() {\n\t\t\tclear_animation();\n\t\t\trunning_program = pending_program = null;\n\t\t}\n\t};\n}\n\nfunction handle_promise(promise, info) {\n\tconst token = info.token = {};\n\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\n\t\tinfo.resolved = key && { [key]: value };\n\n\t\tconst child_ctx = assign(assign({}, info.ctx), info.resolved);\n\t\tconst block = type && (info.current = type)(child_ctx);\n\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ton_outro(() => {\n\t\t\t\t\t\t\tblock.d(1);\n\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tblock.o(1);\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\n\t\t\tblock.c();\n\t\t\tif (block.i) block.i(1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\n\t\t\tflush();\n\t\t}\n\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t}\n\n\tif (is_promise(promise)) {\n\t\tpromise.then(value => {\n\t\t\tupdate(info.then, 1, info.value, value);\n\t\t}, error => {\n\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t});\n\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\n\t\tinfo.resolved = { [info.value]: promise };\n\t}\n}\n\nfunction destroy_block(block, lookup) {\n\tblock.d(1);\n\tlookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n\ton_outro(() => {\n\t\tdestroy_block(block, lookup);\n\t});\n\n\tblock.o(1);\n}\n\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n\tblock.f();\n\toutro_and_destroy_block(block, lookup);\n}\n\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n\tlet o = old_blocks.length;\n\tlet n = list.length;\n\n\tlet i = o;\n\tconst old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tconst new_blocks = [];\n\tconst new_lookup = new Map();\n\tconst deltas = new Map();\n\n\ti = n;\n\twhile (i--) {\n\t\tconst child_ctx = get_context(ctx, list, i);\n\t\tconst key = get_key(child_ctx);\n\t\tlet block = lookup.get(key);\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, child_ctx);\n\t\t}\n\n\t\tnew_lookup.set(key, new_blocks[i] = block);\n\n\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t}\n\n\tconst will_move = new Set();\n\tconst did_move = new Set();\n\n\tfunction insert(block) {\n\t\tif (block.i) block.i(1);\n\t\tblock.m(node, next);\n\t\tlookup.set(block.key, block);\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tconst new_block = new_blocks[n - 1];\n\t\tconst old_block = old_blocks[o - 1];\n\t\tconst new_key = new_block.key;\n\t\tconst old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup.has(old_key)) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move.has(old_key)) {\n\t\t\to--;\n\n\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\tdid_move.add(new_key);\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move.add(old_key);\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tconst old_block = old_blocks[o];\n\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction measure(blocks) {\n\tconst rects = {};\n\tlet i = blocks.length;\n\twhile (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n\treturn rects;\n}\n\nfunction get_spread_update(levels, updates) {\n\tconst update = {};\n\n\tconst to_null_out = {};\n\tconst accounted_for = { $$scope: 1 };\n\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\n\nfunction spread(args) {\n\tconst attributes = Object.assign({}, ...args);\n\tlet str = '';\n\n\tObject.keys(attributes).forEach(name => {\n\t\tif (invalid_attribute_name_character.test(name)) return;\n\n\t\tconst value = attributes[name];\n\t\tif (value === undefined) return;\n\t\tif (value === true) str += \" \" + name;\n\n\t\tconst escaped = String(value)\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/'/g, ''');\n\n\t\tstr += \" \" + name + \"=\" + JSON.stringify(escaped);\n\t});\n\n\treturn str;\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nfunction escape(html) {\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\n\nfunction each(items, fn) {\n\tlet str = '';\n\tfor (let i = 0; i < items.length; i += 1) {\n\t\tstr += fn(items[i], i);\n\t}\n\treturn str;\n}\n\nconst missing_component = {\n\t$$render: () => ''\n};\n\nfunction validate_component(component, name) {\n\tif (!component || !component.$$render) {\n\t\tif (name === 'svelte:component') name += ' this={...}';\n\t\tthrow new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n\t}\n\n\treturn component;\n}\n\nfunction debug(file, line, column, values) {\n\tconsole.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n\tconsole.log(values); // eslint-disable-line no-console\n\treturn '';\n}\n\nlet on_destroy;\n\nfunction create_ssr_component(fn) {\n\tfunction $$render(result, props, bindings, slots) {\n\t\tconst parent_component = current_component;\n\n\t\tconst $$ = {\n\t\t\ton_destroy,\n\t\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t\t// these will be immediately discarded\n\t\t\ton_mount: [],\n\t\t\tbefore_render: [],\n\t\t\tafter_render: [],\n\t\t\tcallbacks: blank_object()\n\t\t};\n\n\t\tset_current_component({ $$ });\n\n\t\tconst html = fn(result, props, bindings, slots);\n\n\t\tset_current_component(parent_component);\n\t\treturn html;\n\t}\n\n\treturn {\n\t\trender: (props = {}, options = {}) => {\n\t\t\ton_destroy = [];\n\n\t\t\tconst result = { head: '', css: new Set() };\n\t\t\tconst html = $$render(result, props, {}, options);\n\n\t\t\trun_all(on_destroy);\n\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tcss: {\n\t\t\t\t\tcode: Array.from(result.css).map(css => css.code).join('\\n'),\n\t\t\t\t\tmap: null // TODO\n\t\t\t\t},\n\t\t\t\thead: result.head\n\t\t\t};\n\t\t},\n\n\t\t$$render\n\t};\n}\n\nfunction get_store_value(store) {\n\tlet value;\n\tstore.subscribe(_ => value = _)();\n\treturn value;\n}\n\nfunction bind(component, name, callback) {\n\tif (component.$$.props.indexOf(name) === -1) return;\n\tcomponent.$$.bound[name] = callback;\n\tcallback(component.$$.ctx[name]);\n}\n\nfunction mount_component(component, target, anchor) {\n\tconst { fragment, on_mount, on_destroy, after_render } = component.$$;\n\n\tfragment.m(target, anchor);\n\n\t// onMount happens after the initial afterUpdate. Because\n\t// afterUpdate callbacks happen in reverse order (inner first)\n\t// we schedule onMount callbacks before afterUpdate callbacks\n\tadd_render_callback(() => {\n\t\tconst new_on_destroy = on_mount.map(run).filter(is_function);\n\t\tif (on_destroy) {\n\t\t\ton_destroy.push(...new_on_destroy);\n\t\t} else {\n\t\t\t// Edge case - component was destroyed immediately,\n\t\t\t// most likely as a result of a binding initialising\n\t\t\trun_all(new_on_destroy);\n\t\t}\n\t\tcomponent.$$.on_mount = [];\n\t});\n\n\tafter_render.forEach(add_render_callback);\n}\n\nfunction destroy(component, detaching) {\n\tif (component.$$) {\n\t\trun_all(component.$$.on_destroy);\n\t\tcomponent.$$.fragment.d(detaching);\n\n\t\t// TODO null out other refs, including component.$$ (but need to\n\t\t// preserve final state?)\n\t\tcomponent.$$.on_destroy = component.$$.fragment = null;\n\t\tcomponent.$$.ctx = {};\n\t}\n}\n\nfunction make_dirty(component, key) {\n\tif (!component.$$.dirty) {\n\t\tdirty_components.push(component);\n\t\tschedule_update();\n\t\tcomponent.$$.dirty = {};\n\t}\n\tcomponent.$$.dirty[key] = true;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal$$1, prop_names) {\n\tconst parent_component = current_component;\n\tset_current_component(component);\n\n\tconst props = options.props || {};\n\n\tconst $$ = component.$$ = {\n\t\tfragment: null,\n\t\tctx: null,\n\n\t\t// state\n\t\tprops: prop_names,\n\t\tupdate: noop,\n\t\tnot_equal: not_equal$$1,\n\t\tbound: blank_object(),\n\n\t\t// lifecycle\n\t\ton_mount: [],\n\t\ton_destroy: [],\n\t\tbefore_render: [],\n\t\tafter_render: [],\n\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t// everything else\n\t\tcallbacks: blank_object(),\n\t\tdirty: null\n\t};\n\n\tlet ready = false;\n\n\t$$.ctx = instance\n\t\t? instance(component, props, (key, value) => {\n\t\t\tif ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) {\n\t\t\t\tif ($$.bound[key]) $$.bound[key](value);\n\t\t\t\tif (ready) make_dirty(component, key);\n\t\t\t}\n\t\t})\n\t\t: props;\n\n\t$$.update();\n\tready = true;\n\trun_all($$.before_render);\n\t$$.fragment = create_fragment($$.ctx);\n\n\tif (options.target) {\n\t\tif (options.hydrate) {\n\t\t\t$$.fragment.l(children(options.target));\n\t\t} else {\n\t\t\t$$.fragment.c();\n\t\t}\n\n\t\tif (options.intro && component.$$.fragment.i) component.$$.fragment.i();\n\t\tmount_component(component, options.target, options.anchor);\n\t\tflush();\n\t}\n\n\tset_current_component(parent_component);\n}\n\nlet SvelteElement;\nif (typeof HTMLElement !== 'undefined') {\n\tSvelteElement = class extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tfor (const key in this.$$.slotted) {\n\t\t\t\tthis.appendChild(this.$$.slotted[key]);\n\t\t\t}\n\t\t}\n\n\t\tattributeChangedCallback(attr$$1, oldValue, newValue) {\n\t\t\tthis[attr$$1] = newValue;\n\t\t}\n\n\t\t$destroy() {\n\t\t\tdestroy(this, true);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t$on(type, callback) {\n\t\t\t// TODO should this delegate to addEventListener?\n\t\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\t\tcallbacks.push(callback);\n\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t$set() {\n\t\t\t// overridden by instance, if it has props\n\t\t}\n\t};\n}\n\nclass SvelteComponent {\n\t$destroy() {\n\t\tdestroy(this, true);\n\t\tthis.$destroy = noop;\n\t}\n\n\t$on(type, callback) {\n\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\tcallbacks.push(callback);\n\n\t\treturn () => {\n\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t};\n\t}\n\n\t$set() {\n\t\t// overridden by instance, if it has props\n\t}\n}\n\nclass SvelteComponentDev extends SvelteComponent {\n\tconstructor(options) {\n\t\tif (!options || (!options.target && !options.$$inline)) {\n\t\t\tthrow new Error(`'target' is a required option`);\n\t\t}\n\n\t\tsuper();\n\t}\n\n\t$destroy() {\n\t\tsuper.$destroy();\n\t\tthis.$destroy = () => {\n\t\t\tconsole.warn(`Component was already destroyed`); // eslint-disable-line no-console\n\t\t};\n\t}\n}\n\nexport { create_animation, fix_position, handle_promise, append, insert, detach, detach_between, detach_before, detach_after, destroy_each, element, object_without_properties, svg_element, text, space, empty, listen, prevent_default, stop_propagation, attr, set_attributes, set_custom_element_data, xlink_attr, get_binding_group_value, to_number, time_ranges_to_array, children, claim_element, claim_text, set_data, set_input_type, set_style, select_option, select_options, select_value, select_multiple_value, add_resize_listener, toggle_class, custom_event, destroy_block, outro_and_destroy_block, fix_and_outro_and_destroy_block, update_keyed_each, measure, current_component, set_current_component, beforeUpdate, onMount, afterUpdate, onDestroy, createEventDispatcher, setContext, getContext, bubble, clear_loops, loop, dirty_components, intros, schedule_update, tick, add_binding_callback, add_render_callback, add_flush_callback, flush, get_spread_update, invalid_attribute_name_character, spread, escaped, escape, each, missing_component, validate_component, debug, create_ssr_component, get_store_value, group_outros, check_outros, on_outro, create_in_transition, create_out_transition, create_bidirectional_transition, noop, identity, assign, is_promise, add_location, run, blank_object, run_all, is_function, safe_not_equal, not_equal, validate_store, subscribe, create_slot, get_slot_context, get_slot_changes, exclude_internal_props, bind, mount_component, init, SvelteElement, SvelteComponent, SvelteComponentDev };\n","import { run_all, noop, get_store_value, safe_not_equal } from './internal';\n\nexport function readable(value, start) {\n\treturn {\n\t\tsubscribe: writable(value, start).subscribe\n\t};\n}\n\nexport function writable(value, start = noop) {\n\tlet stop;\n\tconst subscribers = [];\n\n\tfunction set(new_value) {\n\t\tif (safe_not_equal(value, new_value)) {\n\t\t\tvalue = new_value;\n\t\t\tif (!stop) return; // not ready\n\t\t\tsubscribers.forEach(s => s[1]());\n\t\t\tsubscribers.forEach(s => s[0](value));\n\t\t}\n\t}\n\n\tfunction update(fn) {\n\t\tset(fn(value));\n\t}\n\n\tfunction subscribe(run, invalidate = noop) {\n\t\tconst subscriber = [run, invalidate];\n\t\tsubscribers.push(subscriber);\n\t\tif (subscribers.length === 1) stop = start(set) || noop;\n\t\trun(value);\n\n\t\treturn () => {\n\t\t\tconst index = subscribers.indexOf(subscriber);\n\t\t\tif (index !== -1) subscribers.splice(index, 1);\n\t\t\tif (subscribers.length === 0) stop();\n\t\t};\n\t}\n\n\treturn { set, update, subscribe };\n}\n\nexport function derived(stores, fn, initial_value) {\n\tconst single = !Array.isArray(stores);\n\tif (single) stores = [stores];\n\n\tconst auto = fn.length < 2;\n\tlet value = {};\n\n\treturn readable(initial_value, set => {\n\t\tlet inited = false;\n\t\tconst values = [];\n\n\t\tlet pending = 0;\n\n\t\tconst sync = () => {\n\t\t\tif (pending) return;\n\t\t\tconst result = fn(single ? values[0] : values, set);\n\t\t\tif (auto) set(result);\n\t\t};\n\n\t\tconst unsubscribers = stores.map((store, i) => store.subscribe(\n\t\t\tvalue => {\n\t\t\t\tvalues[i] = value;\n\t\t\t\tpending &= ~(1 << i);\n\t\t\t\tif (inited) sync();\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tpending |= (1 << i);\n\t\t\t})\n\t\t);\n\n\t\tinited = true;\n\t\tsync();\n\n\t\treturn function stop() {\n\t\t\trun_all(unsubscribers);\n\t\t};\n\t});\n}\n\nexport { get_store_value as get };\n","export const LOCATION = {};\nexport const ROUTER = {};\n","/**\n * Adapted from https://github.com/reach/router/blob/b60e6dd781d5d3a4bdaaf4de665649c0f6a7e78d/src/lib/history.js\n *\n * https://github.com/reach/router/blob/master/LICENSE\n * */\n\nfunction getLocation(source) {\n return {\n ...source.location,\n state: source.history.state,\n key: (source.history.state && source.history.state.key) || \"initial\"\n };\n}\n\nfunction createHistory(source, options) {\n const listeners = [];\n let location = getLocation(source);\n\n return {\n get location() {\n return location;\n },\n\n listen(listener) {\n listeners.push(listener);\n\n const popstateListener = () => {\n location = getLocation(source);\n listener({ location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return () => {\n source.removeEventListener(\"popstate\", popstateListener);\n\n const index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n },\n\n navigate(to, { state, replace = false } = {}) {\n state = { ...state, key: Date.now() + \"\" };\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n\n location = getLocation(source);\n listeners.forEach(listener => listener({ location, action: \"PUSH\" }));\n }\n };\n}\n\n// Stores history entries in memory for testing or other platforms like Native\nfunction createMemorySource(initialPathname = \"/\") {\n let index = 0;\n const stack = [{ pathname: initialPathname, search: \"\" }];\n const states = [];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener(name, fn) {},\n removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\");\n index++;\n stack.push({ pathname, search });\n states.push(state);\n },\n replaceState(state, _, uri) {\n const [pathname, search = \"\"] = uri.split(\"?\");\n stack[index] = { pathname, search };\n states[index] = state;\n }\n }\n };\n}\n\n// Global history uses window.history as the source if available,\n// otherwise a memory history\nconst canUseDOM = Boolean(\n typeof window !== \"undefined\" &&\n window.document &&\n window.document.createElement\n);\nconst globalHistory = createHistory(canUseDOM ? window : createMemorySource());\nconst { navigate } = globalHistory;\n\nexport { globalHistory, navigate, createHistory, createMemorySource };\n","/**\n * Adapted from https://github.com/reach/router/blob/b60e6dd781d5d3a4bdaaf4de665649c0f6a7e78d/src/lib/utils.js\n *\n * https://github.com/reach/router/blob/master/LICENSE\n * */\n\nconst paramRe = /^:(.+)/;\n\nconst SEGMENT_POINTS = 4;\nconst STATIC_POINTS = 3;\nconst DYNAMIC_POINTS = 2;\nconst SPLAT_PENALTY = 1;\nconst ROOT_POINTS = 1;\n\n/**\n * Check if `string` starts with `search`\n * @param {string} string\n * @param {string} search\n * @return {boolean}\n */\nexport function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}\n\n/**\n * Check if `segment` is a root segment\n * @param {string} segment\n * @return {boolean}\n */\nfunction isRootSegment(segment) {\n return segment === \"\";\n}\n\n/**\n * Check if `segment` is a dynamic segment\n * @param {string} segment\n * @return {boolean}\n */\nfunction isDynamic(segment) {\n return paramRe.test(segment);\n}\n\n/**\n * Check if `segment` is a splat\n * @param {string} segment\n * @return {boolean}\n */\nfunction isSplat(segment) {\n return segment[0] === \"*\";\n}\n\n/**\n * Split up the URI into segments delimited by `/`\n * @param {string} uri\n * @return {string[]}\n */\nfunction segmentize(uri) {\n return (\n uri\n // Strip starting/ending `/`\n .replace(/(^\\/+|\\/+$)/g, \"\")\n .split(\"/\")\n );\n}\n\n/**\n * Strip `str` of potential start and end `/`\n * @param {string} str\n * @return {string}\n */\nfunction stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n}\n\n/**\n * Score a route depending on how its individual segments look\n * @param {object} route\n * @param {number} index\n * @return {object}\n */\nfunction rankRoute(route, index) {\n const score = route.default\n ? 0\n : segmentize(route.path).reduce((score, segment) => {\n score += SEGMENT_POINTS;\n\n if (isRootSegment(segment)) {\n score += ROOT_POINTS;\n } else if (isDynamic(segment)) {\n score += DYNAMIC_POINTS;\n } else if (isSplat(segment)) {\n score -= SEGMENT_POINTS + SPLAT_PENALTY;\n } else {\n score += STATIC_POINTS;\n }\n\n return score;\n }, 0);\n\n return { route, score, index };\n}\n\n/**\n * Give a score to all routes and sort them on that\n * @param {object[]} routes\n * @return {object[]}\n */\nfunction rankRoutes(routes) {\n return (\n routes\n .map(rankRoute)\n // If two routes have the exact same score, we go by index instead\n .sort((a, b) =>\n a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index\n )\n );\n}\n\n/**\n * Ranks and picks the best route to match. Each segment gets the highest\n * amount of points, then the type of segment gets an additional amount of\n * points where\n *\n * static > dynamic > splat > root\n *\n * This way we don't have to worry about the order of our routes, let the\n * computers do it.\n *\n * A route looks like this\n *\n * { path, default, value }\n *\n * And a returned match looks like:\n *\n * { route, params, uri }\n *\n * @param {object[]} routes\n * @param {string} uri\n * @return {?object}\n */\nfunction pick(routes, uri) {\n let match;\n let default_;\n\n const [uriPathname] = uri.split(\"?\");\n const uriSegments = segmentize(uriPathname);\n const isRootUri = uriSegments[0] === \"\";\n const ranked = rankRoutes(routes);\n\n for (let i = 0, l = ranked.length; i < l; i++) {\n const route = ranked[i].route;\n let missed = false;\n\n if (route.default) {\n default_ = {\n route,\n params: {},\n uri\n };\n continue;\n }\n\n const routeSegments = segmentize(route.path);\n const params = {};\n const max = Math.max(uriSegments.length, routeSegments.length);\n let index = 0;\n\n for (; index < max; index++) {\n const routeSegment = routeSegments[index];\n const uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/* or /files/*splatname\n const splatName = routeSegment === '*' ? '*' : routeSegment.slice(1);\n\n params[splatName] = uriSegments\n .slice(index)\n .map(decodeURIComponent)\n .join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n let dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n const value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route,\n params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}\n\n/**\n * Check if the `path` matches the `uri`.\n * @param {string} path\n * @param {string} uri\n * @return {?object}\n */\nfunction match(route, uri) {\n return pick([route], uri);\n}\n\n/**\n * Add the query to the pathname if a query is given\n * @param {string} pathname\n * @param {string} [query]\n * @return {string}\n */\nfunction addQuery(pathname, query) {\n return pathname + (query ? `?${query}` : \"\");\n}\n\n/**\n * Resolve URIs as though every path is a directory, no files. Relative URIs\n * in the browser can feel awkward because not only can you be \"in a directory\",\n * you can be \"at a file\", too. For example:\n *\n * browserSpecResolve('foo', '/bar/') => /bar/foo\n * browserSpecResolve('foo', '/bar') => /foo\n *\n * But on the command line of a file system, it's not as complicated. You can't\n * `cd` from a file, only directories. This way, links have to know less about\n * their current path. To go deeper you can do this:\n *\n * \n * // instead of\n * \n *\n * Just like `cd`, if you want to go deeper from the command line, you do this:\n *\n * cd deeper\n * # not\n * cd $(pwd)/deeper\n *\n * By treating every path as a directory, linking to relative paths should\n * require less contextual information and (fingers crossed) be more intuitive.\n * @param {string} to\n * @param {string} base\n * @return {string}\n */\nfunction resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n const [toPathname, toQuery] = to.split(\"?\");\n const [basePathname] = base.split(\"?\");\n const toSegments = segmentize(toPathname);\n const baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n const pathname = baseSegments.concat(toSegments).join(\"/\");\n\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ , /users/123 => /users/123\n // ../ , /users/123 => /users\n // ../.. , /users/123 => /\n // ../../one, /a/b/c/d => /a/b/one\n // .././one , /a/b/c/d => /a/b/c/one\n const allSegments = baseSegments.concat(toSegments);\n const segments = [];\n\n allSegments.forEach(segment => {\n if (segment === \"..\") {\n segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}\n\n/**\n * Combines the `basepath` and the `path` into one path.\n * @param {string} basepath\n * @param {string} path\n */\nfunction combinePaths(basepath, path) {\n return `${stripSlashes(\n path === \"/\" ? basepath : `${stripSlashes(basepath)}/${stripSlashes(path)}`\n )}/*`;\n}\n\n/**\n * Decides whether a given `event` should result in a navigation or not.\n * @param {object} event\n */\nfunction shouldNavigate(event) {\n return (\n !event.defaultPrevented &&\n event.button === 0 &&\n !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)\n );\n}\n\nexport { stripSlashes, pick, match, resolve, combinePaths, shouldNavigate };\n","\n\n\n","\n\n{#if $activeRoute !== null && $activeRoute.route === route}\n {#if component !== null}\n \n {:else}\n \n {/if}\n{/if}\n","\n\n\n \n\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nfunction UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n}\nUnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n//# sourceMappingURL=observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */\nimport { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nfunction ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n}\nObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nvar connectableProto = ConnectableObservable.prototype;\nexport var connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = /*@__PURE__*/ (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","var Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = /*@__PURE__*/ new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/ (function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = /*@__PURE__*/ (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = /*@__PURE__*/ (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar nextHandle = 1;\nvar tasksByHandle = {};\nfunction runIfPresent(handle) {\n var cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(function () { return runIfPresent(handle); });\n return handle;\n },\n clearImmediate: function (handle) {\n delete tasksByHandle[handle];\n },\n};\n//# sourceMappingURL=Immediate.js.map\n","/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map\n","/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */\nimport { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = /*@__PURE__*/ new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map\n","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n","/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */\nimport { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) {\n SchedulerAction = VirtualAction;\n }\n if (maxFrames === void 0) {\n maxFrames = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) {\n index = scheduler.index += 1;\n }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nfunction ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n}\nArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nfunction EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n}\nEmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nfunction TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n}\nTimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map\n","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) {\n destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n }\n if (destination.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(destination);\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map\n","/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = /*@__PURE__*/ (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n });\n }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n","/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */\nimport { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n","/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\nimport { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map\n","/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */\nimport { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = Object.prototype.toString;\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n","/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map\n","/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) {\n trueResult = EMPTY;\n }\n if (falseResult === void 0) {\n falseResult = EMPTY;\n }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map\n","/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */\nimport { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map\n","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) {\n period = 0;\n }\n if (scheduler === void 0) {\n scheduler = async;\n }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map\n","/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = /*@__PURE__*/ new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n","/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n return [\n filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map\n","/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = /*@__PURE__*/ (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) {\n start = 0;\n }\n return new Observable(function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map\n","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) {\n dueTime = 0;\n }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map\n","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map\n","/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = /*@__PURE__*/ (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) {\n values = Object.create(null);\n }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = /*@__PURE__*/ (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = /*@__PURE__*/ (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport { Observable } from './internal/Observable';\nexport { ConnectableObservable } from './internal/observable/ConnectableObservable';\nexport { GroupedObservable } from './internal/operators/groupBy';\nexport { observable } from './internal/symbol/observable';\nexport { Subject } from './internal/Subject';\nexport { BehaviorSubject } from './internal/BehaviorSubject';\nexport { ReplaySubject } from './internal/ReplaySubject';\nexport { AsyncSubject } from './internal/AsyncSubject';\nexport { asap as asapScheduler } from './internal/scheduler/asap';\nexport { async as asyncScheduler } from './internal/scheduler/async';\nexport { queue as queueScheduler } from './internal/scheduler/queue';\nexport { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';\nexport { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';\nexport { Scheduler } from './internal/Scheduler';\nexport { Subscription } from './internal/Subscription';\nexport { Subscriber } from './internal/Subscriber';\nexport { Notification, NotificationKind } from './internal/Notification';\nexport { pipe } from './internal/util/pipe';\nexport { noop } from './internal/util/noop';\nexport { identity } from './internal/util/identity';\nexport { isObservable } from './internal/util/isObservable';\nexport { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from './internal/util/EmptyError';\nexport { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';\nexport { UnsubscriptionError } from './internal/util/UnsubscriptionError';\nexport { TimeoutError } from './internal/util/TimeoutError';\nexport { bindCallback } from './internal/observable/bindCallback';\nexport { bindNodeCallback } from './internal/observable/bindNodeCallback';\nexport { combineLatest } from './internal/observable/combineLatest';\nexport { concat } from './internal/observable/concat';\nexport { defer } from './internal/observable/defer';\nexport { empty } from './internal/observable/empty';\nexport { forkJoin } from './internal/observable/forkJoin';\nexport { from } from './internal/observable/from';\nexport { fromEvent } from './internal/observable/fromEvent';\nexport { fromEventPattern } from './internal/observable/fromEventPattern';\nexport { generate } from './internal/observable/generate';\nexport { iif } from './internal/observable/iif';\nexport { interval } from './internal/observable/interval';\nexport { merge } from './internal/observable/merge';\nexport { never } from './internal/observable/never';\nexport { of } from './internal/observable/of';\nexport { onErrorResumeNext } from './internal/observable/onErrorResumeNext';\nexport { pairs } from './internal/observable/pairs';\nexport { partition } from './internal/observable/partition';\nexport { race } from './internal/observable/race';\nexport { range } from './internal/observable/range';\nexport { throwError } from './internal/observable/throwError';\nexport { timer } from './internal/observable/timer';\nexport { using } from './internal/observable/using';\nexport { zip } from './internal/observable/zip';\nexport { scheduled } from './internal/scheduled/scheduled';\nexport { EMPTY } from './internal/observable/empty';\nexport { NEVER } from './internal/observable/never';\nexport { config } from './internal/config';\n//# sourceMappingURL=index.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = /*@__PURE__*/ (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = /*@__PURE__*/ (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(subscribeToResult(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) {\n startBufferEvery = null;\n }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = /*@__PURE__*/ (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = /*@__PURE__*/ (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = /*@__PURE__*/ (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = /*@__PURE__*/ (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = /*@__PURE__*/ (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = /*@__PURE__*/ (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map\n","/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */\nimport { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map\n","/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map\n","/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */\nimport { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map\n","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map\n","/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */\nimport { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = /*@__PURE__*/ (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = /*@__PURE__*/ (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = /*@__PURE__*/ (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = null;\n }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = /*@__PURE__*/ (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = /*@__PURE__*/ (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = /*@__PURE__*/ (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = /*@__PURE__*/ (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = /*@__PURE__*/ (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = /*@__PURE__*/ (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(subscribeToResult(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = /*@__PURE__*/ (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n","/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\nimport { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n","/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) {\n errorFactory = defaultErrorFactory;\n }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = /*@__PURE__*/ (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(Subscriber));\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = /*@__PURE__*/ (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map\n","/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));\n };\n}\n//# sourceMappingURL=elementAt.js.map\n","/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) { return concat(source, of.apply(void 0, array)); };\n}\n//# sourceMappingURL=endWith.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = /*@__PURE__*/ (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = /*@__PURE__*/ (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = /*@__PURE__*/ (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, result, value, index, innerSubscriber);\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (scheduler === void 0) {\n scheduler = undefined;\n }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = /*@__PURE__*/ (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(subscribeToResult(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = /*@__PURE__*/ (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = /*@__PURE__*/ (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map\n","/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */\nimport { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map\n","/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = /*@__PURE__*/ (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = /*@__PURE__*/ (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = /*@__PURE__*/ (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map\n","/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = /*@__PURE__*/ (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = /*@__PURE__*/ (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = /*@__PURE__*/ (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) {\n hasSeed = false;\n }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map\n","/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map\n","/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */\nimport { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map\n","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = /*@__PURE__*/ (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish, value, index);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map\n","/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\nimport { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = /*@__PURE__*/ (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map\n","/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = /*@__PURE__*/ (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = /*@__PURE__*/ (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map\n","/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) {\n return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ];\n };\n}\n//# sourceMappingURL=partition.js.map\n","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n","/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map\n","/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map\n","/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map\n","/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map\n","/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) {\n count = -1;\n }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = /*@__PURE__*/ (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = /*@__PURE__*/ (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n };\n return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) {\n count = -1;\n }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = /*@__PURE__*/ (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = /*@__PURE__*/ (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = /*@__PURE__*/ (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = /*@__PURE__*/ (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = /*@__PURE__*/ (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map\n","/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n","/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = /*@__PURE__*/ (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = /*@__PURE__*/ (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = /*@__PURE__*/ (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = /*@__PURE__*/ (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = /*@__PURE__*/ (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map\n","/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) { return concat(array, source, scheduler); };\n }\n else {\n return function (source) { return concat(array, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) {\n delayTime = 0;\n }\n if (scheduler === void 0) {\n scheduler = asap;\n }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) {\n delay = 0;\n }\n if (scheduler === void 0) {\n scheduler = asap;\n }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map\n","/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = /*@__PURE__*/ (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = /*@__PURE__*/ (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n","/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map\n","/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = /*@__PURE__*/ (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = /*@__PURE__*/ (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = /*@__PURE__*/ (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = /*@__PURE__*/ (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) {\n return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n });\n };\n}\nvar TimeInterval = /*@__PURE__*/ (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = /*@__PURE__*/ (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = /*@__PURE__*/ (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = /*@__PURE__*/ (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) {\n startWindowEvery = 0;\n }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = /*@__PURE__*/ (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = /*@__PURE__*/ (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = /*@__PURE__*/ (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = /*@__PURE__*/ (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) {\n innerSub = null;\n }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = /*@__PURE__*/ (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map\n","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport { audit } from '../internal/operators/audit';\nexport { auditTime } from '../internal/operators/auditTime';\nexport { buffer } from '../internal/operators/buffer';\nexport { bufferCount } from '../internal/operators/bufferCount';\nexport { bufferTime } from '../internal/operators/bufferTime';\nexport { bufferToggle } from '../internal/operators/bufferToggle';\nexport { bufferWhen } from '../internal/operators/bufferWhen';\nexport { catchError } from '../internal/operators/catchError';\nexport { combineAll } from '../internal/operators/combineAll';\nexport { combineLatest } from '../internal/operators/combineLatest';\nexport { concat } from '../internal/operators/concat';\nexport { concatAll } from '../internal/operators/concatAll';\nexport { concatMap } from '../internal/operators/concatMap';\nexport { concatMapTo } from '../internal/operators/concatMapTo';\nexport { count } from '../internal/operators/count';\nexport { debounce } from '../internal/operators/debounce';\nexport { debounceTime } from '../internal/operators/debounceTime';\nexport { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';\nexport { delay } from '../internal/operators/delay';\nexport { delayWhen } from '../internal/operators/delayWhen';\nexport { dematerialize } from '../internal/operators/dematerialize';\nexport { distinct } from '../internal/operators/distinct';\nexport { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';\nexport { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';\nexport { elementAt } from '../internal/operators/elementAt';\nexport { endWith } from '../internal/operators/endWith';\nexport { every } from '../internal/operators/every';\nexport { exhaust } from '../internal/operators/exhaust';\nexport { exhaustMap } from '../internal/operators/exhaustMap';\nexport { expand } from '../internal/operators/expand';\nexport { filter } from '../internal/operators/filter';\nexport { finalize } from '../internal/operators/finalize';\nexport { find } from '../internal/operators/find';\nexport { findIndex } from '../internal/operators/findIndex';\nexport { first } from '../internal/operators/first';\nexport { groupBy } from '../internal/operators/groupBy';\nexport { ignoreElements } from '../internal/operators/ignoreElements';\nexport { isEmpty } from '../internal/operators/isEmpty';\nexport { last } from '../internal/operators/last';\nexport { map } from '../internal/operators/map';\nexport { mapTo } from '../internal/operators/mapTo';\nexport { materialize } from '../internal/operators/materialize';\nexport { max } from '../internal/operators/max';\nexport { merge } from '../internal/operators/merge';\nexport { mergeAll } from '../internal/operators/mergeAll';\nexport { mergeMap } from '../internal/operators/mergeMap';\nexport { mergeMap as flatMap } from '../internal/operators/mergeMap';\nexport { mergeMapTo } from '../internal/operators/mergeMapTo';\nexport { mergeScan } from '../internal/operators/mergeScan';\nexport { min } from '../internal/operators/min';\nexport { multicast } from '../internal/operators/multicast';\nexport { observeOn } from '../internal/operators/observeOn';\nexport { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';\nexport { pairwise } from '../internal/operators/pairwise';\nexport { partition } from '../internal/operators/partition';\nexport { pluck } from '../internal/operators/pluck';\nexport { publish } from '../internal/operators/publish';\nexport { publishBehavior } from '../internal/operators/publishBehavior';\nexport { publishLast } from '../internal/operators/publishLast';\nexport { publishReplay } from '../internal/operators/publishReplay';\nexport { race } from '../internal/operators/race';\nexport { reduce } from '../internal/operators/reduce';\nexport { repeat } from '../internal/operators/repeat';\nexport { repeatWhen } from '../internal/operators/repeatWhen';\nexport { retry } from '../internal/operators/retry';\nexport { retryWhen } from '../internal/operators/retryWhen';\nexport { refCount } from '../internal/operators/refCount';\nexport { sample } from '../internal/operators/sample';\nexport { sampleTime } from '../internal/operators/sampleTime';\nexport { scan } from '../internal/operators/scan';\nexport { sequenceEqual } from '../internal/operators/sequenceEqual';\nexport { share } from '../internal/operators/share';\nexport { shareReplay } from '../internal/operators/shareReplay';\nexport { single } from '../internal/operators/single';\nexport { skip } from '../internal/operators/skip';\nexport { skipLast } from '../internal/operators/skipLast';\nexport { skipUntil } from '../internal/operators/skipUntil';\nexport { skipWhile } from '../internal/operators/skipWhile';\nexport { startWith } from '../internal/operators/startWith';\nexport { subscribeOn } from '../internal/operators/subscribeOn';\nexport { switchAll } from '../internal/operators/switchAll';\nexport { switchMap } from '../internal/operators/switchMap';\nexport { switchMapTo } from '../internal/operators/switchMapTo';\nexport { take } from '../internal/operators/take';\nexport { takeLast } from '../internal/operators/takeLast';\nexport { takeUntil } from '../internal/operators/takeUntil';\nexport { takeWhile } from '../internal/operators/takeWhile';\nexport { tap } from '../internal/operators/tap';\nexport { throttle } from '../internal/operators/throttle';\nexport { throttleTime } from '../internal/operators/throttleTime';\nexport { throwIfEmpty } from '../internal/operators/throwIfEmpty';\nexport { timeInterval } from '../internal/operators/timeInterval';\nexport { timeout } from '../internal/operators/timeout';\nexport { timeoutWith } from '../internal/operators/timeoutWith';\nexport { timestamp } from '../internal/operators/timestamp';\nexport { toArray } from '../internal/operators/toArray';\nexport { window } from '../internal/operators/window';\nexport { windowCount } from '../internal/operators/windowCount';\nexport { windowTime } from '../internal/operators/windowTime';\nexport { windowToggle } from '../internal/operators/windowToggle';\nexport { windowWhen } from '../internal/operators/windowWhen';\nexport { withLatestFrom } from '../internal/operators/withLatestFrom';\nexport { zip } from '../internal/operators/zip';\nexport { zipAll } from '../internal/operators/zipAll';\n//# sourceMappingURL=index.js.map\n","import { BehaviorSubject, of, Subject, ReplaySubject, combineLatest, from, isObservable, merge } from 'rxjs';\nimport { tap, distinctUntilChanged, map, auditTime, filter, switchMap, skip, delay, take, debounceTime, pairwise } from 'rxjs/operators';\nimport { __assign, __values, __spread, __read, __rest, __extends, __decorate, __metadata } from 'tslib';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction isArray(value) {\n return Array.isArray(value);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template T\n * @param {?} arr\n * @return {?}\n */\nfunction isEmpty(arr) {\n if (isArray(arr)) {\n return arr.length === 0;\n }\n return false;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E\n * @param {?} entities\n * @param {?} idKey\n * @param {?} preAddEntity\n * @return {?}\n */\nfunction toEntitiesObject(entities, idKey, preAddEntity) {\n var e_1, _a;\n /** @type {?} */\n var acc = {\n entities: {},\n ids: []\n };\n try {\n for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {\n var entity = entities_1_1.value;\n // evaluate the middleware first to support dynamic ids\n /** @type {?} */\n var current = preAddEntity(entity);\n acc.entities[current[idKey]] = current;\n acc.ids.push(current[idKey]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return acc;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E\n * @param {?} entities\n * @param {?} id\n * @return {?}\n */\nfunction hasEntity(entities, id) {\n return entities.hasOwnProperty(id);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E\n * @param {?} state\n * @return {?}\n */\nfunction hasActiveState(state) {\n return state.hasOwnProperty('active');\n}\n// @internal\n/**\n * @param {?} active\n * @return {?}\n */\nfunction isMultiActiveState(active) {\n return isArray(active);\n}\n// @internal\n/**\n * @template E\n * @param {?} __0\n * @return {?}\n */\nfunction resolveActiveEntity(_a) {\n var active = _a.active, ids = _a.ids, entities = _a.entities;\n if (isMultiActiveState(active)) {\n return getExitingActives(active, ids);\n }\n if (hasEntity(entities, active) === false) {\n return null;\n }\n return active;\n}\n// @internal\n/**\n * @param {?} currentActivesIds\n * @param {?} newIds\n * @return {?}\n */\nfunction getExitingActives(currentActivesIds, newIds) {\n /** @type {?} */\n var filtered = currentActivesIds.filter((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return newIds.indexOf(id) > -1; }));\n /** Return the same reference if nothing has changed */\n if (filtered.length === currentActivesIds.length) {\n return currentActivesIds;\n }\n return filtered;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template Entity\n * @param {?} state\n * @return {?}\n */\nfunction isEntityState(state) {\n return state.entities && state.ids;\n}\n// @internal\n/**\n * @template E\n * @param {?} entities\n * @param {?} preAddEntity\n * @return {?}\n */\nfunction applyMiddleware(entities, preAddEntity) {\n var e_1, _a;\n /** @type {?} */\n var mapped = {};\n try {\n for (var _b = __values(Object.keys(entities)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n mapped[id] = preAddEntity(entities[id]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return mapped;\n}\n// @internal\n/**\n * @template S, E\n * @param {?} __0\n * @return {?}\n */\nfunction setEntities(_a) {\n var state = _a.state, entities = _a.entities, idKey = _a.idKey, preAddEntity = _a.preAddEntity, isNativePreAdd = _a.isNativePreAdd;\n /** @type {?} */\n var newEntities;\n /** @type {?} */\n var newIds;\n if (isArray(entities)) {\n /** @type {?} */\n var resolve = toEntitiesObject(entities, idKey, preAddEntity);\n newEntities = resolve.entities;\n newIds = resolve.ids;\n }\n else if (isEntityState(entities)) {\n newEntities = isNativePreAdd ? entities.entities : applyMiddleware(entities.entities, preAddEntity);\n newIds = entities.ids;\n }\n else {\n // it's an object\n newEntities = isNativePreAdd ? entities : applyMiddleware(entities, preAddEntity);\n newIds = Object.keys(newEntities).map((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return (isNaN((/** @type {?} */ (id))) ? id : Number(id)); }));\n }\n /** @type {?} */\n var newState = __assign({}, state, { entities: newEntities, ids: newIds, loading: false });\n if (hasActiveState(state)) {\n newState.active = resolveActiveEntity((/** @type {?} */ (newState)));\n }\n return newState;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\nvar \n// @internal\nAkitaError = /** @class */ (function (_super) {\n __extends(AkitaError, _super);\n function AkitaError(message) {\n return _super.call(this, message) || this;\n }\n return AkitaError;\n}(Error));\n// @internal\n/**\n * @param {?} name\n * @param {?} className\n * @return {?}\n */\nfunction assertStoreHasName(name, className) {\n if (!name) {\n console.error(\"@StoreConfig({ name }) is missing in \" + className);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar currentAction = {\n type: null,\n entityIds: null,\n skip: false\n};\n/** @type {?} */\nvar customActionActive = false;\n/**\n * @return {?}\n */\nfunction resetCustomAction() {\n customActionActive = false;\n}\n// public API for custom actions. Custom action always wins\n/**\n * @param {?} type\n * @param {?=} entityIds\n * @return {?}\n */\nfunction logAction(type, entityIds) {\n setAction(type, entityIds);\n customActionActive = true;\n}\n/**\n * @param {?} type\n * @param {?=} entityIds\n * @return {?}\n */\nfunction setAction(type, entityIds) {\n if (customActionActive === false) {\n currentAction.type = type;\n currentAction.entityIds = entityIds;\n }\n}\n/**\n * @param {?=} skip\n * @return {?}\n */\nfunction setSkipAction(skip$$1) {\n if (skip$$1 === void 0) { skip$$1 = true; }\n currentAction.skip = skip$$1;\n}\n/**\n * @param {?} action\n * @param {?=} entityIds\n * @return {?}\n */\nfunction action(action, entityIds) {\n return (/**\n * @param {?} target\n * @param {?} propertyKey\n * @param {?} descriptor\n * @return {?}\n */\n function (target, propertyKey, descriptor) {\n /** @type {?} */\n var originalMethod = descriptor.value;\n descriptor.value = (/**\n * @param {...?} args\n * @return {?}\n */\n function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logAction(action, entityIds);\n return originalMethod.apply(this, args);\n });\n return descriptor;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/** @type {?} */\nvar transactionFinished = new Subject();\n// @internal\n/** @type {?} */\nvar transactionInProcess = new BehaviorSubject(false);\n// @internal\n/** @type {?} */\nvar transactionManager = {\n activeTransactions: 0,\n batchTransaction: null\n};\n// @internal\n/**\n * @return {?}\n */\nfunction startBatch() {\n if (!isTransactionInProcess()) {\n transactionManager.batchTransaction = new Subject();\n }\n transactionManager.activeTransactions++;\n transactionInProcess.next(true);\n}\n// @internal\n/**\n * @return {?}\n */\nfunction endBatch() {\n if (--transactionManager.activeTransactions === 0) {\n transactionManager.batchTransaction.next(true);\n transactionManager.batchTransaction.complete();\n transactionInProcess.next(false);\n transactionFinished.next(true);\n }\n}\n// @internal\n/**\n * @return {?}\n */\nfunction isTransactionInProcess() {\n return transactionManager.activeTransactions > 0;\n}\n// @internal\n/**\n * @return {?}\n */\nfunction commit() {\n return transactionManager.batchTransaction ? transactionManager.batchTransaction.asObservable() : of(true);\n}\n/**\n * A logical transaction.\n * Use this transaction to optimize the dispatch of all the stores.\n * The following code will update the store, BUT emits only once\n *\n * \\@example\n * applyTransaction(() => {\n * this.todosStore.add(new Todo(1, title));\n * this.todosStore.add(new Todo(2, title));\n * });\n *\n * @template T\n * @param {?} action\n * @param {?=} thisArg\n * @return {?}\n */\nfunction applyTransaction(action$$1, thisArg) {\n if (thisArg === void 0) { thisArg = undefined; }\n startBatch();\n try {\n return action$$1.apply(thisArg);\n }\n finally {\n logAction('@Transaction');\n endBatch();\n }\n}\n/**\n * A logical transaction.\n * Use this transaction to optimize the dispatch of all the stores.\n *\n * The following code will update the store, BUT emits only once.\n *\n * \\@example\n * \\@transaction\n * addTodos() {\n * this.todosStore.add(new Todo(1, title));\n * this.todosStore.add(new Todo(2, title));\n * }\n *\n *\n * @return {?}\n */\nfunction transaction() {\n return (/**\n * @param {?} target\n * @param {?} propertyKey\n * @param {?} descriptor\n * @return {?}\n */\n function (target, propertyKey, descriptor) {\n /** @type {?} */\n var originalMethod = descriptor.value;\n descriptor.value = (/**\n * @param {...?} args\n * @return {?}\n */\n function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return applyTransaction((/**\n * @return {?}\n */\n function () {\n return originalMethod.apply(_this, args);\n }), this);\n });\n return descriptor;\n });\n}\n/**\n *\n * RxJS custom operator that wraps the callback inside transaction\n *\n * \\@example\n *\n * return http.get().pipe(\n * withTransaction(response > {\n * store.setActive(1);\n * store.update();\n * store.updateEntity(1, {});\n * })\n * )\n *\n * @template T\n * @param {?} transactionFn\n * @return {?}\n */\nfunction withTransaction(transactionFn) {\n return (/**\n * @param {?} source\n * @return {?}\n */\n function (source) {\n return source.pipe(tap((/**\n * @param {?} value\n * @return {?}\n */\n function (value) { return applyTransaction((/**\n * @return {?}\n */\n function () { return transactionFn(value); })); })));\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} o\n * @return {?}\n */\nfunction deepFreeze(o) {\n Object.freeze(o);\n /** @type {?} */\n var oIsFunction = typeof o === 'function';\n /** @type {?} */\n var hasOwnProp = Object.prototype.hasOwnProperty;\n Object.getOwnPropertyNames(o).forEach((/**\n * @param {?} prop\n * @return {?}\n */\n function (prop) {\n if (hasOwnProp.call(o, prop) &&\n (oIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true) &&\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n }));\n return o;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar configKey = 'akitaConfig';\n/**\n * @param {?} metadata\n * @return {?}\n */\nfunction StoreConfig(metadata) {\n return (/**\n * @param {?} constructor\n * @return {?}\n */\n function (constructor) {\n constructor[configKey] = { idKey: 'id' };\n for (var i = 0, keys = Object.keys(metadata); i < keys.length; i++) {\n /** @type {?} */\n var key = keys[i];\n /* name is preserved read only key */\n if (key === 'name') {\n constructor[configKey]['storeName'] = metadata[key];\n }\n else {\n constructor[configKey][key] = metadata[key];\n }\n }\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar CONFIG = {\n resettable: false\n};\n/**\n * @param {?} config\n * @return {?}\n */\nfunction akitaConfig(config) {\n CONFIG = __assign({}, CONFIG, config);\n}\n// @internal\n/**\n * @return {?}\n */\nfunction getAkitaConfig() {\n return CONFIG;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toBoolean(value) {\n return value != null && \"\" + value !== 'false';\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isPlainObject(value) {\n return toBoolean(value) && value.constructor.name === 'Object';\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/** @type {?} */\nvar $$deleteStore = new Subject();\n// @internal\n/** @type {?} */\nvar $$addStore = new ReplaySubject(50, 5000);\n// @internal\n/** @type {?} */\nvar $$updateStore = new Subject();\n// @internal\n/**\n * @param {?} storeName\n * @return {?}\n */\nfunction dispatchDeleted(storeName) {\n $$deleteStore.next(storeName);\n}\n// @internal\n/**\n * @param {?} storeName\n * @return {?}\n */\nfunction dispatchAdded(storeName) {\n $$addStore.next(storeName);\n}\n// @internal\n/**\n * @param {?} storeName\n * @return {?}\n */\nfunction dispatchUpdate(storeName) {\n $$updateStore.next(storeName);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar __DEV__ = true;\n/**\n * @return {?}\n */\nfunction enableAkitaProdMode() {\n __DEV__ = false;\n}\n// @internal\n/**\n * @return {?}\n */\nfunction isDev() {\n return __DEV__;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar isBrowser = typeof window !== 'undefined';\n/** @type {?} */\nvar isNativeScript = typeof global !== 'undefined' && typeof ((/** @type {?} */ (global))).__runtimeVersion !== 'undefined';\n// @internal\n/** @type {?} */\nvar isNotBrowser = !isBrowser && !isNativeScript;\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/** @type {?} */\nvar __stores__ = {};\n// @internal\n/** @type {?} */\nvar __queries__ = {};\nif (isBrowser && isDev()) {\n ((/** @type {?} */ (window))).$$stores = __stores__;\n ((/** @type {?} */ (window))).$$queries = __queries__;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n *\n * Store for managing any type of data\n *\n * \\@example\n *\n * export interface SessionState {\n * token: string;\n * userDetails: UserDetails\n * }\n *\n * export function createInitialState(): SessionState {\n * return {\n * token: '',\n * userDetails: null\n * };\n * }\n *\n * \\@StoreConfig({ name: 'session' })\n * export class SessionStore extends Store {\n * constructor() {\n * super(createInitialState());\n * }\n * }\n * @template S\n */\nvar /**\n *\n * Store for managing any type of data\n *\n * \\@example\n *\n * export interface SessionState {\n * token: string;\n * userDetails: UserDetails\n * }\n *\n * export function createInitialState(): SessionState {\n * return {\n * token: '',\n * userDetails: null\n * };\n * }\n *\n * \\@StoreConfig({ name: 'session' })\n * export class SessionStore extends Store {\n * constructor() {\n * super(createInitialState());\n * }\n * }\n * @template S\n */\nStore = /** @class */ (function () {\n function Store(initialState, options) {\n if (options === void 0) { options = {}; }\n this.options = options;\n this.inTransaction = false;\n this.cache = {\n active: new BehaviorSubject(false),\n ttl: null\n };\n this.onInit((/** @type {?} */ (initialState)));\n }\n /**\n * Set the loading state\n *\n * @example\n *\n * store.setLoading(true)\n *\n */\n /**\n * Set the loading state\n *\n * \\@example\n *\n * store.setLoading(true)\n *\n * @param {?=} loading\n * @return {?}\n */\n Store.prototype.setLoading = /**\n * Set the loading state\n *\n * \\@example\n *\n * store.setLoading(true)\n *\n * @param {?=} loading\n * @return {?}\n */\n function (loading) {\n if (loading === void 0) { loading = false; }\n if (loading !== ((/** @type {?} */ (this._value()))).loading) {\n isDev() && setAction('Set Loading');\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return ((/** @type {?} */ (__assign({}, state, { loading: loading })))); }));\n }\n };\n /**\n *\n * Set whether the data is cached\n *\n * @example\n *\n * store.setHasCache(true)\n * store.setHasCache(false)\n *\n */\n /**\n *\n * Set whether the data is cached\n *\n * \\@example\n *\n * store.setHasCache(true)\n * store.setHasCache(false)\n *\n * @param {?} hasCache\n * @return {?}\n */\n Store.prototype.setHasCache = /**\n *\n * Set whether the data is cached\n *\n * \\@example\n *\n * store.setHasCache(true)\n * store.setHasCache(false)\n *\n * @param {?} hasCache\n * @return {?}\n */\n function (hasCache) {\n if (hasCache !== this.cache.active.value) {\n this.cache.active.next(hasCache);\n }\n };\n /**\n * Set the error state\n *\n * @example\n *\n * store.setError({text: 'unable to load data' })\n *\n */\n /**\n * Set the error state\n *\n * \\@example\n *\n * store.setError({text: 'unable to load data' })\n *\n * @template T\n * @param {?} error\n * @return {?}\n */\n Store.prototype.setError = /**\n * Set the error state\n *\n * \\@example\n *\n * store.setError({text: 'unable to load data' })\n *\n * @template T\n * @param {?} error\n * @return {?}\n */\n function (error) {\n if (error !== ((/** @type {?} */ (this._value()))).error) {\n isDev() && setAction('Set Error');\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return ((/** @type {?} */ (__assign({}, state, { error: error })))); }));\n }\n };\n // @internal\n // @internal\n /**\n * @template R\n * @param {?} project\n * @return {?}\n */\n Store.prototype._select = \n // @internal\n /**\n * @template R\n * @param {?} project\n * @return {?}\n */\n function (project) {\n return this.store.asObservable().pipe(map(project), distinctUntilChanged());\n };\n // @internal\n // @internal\n /**\n * @return {?}\n */\n Store.prototype._value = \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.storeValue;\n };\n // @internal\n // @internal\n /**\n * @return {?}\n */\n Store.prototype._cache = \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.cache.active;\n };\n Object.defineProperty(Store.prototype, \"config\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.constructor[configKey] || {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"storeName\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return ((/** @type {?} */ (this.config))).storeName || ((/** @type {?} */ (this.options))).storeName || this.options.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"deepFreeze\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.config.deepFreezeFn || this.options.deepFreezeFn || deepFreeze;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"cacheConfig\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.config.cache || this.options.cache;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"resettable\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.config.resettable || this.options.resettable;\n },\n enumerable: true,\n configurable: true\n });\n // @internal\n // @internal\n /**\n * @param {?} newStateFn\n * @param {?=} _dispatchAction\n * @return {?}\n */\n Store.prototype._setState = \n // @internal\n /**\n * @param {?} newStateFn\n * @param {?=} _dispatchAction\n * @return {?}\n */\n function (newStateFn, _dispatchAction) {\n if (_dispatchAction === void 0) { _dispatchAction = true; }\n this.storeValue = __DEV__ ? this.deepFreeze(newStateFn(this._value())) : newStateFn(this._value());\n if (!this.store) {\n this.store = new BehaviorSubject(this.storeValue);\n return;\n }\n if (isTransactionInProcess()) {\n this.handleTransaction();\n return;\n }\n this.dispatch(this.storeValue, _dispatchAction);\n };\n /**\n *\n * Reset the current store back to the initial value\n *\n * @example\n *\n * store.reset()\n *\n */\n /**\n *\n * Reset the current store back to the initial value\n *\n * \\@example\n *\n * store.reset()\n *\n * @return {?}\n */\n Store.prototype.reset = /**\n *\n * Reset the current store back to the initial value\n *\n * \\@example\n *\n * store.reset()\n *\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.isResettable()) {\n isDev() && setAction('Reset');\n this._setState((/**\n * @return {?}\n */\n function () { return Object.assign({}, _this._initialState); }));\n this.setHasCache(false);\n }\n else {\n isDev() && console.warn(\"You need to enable the reset functionality\");\n }\n };\n /**\n * @param {?} stateOrCallback\n * @return {?}\n */\n Store.prototype.update = /**\n * @param {?} stateOrCallback\n * @return {?}\n */\n function (stateOrCallback) {\n var _this = this;\n isDev() && setAction('Update');\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n /** @type {?} */\n var newState = isFunction(stateOrCallback) ? stateOrCallback(state) : stateOrCallback;\n /** @type {?} */\n var merged = _this.akitaPreUpdate(state, (/** @type {?} */ (__assign({}, state, newState))));\n return isPlainObject(state) ? merged : new ((/** @type {?} */ (state))).constructor(merged);\n }));\n };\n /**\n * @param {?} newOptions\n * @return {?}\n */\n Store.prototype.updateStoreConfig = /**\n * @param {?} newOptions\n * @return {?}\n */\n function (newOptions) {\n this.options = __assign({}, this.options, newOptions);\n };\n // @internal\n // @internal\n /**\n * @param {?} _\n * @param {?} nextState\n * @return {?}\n */\n Store.prototype.akitaPreUpdate = \n // @internal\n /**\n * @param {?} _\n * @param {?} nextState\n * @return {?}\n */\n function (_, nextState) {\n return nextState;\n };\n /**\n * @return {?}\n */\n Store.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroy();\n };\n /**\n *\n * Destroy the store\n *\n * @example\n *\n * store.destroy()\n *\n */\n /**\n *\n * Destroy the store\n *\n * \\@example\n *\n * store.destroy()\n *\n * @return {?}\n */\n Store.prototype.destroy = /**\n *\n * Destroy the store\n *\n * \\@example\n *\n * store.destroy()\n *\n * @return {?}\n */\n function () {\n if (isNotBrowser)\n return;\n if (!((/** @type {?} */ (window))).hmrEnabled && this === __stores__[this.storeName]) {\n delete __stores__[this.storeName];\n dispatchDeleted(this.storeName);\n this.setHasCache(false);\n this.cache.active.complete();\n }\n };\n /**\n * @private\n * @param {?} initialState\n * @return {?}\n */\n Store.prototype.onInit = /**\n * @private\n * @param {?} initialState\n * @return {?}\n */\n function (initialState) {\n __stores__[this.storeName] = this;\n this._setState((/**\n * @return {?}\n */\n function () { return initialState; }));\n dispatchAdded(this.storeName);\n if (this.isResettable()) {\n this._initialState = initialState;\n }\n isDev() && assertStoreHasName(this.storeName, this.constructor.name);\n };\n /**\n * @private\n * @param {?} state\n * @param {?=} _dispatchAction\n * @return {?}\n */\n Store.prototype.dispatch = /**\n * @private\n * @param {?} state\n * @param {?=} _dispatchAction\n * @return {?}\n */\n function (state, _dispatchAction) {\n if (_dispatchAction === void 0) { _dispatchAction = true; }\n this.store.next(state);\n if (_dispatchAction) {\n dispatchUpdate(this.storeName);\n resetCustomAction();\n }\n };\n /**\n * @private\n * @return {?}\n */\n Store.prototype.watchTransaction = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n commit().subscribe((/**\n * @return {?}\n */\n function () {\n _this.inTransaction = false;\n _this.dispatch(_this._value());\n }));\n };\n /**\n * @private\n * @return {?}\n */\n Store.prototype.isResettable = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.resettable === false) {\n return false;\n }\n return this.resettable || getAkitaConfig().resettable;\n };\n /**\n * @private\n * @return {?}\n */\n Store.prototype.handleTransaction = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this.inTransaction) {\n this.watchTransaction();\n this.inTransaction = true;\n }\n };\n return Store;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} v\n * @return {?}\n */\nfunction isNil(v) {\n return v === null || v === undefined;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isObject(value) {\n /** @type {?} */\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} idOrOptions\n * @param {?} ids\n * @param {?} currentActive\n * @return {?}\n */\nfunction getActiveEntities(idOrOptions, ids, currentActive) {\n /** @type {?} */\n var result;\n if (isArray(idOrOptions)) {\n result = idOrOptions;\n }\n else {\n if (isObject(idOrOptions)) {\n if (isNil(currentActive))\n return;\n ((/** @type {?} */ (idOrOptions))) = Object.assign({ wrap: true }, idOrOptions);\n /** @type {?} */\n var currentIdIndex = ids.indexOf((/** @type {?} */ (currentActive)));\n if (((/** @type {?} */ (idOrOptions))).prev) {\n /** @type {?} */\n var isFirst = currentIdIndex === 0;\n if (isFirst && !((/** @type {?} */ (idOrOptions))).wrap)\n return;\n result = isFirst ? ids[ids.length - 1] : ((/** @type {?} */ (ids[currentIdIndex - 1])));\n }\n else if (((/** @type {?} */ (idOrOptions))).next) {\n /** @type {?} */\n var isLast = ids.length === currentIdIndex + 1;\n if (isLast && !((/** @type {?} */ (idOrOptions))).wrap)\n return;\n result = isLast ? ids[0] : ((/** @type {?} */ (ids[currentIdIndex + 1])));\n }\n }\n else {\n if (idOrOptions === currentActive)\n return;\n result = (/** @type {?} */ (idOrOptions));\n }\n }\n return result;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template S, E\n * @param {?} __0\n * @return {?}\n */\nfunction addEntities(_a) {\n var state = _a.state, entities = _a.entities, idKey = _a.idKey, _b = _a.options, options = _b === void 0 ? {} : _b, preAddEntity = _a.preAddEntity;\n var e_1, _c;\n /** @type {?} */\n var newEntities = {};\n /** @type {?} */\n var newIds = [];\n /** @type {?} */\n var hasNewEntities = false;\n try {\n for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {\n var entity = entities_1_1.value;\n if (hasEntity(state.entities, entity[idKey]) === false) {\n // evaluate the middleware first to support dynamic ids\n /** @type {?} */\n var current = preAddEntity(entity);\n /** @type {?} */\n var entityId = current[idKey];\n newEntities[entityId] = current;\n if (options.prepend)\n newIds.unshift(entityId);\n else\n newIds.push(entityId);\n hasNewEntities = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entities_1_1 && !entities_1_1.done && (_c = entities_1.return)) _c.call(entities_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return hasNewEntities\n ? {\n newState: __assign({}, state, { entities: __assign({}, state.entities, newEntities), ids: options.prepend ? __spread(newIds, state.ids) : __spread(state.ids, newIds) }),\n newIds: newIds\n }\n : null;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction coerceArray(value) {\n if (isNil(value)) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template S, E\n * @param {?} __0\n * @return {?}\n */\nfunction removeEntities(_a) {\n var state = _a.state, ids = _a.ids;\n var e_1, _b;\n if (isNil(ids))\n return removeAllEntities(state);\n /** @type {?} */\n var entities = state.entities;\n /** @type {?} */\n var newEntities = {};\n try {\n for (var _c = __values(state.ids), _d = _c.next(); !_d.done; _d = _c.next()) {\n var id = _d.value;\n if (ids.includes(id) === false) {\n newEntities[id] = entities[id];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /** @type {?} */\n var newState = __assign({}, state, { entities: newEntities, ids: state.ids.filter((/**\n * @param {?} current\n * @return {?}\n */\n function (current) { return ids.includes(current) === false; })) });\n if (hasActiveState(state)) {\n newState.active = resolveActiveEntity(newState);\n }\n return newState;\n}\n// @internal\n/**\n * @template S\n * @param {?} state\n * @return {?}\n */\nfunction removeAllEntities(state) {\n return __assign({}, state, { entities: {}, ids: [], active: isMultiActiveState(state.active) ? [] : null });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/** @type {?} */\nvar getInitialEntitiesState = (/**\n * @return {?}\n */\nfunction () {\n return ((/** @type {?} */ ({\n entities: {},\n ids: [],\n loading: true,\n error: null\n })));\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} val\n * @return {?}\n */\nfunction isDefined(val) {\n return isNil(val) === false;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template S, E\n * @param {?} __0\n * @return {?}\n */\nfunction updateEntities(_a) {\n var state = _a.state, ids = _a.ids, idKey = _a.idKey, newStateOrFn = _a.newStateOrFn, preUpdateEntity = _a.preUpdateEntity;\n var e_1, _b;\n /** @type {?} */\n var updatedEntities = {};\n /** @type {?} */\n var isUpdatingIdKey = false;\n /** @type {?} */\n var idToUpdate;\n try {\n for (var ids_1 = __values(ids), ids_1_1 = ids_1.next(); !ids_1_1.done; ids_1_1 = ids_1.next()) {\n var id = ids_1_1.value;\n // if the entity doesn't exist don't do anything\n if (hasEntity(state.entities, id) === false) {\n continue;\n }\n /** @type {?} */\n var oldEntity = state.entities[id];\n /** @type {?} */\n var newState = isFunction(newStateOrFn) ? newStateOrFn(oldEntity) : newStateOrFn;\n /** @type {?} */\n var isIdChanged = newState.hasOwnProperty(idKey) && newState[idKey] !== oldEntity[idKey];\n /** @type {?} */\n var newEntity = void 0;\n idToUpdate = id;\n if (isIdChanged) {\n isUpdatingIdKey = true;\n idToUpdate = newState[idKey];\n }\n /** @type {?} */\n var merged = __assign({}, oldEntity, newState);\n if (isPlainObject(oldEntity)) {\n newEntity = merged;\n }\n else {\n /**\n * In case that new state is class of it's own, there's\n * a possibility that it will be different than the old\n * class.\n * For example, Old state is an instance of animal class\n * and new state is instance of person class.\n * To avoid run over new person class with the old animal\n * class we check if the new state is a class of it's own.\n * If so, use it. Otherwise, use the old state class\n */\n if (isPlainObject(newState)) {\n newEntity = new ((/** @type {?} */ (oldEntity))).constructor(merged);\n }\n else {\n newEntity = new ((/** @type {?} */ (newState))).constructor(merged);\n }\n }\n updatedEntities[idToUpdate] = preUpdateEntity(oldEntity, newEntity);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ids_1_1 && !ids_1_1.done && (_b = ids_1.return)) _b.call(ids_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n /** @type {?} */\n var updatedIds = state.ids;\n /** @type {?} */\n var stateEntities = state.entities;\n if (isUpdatingIdKey) {\n var _c = __read(ids, 1), id_1 = _c[0];\n var _d = state.entities, _e = id_1, deletedEntity = _d[_e], rest = __rest(_d, [typeof _e === \"symbol\" ? _e : _e + \"\"]);\n stateEntities = rest;\n updatedIds = state.ids.map((/**\n * @param {?} current\n * @return {?}\n */\n function (current) { return (current === id_1 ? idToUpdate : current); }));\n }\n return __assign({}, state, { entities: __assign({}, stateEntities, updatedEntities), ids: updatedIds });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar EntityActions = {\n Set: 0,\n Add: 1,\n Update: 2,\n Remove: 3,\n};\nEntityActions[EntityActions.Set] = 'Set';\nEntityActions[EntityActions.Add] = 'Add';\nEntityActions[EntityActions.Update] = 'Update';\nEntityActions[EntityActions.Remove] = 'Remove';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_ID_KEY = 'id';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n *\n * Store for managing a collection of entities\n *\n * \\@example\n *\n * export interface WidgetsState extends EntityState { }\n *\n * \\@StoreConfig({ name: 'widgets' })\n * export class WidgetsStore extends EntityStore {\n * constructor() {\n * super();\n * }\n * }\n *\n *\n * @template S, DEPRECATED\n */\nvar EntityStore = /** @class */ (function (_super) {\n __extends(EntityStore, _super);\n function EntityStore(initialState, options) {\n if (initialState === void 0) { initialState = {}; }\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, __assign({}, getInitialEntitiesState(), initialState), options) || this;\n _this.options = options;\n _this.entityActions = new Subject();\n return _this;\n }\n Object.defineProperty(EntityStore.prototype, \"selectEntityAction$\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.entityActions.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EntityStore.prototype, \"idKey\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return ((/** @type {?} */ (this.config))).idKey || this.options.idKey || DEFAULT_ID_KEY;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *\n * Replace current collection with provided collection\n *\n * @example\n *\n * this.store.set([Entity, Entity])\n * this.store.set({ids: [], entities: {}})\n * this.store.set({ 1: {}, 2: {}})\n *\n */\n /**\n *\n * Replace current collection with provided collection\n *\n * \\@example\n *\n * this.store.set([Entity, Entity])\n * this.store.set({ids: [], entities: {}})\n * this.store.set({ 1: {}, 2: {}})\n *\n * @param {?} entities\n * @return {?}\n */\n EntityStore.prototype.set = /**\n *\n * Replace current collection with provided collection\n *\n * \\@example\n *\n * this.store.set([Entity, Entity])\n * this.store.set({ids: [], entities: {}})\n * this.store.set({ 1: {}, 2: {}})\n *\n * @param {?} entities\n * @return {?}\n */\n function (entities) {\n var _this = this;\n if (isNil(entities))\n return;\n isDev() && setAction('Set Entity');\n /** @type {?} */\n var isNativePreAdd = this.akitaPreAddEntity === EntityStore.prototype.akitaPreAddEntity;\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return setEntities({\n state: state,\n entities: entities,\n idKey: _this.idKey,\n preAddEntity: _this.akitaPreAddEntity,\n isNativePreAdd: isNativePreAdd\n });\n }));\n this.updateCache();\n if (this.hasInitialUIState()) {\n this.handleUICreation();\n }\n this.entityActions.next({ type: EntityActions.Set, ids: this.ids });\n };\n /**\n * Add entities\n *\n * @example\n *\n * this.store.add([Entity, Entity])\n * this.store.add(Entity)\n * this.store.add(Entity, { prepend: true })\n *\n * this.store.add(Entity, { loading: false })\n */\n /**\n * Add entities\n *\n * \\@example\n *\n * this.store.add([Entity, Entity])\n * this.store.add(Entity)\n * this.store.add(Entity, { prepend: true })\n *\n * this.store.add(Entity, { loading: false })\n * @param {?} entities\n * @param {?=} options\n * @return {?}\n */\n EntityStore.prototype.add = /**\n * Add entities\n *\n * \\@example\n *\n * this.store.add([Entity, Entity])\n * this.store.add(Entity)\n * this.store.add(Entity, { prepend: true })\n *\n * this.store.add(Entity, { loading: false })\n * @param {?} entities\n * @param {?=} options\n * @return {?}\n */\n function (entities, options) {\n if (options === void 0) { options = { loading: false }; }\n /** @type {?} */\n var collection = coerceArray(entities);\n if (isEmpty(collection))\n return;\n /** @type {?} */\n var data = addEntities({\n state: this._value(),\n preAddEntity: this.akitaPreAddEntity,\n entities: collection,\n idKey: this.idKey,\n options: options\n });\n if (data) {\n isDev() && setAction('Add Entity');\n this._setState((/**\n * @return {?}\n */\n function () { return (__assign({}, data.newState, { loading: options.loading })); }));\n if (this.hasInitialUIState()) {\n this.handleUICreation(true);\n }\n this.entityActions.next({ type: EntityActions.Add, ids: data.newIds });\n }\n };\n /**\n * @param {?} idsOrFnOrState\n * @param {?=} newStateOrFn\n * @return {?}\n */\n EntityStore.prototype.update = /**\n * @param {?} idsOrFnOrState\n * @param {?=} newStateOrFn\n * @return {?}\n */\n function (idsOrFnOrState, newStateOrFn) {\n var _this = this;\n if (isUndefined(newStateOrFn)) {\n _super.prototype.update.call(this, (/** @type {?} */ (idsOrFnOrState)));\n return;\n }\n /** @type {?} */\n var ids = [];\n if (isFunction(idsOrFnOrState)) {\n // We need to filter according the predicate function\n ids = this.ids.filter((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return ((/** @type {?} */ (idsOrFnOrState)))(_this.entities[id]); }));\n }\n else {\n // If it's nil we want all of them\n ids = isNil(idsOrFnOrState) ? this.ids : coerceArray(idsOrFnOrState);\n }\n if (isEmpty(ids))\n return;\n isDev() && setAction('Update Entity', ids);\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return updateEntities({\n idKey: _this.idKey,\n ids: ids,\n preUpdateEntity: _this.akitaPreUpdateEntity,\n state: state,\n newStateOrFn: newStateOrFn\n });\n }));\n this.entityActions.next({ type: EntityActions.Update, ids: ids });\n };\n /**\n *\n * Create or update\n *\n * @example\n *\n * store.upsert(1, { active: true })\n * store.upsert([2, 3], { active: true })\n * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen}))\n *\n */\n /**\n *\n * Create or update\n *\n * \\@example\n *\n * store.upsert(1, { active: true })\n * store.upsert([2, 3], { active: true })\n * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen}))\n *\n * @param {?} ids\n * @param {?} newState\n * @param {?=} options\n * @return {?}\n */\n EntityStore.prototype.upsert = /**\n *\n * Create or update\n *\n * \\@example\n *\n * store.upsert(1, { active: true })\n * store.upsert([2, 3], { active: true })\n * store.upsert([2, 3], entity => ({ isOpen: !entity.isOpen}))\n *\n * @param {?} ids\n * @param {?} newState\n * @param {?=} options\n * @return {?}\n */\n function (ids, newState, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n /** @type {?} */\n var toArray = coerceArray(ids);\n /** @type {?} */\n var predicate = (/**\n * @param {?} isUpdate\n * @return {?}\n */\n function (isUpdate) { return (/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return hasEntity(_this.entities, id) === isUpdate; }); });\n /** @type {?} */\n var isClassBased = isFunction(options.baseClass);\n /** @type {?} */\n var updateIds = toArray.filter(predicate(true));\n /** @type {?} */\n var newEntities = toArray.filter(predicate(false)).map((/**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n var _a;\n /** @type {?} */\n var entity = isFunction(newState) ? newState((/** @type {?} */ ({}))) : newState;\n /** @type {?} */\n var withId = __assign({}, ((/** @type {?} */ (entity))), (_a = {}, _a[_this.idKey] = id, _a));\n if (isClassBased) {\n return new options.baseClass(withId);\n }\n return withId;\n }));\n // it can be any of the three types\n this.update((/** @type {?} */ (updateIds)), (/** @type {?} */ (newState)));\n this.add(newEntities);\n isDev() && logAction('Upsert Entity');\n };\n /**\n *\n * Upsert entity collection (idKey must be present)\n *\n * @example\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }]);\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true });\n * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo });\n *\n */\n /**\n *\n * Upsert entity collection (idKey must be present)\n *\n * \\@example\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }]);\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true });\n * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo });\n *\n * @param {?} entities\n * @param {?=} options\n * @return {?}\n */\n EntityStore.prototype.upsertMany = /**\n *\n * Upsert entity collection (idKey must be present)\n *\n * \\@example\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }]);\n *\n * store.upsertMany([ { id: 1 }, { id: 2 }], { loading: true });\n * store.upsertMany([ { id: 1 }, { id: 2 }], { baseClass: Todo });\n *\n * @param {?} entities\n * @param {?=} options\n * @return {?}\n */\n function (entities, options) {\n if (options === void 0) { options = {}; }\n var e_1, _a;\n /** @type {?} */\n var addedIds = [];\n /** @type {?} */\n var updatedIds = [];\n /** @type {?} */\n var updatedEntities = {};\n try {\n // Update the state directly to optimize performance\n for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {\n var entity = entities_1_1.value;\n /** @type {?} */\n var id = entity[this.idKey];\n if (hasEntity(this.entities, id)) {\n updatedEntities[id] = __assign({}, this._value().entities[id], entity);\n updatedIds.push(id);\n }\n else {\n /** @type {?} */\n var newEntity = options.baseClass ? new options.baseClass(entity) : entity;\n addedIds.push(id);\n updatedEntities[id] = newEntity;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n isDev() && logAction('Upsert Many');\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (__assign({}, state, { ids: addedIds.length ? __spread(state.ids, addedIds) : state.ids, entities: __assign({}, state.entities, updatedEntities), loading: !!options.loading })); }));\n updatedIds.length && this.entityActions.next({ type: EntityActions.Update, ids: updatedIds });\n addedIds.length && this.entityActions.next({ type: EntityActions.Add, ids: addedIds });\n };\n /**\n *\n * Replace one or more entities (except the id property)\n *\n *\n * @example\n *\n * this.store.replace(5, newEntity)\n * this.store.replace([1,2,3], newEntity)\n */\n /**\n *\n * Replace one or more entities (except the id property)\n *\n *\n * \\@example\n *\n * this.store.replace(5, newEntity)\n * this.store.replace([1,2,3], newEntity)\n * @param {?} ids\n * @param {?} newState\n * @return {?}\n */\n EntityStore.prototype.replace = /**\n *\n * Replace one or more entities (except the id property)\n *\n *\n * \\@example\n *\n * this.store.replace(5, newEntity)\n * this.store.replace([1,2,3], newEntity)\n * @param {?} ids\n * @param {?} newState\n * @return {?}\n */\n function (ids, newState) {\n var e_2, _a;\n /** @type {?} */\n var toArray = coerceArray(ids);\n if (isEmpty(toArray))\n return;\n /** @type {?} */\n var replaced = {};\n try {\n for (var toArray_1 = __values(toArray), toArray_1_1 = toArray_1.next(); !toArray_1_1.done; toArray_1_1 = toArray_1.next()) {\n var id = toArray_1_1.value;\n newState[this.idKey] = id;\n replaced[id] = newState;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (toArray_1_1 && !toArray_1_1.done && (_a = toArray_1.return)) _a.call(toArray_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n isDev() && setAction('Replace Entity', ids);\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (__assign({}, state, { entities: __assign({}, state.entities, replaced) })); }));\n };\n /**\n * @param {?=} idsOrFn\n * @return {?}\n */\n EntityStore.prototype.remove = /**\n * @param {?=} idsOrFn\n * @return {?}\n */\n function (idsOrFn) {\n var _this = this;\n if (isEmpty(this.ids))\n return;\n /** @type {?} */\n var idPassed = isDefined(idsOrFn);\n // null means remove all\n /** @type {?} */\n var ids = [];\n if (isFunction(idsOrFn)) {\n ids = this.ids.filter((/**\n * @param {?} entityId\n * @return {?}\n */\n function (entityId) { return idsOrFn(_this.entities[entityId]); }));\n }\n else {\n ids = idPassed ? coerceArray(idsOrFn) : null;\n }\n if (isEmpty(ids))\n return;\n isDev() && setAction('Remove Entity', ids);\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return removeEntities({ state: state, ids: ids }); }));\n if (ids === null) {\n this.setHasCache(false);\n }\n this.handleUIRemove(ids);\n this.entityActions.next({ type: EntityActions.Remove, ids: ids });\n };\n /**\n *\n * Update the active entity\n *\n * @example\n *\n * this.store.updateActive({ completed: true })\n * this.store.updateActive(active => {\n * return {\n * config: {\n * ..active.config,\n * date\n * }\n * }\n * })\n */\n /**\n *\n * Update the active entity\n *\n * \\@example\n *\n * this.store.updateActive({ completed: true })\n * this.store.updateActive(active => {\n * return {\n * config: {\n * ..active.config,\n * date\n * }\n * }\n * })\n * @param {?} newStateOrCallback\n * @return {?}\n */\n EntityStore.prototype.updateActive = /**\n *\n * Update the active entity\n *\n * \\@example\n *\n * this.store.updateActive({ completed: true })\n * this.store.updateActive(active => {\n * return {\n * config: {\n * ..active.config,\n * date\n * }\n * }\n * })\n * @param {?} newStateOrCallback\n * @return {?}\n */\n function (newStateOrCallback) {\n /** @type {?} */\n var ids = coerceArray(this.active);\n isDev() && setAction('Update Active', ids);\n this.update(ids, (/** @type {?} */ (newStateOrCallback)));\n };\n /**\n * @param {?} idOrOptions\n * @return {?}\n */\n EntityStore.prototype.setActive = /**\n * @param {?} idOrOptions\n * @return {?}\n */\n function (idOrOptions) {\n /** @type {?} */\n var active = getActiveEntities(idOrOptions, this.ids, this.active);\n if (active === undefined) {\n return;\n }\n isDev() && setAction('Set Active', active);\n this._setActive(active);\n };\n /**\n * Add active entities\n *\n * @example\n *\n * store.addActive(2);\n * store.addActive([3, 4, 5]);\n */\n /**\n * Add active entities\n *\n * \\@example\n *\n * store.addActive(2);\n * store.addActive([3, 4, 5]);\n * @template T\n * @param {?} ids\n * @return {?}\n */\n EntityStore.prototype.addActive = /**\n * Add active entities\n *\n * \\@example\n *\n * store.addActive(2);\n * store.addActive([3, 4, 5]);\n * @template T\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n var _this = this;\n /** @type {?} */\n var toArray = coerceArray(ids);\n if (isEmpty(toArray))\n return;\n /** @type {?} */\n var everyExist = toArray.every((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.active.indexOf(id) > -1; }));\n if (everyExist)\n return;\n isDev() && setAction('Add Active', ids);\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n /**\n * Protect against case that one of the items in the array exist\n * @type {?}\n */\n var uniques = Array.from(new Set(__spread(((/** @type {?} */ (state.active))), toArray)));\n return __assign({}, state, { active: uniques });\n }));\n };\n /**\n * Remove active entities\n *\n * @example\n *\n * store.removeActive(2)\n * store.removeActive([3, 4, 5])\n */\n /**\n * Remove active entities\n *\n * \\@example\n *\n * store.removeActive(2)\n * store.removeActive([3, 4, 5])\n * @template T\n * @param {?} ids\n * @return {?}\n */\n EntityStore.prototype.removeActive = /**\n * Remove active entities\n *\n * \\@example\n *\n * store.removeActive(2)\n * store.removeActive([3, 4, 5])\n * @template T\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n var _this = this;\n /** @type {?} */\n var toArray = coerceArray(ids);\n if (isEmpty(toArray))\n return;\n /** @type {?} */\n var someExist = toArray.some((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.active.indexOf(id) > -1; }));\n if (!someExist)\n return;\n isDev() && setAction('Remove Active', ids);\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return __assign({}, state, { active: state.active.filter((/**\n * @param {?} currentId\n * @return {?}\n */\n function (currentId) { return toArray.indexOf(currentId) === -1; })) });\n }));\n };\n /**\n * Toggle active entities\n *\n * @example\n *\n * store.toggle(2)\n * store.toggle([3, 4, 5])\n */\n /**\n * Toggle active entities\n *\n * \\@example\n *\n * store.toggle(2)\n * store.toggle([3, 4, 5])\n * @template T\n * @param {?} ids\n * @return {?}\n */\n EntityStore.prototype.toggleActive = /**\n * Toggle active entities\n *\n * \\@example\n *\n * store.toggle(2)\n * store.toggle([3, 4, 5])\n * @template T\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n var _this = this;\n /** @type {?} */\n var toArray = coerceArray(ids);\n /** @type {?} */\n var filterExists = (/**\n * @param {?} remove\n * @return {?}\n */\n function (remove) { return (/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.active.includes(id) === remove; }); });\n /** @type {?} */\n var remove = toArray.filter(filterExists(true));\n /** @type {?} */\n var add = toArray.filter(filterExists(false));\n this.removeActive(remove);\n this.addActive(add);\n isDev() && logAction('Toggle Active');\n };\n /**\n *\n * Create sub UI store for managing Entity's UI state\n *\n * @example\n *\n * export type ProductUI = {\n * isLoading: boolean;\n * isOpen: boolean\n * }\n *\n * interface ProductsUIState extends EntityState {}\n *\n * export class ProductsStore EntityStore {\n * ui: EntityUIStore;\n *\n * constructor() {\n * super();\n * this.createUIStore();\n * }\n *\n * }\n */\n /**\n *\n * Create sub UI store for managing Entity's UI state\n *\n * \\@example\n *\n * export type ProductUI = {\n * isLoading: boolean;\n * isOpen: boolean\n * }\n *\n * interface ProductsUIState extends EntityState {}\n *\n * export class ProductsStore EntityStore {\n * ui: EntityUIStore;\n *\n * constructor() {\n * super();\n * this.createUIStore();\n * }\n *\n * }\n * @param {?=} initialState\n * @param {?=} storeConfig\n * @return {?}\n */\n EntityStore.prototype.createUIStore = /**\n *\n * Create sub UI store for managing Entity's UI state\n *\n * \\@example\n *\n * export type ProductUI = {\n * isLoading: boolean;\n * isOpen: boolean\n * }\n *\n * interface ProductsUIState extends EntityState {}\n *\n * export class ProductsStore EntityStore {\n * ui: EntityUIStore;\n *\n * constructor() {\n * super();\n * this.createUIStore();\n * }\n *\n * }\n * @param {?=} initialState\n * @param {?=} storeConfig\n * @return {?}\n */\n function (initialState, storeConfig) {\n if (initialState === void 0) { initialState = {}; }\n if (storeConfig === void 0) { storeConfig = {}; }\n /** @type {?} */\n var defaults = { name: \"UI/\" + this.storeName, idKey: this.idKey };\n this.ui = new EntityUIStore(initialState, __assign({}, defaults, storeConfig));\n return this.ui;\n };\n // @internal\n // @internal\n /**\n * @return {?}\n */\n EntityStore.prototype.destroy = \n // @internal\n /**\n * @return {?}\n */\n function () {\n _super.prototype.destroy.call(this);\n if (this.ui instanceof EntityStore) {\n this.ui.destroy();\n }\n this.entityActions.complete();\n };\n // @internal\n // @internal\n /**\n * @param {?} _\n * @param {?} nextEntity\n * @return {?}\n */\n EntityStore.prototype.akitaPreUpdateEntity = \n // @internal\n /**\n * @param {?} _\n * @param {?} nextEntity\n * @return {?}\n */\n function (_, nextEntity) {\n return nextEntity;\n };\n // @internal\n // @internal\n /**\n * @param {?} newEntity\n * @return {?}\n */\n EntityStore.prototype.akitaPreAddEntity = \n // @internal\n /**\n * @param {?} newEntity\n * @return {?}\n */\n function (newEntity) {\n return newEntity;\n };\n Object.defineProperty(EntityStore.prototype, \"ids\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this._value().ids;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EntityStore.prototype, \"entities\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this._value().entities;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EntityStore.prototype, \"active\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this._value().active;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} ids\n * @return {?}\n */\n EntityStore.prototype._setActive = /**\n * @private\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n this._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return __assign({}, state, { active: ids });\n }));\n };\n /**\n * @private\n * @return {?}\n */\n EntityStore.prototype.updateCache = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.setHasCache(true);\n /** @type {?} */\n var ttlConfig = this.cacheConfig && this.cacheConfig.ttl;\n if (ttlConfig) {\n if (this.cache.ttl !== null) {\n clearTimeout(this.cache.ttl);\n }\n this.cache.ttl = (/** @type {?} */ (setTimeout((/**\n * @return {?}\n */\n function () { return _this.setHasCache(false); }), ttlConfig)));\n }\n };\n /**\n * @private\n * @param {?=} add\n * @return {?}\n */\n EntityStore.prototype.handleUICreation = /**\n * @private\n * @param {?=} add\n * @return {?}\n */\n function (add) {\n var _this = this;\n if (add === void 0) { add = false; }\n /** @type {?} */\n var ids = this.ids;\n /** @type {?} */\n var isFunc = isFunction(this.ui._akitaCreateEntityFn);\n /** @type {?} */\n var uiEntities;\n /** @type {?} */\n var createFn = (/**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n var _a;\n /** @type {?} */\n var current = _this.entities[id];\n /** @type {?} */\n var ui = isFunc ? _this.ui._akitaCreateEntityFn(current) : _this.ui._akitaCreateEntityFn;\n return __assign((_a = {}, _a[_this.idKey] = current[_this.idKey], _a), ui);\n });\n if (add) {\n uiEntities = this.ids.filter((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return isUndefined(_this.ui.entities[id]); })).map(createFn);\n }\n else {\n uiEntities = ids.map(createFn);\n }\n add ? this.ui.add(uiEntities) : this.ui.set(uiEntities);\n };\n /**\n * @private\n * @return {?}\n */\n EntityStore.prototype.hasInitialUIState = /**\n * @private\n * @return {?}\n */\n function () {\n return this.hasUIStore() && isUndefined(this.ui._akitaCreateEntityFn) === false;\n };\n /**\n * @private\n * @param {?} ids\n * @return {?}\n */\n EntityStore.prototype.handleUIRemove = /**\n * @private\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n if (this.hasUIStore()) {\n this.ui.remove(ids);\n }\n };\n /**\n * @private\n * @return {?}\n */\n EntityStore.prototype.hasUIStore = /**\n * @private\n * @return {?}\n */\n function () {\n return this.ui instanceof EntityUIStore;\n };\n var _a;\n __decorate([\n transaction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object, Object]),\n __metadata(\"design:returntype\", void 0)\n ], EntityStore.prototype, \"upsert\", null);\n __decorate([\n transaction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof T !== \"undefined\" && T) === \"function\" ? _a : Object]),\n __metadata(\"design:returntype\", void 0)\n ], EntityStore.prototype, \"toggleActive\", null);\n return EntityStore;\n}(Store));\n// @internal\n/**\n * @template UIState, DEPRECATED\n */\nvar \n// @internal\n/**\n * @template UIState, DEPRECATED\n */\nEntityUIStore = /** @class */ (function (_super) {\n __extends(EntityUIStore, _super);\n function EntityUIStore(initialState, storeConfig) {\n if (initialState === void 0) { initialState = {}; }\n if (storeConfig === void 0) { storeConfig = {}; }\n return _super.call(this, initialState, storeConfig) || this;\n }\n /**\n *\n * Set the initial UI entity state. This function will determine the entity's\n * initial state when we call `set()` or `add()`.\n *\n * @example\n *\n * constructor() {\n * super();\n * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true }));\n * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true });\n * }\n *\n */\n /**\n *\n * Set the initial UI entity state. This function will determine the entity's\n * initial state when we call `set()` or `add()`.\n *\n * \\@example\n *\n * constructor() {\n * super();\n * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true }));\n * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true });\n * }\n *\n * @template EntityUI, Entity\n * @param {?} createFn\n * @return {?}\n */\n EntityUIStore.prototype.setInitialEntityState = /**\n *\n * Set the initial UI entity state. This function will determine the entity's\n * initial state when we call `set()` or `add()`.\n *\n * \\@example\n *\n * constructor() {\n * super();\n * this.createUIStore().setInitialEntityState(entity => ({ isLoading: false, isOpen: true }));\n * this.createUIStore().setInitialEntityState({ isLoading: false, isOpen: true });\n * }\n *\n * @template EntityUI, Entity\n * @param {?} createFn\n * @return {?}\n */\n function (createFn) {\n this._akitaCreateEntityFn = createFn;\n };\n return EntityUIStore;\n}(EntityStore));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar queryConfigKey = 'akitaQueryConfig';\n/**\n * @template E\n * @param {?} metadata\n * @return {?}\n */\nfunction QueryConfig(metadata) {\n return (/**\n * @param {?} constructor\n * @return {?}\n */\n function (constructor) {\n constructor[queryConfigKey] = {};\n for (var i = 0, keys = Object.keys(metadata); i < keys.length; i++) {\n /** @type {?} */\n var key = keys[i];\n constructor[queryConfigKey][key] = metadata[key];\n }\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template S\n */\nvar /**\n * @template S\n */\nQuery = /** @class */ (function () {\n function Query(store) {\n this.store = store;\n this.__store__ = store;\n if (isDev()) {\n // @internal\n __queries__[store.storeName] = this;\n }\n }\n /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n Query.prototype.select = /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n function (project) {\n /** @type {?} */\n var mapFn;\n if (isFunction(project)) {\n mapFn = project;\n }\n else if (isString(project)) {\n mapFn = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state[project]; });\n }\n else {\n mapFn = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state; });\n }\n return this.store._select(mapFn);\n };\n /**\n * Select the loading state\n *\n * @example\n *\n * this.query.selectLoading().subscribe(isLoading => {})\n */\n /**\n * Select the loading state\n *\n * \\@example\n *\n * this.query.selectLoading().subscribe(isLoading => {})\n * @return {?}\n */\n Query.prototype.selectLoading = /**\n * Select the loading state\n *\n * \\@example\n *\n * this.query.selectLoading().subscribe(isLoading => {})\n * @return {?}\n */\n function () {\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return ((/** @type {?} */ (state))).loading; }));\n };\n /**\n * Select the error state\n *\n * @example\n *\n * this.query.selectError().subscribe(error => {})\n */\n /**\n * Select the error state\n *\n * \\@example\n *\n * this.query.selectError().subscribe(error => {})\n * @template ErrorType\n * @return {?}\n */\n Query.prototype.selectError = /**\n * Select the error state\n *\n * \\@example\n *\n * this.query.selectError().subscribe(error => {})\n * @template ErrorType\n * @return {?}\n */\n function () {\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return ((/** @type {?} */ (state))).error; }));\n };\n /**\n * Get the store's value\n *\n * @example\n *\n * this.query.getValue()\n *\n */\n /**\n * Get the store's value\n *\n * \\@example\n *\n * this.query.getValue()\n *\n * @return {?}\n */\n Query.prototype.getValue = /**\n * Get the store's value\n *\n * \\@example\n *\n * this.query.getValue()\n *\n * @return {?}\n */\n function () {\n return this.store._value();\n };\n /**\n * Select the cache state\n *\n * @example\n *\n * this.query.selectHasCache().pipe(\n * switchMap(hasCache => {\n * return hasCache ? of() : http().pipe(res => store.set(res))\n * })\n * )\n */\n /**\n * Select the cache state\n *\n * \\@example\n *\n * this.query.selectHasCache().pipe(\n * switchMap(hasCache => {\n * return hasCache ? of() : http().pipe(res => store.set(res))\n * })\n * )\n * @return {?}\n */\n Query.prototype.selectHasCache = /**\n * Select the cache state\n *\n * \\@example\n *\n * this.query.selectHasCache().pipe(\n * switchMap(hasCache => {\n * return hasCache ? of() : http().pipe(res => store.set(res))\n * })\n * )\n * @return {?}\n */\n function () {\n return this.store._cache().asObservable();\n };\n /**\n * Whether we've cached data\n *\n * @example\n *\n * this.query.getHasCache()\n *\n */\n /**\n * Whether we've cached data\n *\n * \\@example\n *\n * this.query.getHasCache()\n *\n * @return {?}\n */\n Query.prototype.getHasCache = /**\n * Whether we've cached data\n *\n * \\@example\n *\n * this.query.getHasCache()\n *\n * @return {?}\n */\n function () {\n return this.store._cache().value;\n };\n Object.defineProperty(Query.prototype, \"config\", {\n // @internal\n get: \n // @internal\n /**\n * @return {?}\n */\n function () {\n return this.constructor[queryConfigKey];\n },\n enumerable: true,\n configurable: true\n });\n return Query;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} options\n * @param {?} config\n * @return {?}\n */\nfunction sortByOptions(options, config) {\n options.sortBy = options.sortBy || (config && config.sortBy);\n options.sortByOrder = options.sortByOrder || (config && config.sortByOrder);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar Order = {\n ASC: 'asc',\n DESC: 'desc',\n};\n// @internal\n/**\n * @param {?} key\n * @param {?=} order\n * @return {?}\n */\nfunction compareValues(key, order) {\n if (order === void 0) { order = Order.ASC; }\n return (/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n return 0;\n }\n /** @type {?} */\n var varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key];\n /** @type {?} */\n var varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key];\n /** @type {?} */\n var comparison = 0;\n if (varA > varB) {\n comparison = 1;\n }\n else if (varA < varB) {\n comparison = -1;\n }\n return order == Order.DESC ? comparison * -1 : comparison;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E, S\n * @param {?} state\n * @param {?} options\n * @return {?}\n */\nfunction entitiesToArray(state, options) {\n /** @type {?} */\n var arr = [];\n var ids = state.ids, entities = state.entities;\n var filterBy = options.filterBy, limitTo = options.limitTo, sortBy = options.sortBy, sortByOrder = options.sortByOrder;\n var _loop_1 = function (i) {\n /** @type {?} */\n var entity = entities[ids[i]];\n if (!filterBy) {\n arr.push(entity);\n return \"continue\";\n }\n /** @type {?} */\n var toArray = coerceArray(filterBy);\n /** @type {?} */\n var allPass = toArray.every((/**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { return fn(entity, i); }));\n if (allPass) {\n arr.push(entity);\n }\n };\n for (var i = 0; i < ids.length; i++) {\n _loop_1(i);\n }\n if (sortBy) {\n /** @type {?} */\n var _sortBy_1 = isFunction(sortBy) ? sortBy : compareValues(sortBy, sortByOrder);\n arr = arr.sort((/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) { return _sortBy_1(a, b, state); }));\n }\n /** @type {?} */\n var length = Math.min(limitTo || arr.length, arr.length);\n return length === arr.length ? arr : arr.slice(0, length);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template S, E\n * @param {?} state\n * @param {?} options\n * @return {?}\n */\nfunction entitiesToMap(state, options) {\n /** @type {?} */\n var map$$1 = {};\n var filterBy = options.filterBy, limitTo = options.limitTo;\n var ids = state.ids, entities = state.entities;\n if (!filterBy && !limitTo) {\n return entities;\n }\n /** @type {?} */\n var hasLimit = isNil(limitTo) === false;\n if (filterBy && hasLimit) {\n /** @type {?} */\n var count = 0;\n var _loop_1 = function (i, length_1) {\n if (count === limitTo)\n return \"break\";\n /** @type {?} */\n var id = ids[i];\n /** @type {?} */\n var entity = entities[id];\n /** @type {?} */\n var allPass = coerceArray(filterBy).every((/**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { return fn(entity, i); }));\n if (allPass) {\n map$$1[id] = entity;\n count++;\n }\n };\n for (var i = 0, length_1 = ids.length; i < length_1; i++) {\n var state_1 = _loop_1(i, length_1);\n if (state_1 === \"break\")\n break;\n }\n }\n else {\n /** @type {?} */\n var finalLength = Math.min(limitTo || ids.length, ids.length);\n var _loop_2 = function (i) {\n /** @type {?} */\n var id = ids[i];\n /** @type {?} */\n var entity = entities[id];\n if (!filterBy) {\n map$$1[id] = entity;\n return \"continue\";\n }\n /** @type {?} */\n var allPass = coerceArray(filterBy).every((/**\n * @param {?} fn\n * @return {?}\n */\n function (fn) { return fn(entity, i); }));\n if (allPass) {\n map$$1[id] = entity;\n }\n };\n for (var i = 0; i < finalLength; i++) {\n _loop_2(i);\n }\n }\n return map$$1;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E\n * @param {?} predicate\n * @param {?} entities\n * @return {?}\n */\nfunction findEntityByPredicate(predicate, entities) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(entities)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var entityId = _c.value;\n if (predicate(entities[entityId]) === true) {\n return entityId;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return undefined;\n}\n// @internal\n/**\n * @param {?} id\n * @param {?} project\n * @return {?}\n */\nfunction getEntity(id, project) {\n return (/**\n * @param {?} entities\n * @return {?}\n */\n function (entities) {\n /** @type {?} */\n var entity = entities[id];\n if (isUndefined(entity)) {\n return undefined;\n }\n if (!project) {\n return entity;\n }\n if (isString(project)) {\n return entity[project];\n }\n return ((/** @type {?} */ (project)))(entity);\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n *\n * The Entity Query is similar to the general Query, with additional functionality tailored for EntityStores.\n *\n * class WidgetsQuery extends QueryEntity {\n * constructor(protected store: WidgetsStore) {\n * super(store);\n * }\n * }\n *\n *\n *\n * @template S, DEPRECATED\n */\nvar /**\n *\n * The Entity Query is similar to the general Query, with additional functionality tailored for EntityStores.\n *\n * class WidgetsQuery extends QueryEntity {\n * constructor(protected store: WidgetsStore) {\n * super(store);\n * }\n * }\n *\n *\n *\n * @template S, DEPRECATED\n */\nQueryEntity = /** @class */ (function (_super) {\n __extends(QueryEntity, _super);\n function QueryEntity(store, options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, store) || this;\n _this.options = options;\n _this.__store__ = store;\n return _this;\n }\n /**\n * @param {?=} options\n * @return {?}\n */\n QueryEntity.prototype.selectAll = /**\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n var _this = this;\n if (options === void 0) { options = {\n asObject: false\n }; }\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state.entities; })).pipe(map((/**\n * @return {?}\n */\n function () { return _this.getAll(options); })));\n };\n /**\n * @param {?=} options\n * @return {?}\n */\n QueryEntity.prototype.getAll = /**\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n if (options === void 0) { options = { asObject: false, filterBy: undefined, limitTo: undefined }; }\n if (options.asObject) {\n return entitiesToMap(this.getValue(), options);\n }\n sortByOptions(options, this.config || this.options);\n return entitiesToArray(this.getValue(), options);\n };\n /**\n * @template R\n * @param {?} ids\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectMany = /**\n * @template R\n * @param {?} ids\n * @param {?=} project\n * @return {?}\n */\n function (ids, project) {\n var _this = this;\n if (!ids || !ids.length)\n return of([]);\n /** @type {?} */\n var entities = ids.map((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.selectEntity(id, project); }));\n return combineLatest(entities).pipe(map((/**\n * @param {?} v\n * @return {?}\n */\n function (v) { return v.filter(Boolean); })), auditTime(0));\n };\n /**\n * @template R\n * @param {?} idOrPredicate\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectEntity = /**\n * @template R\n * @param {?} idOrPredicate\n * @param {?=} project\n * @return {?}\n */\n function (idOrPredicate, project) {\n /** @type {?} */\n var id = idOrPredicate;\n if (isFunction(idOrPredicate)) {\n // For performance reason we expect the entity to be in the store\n ((/** @type {?} */ (id))) = findEntityByPredicate(idOrPredicate, this.getValue().entities);\n }\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state.entities; })).pipe(map(getEntity(id, project)), distinctUntilChanged());\n };\n /**\n * Get an entity by id\n *\n * @example\n *\n * this.query.getEntity(1);\n */\n /**\n * Get an entity by id\n *\n * \\@example\n *\n * this.query.getEntity(1);\n * @param {?} id\n * @return {?}\n */\n QueryEntity.prototype.getEntity = /**\n * Get an entity by id\n *\n * \\@example\n *\n * this.query.getEntity(1);\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return this.getValue().entities[(/** @type {?} */ (id))];\n };\n /**\n * Select the active entity's id\n *\n * @example\n *\n * this.query.selectActiveId()\n */\n /**\n * Select the active entity's id\n *\n * \\@example\n *\n * this.query.selectActiveId()\n * @return {?}\n */\n QueryEntity.prototype.selectActiveId = /**\n * Select the active entity's id\n *\n * \\@example\n *\n * this.query.selectActiveId()\n * @return {?}\n */\n function () {\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return ((/** @type {?} */ (state))).active; }));\n };\n /**\n * Get the active id\n *\n * @example\n *\n * this.query.getActiveId()\n */\n /**\n * Get the active id\n *\n * \\@example\n *\n * this.query.getActiveId()\n * @return {?}\n */\n QueryEntity.prototype.getActiveId = /**\n * Get the active id\n *\n * \\@example\n *\n * this.query.getActiveId()\n * @return {?}\n */\n function () {\n return this.getValue().active;\n };\n /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectActive = /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n function (project) {\n var _this = this;\n if (isArray(this.getActive())) {\n return this.selectActiveId().pipe(switchMap((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) { return _this.selectMany(ids, project); })));\n }\n return this.selectActiveId().pipe(switchMap((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) { return _this.selectEntity(ids, project); })));\n };\n /**\n * @return {?}\n */\n QueryEntity.prototype.getActive = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var activeId = this.getActiveId();\n if (isArray(activeId)) {\n return activeId.map((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.getValue().entities[(/** @type {?} */ (id))]; }));\n }\n return toBoolean(activeId) ? this.getEntity(activeId) : undefined;\n };\n /**\n * Select the store's entity collection length\n *\n * @example\n *\n * this.query.selectCount()\n * this.query.selectCount(entity => entity.completed)\n */\n /**\n * Select the store's entity collection length\n *\n * \\@example\n *\n * this.query.selectCount()\n * this.query.selectCount(entity => entity.completed)\n * @param {?=} predicate\n * @return {?}\n */\n QueryEntity.prototype.selectCount = /**\n * Select the store's entity collection length\n *\n * \\@example\n *\n * this.query.selectCount()\n * this.query.selectCount(entity => entity.completed)\n * @param {?=} predicate\n * @return {?}\n */\n function (predicate) {\n var _this = this;\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state.entities; })).pipe(map((/**\n * @return {?}\n */\n function () { return _this.getCount(predicate); })));\n };\n /**\n * Get the store's entity collection length\n *\n * @example\n *\n * this.query.getCount()\n * this.query.getCount(entity => entity.completed)\n */\n /**\n * Get the store's entity collection length\n *\n * \\@example\n *\n * this.query.getCount()\n * this.query.getCount(entity => entity.completed)\n * @param {?=} predicate\n * @return {?}\n */\n QueryEntity.prototype.getCount = /**\n * Get the store's entity collection length\n *\n * \\@example\n *\n * this.query.getCount()\n * this.query.getCount(entity => entity.completed)\n * @param {?=} predicate\n * @return {?}\n */\n function (predicate) {\n if (isFunction(predicate)) {\n return this.getAll().filter(predicate).length;\n }\n return this.getValue().ids.length;\n };\n /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectLast = /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n function (project) {\n return this.selectAt((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) { return ids[ids.length - 1]; }), project);\n };\n /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectFirst = /**\n * @template R\n * @param {?=} project\n * @return {?}\n */\n function (project) {\n return this.selectAt((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) { return ids[0]; }), project);\n };\n /**\n * @param {?=} action\n * @return {?}\n */\n QueryEntity.prototype.selectEntityAction = /**\n * @param {?=} action\n * @return {?}\n */\n function (action) {\n if (isUndefined(action)) {\n return this.store.selectEntityAction$;\n }\n return this.store.selectEntityAction$.pipe(filter((/**\n * @param {?} ac\n * @return {?}\n */\n function (ac) { return ac.type === action; })), map((/**\n * @param {?} action\n * @return {?}\n */\n function (action) { return action.ids; })));\n };\n /**\n * @param {?=} projectOrIds\n * @return {?}\n */\n QueryEntity.prototype.hasEntity = /**\n * @param {?=} projectOrIds\n * @return {?}\n */\n function (projectOrIds) {\n var _this = this;\n if (isNil(projectOrIds)) {\n return this.getValue().ids.length > 0;\n }\n if (isFunction(projectOrIds)) {\n return this.getAll().some(projectOrIds);\n }\n if (isArray(projectOrIds)) {\n return projectOrIds.every((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return ((/** @type {?} */ (id))) in _this.getValue().entities; }));\n }\n return ((/** @type {?} */ (projectOrIds))) in this.getValue().entities;\n };\n /**\n * Returns whether entity store has an active entity\n *\n * @example\n *\n * this.query.hasActive()\n * this.query.hasActive(3)\n *\n */\n /**\n * Returns whether entity store has an active entity\n *\n * \\@example\n *\n * this.query.hasActive()\n * this.query.hasActive(3)\n *\n * @param {?=} id\n * @return {?}\n */\n QueryEntity.prototype.hasActive = /**\n * Returns whether entity store has an active entity\n *\n * \\@example\n *\n * this.query.hasActive()\n * this.query.hasActive(3)\n *\n * @param {?=} id\n * @return {?}\n */\n function (id) {\n /** @type {?} */\n var active = this.getValue().active;\n if (Array.isArray(active)) {\n if (isDefined(id)) {\n return active.includes(id);\n }\n return active.length > 0;\n }\n return isDefined(active);\n };\n /**\n *\n * Create sub UI query for querying Entity's UI state\n *\n * @example\n *\n *\n * export class ProductsQuery extends QueryEntity {\n * ui: EntityUIQuery;\n *\n * constructor(protected store: ProductsStore) {\n * super(store);\n * this.createUIQuery();\n * }\n *\n * }\n */\n /**\n *\n * Create sub UI query for querying Entity's UI state\n *\n * \\@example\n *\n *\n * export class ProductsQuery extends QueryEntity {\n * ui: EntityUIQuery;\n *\n * constructor(protected store: ProductsStore) {\n * super(store);\n * this.createUIQuery();\n * }\n *\n * }\n * @return {?}\n */\n QueryEntity.prototype.createUIQuery = /**\n *\n * Create sub UI query for querying Entity's UI state\n *\n * \\@example\n *\n *\n * export class ProductsQuery extends QueryEntity {\n * ui: EntityUIQuery;\n *\n * constructor(protected store: ProductsStore) {\n * super(store);\n * this.createUIQuery();\n * }\n *\n * }\n * @return {?}\n */\n function () {\n this.ui = new EntityUIQuery(this.__store__.ui);\n };\n /**\n * @private\n * @template R\n * @param {?} mapFn\n * @param {?=} project\n * @return {?}\n */\n QueryEntity.prototype.selectAt = /**\n * @private\n * @template R\n * @param {?} mapFn\n * @param {?=} project\n * @return {?}\n */\n function (mapFn, project) {\n var _this = this;\n return this.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (/** @type {?} */ (state.ids)); })).pipe(map(mapFn), distinctUntilChanged(), switchMap((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return _this.selectEntity(id, project); })));\n };\n return QueryEntity;\n}(Query));\n// @internal\n/**\n * @template UIState, DEPRECATED\n */\nvar \n// @internal\n/**\n * @template UIState, DEPRECATED\n */\nEntityUIQuery = /** @class */ (function (_super) {\n __extends(EntityUIQuery, _super);\n function EntityUIQuery(store) {\n return _super.call(this, store) || this;\n }\n return EntityUIQuery;\n}(QueryEntity));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@example\n *\n * query.selectEntity(2).pipe(filterNil)\n * @type {?}\n */\nvar filterNil = (/**\n * @template T\n * @param {?} source\n * @return {?}\n */\nfunction (source) { return source.pipe(filter((/**\n * @param {?} value\n * @return {?}\n */\nfunction (value) { return value !== null && typeof value !== 'undefined'; }))); });\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@internal\n *\n * \\@example\n *\n * getValue(state, 'todos.ui')\n *\n * @param {?} obj\n * @param {?} prop\n * @return {?}\n */\nfunction getValue(obj, prop) {\n /** return the whole state */\n if (prop.split('.').length === 1) {\n return obj;\n }\n /** @type {?} */\n var removeStoreName = prop\n .split('.')\n .slice(1)\n .join('.');\n return removeStoreName.split('.').reduce((/**\n * @param {?} acc\n * @param {?} part\n * @return {?}\n */\n function (acc, part) { return acc && acc[part]; }), obj);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@internal\n *\n * \\@example\n * setValue(state, 'todos.ui', { filter: {} })\n * @param {?} obj\n * @param {?} prop\n * @param {?} val\n * @return {?}\n */\nfunction setValue(obj, prop, val) {\n /** @type {?} */\n var split = prop.split('.');\n if (split.length === 1) {\n return val;\n }\n obj = __assign({}, obj);\n /** @type {?} */\n var lastIndex = split.length - 2;\n /** @type {?} */\n var removeStoreName = prop.split('.').slice(1);\n removeStoreName.reduce((/**\n * @param {?} acc\n * @param {?} part\n * @param {?} index\n * @return {?}\n */\n function (acc, part, index) {\n if (index === lastIndex) {\n acc[part] = val;\n }\n else {\n acc[part] = __assign({}, acc[part]);\n }\n return acc && acc[part];\n }), obj);\n return obj;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar skipStorageUpdate = false;\n/**\n * @param {?} skip\n * @return {?}\n */\nfunction setSkipStorageUpdate(skip$$1) {\n skipStorageUpdate = skip$$1;\n}\n/**\n * @return {?}\n */\nfunction getSkipStorageUpdate() {\n return skipStorageUpdate;\n}\n/**\n * @param {?} v\n * @return {?}\n */\nfunction isPromise(v) {\n return v && isFunction(v.then);\n}\n/**\n * @param {?} asyncOrValue\n * @return {?}\n */\nfunction observify(asyncOrValue) {\n if (isPromise(asyncOrValue) || isObservable(asyncOrValue)) {\n return from(asyncOrValue);\n }\n return of(asyncOrValue);\n}\n/**\n * @param {?=} params\n * @return {?}\n */\nfunction persistState(params) {\n if (isNotBrowser)\n return;\n /** @type {?} */\n var defaults = {\n key: 'AkitaStores',\n storage: typeof localStorage === 'undefined' ? params.storage : localStorage,\n deserialize: JSON.parse,\n serialize: JSON.stringify,\n include: [],\n exclude: [],\n persistOnDestroy: false,\n preStorageUpdate: (/**\n * @param {?} storeName\n * @param {?} state\n * @return {?}\n */\n function (storeName, state) {\n return state;\n }),\n preStoreUpdate: (/**\n * @param {?} storeName\n * @param {?} state\n * @return {?}\n */\n function (storeName, state) {\n return state;\n }),\n skipStorageUpdate: getSkipStorageUpdate,\n preStorageUpdateOperator: (/**\n * @return {?}\n */\n function () { return (/**\n * @param {?} source\n * @return {?}\n */\n function (source) { return source; }); })\n };\n var _a = Object.assign({}, defaults, params), storage = _a.storage, deserialize = _a.deserialize, serialize = _a.serialize, include = _a.include, exclude = _a.exclude, key = _a.key, preStorageUpdate = _a.preStorageUpdate, persistOnDestroy = _a.persistOnDestroy, preStorageUpdateOperator = _a.preStorageUpdateOperator, preStoreUpdate = _a.preStoreUpdate, skipStorageUpdate = _a.skipStorageUpdate;\n /** @type {?} */\n var hasInclude = include.length > 0;\n /** @type {?} */\n var hasExclude = exclude.length > 0;\n /** @type {?} */\n var includeStores;\n if (hasInclude && hasExclude) {\n throw new AkitaError('You can\\'t use both include and exclude');\n }\n if (hasInclude) {\n includeStores = include.reduce((/**\n * @param {?} acc\n * @param {?} path\n * @return {?}\n */\n function (acc, path) {\n /** @type {?} */\n var storeName = path.split('.')[0];\n acc[storeName] = path;\n return acc;\n }), {});\n }\n /** @type {?} */\n var stores = {};\n /** @type {?} */\n var acc = {};\n /** @type {?} */\n var subscriptions = [];\n /** @type {?} */\n var buffer = [];\n /**\n * @param {?} v\n * @return {?}\n */\n function _save(v) {\n observify(v).subscribe((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var next = buffer.shift();\n next && _save(next);\n }));\n }\n // when we use the local/session storage we perform the serialize, otherwise we let the passed storage implementation to do it\n /** @type {?} */\n var isLocalStorage = typeof localStorage !== 'undefined' && (storage === localStorage || storage === sessionStorage);\n observify(storage.getItem(key)).subscribe((/**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var storageState = isObject(value) ? value : deserialize(value || '{}');\n /**\n * @param {?} storeCache\n * @return {?}\n */\n function save(storeCache) {\n storageState['$cache'] = __assign({}, (storageState['$cache'] || {}), storeCache);\n /** @type {?} */\n var storageValue = Object.assign({}, storageState, acc);\n buffer.push(storage.setItem(key, isLocalStorage ? serialize(storageValue) : storageValue));\n _save(buffer.shift());\n }\n /**\n * @param {?} storeName\n * @param {?} path\n * @return {?}\n */\n function subscribe(storeName, path) {\n stores[storeName] = __stores__[storeName]\n ._select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return getValue(state, path); }))\n .pipe(skip(1), filter((/**\n * @return {?}\n */\n function () { return skipStorageUpdate() === false; })), preStorageUpdateOperator())\n .subscribe((/**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n acc[storeName] = preStorageUpdate(storeName, data);\n Promise.resolve().then((/**\n * @return {?}\n */\n function () {\n var _a;\n return save((_a = {}, _a[storeName] = __stores__[storeName]._cache().getValue(), _a));\n }));\n }));\n }\n /**\n * @param {?} storeName\n * @param {?} store\n * @param {?} path\n * @return {?}\n */\n function setInitial(storeName, store, path) {\n if (storeName in storageState) {\n setAction('@PersistState');\n store._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return setValue(state, path, preStoreUpdate(storeName, storageState[storeName]));\n }));\n /** @type {?} */\n var hasCache = storageState['$cache'] ? storageState['$cache'][storeName] : false;\n __stores__[storeName].setHasCache(hasCache);\n if (store.setDirty) {\n store.setDirty();\n }\n }\n }\n subscriptions.push($$deleteStore.subscribe((/**\n * @param {?} storeName\n * @return {?}\n */\n function (storeName) {\n if (stores[storeName]) {\n if (persistOnDestroy === false) {\n delete storageState[storeName];\n save(false);\n }\n stores[storeName].unsubscribe();\n stores[storeName] = null;\n }\n })));\n subscriptions.push($$addStore.subscribe((/**\n * @param {?} storeName\n * @return {?}\n */\n function (storeName) {\n if (hasExclude && exclude.includes(storeName)) {\n return;\n }\n /** @type {?} */\n var store = __stores__[storeName];\n if (hasInclude) {\n /** @type {?} */\n var path = includeStores[storeName];\n if (!path) {\n return;\n }\n setInitial(storeName, store, path);\n subscribe(storeName, path);\n }\n else {\n setInitial(storeName, store, storeName);\n subscribe(storeName, storeName);\n }\n })));\n }));\n return {\n destroy: /**\n * @return {?}\n */\n function () {\n subscriptions.forEach((/**\n * @param {?} s\n * @return {?}\n */\n function (s) { return s.unsubscribe(); }));\n for (var i = 0, keys = Object.keys(stores); i < keys.length; i++) {\n /** @type {?} */\n var storeName = keys[i];\n stores[storeName].unsubscribe();\n }\n stores = {};\n },\n clear: /**\n * @return {?}\n */\n function () {\n storage.clear();\n },\n clearStore: /**\n * @param {?=} storeName\n * @return {?}\n */\n function (storeName) {\n if (isNil(storeName)) {\n /** @type {?} */\n var value_1 = observify(storage.setItem(key, '{}'));\n value_1.subscribe();\n return;\n }\n /** @type {?} */\n var value = storage.getItem(key);\n observify(value).subscribe((/**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n /** @type {?} */\n var storageState = deserialize(v || '{}');\n if (storageState[storeName]) {\n delete storageState[storeName];\n /** @type {?} */\n var value_2 = observify(storage.setItem(key, serialize(storageState)));\n value_2.subscribe();\n }\n }));\n }\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar SnapshotManager = /** @class */ (function () {\n function SnapshotManager() {\n }\n /**\n * Get a snapshot of the whole state or a specific stores\n * Use it ONLY for things like saving the state in the server\n */\n /**\n * Get a snapshot of the whole state or a specific stores\n * Use it ONLY for things like saving the state in the server\n * @param {?=} stores\n * @return {?}\n */\n SnapshotManager.prototype.getStoresSnapshot = /**\n * Get a snapshot of the whole state or a specific stores\n * Use it ONLY for things like saving the state in the server\n * @param {?=} stores\n * @return {?}\n */\n function (stores) {\n if (stores === void 0) { stores = []; }\n /** @type {?} */\n var acc = {};\n /** @type {?} */\n var hasInclude = stores.length > 0;\n /** @type {?} */\n var keys = hasInclude ? stores : Object.keys(__stores__);\n for (var i = 0; i < keys.length; i++) {\n /** @type {?} */\n var storeName = keys[i];\n acc[storeName] = __stores__[storeName]._value();\n }\n return acc;\n };\n /**\n * Set snapshot we get from the server\n */\n /**\n * Set snapshot we get from the server\n * @param {?} stores\n * @param {?=} options\n * @return {?}\n */\n SnapshotManager.prototype.setStoresSnapshot = /**\n * Set snapshot we get from the server\n * @param {?} stores\n * @param {?=} options\n * @return {?}\n */\n function (stores, options) {\n if (options === void 0) { options = { skipStorageUpdate: false }; }\n options.skipStorageUpdate && setSkipStorageUpdate(true);\n /** @type {?} */\n var normalizedStores = stores;\n if (isString(stores)) {\n normalizedStores = JSON.parse((/** @type {?} */ (normalizedStores)));\n }\n var _loop_1 = function (i, keys) {\n /** @type {?} */\n var storeName = keys[i];\n if (__stores__[storeName]) {\n __stores__[storeName]._setState((/**\n * @return {?}\n */\n function () { return normalizedStores[storeName]; }));\n }\n };\n for (var i = 0, keys = Object.keys(normalizedStores); i < keys.length; i++) {\n _loop_1(i, keys);\n }\n options.skipStorageUpdate && setSkipStorageUpdate(false);\n };\n return SnapshotManager;\n}());\n/** @type {?} */\nvar snapshotManager = new SnapshotManager();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n * @template State\n */\nvar /**\n * @abstract\n * @template State\n */\nAkitaPlugin = /** @class */ (function () {\n function AkitaPlugin(query, config) {\n this.query = query;\n if (config && config.resetFn) {\n if (getAkitaConfig().resettable) {\n this.onReset(config.resetFn);\n }\n }\n }\n /** This method is responsible for getting access to the query. */\n /**\n * This method is responsible for getting access to the query.\n * @protected\n * @return {?}\n */\n AkitaPlugin.prototype.getQuery = /**\n * This method is responsible for getting access to the query.\n * @protected\n * @return {?}\n */\n function () {\n return this.query;\n };\n /** This method is responsible for getting access to the store. */\n /**\n * This method is responsible for getting access to the store.\n * @protected\n * @return {?}\n */\n AkitaPlugin.prototype.getStore = /**\n * This method is responsible for getting access to the store.\n * @protected\n * @return {?}\n */\n function () {\n return this.getQuery().__store__;\n };\n /** This method is responsible tells whether the plugin is entityBased or not. */\n /**\n * This method is responsible tells whether the plugin is entityBased or not.\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n AkitaPlugin.prototype.isEntityBased = /**\n * This method is responsible tells whether the plugin is entityBased or not.\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n function (entityId) {\n return toBoolean(entityId);\n };\n /** This method is responsible for selecting the source; it can be the whole store or one entity. */\n /**\n * This method is responsible for selecting the source; it can be the whole store or one entity.\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n AkitaPlugin.prototype.selectSource = /**\n * This method is responsible for selecting the source; it can be the whole store or one entity.\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n function (entityId) {\n if (this.isEntityBased(entityId)) {\n return ((/** @type {?} */ (this.getQuery()))).selectEntity(entityId).pipe(filterNil);\n }\n return ((/** @type {?} */ (this.getQuery()))).select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state; }));\n };\n /**\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n AkitaPlugin.prototype.getSource = /**\n * @protected\n * @param {?} entityId\n * @return {?}\n */\n function (entityId) {\n if (this.isEntityBased(entityId)) {\n return ((/** @type {?} */ (this.getQuery()))).getEntity(entityId);\n }\n return this.getQuery().getValue();\n };\n /** This method is responsible for updating the store or one entity; it can be the whole store or one entity. */\n /**\n * This method is responsible for updating the store or one entity; it can be the whole store or one entity.\n * @protected\n * @param {?} newState\n * @param {?=} entityId\n * @return {?}\n */\n AkitaPlugin.prototype.updateStore = /**\n * This method is responsible for updating the store or one entity; it can be the whole store or one entity.\n * @protected\n * @param {?} newState\n * @param {?=} entityId\n * @return {?}\n */\n function (newState, entityId) {\n if (this.isEntityBased(entityId)) {\n this.getStore().update(entityId, newState);\n }\n else {\n this.getStore()._setState((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (__assign({}, state, newState)); }));\n }\n };\n /**\n * Function to invoke upon reset\n */\n /**\n * Function to invoke upon reset\n * @private\n * @param {?} fn\n * @return {?}\n */\n AkitaPlugin.prototype.onReset = /**\n * Function to invoke upon reset\n * @private\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n var _this = this;\n /** @type {?} */\n var original = this.getStore().reset;\n this.getStore().reset = (/**\n * @param {...?} params\n * @return {?}\n */\n function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n /** It should run after the plugin destroy method */\n setTimeout((/**\n * @return {?}\n */\n function () {\n original.apply(_this.getStore(), params);\n fn();\n }));\n });\n };\n return AkitaPlugin;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar paginatorDefaults = {\n pagesControls: false,\n range: false,\n startWith: 1,\n cacheTimeout: undefined,\n clearStoreWithCache: true\n};\n/**\n * @template State\n */\nvar PaginatorPlugin = /** @class */ (function (_super) {\n __extends(PaginatorPlugin, _super);\n function PaginatorPlugin(query, config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, query, {\n resetFn: (/**\n * @return {?}\n */\n function () {\n _this.initial = false;\n _this.destroy({ clearCache: true, currentPage: 1 });\n })\n }) || this;\n _this.query = query;\n _this.config = config;\n /**\n * Save current filters, sorting, etc. in cache\n */\n _this.metadata = new Map();\n _this.pages = new Map();\n _this.pagination = {\n currentPage: 1,\n perPage: 0,\n total: 0,\n lastPage: 0,\n data: []\n };\n /**\n * When the user navigates to a different page and return\n * we don't want to call `clearCache` on first time.\n */\n _this.initial = true;\n /**\n * Proxy to the query loading\n */\n _this.isLoading$ = _this.query.selectLoading().pipe(delay(0));\n _this.config = Object.assign(paginatorDefaults, config);\n var _a = _this.config, startWith = _a.startWith, cacheTimeout = _a.cacheTimeout;\n _this.page = new BehaviorSubject(startWith);\n if (isObservable(cacheTimeout)) {\n _this.clearCacheSubscription = cacheTimeout.subscribe((/**\n * @return {?}\n */\n function () { return _this.clearCache(); }));\n }\n return _this;\n }\n Object.defineProperty(PaginatorPlugin.prototype, \"pageChanges\", {\n /**\n * Listen to page changes\n */\n get: /**\n * Listen to page changes\n * @return {?}\n */\n function () {\n return this.page.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PaginatorPlugin.prototype, \"currentPage\", {\n /**\n * Get the current page number\n */\n get: /**\n * Get the current page number\n * @return {?}\n */\n function () {\n return this.pagination.currentPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PaginatorPlugin.prototype, \"isFirst\", {\n /**\n * Check if current page is the first one\n */\n get: /**\n * Check if current page is the first one\n * @return {?}\n */\n function () {\n return this.currentPage === 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PaginatorPlugin.prototype, \"isLast\", {\n /**\n * Check if current page is the last one\n */\n get: /**\n * Check if current page is the last one\n * @return {?}\n */\n function () {\n return this.currentPage === this.pagination.lastPage;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Whether to generate an array of pages for *ngFor\n * [1, 2, 3, 4]\n */\n /**\n * Whether to generate an array of pages for *ngFor\n * [1, 2, 3, 4]\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n PaginatorPlugin.prototype.withControls = /**\n * Whether to generate an array of pages for *ngFor\n * [1, 2, 3, 4]\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n (/** @type {?} */ (this)).config.pagesControls = true;\n return (/** @type {?} */ (this));\n };\n /**\n * Whether to generate the `from` and `to` keys\n * [1, 2, 3, 4]\n */\n /**\n * Whether to generate the `from` and `to` keys\n * [1, 2, 3, 4]\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n PaginatorPlugin.prototype.withRange = /**\n * Whether to generate the `from` and `to` keys\n * [1, 2, 3, 4]\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n (/** @type {?} */ (this)).config.range = true;\n return (/** @type {?} */ (this));\n };\n /**\n * Set the loading state\n */\n /**\n * Set the loading state\n * @param {?=} value\n * @return {?}\n */\n PaginatorPlugin.prototype.setLoading = /**\n * Set the loading state\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n if (value === void 0) { value = true; }\n this.getStore().setLoading(value);\n };\n /**\n * Update the pagination object and add the page\n */\n /**\n * Update the pagination object and add the page\n * @param {?} response\n * @return {?}\n */\n PaginatorPlugin.prototype.update = /**\n * Update the pagination object and add the page\n * @param {?} response\n * @return {?}\n */\n function (response) {\n this.pagination = response;\n this.addPage(response.data);\n };\n /**\n *\n * Set the ids and add the page to store\n */\n /**\n *\n * Set the ids and add the page to store\n * @param {?} data\n * @return {?}\n */\n PaginatorPlugin.prototype.addPage = /**\n *\n * Set the ids and add the page to store\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var _this = this;\n this.pages.set(this.currentPage, { ids: data.map((/**\n * @param {?} entity\n * @return {?}\n */\n function (entity) { return entity[_this.getStore().idKey]; })) });\n this.getStore().add(data);\n };\n /**\n * Clear the cache.\n */\n /**\n * Clear the cache.\n * @param {?=} options\n * @return {?}\n */\n PaginatorPlugin.prototype.clearCache = /**\n * Clear the cache.\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n if (options === void 0) { options = {}; }\n if (!this.initial) {\n logAction('@Pagination - Clear Cache');\n if (options.clearStore !== false && (this.config.clearStoreWithCache || options.clearStore)) {\n this.getStore().remove();\n }\n this.pages = new Map();\n this.metadata = new Map();\n }\n this.initial = false;\n };\n /**\n * @param {?} page\n * @return {?}\n */\n PaginatorPlugin.prototype.clearPage = /**\n * @param {?} page\n * @return {?}\n */\n function (page) {\n this.pages.delete(page);\n };\n /**\n * Clear the cache timeout and optionally the pages\n */\n /**\n * Clear the cache timeout and optionally the pages\n * @param {?=} __0\n * @return {?}\n */\n PaginatorPlugin.prototype.destroy = /**\n * Clear the cache timeout and optionally the pages\n * @param {?=} __0\n * @return {?}\n */\n function (_a) {\n var _b = _a === void 0 ? {} : _a, clearCache = _b.clearCache, currentPage = _b.currentPage;\n if (this.clearCacheSubscription) {\n this.clearCacheSubscription.unsubscribe();\n }\n if (clearCache) {\n this.clearCache();\n }\n if (!isUndefined(currentPage)) {\n this.setPage(currentPage);\n }\n this.initial = true;\n };\n /**\n * Whether the provided page is active\n */\n /**\n * Whether the provided page is active\n * @param {?} page\n * @return {?}\n */\n PaginatorPlugin.prototype.isPageActive = /**\n * Whether the provided page is active\n * @param {?} page\n * @return {?}\n */\n function (page) {\n return this.currentPage === page;\n };\n /**\n * Set the current page\n */\n /**\n * Set the current page\n * @param {?} page\n * @return {?}\n */\n PaginatorPlugin.prototype.setPage = /**\n * Set the current page\n * @param {?} page\n * @return {?}\n */\n function (page) {\n if (page !== this.currentPage || !this.hasPage(page)) {\n this.page.next((this.pagination.currentPage = page));\n }\n };\n /**\n * Increment current page\n */\n /**\n * Increment current page\n * @return {?}\n */\n PaginatorPlugin.prototype.nextPage = /**\n * Increment current page\n * @return {?}\n */\n function () {\n if (this.currentPage !== this.pagination.lastPage) {\n this.setPage(this.pagination.currentPage + 1);\n }\n };\n /**\n * Decrement current page\n */\n /**\n * Decrement current page\n * @return {?}\n */\n PaginatorPlugin.prototype.prevPage = /**\n * Decrement current page\n * @return {?}\n */\n function () {\n if (this.pagination.currentPage > 1) {\n this.setPage(this.pagination.currentPage - 1);\n }\n };\n /**\n * Set current page to last\n */\n /**\n * Set current page to last\n * @return {?}\n */\n PaginatorPlugin.prototype.setLastPage = /**\n * Set current page to last\n * @return {?}\n */\n function () {\n this.setPage(this.pagination.lastPage);\n };\n /**\n * Set current page to first\n */\n /**\n * Set current page to first\n * @return {?}\n */\n PaginatorPlugin.prototype.setFirstPage = /**\n * Set current page to first\n * @return {?}\n */\n function () {\n this.setPage(1);\n };\n /**\n * Check if page exists in cache\n */\n /**\n * Check if page exists in cache\n * @param {?} page\n * @return {?}\n */\n PaginatorPlugin.prototype.hasPage = /**\n * Check if page exists in cache\n * @param {?} page\n * @return {?}\n */\n function (page) {\n return this.pages.has(page);\n };\n /**\n * Get the current page if it's in cache, otherwise invoke the request\n */\n /**\n * Get the current page if it's in cache, otherwise invoke the request\n * @param {?} req\n * @return {?}\n */\n PaginatorPlugin.prototype.getPage = /**\n * Get the current page if it's in cache, otherwise invoke the request\n * @param {?} req\n * @return {?}\n */\n function (req) {\n var _this = this;\n /** @type {?} */\n var page = this.pagination.currentPage;\n if (this.hasPage(page)) {\n return this.selectPage(page);\n }\n else {\n this.setLoading(true);\n return from(req()).pipe(switchMap((/**\n * @param {?} config\n * @return {?}\n */\n function (config) {\n page = config.currentPage;\n applyTransaction((/**\n * @return {?}\n */\n function () {\n _this.setLoading(false);\n _this.update(config);\n }));\n return _this.selectPage(page);\n })));\n }\n };\n /**\n * @return {?}\n */\n PaginatorPlugin.prototype.getQuery = /**\n * @return {?}\n */\n function () {\n return this.query;\n };\n /**\n * @return {?}\n */\n PaginatorPlugin.prototype.refreshCurrentPage = /**\n * @return {?}\n */\n function () {\n if (isNil(this.currentPage) === false) {\n this.clearPage(this.currentPage);\n this.setPage(this.currentPage);\n }\n };\n /**\n * @private\n * @return {?}\n */\n PaginatorPlugin.prototype.getFrom = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.isFirst) {\n return 1;\n }\n return (this.currentPage - 1) * this.pagination.perPage + 1;\n };\n /**\n * @private\n * @return {?}\n */\n PaginatorPlugin.prototype.getTo = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.isLast) {\n return this.pagination.total;\n }\n return this.currentPage * this.pagination.perPage;\n };\n /**\n * Select the page\n */\n /**\n * Select the page\n * @private\n * @param {?} page\n * @return {?}\n */\n PaginatorPlugin.prototype.selectPage = /**\n * Select the page\n * @private\n * @param {?} page\n * @return {?}\n */\n function (page) {\n var _this = this;\n return this.query.selectAll({ asObject: true }).pipe(take(1), map((/**\n * @param {?} entities\n * @return {?}\n */\n function (entities) {\n /** @type {?} */\n var response = __assign({}, _this.pagination, { data: _this.pages.get(page).ids.map((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return entities[id]; })) });\n var _a = _this.config, range = _a.range, pagesControls = _a.pagesControls;\n /** If no total - calc it */\n if (isNaN(_this.pagination.total)) {\n if (response.lastPage === 1) {\n response.total = response.data ? response.data.length : 0;\n }\n else {\n response.total = response.perPage * response.lastPage;\n }\n _this.pagination.total = response.total;\n }\n if (range) {\n response.from = _this.getFrom();\n response.to = _this.getTo();\n }\n if (pagesControls) {\n response.pageControls = generatePages(_this.pagination.total, _this.pagination.perPage);\n }\n return response;\n })));\n };\n __decorate([\n action('@Pagination - New Page'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n ], PaginatorPlugin.prototype, \"update\", null);\n return PaginatorPlugin;\n}(AkitaPlugin));\n/**\n * Generate an array so we can ngFor them to navigate between pages\n * @param {?} total\n * @param {?} perPage\n * @return {?}\n */\nfunction generatePages(total, perPage) {\n /** @type {?} */\n var len = Math.ceil(total / perPage);\n /** @type {?} */\n var arr = [];\n for (var i = 0; i < len; i++) {\n arr.push(i + 1);\n }\n return arr;\n}\n/**\n * backward compatibility\n * @type {?}\n */\nvar Paginator = PaginatorPlugin;\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Todo: Return AbstractControl interface\n/**\n * @template T\n */\nvar \n// Todo: Return AbstractControl interface\n/**\n * @template T\n */\nPersistNgFormPlugin = /** @class */ (function (_super) {\n __extends(PersistNgFormPlugin, _super);\n function PersistNgFormPlugin(query, factoryFnOrPath, params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, query) || this;\n _this.query = query;\n _this.factoryFnOrPath = factoryFnOrPath;\n _this.params = params;\n _this.params = __assign({ debounceTime: 300, formKey: 'akitaForm', emitEvent: false, arrControlFactory: (/**\n * @param {?} v\n * @return {?}\n */\n function (v) { return _this.builder.control(v); }) }, params);\n _this.isRootKeys = toBoolean(factoryFnOrPath) === false;\n _this.isKeyBased = isString(factoryFnOrPath) || _this.isRootKeys;\n return _this;\n }\n /**\n * @template THIS\n * @this {THIS}\n * @param {?} form\n * @param {?=} builder\n * @return {THIS}\n */\n PersistNgFormPlugin.prototype.setForm = /**\n * @template THIS\n * @this {THIS}\n * @param {?} form\n * @param {?=} builder\n * @return {THIS}\n */\n function (form, builder) {\n (/** @type {?} */ (this)).form = form;\n (/** @type {?} */ (this)).builder = builder;\n (/** @type {?} */ (this)).activate();\n return (/** @type {?} */ (this));\n };\n /**\n * @param {?=} initialState\n * @return {?}\n */\n PersistNgFormPlugin.prototype.reset = /**\n * @param {?=} initialState\n * @return {?}\n */\n function (initialState) {\n var _this = this;\n var _a;\n /** @type {?} */\n var value;\n if (initialState) {\n value = initialState;\n }\n else {\n value = this.isKeyBased ? this.initialValue : ((/** @type {?} */ (this))).factoryFnOrPath();\n }\n if (this.isKeyBased) {\n Object.keys(this.initialValue).forEach((/**\n * @param {?} stateKey\n * @return {?}\n */\n function (stateKey) {\n /** @type {?} */\n var value = _this.initialValue[stateKey];\n if (Array.isArray(value) && _this.builder) {\n /** @type {?} */\n var formArray = _this.form.controls[stateKey];\n _this.cleanArray(formArray);\n value.forEach((/**\n * @param {?} v\n * @param {?} i\n * @return {?}\n */\n function (v, i) {\n _this.form.get(stateKey).insert(i, ((/** @type {?} */ (_this.params.arrControlFactory)))(v));\n }));\n }\n }));\n }\n this.form.patchValue(value, { emitEvent: this.params.emitEvent });\n /** @type {?} */\n var storeValue = this.isKeyBased ? setValue(this.getQuery().getValue(), this.getStore().storeName + \".\" + this.factoryFnOrPath, value) : (_a = {}, _a[this.params.formKey] = value, _a);\n this.updateStore(storeValue);\n };\n /**\n * @private\n * @param {?} control\n * @return {?}\n */\n PersistNgFormPlugin.prototype.cleanArray = /**\n * @private\n * @param {?} control\n * @return {?}\n */\n function (control) {\n while (control.length !== 0) {\n control.removeAt(0);\n }\n };\n /**\n * @private\n * @param {?} formValue\n * @param {?} root\n * @return {?}\n */\n PersistNgFormPlugin.prototype.resolveInitialValue = /**\n * @private\n * @param {?} formValue\n * @param {?} root\n * @return {?}\n */\n function (formValue, root) {\n var _this = this;\n if (!formValue)\n return;\n return Object.keys(formValue).reduce((/**\n * @param {?} acc\n * @param {?} stateKey\n * @return {?}\n */\n function (acc, stateKey) {\n /** @type {?} */\n var value = root[stateKey];\n if (Array.isArray(value) && _this.builder) {\n /** @type {?} */\n var factory_1 = _this.params.arrControlFactory;\n _this.cleanArray(_this.form.get(stateKey));\n value.forEach((/**\n * @param {?} v\n * @param {?} i\n * @return {?}\n */\n function (v, i) {\n _this.form.get(stateKey).insert(i, ((/** @type {?} */ (factory_1)))(v));\n }));\n }\n acc[stateKey] = root[stateKey];\n return acc;\n }), {});\n };\n /**\n * @private\n * @return {?}\n */\n PersistNgFormPlugin.prototype.activate = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n var _a;\n /** @type {?} */\n var path;\n if (this.isKeyBased) {\n if (this.isRootKeys) {\n this.initialValue = this.resolveInitialValue(this.form.value, this.getQuery().getValue());\n this.form.patchValue(this.initialValue, { emitEvent: this.params.emitEvent });\n }\n else {\n path = this.getStore().storeName + \".\" + this.factoryFnOrPath;\n /** @type {?} */\n var root = getValue(this.getQuery().getValue(), path);\n this.initialValue = this.resolveInitialValue(root, root);\n this.form.patchValue(this.initialValue, { emitEvent: this.params.emitEvent });\n }\n }\n else {\n if (!((/** @type {?} */ (this.getQuery().getValue())))[this.params.formKey]) {\n logAction('@PersistNgFormPlugin activate');\n this.updateStore((_a = {}, _a[this.params.formKey] = ((/** @type {?} */ (this))).factoryFnOrPath(), _a));\n }\n /** @type {?} */\n var value = this.getQuery().getValue()[this.params.formKey];\n this.form.patchValue(value);\n }\n this.formChanges = this.form.valueChanges.pipe(debounceTime(this.params.debounceTime)).subscribe((/**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n logAction('@PersistForm - Update');\n /** @type {?} */\n var newState;\n if (_this.isKeyBased) {\n if (_this.isRootKeys) {\n newState = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (__assign({}, state, value)); });\n }\n else {\n newState = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return setValue(state, path, value); });\n }\n }\n else {\n newState = (/**\n * @return {?}\n */\n function () {\n var _a;\n return (_a = {}, _a[_this.params.formKey] = value, _a);\n });\n }\n _this.updateStore(newState(_this.getQuery().getValue()));\n }));\n };\n /**\n * @return {?}\n */\n PersistNgFormPlugin.prototype.destroy = /**\n * @return {?}\n */\n function () {\n this.formChanges && this.formChanges.unsubscribe();\n this.form = null;\n this.builder = null;\n };\n return PersistNgFormPlugin;\n}(AkitaPlugin));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction capitalize(value) {\n return value && value.charAt(0).toUpperCase() + value.slice(1);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar subs = [];\n/**\n * @param {?=} ngZoneOrOptions\n * @param {?=} options\n * @return {?}\n */\nfunction akitaDevtools(ngZoneOrOptions, options) {\n if (options === void 0) { options = {}; }\n if (isNotBrowser)\n return;\n if (!((/** @type {?} */ (window))).__REDUX_DEVTOOLS_EXTENSION__) {\n return;\n }\n subs.length && subs.forEach((/**\n * @param {?} s\n * @return {?}\n */\n function (s) { return s.unsubscribe(); }));\n /** @type {?} */\n var isAngular = ngZoneOrOptions && ngZoneOrOptions['run'];\n if (!isAngular) {\n ngZoneOrOptions = ngZoneOrOptions || {};\n ((/** @type {?} */ (ngZoneOrOptions))).run = (/**\n * @param {?} cb\n * @return {?}\n */\n function (cb) { return cb(); });\n options = (/** @type {?} */ (ngZoneOrOptions));\n }\n /** @type {?} */\n var defaultOptions = { name: 'Akita', shallow: true };\n /** @type {?} */\n var merged = Object.assign({}, defaultOptions, options);\n /** @type {?} */\n var devTools = ((/** @type {?} */ (window))).__REDUX_DEVTOOLS_EXTENSION__.connect(merged);\n /** @type {?} */\n var appState = {};\n subs.push($$addStore.subscribe((/**\n * @param {?} storeName\n * @return {?}\n */\n function (storeName) {\n var _a;\n appState = __assign({}, appState, (_a = {}, _a[storeName] = __stores__[storeName]._value(), _a));\n devTools.send({ type: \"[\" + capitalize(storeName) + \"] - @@INIT\" }, appState);\n })));\n subs.push($$deleteStore.subscribe((/**\n * @param {?} storeName\n * @return {?}\n */\n function (storeName) {\n delete appState[storeName];\n devTools.send({ type: \"[\" + storeName + \"] - Delete Store\" }, appState);\n })));\n subs.push($$updateStore.subscribe((/**\n * @param {?} storeName\n * @return {?}\n */\n function (storeName) {\n var _a;\n var type = currentAction.type, entityIds = currentAction.entityIds, skip$$1 = currentAction.skip;\n if (skip$$1) {\n setSkipAction(false);\n return;\n }\n /** @type {?} */\n var store = __stores__[storeName];\n if (!store) {\n return;\n }\n if (options.shallow === false && appState[storeName]) {\n /** @type {?} */\n var isEqual = JSON.stringify(store._value()) === JSON.stringify(appState[storeName]);\n if (isEqual)\n return;\n }\n appState = __assign({}, appState, (_a = {}, _a[storeName] = store._value(), _a));\n /** @type {?} */\n var normalize = capitalize(storeName);\n /** @type {?} */\n var msg = isDefined(entityIds) ? \"[\" + normalize + \"] - \" + type + \" (ids: \" + entityIds + \")\" : \"[\" + normalize + \"] - \" + type;\n if (options.logTrace) {\n console.group(msg);\n console.trace();\n console.groupEnd();\n }\n devTools.send({ type: msg }, appState);\n })));\n subs.push(devTools.subscribe((/**\n * @param {?} message\n * @return {?}\n */\n function (message) {\n if (message.type === 'ACTION') {\n var _a = __read(message.payload.split('.'), 1), storeName_1 = _a[0];\n if (__stores__[storeName_1]) {\n ((/** @type {?} */ (ngZoneOrOptions))).run((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var funcCall = message.payload.replace(storeName_1, \"this['\" + storeName_1 + \"']\");\n try {\n new Function(\"\" + funcCall).call(__stores__);\n }\n catch (e) {\n console.warn('Unknown Method ☹️');\n }\n }));\n }\n }\n if (message.type === 'DISPATCH') {\n /** @type {?} */\n var payloadType = message.payload.type;\n if (payloadType === 'COMMIT') {\n devTools.init(appState);\n return;\n }\n if (message.state) {\n /** @type {?} */\n var rootState_1 = JSON.parse(message.state);\n var _loop_1 = function (i, keys) {\n /** @type {?} */\n var storeName = keys[i];\n if (__stores__[storeName]) {\n ((/** @type {?} */ (ngZoneOrOptions))).run((/**\n * @return {?}\n */\n function () {\n __stores__[storeName]._setState((/**\n * @return {?}\n */\n function () { return rootState_1[storeName]; }), false);\n }));\n }\n };\n for (var i = 0, keys = Object.keys(rootState_1); i < keys.length; i++) {\n _loop_1(i, keys);\n }\n }\n }\n })));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Each plugin that wants to add support for entities should extend this interface.\n * @abstract\n * @template State, P\n */\nvar /**\n * Each plugin that wants to add support for entities should extend this interface.\n * @abstract\n * @template State, P\n */\nEntityCollectionPlugin = /** @class */ (function () {\n function EntityCollectionPlugin(query, entityIds) {\n this.query = query;\n this.entityIds = entityIds;\n this.entities = new Map();\n }\n /**\n * Get the entity plugin instance.\n */\n /**\n * Get the entity plugin instance.\n * @protected\n * @param {?} id\n * @return {?}\n */\n EntityCollectionPlugin.prototype.getEntity = /**\n * Get the entity plugin instance.\n * @protected\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return this.entities.get(id);\n };\n /**\n * Whether the entity plugin exist.\n */\n /**\n * Whether the entity plugin exist.\n * @protected\n * @param {?} id\n * @return {?}\n */\n EntityCollectionPlugin.prototype.hasEntity = /**\n * Whether the entity plugin exist.\n * @protected\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return this.entities.has(id);\n };\n /**\n * Remove the entity plugin instance.\n */\n /**\n * Remove the entity plugin instance.\n * @protected\n * @param {?} id\n * @return {?}\n */\n EntityCollectionPlugin.prototype.removeEntity = /**\n * Remove the entity plugin instance.\n * @protected\n * @param {?} id\n * @return {?}\n */\n function (id) {\n this.destroy(id);\n return this.entities.delete(id);\n };\n /**\n * Set the entity plugin instance.\n */\n /**\n * Set the entity plugin instance.\n * @protected\n * @param {?} id\n * @param {?} plugin\n * @return {?}\n */\n EntityCollectionPlugin.prototype.createEntity = /**\n * Set the entity plugin instance.\n * @protected\n * @param {?} id\n * @param {?} plugin\n * @return {?}\n */\n function (id, plugin) {\n return this.entities.set(id, plugin);\n };\n /**\n * If the user passes `entityIds` we take them; otherwise, we take all.\n */\n /**\n * If the user passes `entityIds` we take them; otherwise, we take all.\n * @protected\n * @return {?}\n */\n EntityCollectionPlugin.prototype.getIds = /**\n * If the user passes `entityIds` we take them; otherwise, we take all.\n * @protected\n * @return {?}\n */\n function () {\n return isUndefined(this.entityIds) ? this.query.getValue().ids : coerceArray(this.entityIds);\n };\n /**\n * When you call one of the plugin methods, you can pass id/ids or undefined which means all.\n */\n /**\n * When you call one of the plugin methods, you can pass id/ids or undefined which means all.\n * @protected\n * @param {?=} ids\n * @return {?}\n */\n EntityCollectionPlugin.prototype.resolvedIds = /**\n * When you call one of the plugin methods, you can pass id/ids or undefined which means all.\n * @protected\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n return isUndefined(ids) ? this.getIds() : coerceArray(ids);\n };\n /**\n * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically.\n *\n * For example in your plugin you may do the following:\n *\n * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids));\n */\n /**\n * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically.\n *\n * For example in your plugin you may do the following:\n *\n * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids));\n * @protected\n * @param {?} ids\n * @param {?=} actions\n * @return {?}\n */\n EntityCollectionPlugin.prototype.rebase = /**\n * Call this method when you want to activate the plugin on init or when you need to listen to add/remove of entities dynamically.\n *\n * For example in your plugin you may do the following:\n *\n * this.query.select(state => state.ids).pipe(skip(1)).subscribe(ids => this.activate(ids));\n * @protected\n * @param {?} ids\n * @param {?=} actions\n * @return {?}\n */\n function (ids, actions) {\n var _this = this;\n if (actions === void 0) { actions = {}; }\n /**\n *\n * If the user passes `entityIds` & we have new ids check if we need to add/remove instances.\n *\n * This phase will be called only upon update.\n */\n if (toBoolean(ids)) {\n /**\n * Which means all\n */\n if (isUndefined(this.entityIds)) {\n for (var i = 0, len = ids.length; i < len; i++) {\n /** @type {?} */\n var entityId = ids[i];\n if (this.hasEntity(entityId) === false) {\n isFunction(actions.beforeAdd) && actions.beforeAdd(entityId);\n /** @type {?} */\n var plugin = this.instantiatePlugin(entityId);\n this.entities.set(entityId, plugin);\n isFunction(actions.afterAdd) && actions.afterAdd(plugin);\n }\n }\n this.entities.forEach((/**\n * @param {?} plugin\n * @param {?} entityId\n * @return {?}\n */\n function (plugin, entityId) {\n if (ids.indexOf(entityId) === -1) {\n isFunction(actions.beforeRemove) && actions.beforeRemove(plugin);\n _this.removeEntity(entityId);\n }\n }));\n }\n else {\n /**\n * Which means the user passes specific ids\n * @type {?}\n */\n var _ids = coerceArray(this.entityIds);\n for (var i = 0, len = _ids.length; i < len; i++) {\n /** @type {?} */\n var entityId = _ids[i];\n /** The Entity in current ids and doesn't exist, add it. */\n if (ids.indexOf(entityId) > -1 && this.hasEntity(entityId) === false) {\n isFunction(actions.beforeAdd) && actions.beforeAdd(entityId);\n /** @type {?} */\n var plugin = this.instantiatePlugin(entityId);\n this.entities.set(entityId, plugin);\n isFunction(actions.afterAdd) && actions.afterAdd(plugin);\n }\n else {\n this.entities.forEach((/**\n * @param {?} plugin\n * @param {?} entityId\n * @return {?}\n */\n function (plugin, entityId) {\n /** The Entity not in current ids and exists, remove it. */\n if (ids.indexOf(entityId) === -1 && _this.hasEntity(entityId) === true) {\n isFunction(actions.beforeRemove) && actions.beforeRemove(plugin);\n _this.removeEntity(entityId);\n }\n }));\n }\n }\n }\n }\n else {\n /**\n * Otherwise, start with the provided ids or all.\n */\n this.getIds().forEach((/**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!_this.hasEntity(id))\n _this.createEntity(id, _this.instantiatePlugin(id));\n }));\n }\n };\n /**\n * Listen for add/remove entities.\n */\n /**\n * Listen for add/remove entities.\n * @protected\n * @return {?}\n */\n EntityCollectionPlugin.prototype.selectIds = /**\n * Listen for add/remove entities.\n * @protected\n * @return {?}\n */\n function () {\n return this.query.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state.ids; }));\n };\n /**\n * Base method for activation, you can override it if you need to.\n */\n /**\n * Base method for activation, you can override it if you need to.\n * @protected\n * @param {?=} ids\n * @return {?}\n */\n EntityCollectionPlugin.prototype.activate = /**\n * Base method for activation, you can override it if you need to.\n * @protected\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.rebase(ids);\n };\n /**\n * Loop over each id and invoke the plugin method.\n */\n /**\n * Loop over each id and invoke the plugin method.\n * @protected\n * @param {?} ids\n * @param {?} cb\n * @return {?}\n */\n EntityCollectionPlugin.prototype.forEachId = /**\n * Loop over each id and invoke the plugin method.\n * @protected\n * @param {?} ids\n * @param {?} cb\n * @return {?}\n */\n function (ids, cb) {\n /** @type {?} */\n var _ids = this.resolvedIds(ids);\n for (var i = 0, len = _ids.length; i < len; i++) {\n /** @type {?} */\n var id = _ids[i];\n if (this.hasEntity(id)) {\n cb(this.getEntity(id));\n }\n }\n };\n return EntityCollectionPlugin;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template State\n */\nvar /**\n * @template State\n */\nStateHistoryPlugin = /** @class */ (function (_super) {\n __extends(StateHistoryPlugin, _super);\n function StateHistoryPlugin(query, params, _entityId) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, query, {\n resetFn: (/**\n * @return {?}\n */\n function () { return _this.clear(); })\n }) || this;\n _this.query = query;\n _this.params = params;\n _this._entityId = _entityId;\n /**\n * Allow skipping an update from outside\n */\n _this.skip = false;\n _this.history = {\n past: [],\n present: null,\n future: []\n };\n /**\n * Skip the update when redo/undo\n */\n _this.skipUpdate = false;\n params.maxAge = !!params.maxAge ? params.maxAge : 10;\n params.comparator = params.comparator || ((/**\n * @return {?}\n */\n function () { return true; }));\n _this.activate();\n return _this;\n }\n Object.defineProperty(StateHistoryPlugin.prototype, \"hasPast\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.history.past.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateHistoryPlugin.prototype, \"hasFuture\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.history.future.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n StateHistoryPlugin.prototype.activate = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.history.present = this.getSource(this._entityId);\n this.subscription = ((/** @type {?} */ (this))).selectSource(this._entityId).pipe(pairwise())\n .subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var _b = __read(_a, 2), past = _b[0], present = _b[1];\n if (_this.skip) {\n _this.skip = false;\n return;\n }\n /**\n * comparator: (prev, current) => isEqual(prev, current) === false\n * @type {?}\n */\n var shouldUpdate = _this.params.comparator(past, present);\n if (!_this.skipUpdate && shouldUpdate) {\n if (_this.history.past.length === _this.params.maxAge) {\n _this.history.past = _this.history.past.slice(1);\n }\n _this.history.past = __spread(_this.history.past, [past]);\n _this.history.present = present;\n }\n }));\n };\n /**\n * @return {?}\n */\n StateHistoryPlugin.prototype.undo = /**\n * @return {?}\n */\n function () {\n if (this.history.past.length > 0) {\n var _a = this.history, past = _a.past, present = _a.present;\n /** @type {?} */\n var previous = past[past.length - 1];\n this.history.past = past.slice(0, past.length - 1);\n this.history.present = previous;\n this.history.future = __spread([present], this.history.future);\n this.update();\n }\n };\n /**\n * @return {?}\n */\n StateHistoryPlugin.prototype.redo = /**\n * @return {?}\n */\n function () {\n if (this.history.future.length > 0) {\n var _a = this.history, past = _a.past, present = _a.present;\n /** @type {?} */\n var next = this.history.future[0];\n /** @type {?} */\n var newFuture = this.history.future.slice(1);\n this.history.past = __spread(past, [present]);\n this.history.present = next;\n this.history.future = newFuture;\n this.update('Redo');\n }\n };\n /**\n * @param {?} index\n * @return {?}\n */\n StateHistoryPlugin.prototype.jumpToPast = /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (index < 0 || index >= this.history.past.length)\n return;\n var _a = this.history, past = _a.past, future = _a.future;\n /**\n *\n * const past = [1, 2, 3, 4, 5];\n *\n * newPast = past.slice(0, 2) = [1, 2];\n * present = past[index] = 3;\n * [...past.slice(2 + 1), ...future] = [4, 5];\n *\n * @type {?}\n */\n var newPast = past.slice(0, index);\n /** @type {?} */\n var newFuture = __spread(past.slice(index + 1), future);\n /** @type {?} */\n var newPresent = past[index];\n this.history.past = newPast;\n this.history.present = newPresent;\n this.history.future = newFuture;\n this.update();\n };\n /**\n * @param {?} index\n * @return {?}\n */\n StateHistoryPlugin.prototype.jumpToFuture = /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (index < 0 || index >= this.history.future.length)\n return;\n var _a = this.history, past = _a.past, future = _a.future;\n /** @type {?} */\n var newPast = __spread(past, future.slice(0, index));\n /** @type {?} */\n var newPresent = future[index];\n /** @type {?} */\n var newFuture = future.slice(index + 1);\n this.history.past = newPast;\n this.history.present = newPresent;\n this.history.future = newFuture;\n this.update('Redo');\n };\n /**\n * Clear the history\n *\n * @param customUpdateFn Callback function for only clearing part of the history\n *\n * @example\n *\n * stateHistory.clear((history) => {\n * return {\n * past: history.past,\n * present: history.present,\n * future: []\n * };\n * });\n */\n /**\n * Clear the history\n *\n * \\@example\n *\n * stateHistory.clear((history) => {\n * return {\n * past: history.past,\n * present: history.present,\n * future: []\n * };\n * });\n * @param {?=} customUpdateFn Callback function for only clearing part of the history\n *\n * @return {?}\n */\n StateHistoryPlugin.prototype.clear = /**\n * Clear the history\n *\n * \\@example\n *\n * stateHistory.clear((history) => {\n * return {\n * past: history.past,\n * present: history.present,\n * future: []\n * };\n * });\n * @param {?=} customUpdateFn Callback function for only clearing part of the history\n *\n * @return {?}\n */\n function (customUpdateFn) {\n this.history = isFunction(customUpdateFn) ? customUpdateFn(this.history) : {\n past: [],\n present: null,\n future: []\n };\n };\n /**\n * @param {?=} clearHistory\n * @return {?}\n */\n StateHistoryPlugin.prototype.destroy = /**\n * @param {?=} clearHistory\n * @return {?}\n */\n function (clearHistory) {\n if (clearHistory === void 0) { clearHistory = false; }\n if (clearHistory) {\n this.clear();\n }\n this.subscription.unsubscribe();\n };\n /**\n * @return {?}\n */\n StateHistoryPlugin.prototype.ignoreNext = /**\n * @return {?}\n */\n function () {\n this.skip = true;\n };\n /**\n * @private\n * @param {?=} action\n * @return {?}\n */\n StateHistoryPlugin.prototype.update = /**\n * @private\n * @param {?=} action\n * @return {?}\n */\n function (action$$1) {\n if (action$$1 === void 0) { action$$1 = 'Undo'; }\n this.skipUpdate = true;\n logAction(\"@StateHistory - \" + action$$1);\n this.updateStore(this.history.present, this._entityId);\n this.skipUpdate = false;\n };\n return StateHistoryPlugin;\n}(AkitaPlugin));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template State, P\n */\nvar /**\n * @template State, P\n */\nEntityStateHistoryPlugin = /** @class */ (function (_super) {\n __extends(EntityStateHistoryPlugin, _super);\n function EntityStateHistoryPlugin(query, params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, query, params.entityIds) || this;\n _this.query = query;\n _this.params = params;\n params.maxAge = toBoolean(params.maxAge) ? params.maxAge : 10;\n _this.activate();\n _this.selectIds()\n .pipe(skip(1))\n .subscribe((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) { return _this.activate(ids); }));\n return _this;\n }\n /**\n * @param {?=} ids\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.redo = /**\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.redo(); }));\n };\n /**\n * @param {?=} ids\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.undo = /**\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.undo(); }));\n };\n /**\n * @param {?} id\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.hasPast = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (this.hasEntity(id)) {\n return this.getEntity(id).hasPast;\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.hasFuture = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (this.hasEntity(id)) {\n return this.getEntity(id).hasFuture;\n }\n };\n /**\n * @param {?} ids\n * @param {?} index\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.jumpToFuture = /**\n * @param {?} ids\n * @param {?} index\n * @return {?}\n */\n function (ids, index) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.jumpToFuture(index); }));\n };\n /**\n * @param {?} ids\n * @param {?} index\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.jumpToPast = /**\n * @param {?} ids\n * @param {?} index\n * @return {?}\n */\n function (ids, index) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.jumpToPast(index); }));\n };\n /**\n * @param {?=} ids\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.clear = /**\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.clear(); }));\n };\n /**\n * @param {?=} ids\n * @param {?=} clearHistory\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.destroy = /**\n * @param {?=} ids\n * @param {?=} clearHistory\n * @return {?}\n */\n function (ids, clearHistory) {\n if (clearHistory === void 0) { clearHistory = false; }\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.destroy(clearHistory); }));\n };\n /**\n * @param {?=} ids\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.ignoreNext = /**\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.ignoreNext(); }));\n };\n /**\n * @protected\n * @param {?} id\n * @return {?}\n */\n EntityStateHistoryPlugin.prototype.instantiatePlugin = /**\n * @protected\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return (/** @type {?} */ (new StateHistoryPlugin(this.query, this.params, id)));\n };\n return EntityStateHistoryPlugin;\n}(EntityCollectionPlugin));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar dirtyCheckDefaultParams = {\n comparator: (/**\n * @param {?} head\n * @param {?} current\n * @return {?}\n */\n function (head, current) { return JSON.stringify(head) !== JSON.stringify(current); })\n};\n/**\n * @param {?} nestedObj\n * @param {?} path\n * @return {?}\n */\nfunction getNestedPath(nestedObj, path) {\n /** @type {?} */\n var pathAsArray = path.split('.');\n return pathAsArray.reduce((/**\n * @param {?} obj\n * @param {?} key\n * @return {?}\n */\n function (obj, key) { return (obj && obj[key] !== 'undefined' ? obj[key] : undefined); }), nestedObj);\n}\n/**\n * @template State\n */\nvar /**\n * @template State\n */\nDirtyCheckPlugin = /** @class */ (function (_super) {\n __extends(DirtyCheckPlugin, _super);\n function DirtyCheckPlugin(query, params, _entityId) {\n var _this = _super.call(this, query) || this;\n _this.query = query;\n _this.params = params;\n _this._entityId = _entityId;\n _this.dirty = new BehaviorSubject(false);\n _this.active = false;\n _this._reset = new Subject();\n _this.isDirty$ = _this.dirty.asObservable().pipe(distinctUntilChanged());\n _this.reset$ = _this._reset.asObservable();\n _this.params = __assign({}, dirtyCheckDefaultParams, params);\n if (_this.params.watchProperty) {\n /** @type {?} */\n var watchProp = (/** @type {?} */ (coerceArray(_this.params.watchProperty)));\n if (query instanceof QueryEntity && watchProp.includes('entities') && !watchProp.includes('ids')) {\n watchProp.push('ids');\n }\n _this.params.watchProperty = watchProp;\n }\n return _this;\n }\n /**\n * @param {?=} params\n * @return {?}\n */\n DirtyCheckPlugin.prototype.reset = /**\n * @param {?=} params\n * @return {?}\n */\n function (params) {\n if (params === void 0) { params = {}; }\n /** @type {?} */\n var currentValue = this.head;\n if (isFunction(params.updateFn)) {\n if (this.isEntityBased(this._entityId)) {\n currentValue = params.updateFn(this.head, ((/** @type {?} */ (this.getQuery()))).getEntity(this._entityId));\n }\n else {\n currentValue = params.updateFn(this.head, ((/** @type {?} */ (this.getQuery()))).getValue());\n }\n }\n logAction(\"@DirtyCheck - Revert\");\n this.updateStore(currentValue, this._entityId);\n this._reset.next();\n };\n /**\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n DirtyCheckPlugin.prototype.setHead = /**\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n if (!(/** @type {?} */ (this)).active) {\n (/** @type {?} */ (this)).activate();\n (/** @type {?} */ (this)).active = true;\n }\n else {\n (/** @type {?} */ (this)).head = (/** @type {?} */ (this))._getHead();\n }\n (/** @type {?} */ (this)).updateDirtiness(false);\n return (/** @type {?} */ (this));\n };\n /**\n * @return {?}\n */\n DirtyCheckPlugin.prototype.isDirty = /**\n * @return {?}\n */\n function () {\n return !!this.dirty.value;\n };\n /**\n * @return {?}\n */\n DirtyCheckPlugin.prototype.hasHead = /**\n * @return {?}\n */\n function () {\n return !!this.getHead();\n };\n /**\n * @return {?}\n */\n DirtyCheckPlugin.prototype.destroy = /**\n * @return {?}\n */\n function () {\n this.head = null;\n this.subscription && this.subscription.unsubscribe();\n this._reset && this._reset.complete();\n };\n /**\n * @param {?} path\n * @return {?}\n */\n DirtyCheckPlugin.prototype.isPathDirty = /**\n * @param {?} path\n * @return {?}\n */\n function (path) {\n /** @type {?} */\n var head = this.getHead();\n /** @type {?} */\n var current = ((/** @type {?} */ (this.getQuery()))).getValue();\n /** @type {?} */\n var currentPathValue = getNestedPath(current, path);\n /** @type {?} */\n var headPathValue = getNestedPath(head, path);\n return this.params.comparator(currentPathValue, headPathValue);\n };\n /**\n * @protected\n * @return {?}\n */\n DirtyCheckPlugin.prototype.getHead = /**\n * @protected\n * @return {?}\n */\n function () {\n return this.head;\n };\n /**\n * @private\n * @return {?}\n */\n DirtyCheckPlugin.prototype.activate = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.head = this._getHead();\n /**\n * if we are tracking specific properties select only the relevant ones\n * @type {?}\n */\n var source = this.params.watchProperty\n ? ((/** @type {?} */ (this.params.watchProperty))).map((/**\n * @param {?} prop\n * @return {?}\n */\n function (prop) {\n return _this.query.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state[prop]; })).pipe(map((/**\n * @param {?} val\n * @return {?}\n */\n function (val) { return ({\n val: val,\n __akitaKey: prop\n }); })));\n }))\n : [this.selectSource(this._entityId)];\n this.subscription = combineLatest.apply(void 0, __spread(source)).pipe(skip(1))\n .subscribe((/**\n * @param {?} currentState\n * @return {?}\n */\n function (currentState) {\n if (isUndefined(_this.head))\n return;\n /**\n * __akitaKey is used to determine if we are tracking a specific property or a store change\n * @type {?}\n */\n var isChange = currentState.some((/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n /** @type {?} */\n var head = state.__akitaKey ? _this.head[(/** @type {?} */ (state.__akitaKey))] : _this.head;\n /** @type {?} */\n var compareTo = state.__akitaKey ? state.val : state;\n return _this.params.comparator(head, compareTo);\n }));\n _this.updateDirtiness(isChange);\n }));\n };\n /**\n * @private\n * @param {?} isDirty\n * @return {?}\n */\n DirtyCheckPlugin.prototype.updateDirtiness = /**\n * @private\n * @param {?} isDirty\n * @return {?}\n */\n function (isDirty) {\n this.dirty.next(isDirty);\n };\n /**\n * @private\n * @return {?}\n */\n DirtyCheckPlugin.prototype._getHead = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var head = this.getSource(this._entityId);\n if (this.params.watchProperty) {\n head = this.getWatchedValues((/** @type {?} */ (head)));\n }\n return head;\n };\n /**\n * @private\n * @param {?} source\n * @return {?}\n */\n DirtyCheckPlugin.prototype.getWatchedValues = /**\n * @private\n * @param {?} source\n * @return {?}\n */\n function (source) {\n return ((/** @type {?} */ (this.params.watchProperty))).reduce((/**\n * @param {?} watched\n * @param {?} prop\n * @return {?}\n */\n function (watched, prop) {\n watched[prop] = source[prop];\n return watched;\n }), (/** @type {?} */ ({})));\n };\n return DirtyCheckPlugin;\n}(AkitaPlugin));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template State, P\n */\nvar /**\n * @template State, P\n */\nEntityDirtyCheckPlugin = /** @class */ (function (_super) {\n __extends(EntityDirtyCheckPlugin, _super);\n function EntityDirtyCheckPlugin(query, params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, query, params.entityIds) || this;\n _this.query = query;\n _this.params = params;\n _this._someDirty = new Subject();\n _this.someDirty$ = merge(_this.query.select((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state.entities; })), _this._someDirty.asObservable()).pipe(auditTime(0), map((/**\n * @return {?}\n */\n function () { return _this.checkSomeDirty(); })));\n _this.params = __assign({}, dirtyCheckDefaultParams, params);\n // TODO lazy activate?\n _this.activate();\n _this.selectIds()\n .pipe(skip(1))\n .subscribe((/**\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n _super.prototype.rebase.call(_this, ids, { afterAdd: (/**\n * @param {?} plugin\n * @return {?}\n */\n function (plugin) { return plugin.setHead(); }) });\n }));\n return _this;\n }\n /**\n * @template THIS\n * @this {THIS}\n * @param {?=} ids\n * @return {THIS}\n */\n EntityDirtyCheckPlugin.prototype.setHead = /**\n * @template THIS\n * @this {THIS}\n * @param {?=} ids\n * @return {THIS}\n */\n function (ids) {\n if ((/** @type {?} */ (this)).params.entityIds && ids) {\n /** @type {?} */\n var toArray_1 = (/** @type {?} */ (coerceArray(ids)));\n /** @type {?} */\n var someAreWatched = coerceArray((/** @type {?} */ (this)).params.entityIds).some((/**\n * @param {?} id\n * @return {?}\n */\n function (id) { return toArray_1.indexOf(id) > -1; }));\n if (someAreWatched === false) {\n return (/** @type {?} */ (this));\n }\n }\n (/** @type {?} */ (this)).forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.setHead(); }));\n (/** @type {?} */ (this))._someDirty.next();\n return (/** @type {?} */ (this));\n };\n /**\n * @param {?} id\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.hasHead = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (this.entities.has(id)) {\n /** @type {?} */\n var entity = this.getEntity(id);\n return entity.hasHead();\n }\n return false;\n };\n /**\n * @param {?=} ids\n * @param {?=} params\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.reset = /**\n * @param {?=} ids\n * @param {?=} params\n * @return {?}\n */\n function (ids, params) {\n if (params === void 0) { params = {}; }\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.reset(params); }));\n };\n /**\n * @param {?} id\n * @param {?=} asObservable\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.isDirty = /**\n * @param {?} id\n * @param {?=} asObservable\n * @return {?}\n */\n function (id, asObservable) {\n if (asObservable === void 0) { asObservable = true; }\n if (this.entities.has(id)) {\n /** @type {?} */\n var entity = this.getEntity(id);\n return asObservable ? entity.isDirty$ : entity.isDirty();\n }\n return false;\n };\n /**\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.someDirty = /**\n * @return {?}\n */\n function () {\n return this.checkSomeDirty();\n };\n /**\n * @param {?} id\n * @param {?} path\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.isPathDirty = /**\n * @param {?} id\n * @param {?} path\n * @return {?}\n */\n function (id, path) {\n if (this.entities.has(id)) {\n /** @type {?} */\n var head = ((/** @type {?} */ (this.getEntity(id)))).getHead();\n /** @type {?} */\n var current = this.query.getEntity(id);\n /** @type {?} */\n var currentPathValue = getNestedPath(current, path);\n /** @type {?} */\n var headPathValue = getNestedPath(head, path);\n return this.params.comparator(currentPathValue, headPathValue);\n }\n return null;\n };\n /**\n * @param {?=} ids\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.destroy = /**\n * @param {?=} ids\n * @return {?}\n */\n function (ids) {\n this.forEachId(ids, (/**\n * @param {?} e\n * @return {?}\n */\n function (e) { return e.destroy(); }));\n /** complete only when the plugin destroys */\n if (!ids) {\n this._someDirty.complete();\n }\n };\n /**\n * @protected\n * @param {?} id\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.instantiatePlugin = /**\n * @protected\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return (/** @type {?} */ (new DirtyCheckPlugin(this.query, this.params, id)));\n };\n /**\n * @private\n * @return {?}\n */\n EntityDirtyCheckPlugin.prototype.checkSomeDirty = /**\n * @private\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var entitiesIds = this.resolvedIds();\n try {\n for (var entitiesIds_1 = __values(entitiesIds), entitiesIds_1_1 = entitiesIds_1.next(); !entitiesIds_1_1.done; entitiesIds_1_1 = entitiesIds_1.next()) {\n var id = entitiesIds_1_1.value;\n if (this.getEntity(id).isDirty()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entitiesIds_1_1 && !entitiesIds_1_1.done && (_a = entitiesIds_1.return)) _a.call(entitiesIds_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n };\n return EntityDirtyCheckPlugin;\n}(EntityCollectionPlugin));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Generate random guid\n *\n * \\@example\n *\n * {\n * id: guid()\n * }\n *\n * @return {?}\n */\nfunction guid() {\n return 'xxxxxx4xyx'.replace(/[xy]/g, (/**\n * @param {?} c\n * @return {?}\n */\n function (c) {\n /** @type {?} */\n var r = (Math.random() * 16) | 0;\n /** @type {?} */\n var v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template E\n * @param {?} entities\n * @param {?=} idKey\n * @return {?}\n */\nfunction toEntitiesIds(entities, idKey) {\n if (idKey === void 0) { idKey = DEFAULT_ID_KEY; }\n var e_1, _a;\n /** @type {?} */\n var ids = [];\n try {\n for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {\n var entity = entities_1_1.value;\n ids.push(entity[idKey]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return ids;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Reset stores back to their initial state\n *\n * \\@example\n *\n * resetStores()\n * resetStores({\n * exclude: ['auth']\n * })\n * @param {?=} options\n * @return {?}\n */\nfunction resetStores(options) {\n /** @type {?} */\n var defaults = {\n exclude: []\n };\n options = Object.assign({}, defaults, options);\n /** @type {?} */\n var stores = Object.keys(__stores__);\n applyTransaction((/**\n * @return {?}\n */\n function () {\n var e_1, _a;\n try {\n for (var stores_1 = __values(stores), stores_1_1 = stores_1.next(); !stores_1_1.done; stores_1_1 = stores_1.next()) {\n var store = stores_1_1.value;\n /** @type {?} */\n var s = __stores__[store];\n if (!options.exclude) {\n s.reset();\n }\n else {\n if (options.exclude.indexOf(s.storeName) === -1) {\n s.reset();\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (stores_1_1 && !stores_1_1.done && (_a = stores_1.return)) _a.call(stores_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isNumber(value) {\n return !isArray(value) && value - parseFloat(value) + 1 >= 0;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar StoreActions = {\n Update: 0,\n AddEntities: 1,\n SetEntities: 2,\n UpdateEntities: 3,\n RemoveEntities: 4,\n};\nStoreActions[StoreActions.Update] = 'Update';\nStoreActions[StoreActions.AddEntities] = 'AddEntities';\nStoreActions[StoreActions.SetEntities] = 'SetEntities';\nStoreActions[StoreActions.UpdateEntities] = 'UpdateEntities';\nStoreActions[StoreActions.RemoveEntities] = 'RemoveEntities';\n/**\n * @template EntityOrState\n * @param {?} storeName\n * @param {?} action\n * @param {?} params\n * @return {?}\n */\nfunction runStoreAction(storeName, action, params) {\n /** @type {?} */\n var store = __stores__[storeName];\n if (isNil(store)) {\n throw new AkitaError(storeName + \" doesn't exist\");\n }\n switch (action) {\n case StoreActions.SetEntities: {\n var payload = (/** @type {?} */ (params)).payload;\n ((/** @type {?} */ (store))).set(payload.data);\n return;\n }\n case StoreActions.AddEntities: {\n var payload = (/** @type {?} */ (params)).payload;\n ((/** @type {?} */ (store))).add(payload.data, payload.params);\n return;\n }\n case StoreActions.UpdateEntities: {\n var payload = (/** @type {?} */ (params)).payload;\n ((/** @type {?} */ (store))).update(payload.entityIds, payload.data);\n return;\n }\n case StoreActions.RemoveEntities: {\n var payload = (/** @type {?} */ (params)).payload;\n ((/** @type {?} */ (store))).remove(payload.entityIds);\n return;\n }\n case StoreActions.Update: {\n var payload = (/** @type {?} */ (params)).payload;\n ((/** @type {?} */ (store))).update(payload.data);\n return;\n }\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template Root, Entity\n * @param {?} keyOrRoot\n * @param {?} predicateOrIds\n * @param {?} obj\n * @param {?=} idKey\n * @return {?}\n */\nfunction arrayUpdate(keyOrRoot, predicateOrIds, obj, idKey) {\n if (idKey === void 0) { idKey = DEFAULT_ID_KEY; }\n /** @type {?} */\n var condition;\n if (isFunction(predicateOrIds)) {\n condition = predicateOrIds;\n }\n else {\n /** @type {?} */\n var ids_1 = coerceArray(predicateOrIds);\n condition = (/**\n * @param {?} item\n * @return {?}\n */\n function (item) { return ids_1.includes(isObject(item) ? item[idKey] : item) === true; });\n }\n /** @type {?} */\n var updateFn = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return state.map((/**\n * @param {?} entity\n * @return {?}\n */\n function (entity) {\n if (condition(entity) === true) {\n return isObject(entity)\n ? __assign({}, entity, obj) : obj;\n }\n return entity;\n }));\n });\n if (isArray(keyOrRoot)) {\n return updateFn(keyOrRoot);\n }\n return (/**\n * @param {?} root\n * @return {?}\n */\n function (root) {\n var _a;\n return _a = {},\n _a[(/** @type {?} */ (keyOrRoot))] = updateFn(root[keyOrRoot]),\n _a;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template Root, Entity\n * @param {?} keyOrRoot\n * @param {?} newEntity\n * @param {?=} options\n * @return {?}\n */\nfunction arrayAdd(keyOrRoot, newEntity, options) {\n if (options === void 0) { options = {}; }\n /** @type {?} */\n var newEntities = coerceArray(newEntity);\n /** @type {?} */\n var addFn = (/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return (options.prepend ? __spread(newEntities, state) : __spread(state, newEntities)); });\n if (isArray(keyOrRoot)) {\n return addFn(keyOrRoot);\n }\n return (/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n var _a;\n return _a = {},\n _a[(/** @type {?} */ (keyOrRoot))] = addFn(state[keyOrRoot]),\n _a;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @template T\n * @param {?} collection\n * @param {?} idsOrPredicate\n * @param {?} idKey\n * @return {?}\n */\nfunction find(collection, idsOrPredicate, idKey) {\n var e_1, _a, e_2, _b;\n /** @type {?} */\n var result = [];\n if (isFunction(idsOrPredicate)) {\n try {\n for (var collection_1 = __values(collection), collection_1_1 = collection_1.next(); !collection_1_1.done; collection_1_1 = collection_1.next()) {\n var entity = collection_1_1.value;\n if (idsOrPredicate(entity) === true) {\n result.push(entity);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (collection_1_1 && !collection_1_1.done && (_a = collection_1.return)) _a.call(collection_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n /** @type {?} */\n var toSet = coerceArray(idsOrPredicate).reduce((/**\n * @param {?} acc\n * @param {?} current\n * @return {?}\n */\n function (acc, current) { return acc.add(current); }), new Set());\n try {\n for (var collection_2 = __values(collection), collection_2_1 = collection_2.next(); !collection_2_1.done; collection_2_1 = collection_2.next()) {\n var entity = collection_2_1.value;\n if (toSet.has(entity[idKey])) {\n result.push(entity);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (collection_2_1 && !collection_2_1.done && (_b = collection_2.return)) _b.call(collection_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return result;\n}\n// @internal\n/**\n * @template T\n * @return {?}\n */\nfunction distinctUntilArrayItemChanged() {\n return distinctUntilChanged((/**\n * @param {?} prevCollection\n * @param {?} currentCollection\n * @return {?}\n */\n function (prevCollection, currentCollection) {\n if (prevCollection === currentCollection) {\n return true;\n }\n if (isArray(prevCollection) === false || isArray(currentCollection) === false) {\n return false;\n }\n if (isEmpty(prevCollection) && isEmpty(currentCollection)) {\n return true;\n }\n // if item is new in the current collection but not exist in the prev collection\n /** @type {?} */\n var hasNewItem = hasChange(currentCollection, prevCollection);\n if (hasNewItem) {\n return false;\n }\n /** @type {?} */\n var isOneOfItemReferenceChanged = hasChange(prevCollection, currentCollection);\n // return false means there is a change and we want to call next()\n return isOneOfItemReferenceChanged === false;\n }));\n}\n// @internal\n/**\n * @template T\n * @param {?} first\n * @param {?} second\n * @return {?}\n */\nfunction hasChange(first, second) {\n /** @type {?} */\n var hasChange = second.some((/**\n * @param {?} currentItem\n * @return {?}\n */\n function (currentItem) {\n /** @type {?} */\n var oldItem = first.find((/**\n * @param {?} prevItem\n * @return {?}\n */\n function (prevItem) { return prevItem === currentItem; }));\n return oldItem === undefined;\n }));\n return hasChange;\n}\n/**\n * @template T\n * @param {?} idsOrPredicate\n * @param {?=} idKey\n * @return {?}\n */\nfunction arrayFind(idsOrPredicate, idKey) {\n return (/**\n * @param {?} source\n * @return {?}\n */\n function (source) {\n return source.pipe(map((/**\n * @param {?} collection\n * @return {?}\n */\n function (collection) {\n // which means the user deleted the root entity or set the collection to nil\n if (isArray(collection) === false) {\n return collection;\n }\n return find(collection, idsOrPredicate, idKey || DEFAULT_ID_KEY);\n })), distinctUntilArrayItemChanged(), map((/**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (isArray(value) === false) {\n return value;\n }\n if (isArray(idsOrPredicate) || isFunction(idsOrPredicate)) {\n return value;\n }\n return value[0];\n })));\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @internal\n/**\n * @param {?} pred\n * @return {?}\n */\nfunction not(pred) {\n return (/**\n * @param {...?} args\n * @return {?}\n */\n function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !pred.apply(void 0, __spread(args));\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template Root, Entity\n * @param {?} keyOrRoot\n * @param {?} identifier\n * @param {?=} idKey\n * @return {?}\n */\nfunction arrayRemove(keyOrRoot, identifier, idKey) {\n if (idKey === void 0) { idKey = DEFAULT_ID_KEY; }\n /** @type {?} */\n var identifiers;\n /** @type {?} */\n var filterFn;\n if (isFunction(identifier)) {\n filterFn = not(identifier);\n }\n else {\n identifiers = coerceArray((/** @type {?} */ (identifier)));\n filterFn = (/**\n * @param {?} current\n * @return {?}\n */\n function (current) {\n return identifiers.includes(isObject(current) ? current[idKey] : current) === false;\n });\n }\n if (Array.isArray(keyOrRoot)) {\n return keyOrRoot.filter(filterFn);\n }\n return (/**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n var _a;\n return _a = {},\n _a[(/** @type {?} */ (keyOrRoot))] = state[keyOrRoot].filter(filterFn),\n _a;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template State\n * @param {?} initialState\n * @param {?} options\n * @return {?}\n */\nfunction createStore(initialState, options) {\n return new Store(initialState, options);\n}\n/**\n * @template State\n * @param {?} store\n * @return {?}\n */\nfunction createQuery(store) {\n return new Query(store);\n}\n/**\n * @template State\n * @param {?} initialState\n * @param {?} options\n * @return {?}\n */\nfunction createEntityStore(initialState, options) {\n return new EntityStore(initialState, options);\n}\n/**\n * @template State\n * @param {?} store\n * @param {?} options\n * @return {?}\n */\nfunction createEntityQuery(store, options) {\n return new QueryEntity(store, options);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { EntityStore, EntityUIStore, QueryEntity, EntityUIQuery, Query, Store, applyTransaction, transaction, commit, endBatch, isTransactionInProcess, startBatch, transactionManager, withTransaction, filterNil, DEFAULT_ID_KEY, action, setAction, setSkipAction, logAction, currentAction, resetCustomAction, SnapshotManager, snapshotManager, configKey, StoreConfig, QueryConfig, queryConfigKey, akitaConfig, getAkitaConfig, compareValues, Order, AkitaPlugin, Paginator, PaginatorPlugin, PersistNgFormPlugin, persistState, akitaDevtools, EntityCollectionPlugin, StateHistoryPlugin, EntityStateHistoryPlugin, dirtyCheckDefaultParams, DirtyCheckPlugin, getNestedPath, EntityDirtyCheckPlugin, guid, setEntities, isEntityState, toEntitiesIds, toEntitiesObject, hasEntity, hasActiveState, getExitingActives, isMultiActiveState, resolveActiveEntity, isEmpty, coerceArray, updateEntities, removeEntities, removeAllEntities, getInitialEntitiesState, getActiveEntities, addEntities, resetStores, isObject, isPlainObject, isFunction, isArray, toBoolean, isUndefined, isNil, isString, isNumber, isDefined, setValue, getValue, sortByOptions, entitiesToArray, entitiesToMap, __stores__, isDev, enableAkitaProdMode, __DEV__, isNotBrowser, runStoreAction, StoreActions, arrayUpdate, arrayAdd, arrayFind, distinctUntilArrayItemChanged, find, arrayRemove, createEntityQuery, createEntityStore, createQuery, createStore, EntityActions, dispatchDeleted, dispatchAdded, dispatchUpdate, $$deleteStore, $$addStore, $$updateStore, isBrowser as ɵa, isNativeScript as ɵb };\n\n//# sourceMappingURL=datorama-akita.js.map","import {\n createEntityStore,\n} from '@datorama/akita';\n\nconst initialState = {\n filter: \"SHOW_ALL\"\n};\n\nexport const todosStore = createEntityStore(initialState, {\n name: 'todos'\n});","import {\n createEntityQuery\n} from '@datorama/akita';\nimport {\n todosStore\n} from './todos.store';\nimport {\n combineLatest\n} from \"rxjs\";\n\nexport const todosQuery = createEntityQuery(todosStore);\n\nexport const selectFilter = todosQuery.select('filter');\n\nexport const visibleTodos = combineLatest(\n selectFilter,\n todosQuery.selectAll(),\n function getVisibleTodos(filter, todos) {\n switch (filter) {\n case \"SHOW_COMPLETED\":\n return todos.filter(t => t.completed);\n case \"SHOW_ACTIVE\":\n return todos.filter(t => !t.completed);\n default:\n return todos;\n }\n }\n);","import {\n todosStore\n} from './todos.store';\nimport {\n guid\n} from '@datorama/akita';\n\nexport async function addTodo(title) {\n const todo = {\n title,\n completed: false,\n };\n const idFromServer = await Promise.resolve(guid());\n todosStore.add({\n id: idFromServer,\n ...todo\n });\n}\n\nexport async function toggleCompleted(id, completed) {\n await Promise.resolve();\n todosStore.update(id, {\n completed\n });\n}\n\nexport async function removeTodo(id) {\n await Promise.resolve();\n todosStore.remove(id);\n}\n\nexport function updateFilter(filter) {\n todosStore.update({\n filter\n });\n}","\n\n\n\n\n\n
  • \n
    \n \n {todo.title}\n
    \n\n \n
  • \n","\n\n\n\n
    \n {\n if (event.key === 'Enter') {\n dispatch('todo', todo);\n todo = '';\n }\n }}\n bind:value={todo} />\n
    \n","\n\n\n\n
    \n {#each filters as filter}\n \n {/each}\n
    ","\n\n\n\n\n\n
    \n

    Todos

    \n\n updateFilter(event.target.dataset.filterId)}/>\n\n addTodo(e.detail) }/>\n\n
      \n {#each $visibleTodos as todo, i (todo.id)}\n removeTodo(todo.id)}\n on:change={e => toggleCompleted(todo.id, e.target.checked)} />\n {/each}\n
    \n {$visibleTodos.length}\n
    \n","\n\n\n \n\n","import App from './App.svelte';\n\nimport { akitaDevtools, persistState } from '@datorama/akita';\n\nakitaDevtools();\npersistState();\n\nconst app = new App({\n target: document.body,\n intro: true\n});\n\nexport default app;\n"],"names":["empty","tslib_1.__extends","emptyObserver","rxSubscriberSymbol","noop","Symbol_observable","higherOrderRefCount","iterator","Symbol_iterator","observable","dispatch","isArray","isFunction","isObject","isPromise"],"mappings":"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;CACA;CACA;CACA,QAAQ,UAAU,KAAK,EAAE,EAAE,OAAO,oBAAoB,KAAK,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;CAC5E,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,YAAY;CAChB,QAAQ,OAAO,IAAI,CAAC,MAAM;CAC1B;CACA;CACA;CACA,QAAQ,UAAU,KAAK,EAAE,EAAE,OAAO,oBAAoB,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;CAC1E,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,YAAY;CAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;CACnC,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,KAAK,CAAC,SAAS,CAAC,cAAc;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,YAAY;CAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;CAClD,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,YAAY;CAChB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;CA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"} diff --git a/apps/svelte-todo/public/global.css b/apps/svelte-todo/public/global.css deleted file mode 100644 index 54d545d7..00000000 --- a/apps/svelte-todo/public/global.css +++ /dev/null @@ -1,21 +0,0 @@ -*, -*:before, -*:after { - box-sizing: border-box; -} - -.active { - color: hotpink; -} - -nav { - padding: .5rem 1rem; - background-color: #f8f9fa; - height: 60px; - display: flex; - align-items: center; -} - -nav a { - margin-right: 20px; -} \ No newline at end of file diff --git a/apps/svelte-todo/public/index.html b/apps/svelte-todo/public/index.html deleted file mode 100644 index 2314f403..00000000 --- a/apps/svelte-todo/public/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - Akita Svelte - - - - - - - - - - \ No newline at end of file diff --git a/apps/svelte-todo/rollup.config.js b/apps/svelte-todo/rollup.config.js deleted file mode 100644 index c58c822b..00000000 --- a/apps/svelte-todo/rollup.config.js +++ /dev/null @@ -1,44 +0,0 @@ -import svelte from 'rollup-plugin-svelte'; -import resolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; -import livereload from 'rollup-plugin-livereload'; -import { terser } from 'rollup-plugin-terser'; - -const production = !process.env.ROLLUP_WATCH; - -export default { - input: 'src/main.js', - output: { - sourcemap: true, - format: 'iife', - name: 'app', - file: 'public/bundle.js' - }, - plugins: [ - svelte({ - // enable run-time checks when not in production - dev: !production, - // we'll extract any component CSS out into - // a separate file — better for performance - css: css => { - css.write('public/bundle.css'); - } - }), - - // If you have external dependencies installed from - // npm, you'll most likely need these plugins. In - // some cases you'll need additional configuration — - // consult the documentation for details: - // https://github.com/rollup/rollup-plugin-commonjs - resolve(), - commonjs(), - - // Watch the `public` directory and refresh the - // browser on changes when not in production - !production && livereload('public'), - - // If we're building for production (npm run build - // instead of npm run dev), minify - production && terser() - ] -}; diff --git a/apps/svelte-todo/src/AddTodo.svelte b/apps/svelte-todo/src/AddTodo.svelte deleted file mode 100644 index a0e0d0b7..00000000 --- a/apps/svelte-todo/src/AddTodo.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
    - { - if (event.key === 'Enter') { - dispatch('todo', todo); - todo = ''; - } - }} - bind:value={todo} /> -
    diff --git a/apps/svelte-todo/src/App.svelte b/apps/svelte-todo/src/App.svelte deleted file mode 100644 index 93a93ed6..00000000 --- a/apps/svelte-todo/src/App.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
    - - - - - - -
    -
    diff --git a/apps/svelte-todo/src/Filters.svelte b/apps/svelte-todo/src/Filters.svelte deleted file mode 100644 index c4d171ab..00000000 --- a/apps/svelte-todo/src/Filters.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - {#each filters as filter} - - {/each} -
    \ No newline at end of file diff --git a/apps/svelte-todo/src/Home.svelte b/apps/svelte-todo/src/Home.svelte deleted file mode 100644 index d62a4c40..00000000 --- a/apps/svelte-todo/src/Home.svelte +++ /dev/null @@ -1 +0,0 @@ -

    Home Page

    diff --git a/apps/svelte-todo/src/NavLink.svelte b/apps/svelte-todo/src/NavLink.svelte deleted file mode 100644 index 9ca94cc3..00000000 --- a/apps/svelte-todo/src/NavLink.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/apps/svelte-todo/src/Todo.svelte b/apps/svelte-todo/src/Todo.svelte deleted file mode 100644 index 2bee816b..00000000 --- a/apps/svelte-todo/src/Todo.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - -
  • -
    - - {todo.title} -
    - - -
  • diff --git a/apps/svelte-todo/src/Todos.svelte b/apps/svelte-todo/src/Todos.svelte deleted file mode 100644 index 8cb42754..00000000 --- a/apps/svelte-todo/src/Todos.svelte +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - -
    -

    Todos

    - - updateFilter(event.target.dataset.filterId)}/> - - addTodo(e.detail) }/> - -
      - {#each $visibleTodos as todo, i (todo.id)} - removeTodo(todo.id)} - on:change={e => toggleCompleted(todo.id, e.target.checked)} /> - {/each} -
    - {$visibleTodos.length} -
    diff --git a/apps/svelte-todo/src/main.js b/apps/svelte-todo/src/main.js deleted file mode 100644 index 3fee3fcb..00000000 --- a/apps/svelte-todo/src/main.js +++ /dev/null @@ -1,13 +0,0 @@ -import App from './App.svelte'; - -import { akitaDevtools, persistState } from '@datorama/akita'; - -akitaDevtools(); -persistState(); - -const app = new App({ - target: document.body, - intro: true -}); - -export default app; diff --git a/apps/svelte-todo/src/state/index.js b/apps/svelte-todo/src/state/index.js deleted file mode 100644 index baac5e55..00000000 --- a/apps/svelte-todo/src/state/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from './todos.query'; -export * from './todos.store'; -export * from './todos.service'; \ No newline at end of file diff --git a/apps/svelte-todo/src/state/todos.query.js b/apps/svelte-todo/src/state/todos.query.js deleted file mode 100644 index ea19f6b7..00000000 --- a/apps/svelte-todo/src/state/todos.query.js +++ /dev/null @@ -1,28 +0,0 @@ -import { - createEntityQuery -} from '@datorama/akita'; -import { - todosStore -} from './todos.store'; -import { - combineLatest -} from "rxjs"; - -export const todosQuery = createEntityQuery(todosStore); - -export const selectFilter = todosQuery.select('filter'); - -export const visibleTodos = combineLatest( - selectFilter, - todosQuery.selectAll(), - function getVisibleTodos(filter, todos) { - switch (filter) { - case "SHOW_COMPLETED": - return todos.filter(t => t.completed); - case "SHOW_ACTIVE": - return todos.filter(t => !t.completed); - default: - return todos; - } - } -); diff --git a/apps/svelte-todo/src/state/todos.service.js b/apps/svelte-todo/src/state/todos.service.js deleted file mode 100644 index a8e5bdf0..00000000 --- a/apps/svelte-todo/src/state/todos.service.js +++ /dev/null @@ -1,41 +0,0 @@ -import { - todosStore -} from './todos.store'; -import { - guid -} from '@datorama/akita'; - -export async function readTodos() { - const todos = await Promise.resolve([{id:1, completed: true, title: 'create sample Svelte+Akita todo app'}]); - todosStore.set(todos); -} - -export async function addTodo(title) { - const todo = { - title, - completed: false, - }; - const idFromServer = await Promise.resolve(guid()); - todosStore.add({ - id: idFromServer, - ...todo - }); -} - -export async function toggleCompleted(id, completed) { - await Promise.resolve(); - todosStore.update(id, { - completed - }); -} - -export async function removeTodo(id) { - await Promise.resolve(); - todosStore.remove(id); -} - -export function updateFilter(filter) { - todosStore.update({ - filter - }); -} diff --git a/apps/svelte-todo/src/state/todos.store.js b/apps/svelte-todo/src/state/todos.store.js deleted file mode 100644 index 6fab447e..00000000 --- a/apps/svelte-todo/src/state/todos.store.js +++ /dev/null @@ -1,11 +0,0 @@ -import { - createEntityStore, -} from '@datorama/akita'; - -const initialState = { - filter: "SHOW_ALL" -}; - -export const todosStore = createEntityStore(initialState, { - name: 'todos' -}); \ No newline at end of file diff --git a/docs/docs/effects.mdx b/docs/docs/effects.mdx new file mode 100644 index 00000000..909a7bc4 --- /dev/null +++ b/docs/docs/effects.mdx @@ -0,0 +1,129 @@ +--- +title: Effects +--- + +Effects can be used to execute sideeffects (actions, http requests and other operations) upon action events. + +To register effects, simply run AkitaNgEffects.forRoot() and register effect classes. + +```ts title="app.module.ts" +import { AkitaNgEffectModule } from '@datorama/akita'; +import { NavigationEffects } from './path/to/effects'; + +// Only use .forRoot() once in your base module. +@NgModule({ + imports: [ + CommonModule, + AkitaNgEffectModule.forRoot([NavigationEffects]) + ], +}) +export class CoreDataModule {} +``` + +```ts title="product.module.ts" +import { AkitaNgEffectModule } from '@datorama/akita'; +import { ProductEffects } from './path/to/effects'; + +// Use .forFeature() on any feature module +@NgModule({ + imports: [ + CommonModule, + AkitaNgEffectModule.forFeature([ProductEffects]) + ], +}) +export class FeatureModule {} +``` + +## Setup Actions + +In order to use actions you need to setup action objects. + +An action always holds a type property and an optional payload. + +```ts title="navigation.actions.ts" +export const loadMainNavigation = createAction('[Navigation] Load Main Navigation'); +// result { type: "Load Main Navigation" } + +export const loadMainNavigationSuccess = createAction( + '[Navigation] Load Main Navigation Success', + props<{ mainNav: { id: number, path: string } }>() +); +``` + +## Setup Effects +You can use the actions to act upon any action event. + +```ts title="navigation.effect.ts" +@Injectable() +export class NavigationEffects { + constructor( + private actions$: Actions, + private navigationService: NavigationService, + private navigationStore: NavigationStore + ) { + } + + loadMainNavigation$ = createEffect(() => this.actions$.pipe( + ofType(loadMainNavigation), + switchMap(_ => this.navigationService.loadMainNavigation().pipe( + map(mainNav => loadMainNavigationSuccess({ mainNav })) + )) + )); + + @Effect({dispatch: false}) + loadMainNavigationSuccess$ = this.actions$.pipe( + ofType(loadMainNavigationSuccess), + map(({ mainNav }) => this.navigationService.updateNavigationTree(mainNav)), + tap(mainRoutes => this.store.updateNavigation(mainRoutes)) + ); +} +``` + +### Possible use case + +This is one possible use case for an action inside a guard to initialize fetching of a navigation. + +You can also use them in components in order to fetch data. + +```ts title="init-route.guard.ts" +@Injectable({ + providedIn: 'root', +}) +export class InitRouterGuard implements CanActivate { + constructor( + private actions: Actions, + private navigationQuery: NavigationQuery + ) {} + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + return this.navigationQuery.isNavInitialized$.pipe( + tap((isInit) => { + if (!isInit) this.actions.dispatch(loadMainNavigation()); + }), + filter(isInit => isInit), + map(_ => true) + ); + } +} +``` + + +:::tip +We suggest scoping your actions for better maintenance and easier reusability. +One possibility is using typescript namespaces. + +```ts +export namespace NavigationAction { + + export const loadMainNavigation = ... + export const loadMainNavigationSuccess = ... + +} + +... + ngOnInit() { + NavigationAction.loadMainNavigation() + } +... +::: + diff --git a/jest.config.js b/jest.config.js index 30b91f3c..cebafb66 100644 --- a/jest.config.js +++ b/jest.config.js @@ -5,5 +5,10 @@ module.exports = { }, resolver: '@nrwl/jest/plugins/resolver', moduleFileExtensions: ['ts', 'js', 'html'], - coverageReporters: ['html'] + coverageReporters: ['html'], + globals: { + 'ts-jest': { + diagnostics: false + } + } }; diff --git a/libs/akita-ng-effects/README.md b/libs/akita-ng-effects/README.md new file mode 100644 index 00000000..63d2c95b --- /dev/null +++ b/libs/akita-ng-effects/README.md @@ -0,0 +1,98 @@ +# Akita Effects + +### What is it? + +Use effects to hook into your actions and act upon action events.
    + +### How to use it + +Just register your effects in the AkitaNgEffectsModule. + + +```ts +// Only use .forRoot() once in your base module. +@NgModule({ + imports: [ + CommonModule, + AkitaNgEffectModule.forRoot([NavigationEffects]) + ], +}) +export class CoreDataModule {} + +// Use .forFeature() on any feature module +@NgModule({ + imports: [ + CommonModule, + AkitaNgEffectModule.forFeature([NavigationEffects]) + ], +}) +export class FeatureModule {} + +``` + +## Usage + +Setup your actions, that the effects will listen for. +The action events are published globally on the actions stream so every effect can listen for any action. + +```ts +export const LOAD_MAIN_NAVIGATION = createAction('Load Main Navigation'); +export const LOAD_MAIN_NAVIGATION_SUCCESS = createAction( + 'Load Main Navigation Success', + props<{ mainNav: MainNavigation }>() +); +``` + +Use the effects to listen for any action event. You can publish other actions or run service tasks on any action event. + +```ts +@Injectable({ + providedIn: 'root', +}) +export class NavigationEffects { + constructor( + // inject the actions stream + private actions$: Actions, + private navigationService: NavigationService, + private store: NavigationStore + ) {} + + // can also be immplemented with createEffect() function + @Effect() + loadMainNavigation$ = this.actions$.pipe( + ofType(LOAD_MAIN_NAVIGATION), + switchMap(_ => this.navigationService.LOAD_MAIN_NAVIGATION().pipe( + tap(mainNav => this.actions$.dispatch(loadMainNavigationSuccess({ mainNav })))) + ) + ); + + @Effect() + loadMainNavigationSuccess$ = this.actions$.pipe( + ofType(loadMainNavigationSuccess), + map(({ mainNav }) => this.navigationService.updateNavigationTree(mainNav)), + tap(mainRoutes => this.store.updateNavigation(mainRoutes)) + ); +} +``` +A possible use case for an action inside a guard.
    +```ts +@Injectable({ + providedIn: 'root', +}) +export class InitRouterGuard implements CanActivate { + constructor( + private navigationQuery: NavigationQuery, + private actions: Actions + ) {} + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + return this.navigationQuery.isNavInitialized$.pipe( + tap((isInit) => { + if (!isInit) this.actions.dispatch(loadMainNavigation()); + }), + filter(isInit => isInit), + map((val) => true) + ); + } +} +``` diff --git a/apps/angular-ecommerce/jest.config.js b/libs/akita-ng-effects/jest.config.js similarity index 51% rename from apps/angular-ecommerce/jest.config.js rename to libs/akita-ng-effects/jest.config.js index 77f4cb00..54e626f1 100644 --- a/apps/angular-ecommerce/jest.config.js +++ b/libs/akita-ng-effects/jest.config.js @@ -1,10 +1,11 @@ module.exports = { - name: 'angular-ecommerce', + name: 'akita-ng-effects', preset: '../../jest.config.js', - coverageDirectory: '../../coverage/apps/angular-ecommerce', + coverageDirectory: '../../coverage/libs/akita-ng-effects', snapshotSerializers: [ 'jest-preset-angular/build/AngularNoNgAttributesSnapshotSerializer.js', 'jest-preset-angular/build/AngularSnapshotSerializer.js', - 'jest-preset-angular/build/HTMLCommentSerializer.js' - ] + 'jest-preset-angular/build/HTMLCommentSerializer.js', + ], + setupFilesAfterEnv: ["/src/test-setup.ts"] }; diff --git a/libs/akita-ng-effects/ng-package.json b/libs/akita-ng-effects/ng-package.json new file mode 100644 index 00000000..9f395bc7 --- /dev/null +++ b/libs/akita-ng-effects/ng-package.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/libs/akita-ng-effects", + "lib": { + "entryFile": "src/index.ts" + }, + "whitelistedNonPeerDependencies": [ + "ts-action", + "ts-action-operators" + ] +} diff --git a/libs/akita-ng-effects/package.json b/libs/akita-ng-effects/package.json new file mode 100644 index 00000000..d0c7863a --- /dev/null +++ b/libs/akita-ng-effects/package.json @@ -0,0 +1,40 @@ +{ + "name": "@datorama/akita-ng-effects", + "version": "1.0.0", + "description": "A Reactive State Management extension dealing with side effects.", + "keywords": [ + "angular", + "state management", + "react", + "vue", + "typescript", + "javascript", + "rxjs", + "angular store", + "store", + "observable data stores", + "redux", + "reactive", + "effects" + ], + "homepage": "https://github.com/datorama/tree/master/libs/akita-ng-effects#readme", + "bugs": { + "url": "https://github.com/datorama/akita/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/datorama/akita", + "directory": "libs/akita-ng-effects" + }, + "license": "Apache-2.0", + "author": "Yannick Boetzkes", + "peerDependencies": { + "rxjs": ">= 6.1.0 < 7", + "tslib": ">= 1.7.0 < 2" + }, + "dependencies": { + "ts-action": "^11.0.0", + "ts-action-operators": "^9.1.1" + }, + "schematics": "./schematics/collection.json" +} diff --git a/libs/akita-ng-effects/src/__tests__/actions.spec.ts b/libs/akita-ng-effects/src/__tests__/actions.spec.ts new file mode 100644 index 00000000..fcbc5907 --- /dev/null +++ b/libs/akita-ng-effects/src/__tests__/actions.spec.ts @@ -0,0 +1,14 @@ +import { Actions } from '@datorama/akita-ng-effects'; +import { fakeAsync, flush } from '@angular/core/testing'; +import { Subject } from 'rxjs'; + +describe('Actions', () => { + it('should notify on dispatched event', fakeAsync(() => { + const actions = new Subject(); + actions.subscribe((val) => { + expect(val).toBe('test'); + }); + actions.next('test'); + flush(); + })); +}); diff --git a/libs/akita-ng-effects/src/__tests__/akita-ng-effects.module.spec.ts b/libs/akita-ng-effects/src/__tests__/akita-ng-effects.module.spec.ts new file mode 100644 index 00000000..7e5adf18 --- /dev/null +++ b/libs/akita-ng-effects/src/__tests__/akita-ng-effects.module.spec.ts @@ -0,0 +1,25 @@ +import { TestBed } from '@angular/core/testing'; +import { AkitaNgEffectsModule } from '@datorama/akita-ng-effects'; +import { Injectable } from '@angular/core'; + +@Injectable() +class FakeEffects { + constructor() { + } +} + +@Injectable() +class FakeEffectsTwo { + constructor() { + } +} + +describe(`forRoot`, () => { + it(`should provide FakeEffects`, () => { + TestBed.configureTestingModule({ + imports: [AkitaNgEffectsModule.forRoot([FakeEffects])] + }); + const fakeEffects = TestBed.get(FakeEffects); + expect(fakeEffects).toBeDefined(); + }); +}); diff --git a/libs/akita-ng-effects/src/__tests__/create-effect.util.spec.ts b/libs/akita-ng-effects/src/__tests__/create-effect.util.spec.ts new file mode 100644 index 00000000..40d6163f --- /dev/null +++ b/libs/akita-ng-effects/src/__tests__/create-effect.util.spec.ts @@ -0,0 +1,23 @@ +import { createEffect } from '@datorama/akita-ng-effects'; +import { of } from 'rxjs'; +import { tap } from 'rxjs/operators'; + +describe('Create effect utility', () => { + it('should create an effect with effect metadata', () => { + const effect = createEffect(() => of('sample')); + + expect(effect).toMatchObject({ isEffect: true }); + expect(effect).toHaveProperty('name'); + }); + + it('should emit a value upon subscription', (done) => { + createEffect(() => + of('sample').pipe( + tap((val) => { + expect(val).toBe('sample'); + done(); + }) + ) + ).subscribe(); + }); +}); diff --git a/libs/akita-ng-effects/src/__tests__/effect.decorator.spec.ts b/libs/akita-ng-effects/src/__tests__/effect.decorator.spec.ts new file mode 100644 index 00000000..ffcc5d0a --- /dev/null +++ b/libs/akita-ng-effects/src/__tests__/effect.decorator.spec.ts @@ -0,0 +1,23 @@ +import { Effect } from '@datorama/akita-ng-effects'; +import { of } from 'rxjs'; +import { tap } from 'rxjs/operators'; + +describe('@Effect Decorator', () => { + it('should create ab effect with metadata', (done) => { + class TestClass { + @Effect() + testEffect$ = of('sample') + .pipe( + tap((val) => { + expect(val).toBe('sample'); + done(); + }) + ) + .subscribe(); + } + + const testClass = new TestClass(); + expect(testClass.testEffect$).toMatchObject({ isEffect: true }); + expect(testClass.testEffect$).toHaveProperty('name'); + }); +}); diff --git a/libs/akita-ng-effects/src/__tests__/module-manager.service.spec.ts b/libs/akita-ng-effects/src/__tests__/module-manager.service.spec.ts new file mode 100644 index 00000000..b8c57406 --- /dev/null +++ b/libs/akita-ng-effects/src/__tests__/module-manager.service.spec.ts @@ -0,0 +1,59 @@ +import { Actions } from '@datorama/akita-ng-effects'; +import { ModuleManager } from '../lib/module-manager.service'; +import { setMetadata } from '../lib/effect.utils'; +import { Subject } from 'rxjs'; + +describe('Module Manager Service', () => { + let moduleManager: ModuleManager; + let effectInstance; + let mixedInstance; + let mockEffectOne; + let mockEffectTwo; + let noEffect; + let actions$; + let observable$; + + beforeEach(() => { + actions$ = new Actions(); + mockEffectOne = Object.create(actions$); + mockEffectTwo = Object.create(actions$); + setMetadata(mockEffectOne, 'mockEffectOne', {}); + setMetadata(mockEffectTwo, 'mockEffectTwo', {}); + + observable$ = new Subject(); + noEffect = observable$; + + moduleManager = new ModuleManager(new Actions()); + effectInstance = { + actions$, + mockEffectOne, + mockEffectTwo, + }; + mixedInstance = { + mockEffectOne, + noEffect, + }; + }); + + it('should add effects to the instance sources', () => { + moduleManager.addEffectInstance(effectInstance); + moduleManager.addEffectInstance(effectInstance); + + expect(moduleManager.effectInstanceSources.length).toBe(2); + }); + + it('should subscribe only to effects', () => { + moduleManager.subscribeToEffects(effectInstance); + moduleManager.subscribeToEffects(mixedInstance); + + expect(actions$.observers.length).toBe(3); + }); + + it('should unsubscribe all on destroy', () => { + moduleManager.subscribeToEffects(effectInstance); + moduleManager.subscribeToEffects(mixedInstance); + moduleManager.ngOnDestroy(); + + expect(actions$.observers.length).toBe(0); + }); +}); diff --git a/libs/akita-ng-effects/src/index.ts b/libs/akita-ng-effects/src/index.ts new file mode 100644 index 00000000..232f5281 --- /dev/null +++ b/libs/akita-ng-effects/src/index.ts @@ -0,0 +1,7 @@ +export { Actions } from './lib/actions'; +export { AkitaNgEffectsModule } from './lib/akita-ng-effects.module'; +export { EffectsRootModule } from './lib/effect-root.module'; +export { Effect } from './lib/effect.decorator'; +export { createEffect } from './lib/create-effect.util'; +export { action as createAction, props, payload } from 'ts-action'; +export { ofType } from 'ts-action-operators'; diff --git a/libs/akita-ng-effects/src/lib/actions.ts b/libs/akita-ng-effects/src/lib/actions.ts new file mode 100644 index 00000000..6031d1cb --- /dev/null +++ b/libs/akita-ng-effects/src/lib/actions.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; +import { Action } from './types'; +import { logAction } from '@datorama/akita'; + +@Injectable({ + providedIn: 'root' +}) +export class Actions extends Subject { + + dispatch(value: Action) { + this.logAction(value) + this.next(value); + } + + logAction(value: Action) { + const {type, ...props} = value + const hasPayload = Object.getOwnPropertyNames(props).length > 0 + logAction(type, null, hasPayload ? props : null) + } + +} diff --git a/libs/akita-ng-effects/src/lib/akita-ng-effects.module.ts b/libs/akita-ng-effects/src/lib/akita-ng-effects.module.ts new file mode 100644 index 00000000..f3558fc7 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/akita-ng-effects.module.ts @@ -0,0 +1,55 @@ +import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'; +import { _FEATURE_EFFECTS, _ROOT_EFFECTS, FEATURE_EFFECT_INSTANCES, ROOT_EFFECT_INSTANCES } from './tokens'; +import { EffectsRootModule } from './effect-root.module'; +import { Actions } from './actions'; +import { EffectsFeatureModule } from './effect-feature.module'; +import { ModuleManager } from './module-manager.service'; + +@NgModule({}) +export class AkitaNgEffectsModule { + static forRoot(rootEffects: Type[] = []): ModuleWithProviders { + return { + ngModule: EffectsRootModule, + providers: [ + ModuleManager, + Actions, + rootEffects, + { + provide: _ROOT_EFFECTS, + useValue: rootEffects, + }, + { + provide: ROOT_EFFECT_INSTANCES, + useFactory: createEffectInstances, + deps: [Injector, _ROOT_EFFECTS], + }, + ], + }; + } + + static forFeature(featureEffects: Type[] = []): ModuleWithProviders { + return { + ngModule: EffectsFeatureModule, + providers: [ + featureEffects, + { + provide: _FEATURE_EFFECTS, + useValue: featureEffects, + }, + { + provide: FEATURE_EFFECT_INSTANCES, + useFactory: createEffectInstances, + deps: [Injector, _FEATURE_EFFECTS], + }, + ], + }; + } +} + +export function createEffectInstances(injector: Injector, effects: Type[]): any[] { + const effectInstances = effects.map((effect) => { + return injector.get(effect) + }); + + return effectInstances +} diff --git a/libs/akita-ng-effects/src/lib/create-effect.util.ts b/libs/akita-ng-effects/src/lib/create-effect.util.ts new file mode 100644 index 00000000..33065a68 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/create-effect.util.ts @@ -0,0 +1,14 @@ +import { Observable } from 'rxjs'; +import { setMetadata } from './effect.utils'; +import { EffectOptions } from './types'; + +export function createEffect(actions$: () => Observable, options?: EffectOptions): Observable { + const effect = actions$(); + options = { + dispatch: true, + ...options, + }; + setMetadata(effect, null, options); + + return effect; +} diff --git a/libs/akita-ng-effects/src/lib/effect-feature.module.ts b/libs/akita-ng-effects/src/lib/effect-feature.module.ts new file mode 100644 index 00000000..c104931f --- /dev/null +++ b/libs/akita-ng-effects/src/lib/effect-feature.module.ts @@ -0,0 +1,10 @@ +import { Inject, NgModule } from '@angular/core'; +import { FEATURE_EFFECT_INSTANCES } from './tokens'; +import { ModuleManager } from './module-manager.service'; + +@NgModule() +export class EffectsFeatureModule { + constructor(private moduleManager: ModuleManager, @Inject(FEATURE_EFFECT_INSTANCES) featureEffects: any[]) { + featureEffects.forEach((effect) => this.moduleManager.addEffectInstance(effect)); + } +} diff --git a/libs/akita-ng-effects/src/lib/effect-root.module.ts b/libs/akita-ng-effects/src/lib/effect-root.module.ts new file mode 100644 index 00000000..2079799b --- /dev/null +++ b/libs/akita-ng-effects/src/lib/effect-root.module.ts @@ -0,0 +1,18 @@ +import { Inject, NgModule, Optional, SkipSelf } from '@angular/core'; +import { ROOT_EFFECT_INSTANCES } from './tokens'; +import { Actions } from './actions'; +import { ModuleManager } from './module-manager.service'; + +@NgModule() +export class EffectsRootModule { + constructor(private moduleManager: ModuleManager, private actions: Actions, @Inject(ROOT_EFFECT_INSTANCES) rootEffects: any[], @Optional() @SkipSelf() private parentModule?: EffectsRootModule) { + this.rootGuard(); + rootEffects.forEach((effect) => this.moduleManager.addEffectInstance(effect)); + } + + rootGuard() { + if (this.parentModule) { + throw new Error('EffectsRootModule is already loaded. Import it in the AppModule only'); + } + } +} diff --git a/libs/akita-ng-effects/src/lib/effect.decorator.ts b/libs/akita-ng-effects/src/lib/effect.decorator.ts new file mode 100644 index 00000000..18ecfaa3 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/effect.decorator.ts @@ -0,0 +1,24 @@ +import { setMetadata } from './effect.utils'; +import { EffectOptions } from './types'; + +export function Effect(options?: EffectOptions) { + options = { + dispatch: true, + ...options, + }; + + return function (classProto: any, propKey: string): any { + let returnValue; + + Object.defineProperty(classProto, propKey, { + get: function () { + return returnValue; + }, + set: function (value) { + setMetadata(value, propKey, options); + returnValue = value; + }, + enumerable: true, + }); + }; +} diff --git a/libs/akita-ng-effects/src/lib/effect.utils.ts b/libs/akita-ng-effects/src/lib/effect.utils.ts new file mode 100644 index 00000000..33e3da88 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/effect.utils.ts @@ -0,0 +1,22 @@ +import { EffectOptions } from './types'; + +export function setMetadata(effect, propertyName, effectOptions: EffectOptions) { + Object.defineProperty(effect, 'isEffect', { + enumerable: true, + configurable: false, + writable: false, + value: true, + }); + Object.defineProperty(effect, 'name', { + enumerable: true, + configurable: false, + writable: false, + value: propertyName, + }); + Object.defineProperty(effect, 'dispatchAction', { + enumerable: true, + configurable: false, + writable: false, + value: effectOptions.dispatch, + }); +} diff --git a/libs/akita-ng-effects/src/lib/module-manager.service.ts b/libs/akita-ng-effects/src/lib/module-manager.service.ts new file mode 100644 index 00000000..a28d65b7 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/module-manager.service.ts @@ -0,0 +1,51 @@ +import { Injectable, OnDestroy, Type } from '@angular/core'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { Actions } from './actions'; +import { Action, Effect } from './types'; + +@Injectable({ + providedIn: 'root' +}) +export class ModuleManager implements OnDestroy { + effectInstanceSources: Type[] = []; + destroyEffects$ = new Subject(); + + constructor(private actions$: Actions) { + } + + addEffectInstance(effectInstance: Type) { + this.effectInstanceSources.push(effectInstance); + this.subscribeToEffects(effectInstance); + } + + subscribeToEffects(effectInstance: Type) { + for (let key in effectInstance) { + const property: Effect = effectInstance[key]; + if (property.hasOwnProperty('isEffect') && property.isEffect) { + property.pipe( + takeUntil(this.destroyEffects$) + ) + .subscribe(actionOrSkip => this.dispatchAction(property, actionOrSkip)); + } + } + } + + private dispatchAction(property: Effect, actionOrSkip: Action | Record) { + if (property.dispatchAction) { + if (this.checkAction(actionOrSkip)) this.actions$.dispatch(actionOrSkip); + + } + } + + private checkAction(action: Action | any): action is Action & Record<'type', any> { + if (action.hasOwnProperty('type')) return true; + throw new TypeError('Make sure to provide a valid action type or set the option {dispatch: false}'); + } + + ngOnDestroy() { + // modules aren't supposed to be destroyed; might not be needed + this.destroyEffects$.next(); + this.effectInstanceSources = []; + } +} diff --git a/libs/akita-ng-effects/src/lib/tokens.ts b/libs/akita-ng-effects/src/lib/tokens.ts new file mode 100644 index 00000000..b8041cc2 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/tokens.ts @@ -0,0 +1,9 @@ +import { InjectionToken, Type } from '@angular/core'; + +export const _ROOT_EFFECTS = new InjectionToken[]>('@datorama/akita Internal Root Effects'); + +export const ROOT_EFFECT_INSTANCES = new InjectionToken[]>('@datorama/akita Root Effects'); + +export const _FEATURE_EFFECTS = new InjectionToken[]>('@datorama/akita Internal Feature Effects'); + +export const FEATURE_EFFECT_INSTANCES = new InjectionToken[]>('@datorama/akita Feature Effects'); diff --git a/libs/akita-ng-effects/src/lib/types.ts b/libs/akita-ng-effects/src/lib/types.ts new file mode 100644 index 00000000..422e93e5 --- /dev/null +++ b/libs/akita-ng-effects/src/lib/types.ts @@ -0,0 +1,17 @@ +import { Subject } from 'rxjs'; + + +export interface EffectOptions { + dispatch?: boolean; +} + +export interface Effect extends Subject { + isEffect: boolean; + name: string | null; + dispatchAction: boolean +} + +export interface Action { + type: string; + [key: string]: any +} diff --git a/apps/angular-akita-server-side-pagination/src/test-setup.ts b/libs/akita-ng-effects/src/test-setup.ts similarity index 100% rename from apps/angular-akita-server-side-pagination/src/test-setup.ts rename to libs/akita-ng-effects/src/test-setup.ts diff --git a/apps/angular-akita-server-side-pagination/tsconfig.json b/libs/akita-ng-effects/tsconfig.json similarity index 75% rename from apps/angular-akita-server-side-pagination/tsconfig.json rename to libs/akita-ng-effects/tsconfig.json index 89375a39..e5decd5e 100644 --- a/apps/angular-akita-server-side-pagination/tsconfig.json +++ b/libs/akita-ng-effects/tsconfig.json @@ -2,5 +2,6 @@ "extends": "../../tsconfig.json", "compilerOptions": { "types": ["node", "jest"] - } + }, + "include": ["**/*.ts"] } diff --git a/libs/akita-ng-effects/tsconfig.lib.json b/libs/akita-ng-effects/tsconfig.lib.json new file mode 100644 index 00000000..0bb76e32 --- /dev/null +++ b/libs/akita-ng-effects/tsconfig.lib.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": ["src/test-setup.ts", "**/*.spec.ts"] +} diff --git a/libs/akita-ng-effects/tsconfig.lib.prod.json b/libs/akita-ng-effects/tsconfig.lib.prod.json new file mode 100644 index 00000000..cbae7942 --- /dev/null +++ b/libs/akita-ng-effects/tsconfig.lib.prod.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.lib.json", + "angularCompilerOptions": { + "enableIvy": false + } +} diff --git a/apps/angular-akita-server-side-pagination/tsconfig.spec.json b/libs/akita-ng-effects/tsconfig.spec.json similarity index 100% rename from apps/angular-akita-server-side-pagination/tsconfig.spec.json rename to libs/akita-ng-effects/tsconfig.spec.json diff --git a/libs/akita-ng-effects/tslint.json b/libs/akita-ng-effects/tslint.json new file mode 100644 index 00000000..f2932272 --- /dev/null +++ b/libs/akita-ng-effects/tslint.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [true, "attribute", "datorama", "camelCase"], + "component-selector": [true, "element", "datorama", "kebab-case"] + }, + "linterOptions": { + "exclude": ["!**/*"] + } +} diff --git a/libs/akita-schematics/src/collection.json b/libs/akita-schematics/src/collection.json index 48d650bb..c207ce38 100644 --- a/libs/akita-schematics/src/collection.json +++ b/libs/akita-schematics/src/collection.json @@ -89,6 +89,14 @@ "description": "A component", "factory": "./ng-g/component/index", "schema": "./ng-g/component/schema.json" + }, + "effect": { + "aliases": [ + "aef" + ], + "description": "A effect", + "factory": "./ng-g/effect/index", + "schema": "./ng-g/effect/schema.json" } } -} \ No newline at end of file +} diff --git a/libs/akita-schematics/src/ng-add/index.ts b/libs/akita-schematics/src/ng-add/index.ts index af1d2306..7d3d7153 100644 --- a/libs/akita-schematics/src/ng-add/index.ts +++ b/libs/akita-schematics/src/ng-add/index.ts @@ -10,7 +10,7 @@ function addPackageJsonDependencies(options: Schema): Rule { const dependencies: NodeDependency[] = [ { type: NodeDependencyType.Default, - version: '^5.2.4', + version: '^6.0.0', name: '@datorama/akita', }, ]; @@ -18,7 +18,7 @@ function addPackageJsonDependencies(options: Schema): Rule { if (options.withRouter || options.router) { dependencies.push({ type: NodeDependencyType.Default, - version: '^5.1.8', + version: '^6.0.0', name: '@datorama/akita-ng-router-store', }); } @@ -26,7 +26,7 @@ function addPackageJsonDependencies(options: Schema): Rule { if (options.devtools) { dependencies.push({ type: NodeDependencyType.Dev, - version: '^5.0.3', + version: '^6.0.0', name: '@datorama/akita-ngdevtools', }); } @@ -34,7 +34,7 @@ function addPackageJsonDependencies(options: Schema): Rule { if (options.httpEntityService) { dependencies.push({ type: NodeDependencyType.Default, - version: '^5.0.0', + version: '^6.0.0', name: '@datorama/akita-ng-entity-service', }); } @@ -171,11 +171,11 @@ function addModuleToImports(options: Schema): Rule { } if (importDevtools) { - addModuleImportToRootModule(host, importDevtools, null as any, project); + addModuleImportToRootModule(host, importDevtools, null as any, project as any); } if (importRouter) { - addModuleImportToRootModule(host, importRouter, null as any, project); + addModuleImportToRootModule(host, importRouter, null as any, project as any); } if (provideEntityServiceConfig) { diff --git a/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts.template b/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts.template new file mode 100644 index 00000000..bb8c8f28 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts.template @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; +import { Observable } from 'rxjs'; + +import { <%= classify(name) %>Effects } from './<%= dasherize(name) %>.effects'; + +describe('<%= classify(name) %>Effects', () => { + let actions$: Observable; + let effects: <%= classify(name) %>Effects; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ + <%= classify(name) %>Effects, + ] + }); + + effects = TestBed.inject(<%= classify(name) %>Effects); + }); + + it('should be created', () => { + expect(effects).toBeTruthy(); + }); +}); diff --git a/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.ts.template b/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.ts.template new file mode 100644 index 00000000..7dad3902 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/effect/files/__name@dasherize@if-flat__/__name@dasherize__.effects.ts.template @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { Actions, <%= effectMethod %> } from '@datorama/akita-ng-effects'; + + +@Injectable() +export class <%= classify(name) %>Effects { + + constructor(private actions$: Actions) {} + +} diff --git a/libs/akita-schematics/src/ng-g/effect/index.ts b/libs/akita-schematics/src/ng-g/effect/index.ts new file mode 100644 index 00000000..97712076 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/effect/index.ts @@ -0,0 +1,98 @@ +import { apply, applyTemplates, branchAndMerge, chain, filter, mergeWith, move, noop, Rule, SchematicContext, SchematicsException, Tree, url } from '@angular-devkit/schematics'; +import { Schema as EffectOptions } from './schema'; +import * as ts from 'typescript'; +import { classify, dasherize } from '../utils/string'; +import { addImportToModule, buildRelativePath, findModuleFromOptions, getProjectPath, InsertChange, insertImport, parseName, stringUtils } from '../utils'; + +function addImportToNgModule(options: EffectOptions): Rule { + return (host: Tree) => { + const modulePath = options.module; + + if (!modulePath) { + return host; + } + + if (!host.exists(modulePath)) { + throw new Error(`Specified module path ${modulePath} does not exist`); + } + + const text = host.read(modulePath); + if (text === null) { + throw new SchematicsException(`File ${modulePath} does not exist.`); + } + const sourceText = text.toString('utf-8'); + + const source = ts.createSourceFile(modulePath, sourceText, ts.ScriptTarget.Latest, true); + + const effectsName = `${classify(`${options.name}Effects`)}`; + + const effectsModuleImport = insertImport(source, modulePath, 'AkitaNgEffectsModule', '@datorama/akita-ng-effects'); + + const effectsPath = `/${options.path}/` + (options.flat ? '' : dasherize(options.name) + '/') + (options.group ? 'effects/' : '') + dasherize(options.name) + '.effects'; + const relativePath = buildRelativePath(modulePath, effectsPath); + const effectsImport = insertImport(source, modulePath, effectsName, relativePath); + + const effectsSetup = `[${effectsName}]`; + // options.root && options.minimal ? `[]` : `[${effectsName}]`; + const [effectsNgModuleImport] = addImportToModule(source, modulePath, `AkitaNgEffectsModule.for${options.root ? 'Root' : 'Feature'}(${effectsSetup})`, relativePath); + + let changes = [effectsModuleImport, effectsNgModuleImport]; + + if (!options.root || options.root) { + changes = changes.concat([effectsImport]); + } + + const recorder = host.beginUpdate(modulePath); + for (const change of changes) { + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } + } + host.commitUpdate(recorder); + + return host; + }; +} + +function getEffectMethod(creators?: boolean) { + return creators ? 'createEffect' : 'Effect'; +} + +function getEffectStart(name: string, creators?: boolean): string { + const effectName = classify(name); + return creators ? `load${effectName}s$ = createEffect(() => {` + '\n return this.actions$.pipe( \n' : '@Effect()\n' + ` load${effectName}s$ = this.actions$.pipe(`; +} + +function getEffectEnd(creators?: boolean) { + return creators ? ' );\n' + ' });' : ');'; +} + +export default function (options: EffectOptions): Rule { + return (host: Tree, context: SchematicContext) => { + options.path = getProjectPath(host, options); + + if (options.module) { + options.module = findModuleFromOptions(host, options); + } + + const parsedPath = parseName({ path: options.path, name: options.name || '' }); + options.name = parsedPath.name; + options.path = parsedPath.path; + + const templateSource = apply(url('./files'), [ + options.skipTests ? filter((path) => !path.endsWith('.spec.ts.template')) : noop(), + options.root && options.minimal ? filter((_) => false) : noop(), + applyTemplates({ + ...stringUtils, + 'if-flat': (s: string) => stringUtils.group(options.flat ? '' : s, options.group ? 'effects' : ''), + effectMethod: getEffectMethod(options.creators), + effectStart: getEffectStart(options.name, options.creators), + effectEnd: getEffectEnd(options.creators), + ...(options as object), + } as any), + move(parsedPath.path), + ]); + + return chain([branchAndMerge(chain([addImportToNgModule(options), mergeWith(templateSource)]))])(host, context); + }; +} diff --git a/libs/akita-schematics/src/ng-g/effect/schema.json b/libs/akita-schematics/src/ng-g/effect/schema.json new file mode 100644 index 00000000..5dcd3472 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/effect/schema.json @@ -0,0 +1,74 @@ +{ + "$schema": "http://json-schema.org/schema", + "id": "SchematicsAkitaEffect", + "title": "Akita Effect Options Schema", + "type": "object", + "properties": { + "name": { + "description": "The name of the effect.", + "type": "string", + "alias": "s", + "$default": { + "$source": "argv", + "index": 0 + } + }, + "path": { + "type": "string", + "format": "path", + "description": "The path to create the effect.", + "visible": false + }, + "skipTests": { + "type": "boolean", + "description": "Specifies if a spec file is generated.", + "default": true + }, + "flat": { + "type": "boolean", + "default": false, + "description": "Flag to indicate if a dir is created." + }, + "dirName": { + "type": "string", + "default": "state", + "description": "Specifies the name of the generated folder" + }, + "feature": { + "type": "boolean", + "default": false + }, + "module": { + "type": "string", + "default": "", + "description": "Allows specification of the declaring module.", + "alias": "m", + "subtype": "filepath", + "x-prompt": "To which module (path) should the effect be registered in?" + }, + "root": { + "type": "boolean", + "default": false, + "description": "Flag to indicate whether the effects are registered as root." + }, + "creators": { + "type": "boolean", + "default": false, + "description": "Specifies whether to use creator functions for handling actions, reducers, and effects.", + "aliases": ["c"], + "x-prompt": "Do you want to use the create function?" + }, + "group": { + "type": "boolean", + "default": false, + "description": "Group effects file within 'effects' folder", + "aliases": ["g"] + }, + "minimal": { + "type": "boolean", + "default": false, + "description": "Setup root effects module without registering initial effects." + } + }, + "required": [] +} diff --git a/libs/akita-schematics/src/ng-g/effect/schema.ts b/libs/akita-schematics/src/ng-g/effect/schema.ts new file mode 100644 index 00000000..e591fe85 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/effect/schema.ts @@ -0,0 +1,11 @@ +export interface Schema { + name: string, + path?: string, + skipTests?: boolean, + module?: string; + flat?: boolean; + root?: boolean; + creators?: boolean; + group?: boolean; + minimal?: boolean; +} diff --git a/libs/akita-schematics/src/ng-g/utils/angular-utils.ts b/libs/akita-schematics/src/ng-g/utils/angular-utils.ts new file mode 100644 index 00000000..dea2d1a5 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/angular-utils.ts @@ -0,0 +1,38 @@ +import { JsonParseMode, dirname, normalize, parseJsonAst, resolve } from '@angular-devkit/core'; +import { Tree } from '@angular-devkit/schematics'; +import { findPropertyInAstObject } from './json-utilts'; + +// https://github.com/angular/angular-cli/blob/master/packages/schematics/angular/migrations/update-9/utils.ts +export function isIvyEnabled(tree: Tree, tsConfigPath: string): boolean { + // In version 9, Ivy is turned on by default + // Ivy is opted out only when 'enableIvy' is set to false. + + const buffer = tree.read(tsConfigPath); + if (!buffer) { + return true; + } + + const tsCfgAst = parseJsonAst(buffer.toString(), JsonParseMode.Loose); + + if (tsCfgAst.kind !== 'object') { + return true; + } + + const ngCompilerOptions = findPropertyInAstObject(tsCfgAst, 'angularCompilerOptions'); + if (ngCompilerOptions && ngCompilerOptions.kind === 'object') { + const enableIvy = findPropertyInAstObject(ngCompilerOptions, 'enableIvy'); + + if (enableIvy) { + return !!enableIvy.value; + } + } + + const configExtends = findPropertyInAstObject(tsCfgAst, 'extends'); + if (configExtends && configExtends.kind === 'string') { + const extendedTsConfigPath = resolve(dirname(normalize(tsConfigPath)), normalize(configExtends.value)); + + return isIvyEnabled(tree, extendedTsConfigPath); + } + + return true; +} diff --git a/libs/akita-schematics/src/ng-g/utils/ast-utils.ts b/libs/akita-schematics/src/ng-g/utils/ast-utils.ts new file mode 100644 index 00000000..30751b9b --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/ast-utils.ts @@ -0,0 +1,533 @@ +/* istanbul ignore file */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +import * as ts from 'typescript'; +import { Change, InsertChange, NoopChange, createReplaceChange, ReplaceChange, RemoveChange, createRemoveChange } from './change'; +import { Path } from '@angular-devkit/core'; + +/** + * Find all nodes from the AST in the subtree of node of SyntaxKind kind. + * @param node + * @param kind + * @param max The maximum number of items to return. + * @return all nodes of kind, or [] if none is found + */ +export function findNodes(node: ts.Node, kind: ts.SyntaxKind, max = Infinity): ts.Node[] { + if (!node || max == 0) { + return []; + } + + const arr: ts.Node[] = []; + if (node.kind === kind) { + arr.push(node); + max--; + } + if (max > 0) { + for (const child of node.getChildren()) { + findNodes(child, kind, max).forEach((node) => { + if (max > 0) { + arr.push(node); + } + max--; + }); + + if (max <= 0) { + break; + } + } + } + + return arr; +} + +/** + * Get all the nodes from a source. + * @param sourceFile The source file object. + * @returns {Observable} An observable of all the nodes in the source. + */ +export function getSourceNodes(sourceFile: ts.SourceFile): ts.Node[] { + const nodes: ts.Node[] = [sourceFile]; + const result = []; + + while (nodes.length > 0) { + const node = nodes.shift(); + + if (node) { + result.push(node); + if (node.getChildCount(sourceFile) >= 0) { + nodes.unshift(...node.getChildren()); + } + } + } + + return result; +} + +/** + * Helper for sorting nodes. + * @return function to sort nodes in increasing order of position in sourceFile + */ +function nodesByPosition(first: ts.Node, second: ts.Node): number { + return first.pos - second.pos; +} + +/** + * Insert `toInsert` after the last occurence of `ts.SyntaxKind[nodes[i].kind]` + * or after the last of occurence of `syntaxKind` if the last occurence is a sub child + * of ts.SyntaxKind[nodes[i].kind] and save the changes in file. + * + * @param nodes insert after the last occurence of nodes + * @param toInsert string to insert + * @param file file to insert changes into + * @param fallbackPos position to insert if toInsert happens to be the first occurence + * @param syntaxKind the ts.SyntaxKind of the subchildren to insert after + * @return Change instance + * @throw Error if toInsert is first occurence but fall back is not set + */ +export function insertAfterLastOccurrence(nodes: ts.Node[], toInsert: string, file: string, fallbackPos: number, syntaxKind?: ts.SyntaxKind): Change { + let lastItem = nodes.sort(nodesByPosition).pop(); + if (!lastItem) { + throw new Error(); + } + if (syntaxKind) { + lastItem = findNodes(lastItem, syntaxKind).sort(nodesByPosition).pop(); + } + if (!lastItem && fallbackPos == undefined) { + throw new Error(`tried to insert ${toInsert} as first occurence with no fallback position`); + } + const lastItemPosition: number = lastItem ? lastItem.end : fallbackPos; + + return new InsertChange(file, lastItemPosition, toInsert); +} + +export function getContentOfKeyLiteral(_source: ts.SourceFile, node: ts.Node): string | null { + if (node.kind == ts.SyntaxKind.Identifier) { + return (node as ts.Identifier).text; + } else if (node.kind == ts.SyntaxKind.StringLiteral) { + return (node as ts.StringLiteral).text; + } else { + return null; + } +} + +function _angularImportsFromNode(node: ts.ImportDeclaration, _sourceFile: ts.SourceFile): { [name: string]: string } { + const ms = node.moduleSpecifier; + let modulePath: string; + switch (ms.kind) { + case ts.SyntaxKind.StringLiteral: + modulePath = (ms as ts.StringLiteral).text; + break; + default: + return {}; + } + + if (!modulePath.startsWith('@angular/')) { + return {}; + } + + if (node.importClause) { + if (node.importClause.name) { + // This is of the form `import Name from 'path'`. Ignore. + return {}; + } else if (node.importClause.namedBindings) { + const nb = node.importClause.namedBindings; + if (nb.kind == ts.SyntaxKind.NamespaceImport) { + // This is of the form `import * as name from 'path'`. Return `name.`. + return { + [(nb as ts.NamespaceImport).name.text + '.']: modulePath, + }; + } else { + // This is of the form `import {a,b,c} from 'path'` + const namedImports = nb as ts.NamedImports; + + return namedImports.elements + .map((is: ts.ImportSpecifier) => (is.propertyName ? is.propertyName.text : is.name.text)) + .reduce((acc: { [name: string]: string }, curr: string) => { + acc[curr] = modulePath; + + return acc; + }, {}); + } + } + + return {}; + } else { + // This is of the form `import 'path';`. Nothing to do. + return {}; + } +} + +export function getDecoratorMetadata(source: ts.SourceFile, identifier: string, module: string): ts.Node[] { + const angularImports: { [name: string]: string } = findNodes(source, ts.SyntaxKind.ImportDeclaration) + .map((node) => _angularImportsFromNode(node as ts.ImportDeclaration, source)) + .reduce((acc: { [name: string]: string }, current: { [name: string]: string }) => { + for (const key of Object.keys(current)) { + acc[key] = current[key]; + } + + return acc; + }, {}); + + return getSourceNodes(source) + .filter((node) => { + return node.kind == ts.SyntaxKind.Decorator && (node as ts.Decorator).expression.kind == ts.SyntaxKind.CallExpression; + }) + .map((node) => (node as ts.Decorator).expression as ts.CallExpression) + .filter((expr) => { + if (expr.expression.kind == ts.SyntaxKind.Identifier) { + const id = expr.expression as ts.Identifier; + + return id.getFullText(source) == identifier && angularImports[id.getFullText(source)] === module; + } else if (expr.expression.kind == ts.SyntaxKind.PropertyAccessExpression) { + // This covers foo.NgModule when importing * as foo. + const paExpr = expr.expression as ts.PropertyAccessExpression; + // If the left expression is not an identifier, just give up at that point. + if (paExpr.expression.kind !== ts.SyntaxKind.Identifier) { + return false; + } + + const id = paExpr.name.text; + const moduleId = (paExpr.expression as ts.Identifier).getText(source); + + return id === identifier && angularImports[moduleId + '.'] === module; + } + + return false; + }) + .filter((expr) => expr.arguments[0] && expr.arguments[0].kind == ts.SyntaxKind.ObjectLiteralExpression) + .map((expr) => expr.arguments[0] as ts.ObjectLiteralExpression); +} + +function _addSymbolToNgModuleMetadata(source: ts.SourceFile, ngModulePath: string, metadataField: string, symbolName: string, importPath: string): Change[] { + const nodes = getDecoratorMetadata(source, 'NgModule', '@angular/core'); + let node: any = nodes[0]; // tslint:disable-line:no-any + + // Find the decorator declaration. + if (!node) { + return []; + } + + // Get all the children property assignment of object literals. + const matchingProperties: ts.ObjectLiteralElement[] = (node as ts.ObjectLiteralExpression).properties + .filter((prop) => prop.kind == ts.SyntaxKind.PropertyAssignment) + // Filter out every fields that's not "metadataField". Also handles string literals + // (but not expressions). + .filter((prop: any) => { + const name = prop.name; + switch (name.kind) { + case ts.SyntaxKind.Identifier: + return (name as ts.Identifier).getText(source) == metadataField; + case ts.SyntaxKind.StringLiteral: + return (name as ts.StringLiteral).text == metadataField; + } + + return false; + }); + + // Get the last node of the array literal. + if (!matchingProperties) { + return []; + } + if (matchingProperties.length == 0) { + // We haven't found the field in the metadata declaration. Insert a new field. + const expr = node as ts.ObjectLiteralExpression; + let position: number; + let toInsert: string; + if (expr.properties.length == 0) { + position = expr.getEnd() - 1; + toInsert = ` ${metadataField}: [${symbolName}]\n`; + } else { + node = expr.properties[expr.properties.length - 1]; + position = node.getEnd(); + // Get the indentation of the last element, if any. + const text = node.getFullText(source); + const matches = text.match(/^\r?\n\s*/); + if (matches.length > 0) { + toInsert = `,${matches[0]}${metadataField}: [${symbolName}]`; + } else { + toInsert = `, ${metadataField}: [${symbolName}]`; + } + } + const newMetadataProperty = new InsertChange(ngModulePath, position, toInsert); + const newMetadataImport = insertImport(source, ngModulePath, symbolName.replace(/\..*$/, ''), importPath); + + return [newMetadataProperty, newMetadataImport]; + } + + const assignment = matchingProperties[0] as ts.PropertyAssignment; + + // If it's not an array, nothing we can do really. + if (assignment.initializer.kind !== ts.SyntaxKind.ArrayLiteralExpression) { + return []; + } + + const arrLiteral = assignment.initializer as ts.ArrayLiteralExpression; + if (arrLiteral.elements.length == 0) { + // Forward the property. + node = arrLiteral; + } else { + node = arrLiteral.elements; + } + + if (!node) { + console.log('No app module found. Please add your new class to your component.'); + + return []; + } + + if (Array.isArray(node)) { + const nodeArray = (node as {}) as Array; + const symbolsArray = nodeArray.map((node) => node.getText()); + if (symbolsArray.includes(symbolName)) { + return []; + } + + node = node[node.length - 1]; + + const effectsModule = nodeArray.find( + (node) => + (node.getText().includes('EffectsModule.forRoot') && symbolName.includes('EffectsModule.forRoot')) || + (node.getText().includes('EffectsModule.forFeature') && symbolName.includes('EffectsModule.forFeature')) + ); + + if (effectsModule && symbolName.includes('EffectsModule')) { + const effectsArgs = (effectsModule as any).arguments.shift(); + + if (effectsArgs && effectsArgs.kind === ts.SyntaxKind.ArrayLiteralExpression) { + const effectsElements = (effectsArgs as ts.ArrayLiteralExpression).elements; + const [, effectsSymbol] = (symbolName).match(/\[(.*)\]/); + + let epos; + if (effectsElements.length === 0) { + epos = effectsArgs.getStart() + 1; + return [new InsertChange(ngModulePath, epos, effectsSymbol)]; + } else { + const lastEffect = effectsElements[effectsElements.length - 1] as ts.Expression; + epos = lastEffect.getEnd(); + // Get the indentation of the last element, if any. + const text: any = lastEffect.getFullText(source); + + let effectInsert: string; + if (text.match('^\r?\r?\n')) { + effectInsert = `,${text.match(/^\r?\n\s+/)[0]}${effectsSymbol}`; + } else { + effectInsert = `, ${effectsSymbol}`; + } + + return [new InsertChange(ngModulePath, epos, effectInsert)]; + } + } else { + return []; + } + } + } + + let toInsert: string; + let position = node.getEnd(); + if (node.kind == ts.SyntaxKind.ObjectLiteralExpression) { + // We haven't found the field in the metadata declaration. Insert a new + // field. + const expr = node as ts.ObjectLiteralExpression; + if (expr.properties.length == 0) { + position = expr.getEnd() - 1; + toInsert = ` ${metadataField}: [${symbolName}]\n`; + } else { + node = expr.properties[expr.properties.length - 1]; + position = node.getEnd(); + // Get the indentation of the last element, if any. + const text = node.getFullText(source); + if (text.match('^\r?\r?\n')) { + toInsert = `,${text.match(/^\r?\n\s+/)[0]}${metadataField}: [${symbolName}]`; + } else { + toInsert = `, ${metadataField}: [${symbolName}]`; + } + } + } else if (node.kind == ts.SyntaxKind.ArrayLiteralExpression) { + // We found the field but it's empty. Insert it just before the `]`. + position--; + toInsert = `${symbolName}`; + } else { + // Get the indentation of the last element, if any. + const text = node.getFullText(source); + if (text.match(/^\r?\n/)) { + toInsert = `,${text.match(/^\r?\n(\r?)\s+/)[0]}${symbolName}`; + } else { + toInsert = `, ${symbolName}`; + } + } + const insert = new InsertChange(ngModulePath, position, toInsert); + const importInsert: Change = insertImport(source, ngModulePath, symbolName.replace(/\..*$/, ''), importPath); + + return [insert, importInsert]; +} + +/** + * Custom function to insert a declaration (component, pipe, directive) + * into NgModule declarations. It also imports the component. + */ +export function addDeclarationToModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return _addSymbolToNgModuleMetadata(source, modulePath, 'declarations', classifiedName, importPath); +} + +/** + * Custom function to insert a declaration (component, pipe, directive) + * into NgModule declarations. It also imports the component. + */ +export function addImportToModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return _addSymbolToNgModuleMetadata(source, modulePath, 'imports', classifiedName, importPath); +} + +/** + * Custom function to insert a provider into NgModule. It also imports it. + */ +export function addProviderToModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return _addSymbolToNgModuleMetadata(source, modulePath, 'providers', classifiedName, importPath); +} + +/** + * Custom function to insert an export into NgModule. It also imports it. + */ +export function addExportToModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return _addSymbolToNgModuleMetadata(source, modulePath, 'exports', classifiedName, importPath); +} + +/** + * Custom function to insert an export into NgModule. It also imports it. + */ +export function addBootstrapToModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return _addSymbolToNgModuleMetadata(source, modulePath, 'bootstrap', classifiedName, importPath); +} + +/** + * Add Import `import { symbolName } from fileName` if the import doesn't exit + * already. Assumes fileToEdit can be resolved and accessed. + * @param fileToEdit (file we want to add import to) + * @param symbolName (item to import) + * @param fileName (path to the file) + * @param isDefault (if true, import follows style for importing default exports) + * @return Change + */ + +export function insertImport(source: ts.SourceFile, fileToEdit: string, symbolName: string, fileName: string, isDefault = false): Change { + const rootNode = source; + const allImports = findNodes(rootNode, ts.SyntaxKind.ImportDeclaration); + + // get nodes that map to import statements from the file fileName + const relevantImports = allImports.filter((node) => { + // StringLiteral of the ImportDeclaration is the import file (fileName in this case). + const importFiles = node + .getChildren() + .filter((child) => child.kind === ts.SyntaxKind.StringLiteral) + .map((n) => (n as ts.StringLiteral).text); + + return importFiles.filter((file) => file === fileName).length === 1; + }); + + if (relevantImports.length > 0) { + let importsAsterisk = false; + // imports from import file + const imports: ts.Node[] = []; + relevantImports.forEach((n) => { + Array.prototype.push.apply(imports, findNodes(n, ts.SyntaxKind.Identifier)); + if (findNodes(n, ts.SyntaxKind.AsteriskToken).length > 0) { + importsAsterisk = true; + } + }); + + // if imports * from fileName, don't add symbolName + if (importsAsterisk) { + return new NoopChange(); + } + + const importTextNodes = imports.filter((n) => (n as ts.Identifier).text === symbolName); + + // insert import if it's not there + if (importTextNodes.length === 0) { + const fallbackPos = findNodes(relevantImports[0], ts.SyntaxKind.CloseBraceToken)[0].getStart() || findNodes(relevantImports[0], ts.SyntaxKind.FromKeyword)[0].getStart(); + + return insertAfterLastOccurrence(imports, `, ${symbolName}`, fileToEdit, fallbackPos); + } + + return new NoopChange(); + } + + // no such import declaration exists + const useStrict = findNodes(rootNode, ts.SyntaxKind.StringLiteral).filter((n) => n.getText() === 'use strict'); + let fallbackPos = 0; + if (useStrict.length > 0) { + fallbackPos = useStrict[0].end; + } + const open = isDefault ? '' : '{ '; + const close = isDefault ? '' : ' }'; + // if there are no imports or 'use strict' statement, insert import at beginning of file + const insertAtBeginning = allImports.length === 0 && useStrict.length === 0; + const separator = insertAtBeginning ? '' : ';\n'; + const toInsert = `${separator}import ${open}${symbolName}${close}` + ` from '${fileName}'${insertAtBeginning ? ';\n' : ''}`; + + return insertAfterLastOccurrence(allImports, toInsert, fileToEdit, fallbackPos, ts.SyntaxKind.StringLiteral); +} + +export function replaceImport(sourceFile: ts.SourceFile, path: Path, importFrom: string, importAsIs: string, importToBe: string): (ReplaceChange | RemoveChange)[] { + const imports = sourceFile.statements + .filter(ts.isImportDeclaration) + .filter(({ moduleSpecifier }) => moduleSpecifier.getText(sourceFile) === `'${importFrom}'` || moduleSpecifier.getText(sourceFile) === `"${importFrom}"`); + + if (imports.length === 0) { + return []; + } + + const importText = (specifier: ts.ImportSpecifier) => { + if (specifier.name.text) { + return specifier.name.text; + } + + // if import is renamed + if (specifier.propertyName && specifier.propertyName.text) { + return specifier.propertyName.text; + } + + return ''; + }; + + const changes = imports.map((p) => { + const importSpecifiers = (p.importClause!.namedBindings! as ts.NamedImports).elements; + + const isAlreadyImported = importSpecifiers.map(importText).includes(importToBe); + + const importChanges = importSpecifiers.map((specifier, index) => { + const text = importText(specifier); + + // import is not the one we're looking for, can be skipped + if (text !== importAsIs) { + return undefined; + } + + // identifier has not been imported, simply replace the old text with the new text + if (!isAlreadyImported) { + return createReplaceChange(sourceFile, specifier!, importAsIs, importToBe); + } + + const nextIdentifier = importSpecifiers[index + 1]; + // identifer is not the last, also clean up the comma + if (nextIdentifier) { + return createRemoveChange(sourceFile, specifier, specifier.getStart(sourceFile), nextIdentifier.getStart(sourceFile)); + } + + // there are no imports following, just remove it + return createRemoveChange(sourceFile, specifier, specifier.getStart(sourceFile), specifier.getEnd()); + }); + + return importChanges.filter(Boolean) as (ReplaceChange | RemoveChange)[]; + }); + + return changes.reduce((imports, curr) => imports.concat(curr), []); +} + +export function containsProperty(objectLiteral: ts.ObjectLiteralExpression, propertyName: string) { + return objectLiteral && objectLiteral.properties.some((prop) => ts.isPropertyAssignment(prop) && ts.isIdentifier(prop.name) && prop.name.text === propertyName); +} diff --git a/libs/akita-schematics/src/ng-g/utils/change.ts b/libs/akita-schematics/src/ng-g/utils/change.ts new file mode 100644 index 00000000..acf6cac5 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/change.ts @@ -0,0 +1,160 @@ +import * as ts from 'typescript'; +import { Tree, UpdateRecorder } from '@angular-devkit/schematics'; + +/* istanbul ignore file */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +export interface Host { + write(path: string, content: string): Promise; + read(path: string): Promise; +} + +export interface Change { + apply(host: Host): Promise; + + // The file this change should be applied to. Some changes might not apply to + // a file (maybe the config). + readonly path: string | null; + + // The order this change should be applied. Normally the position inside the file. + // Changes are applied from the bottom of a file to the top. + readonly order: number; + + // The description of this change. This will be outputted in a dry or verbose run. + readonly description: string; +} + +/** + * An operation that does nothing. + */ +export class NoopChange implements Change { + description = 'No operation.'; + order = Infinity; + path = null; + apply() { + return Promise.resolve(); + } +} + +/** + * Will add text to the source code. + */ +export class InsertChange implements Change { + order: number; + description: string; + + constructor(public path: string, public pos: number, public toAdd: string) { + if (pos < 0) { + throw new Error('Negative positions are invalid'); + } + this.description = `Inserted ${toAdd} into position ${pos} of ${path}`; + this.order = pos; + } + + /** + * This method does not insert spaces if there is none in the original string. + */ + apply(host: Host) { + return host.read(this.path).then((content) => { + const prefix = content.substring(0, this.pos); + const suffix = content.substring(this.pos); + + return host.write(this.path, `${prefix}${this.toAdd}${suffix}`); + }); + } +} + +/** + * Will remove text from the source code. + */ +export class RemoveChange implements Change { + order: number; + description: string; + + constructor(public path: string, public pos: number, public end: number) { + if (pos < 0 || end < 0) { + throw new Error('Negative positions are invalid'); + } + this.description = `Removed text in position ${pos} to ${end} of ${path}`; + this.order = pos; + } + + apply(host: Host): Promise { + return host.read(this.path).then((content) => { + const prefix = content.substring(0, this.pos); + const suffix = content.substring(this.end); + + // TODO: throw error if toRemove doesn't match removed string. + return host.write(this.path, `${prefix}${suffix}`); + }); + } +} + +/** + * Will replace text from the source code. + */ +export class ReplaceChange implements Change { + order: number; + description: string; + + constructor(public path: string, public pos: number, public oldText: string, public newText: string) { + if (pos < 0) { + throw new Error('Negative positions are invalid'); + } + this.description = `Replaced ${oldText} into position ${pos} of ${path} with ${newText}`; + this.order = pos; + } + + apply(host: Host): Promise { + return host.read(this.path).then((content) => { + const prefix = content.substring(0, this.pos); + const suffix = content.substring(this.pos + this.oldText.length); + const text = content.substring(this.pos, this.pos + this.oldText.length); + + if (text !== this.oldText) { + return Promise.reject(new Error(`Invalid replace: "${text}" != "${this.oldText}".`)); + } + + // TODO: throw error if oldText doesn't match removed string. + return host.write(this.path, `${prefix}${this.newText}${suffix}`); + }); + } +} + +export function createReplaceChange(sourceFile: ts.SourceFile, node: ts.Node, oldText: string, newText: string): ReplaceChange { + return new ReplaceChange(sourceFile.fileName, node.getStart(sourceFile), oldText, newText); +} + +export function createRemoveChange(sourceFile: ts.SourceFile, node: ts.Node, from = node.getStart(sourceFile), to = node.getEnd()): RemoveChange { + return new RemoveChange(sourceFile.fileName, from, to); +} + +export function createChangeRecorder(tree: Tree, path: string, changes: Change[]): UpdateRecorder { + const recorder = tree.beginUpdate(path); + for (const change of changes) { + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } else if (change instanceof RemoveChange) { + recorder.remove(change.pos, change.end - change.pos); + } else if (change instanceof ReplaceChange) { + recorder.remove(change.pos, change.oldText.length); + recorder.insertLeft(change.pos, change.newText); + } + } + return recorder; +} + +export function commitChanges(tree: Tree, path: string, changes: Change[]) { + if (changes.length === 0) { + return false; + } + + const recorder = createChangeRecorder(tree, path, changes); + tree.commitUpdate(recorder); + return true; +} diff --git a/libs/akita-schematics/src/ng-g/utils/config.ts b/libs/akita-schematics/src/ng-g/utils/config.ts new file mode 100644 index 00000000..ddf14e32 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/config.ts @@ -0,0 +1,148 @@ +import { SchematicsException, Tree } from '@angular-devkit/schematics'; +import { WorkspaceSchema } from 'schematics-utilities'; + +// The interfaces below are generated from the Angular CLI configuration schema +// https://github.com/angular/angular-cli/blob/master/packages/@angular/cli/lib/config/schema.json +export interface AppConfig { + /** + * Name of the app. + */ + name?: string; + /** + * Directory where app files are placed. + */ + appRoot?: string; + /** + * The root directory of the app. + */ + root?: string; + /** + * The output directory for build results. + */ + outDir?: string; + /** + * List of application assets. + */ + assets?: ( + | string + | { + /** + * The pattern to match. + */ + glob?: string; + /** + * The dir to search within. + */ + input?: string; + /** + * The output path (relative to the outDir). + */ + output?: string; + } + )[]; + /** + * URL where files will be deployed. + */ + deployUrl?: string; + /** + * Base url for the application being built. + */ + baseHref?: string; + /** + * The runtime platform of the app. + */ + platform?: 'browser' | 'server'; + /** + * The name of the start HTML file. + */ + index?: string; + /** + * The name of the main entry-point file. + */ + main?: string; + /** + * The name of the polyfills file. + */ + polyfills?: string; + /** + * The name of the test entry-point file. + */ + test?: string; + /** + * The name of the TypeScript configuration file. + */ + tsconfig?: string; + /** + * The name of the TypeScript configuration file for unit tests. + */ + testTsconfig?: string; + /** + * The prefix to apply to generated selectors. + */ + prefix?: string; + /** + * Experimental support for a service worker from @angular/service-worker. + */ + serviceWorker?: boolean; + /** + * Global styles to be included in the build. + */ + styles?: ( + | string + | { + input?: string; + [name: string]: any; // tslint:disable-line:no-any + } + )[]; + /** + * Options to pass to style preprocessors + */ + stylePreprocessorOptions?: { + /** + * Paths to include. Paths will be resolved to project root. + */ + includePaths?: string[]; + }; + /** + * Global scripts to be included in the build. + */ + scripts?: ( + | string + | { + input: string; + [name: string]: any; // tslint:disable-line:no-any + } + )[]; + /** + * Source file for environment config. + */ + environmentSource?: string; + /** + * Name and corresponding file for environment config. + */ + environments?: { + [name: string]: any; // tslint:disable-line:no-any + }; + appShell?: { + app: string; + route: string; + }; +} + +export function getWorkspacePath(host: Tree): string { + const possibleFiles = ['/angular.json', '/.angular.json']; + const path = possibleFiles.filter((path) => host.exists(path))[0]; + + return path; +} + +export function getWorkspace(host: Tree): WorkspaceSchema { + const path = getWorkspacePath(host); + const configBuffer = host.read(path); + if (configBuffer === null) { + throw new SchematicsException(`Could not find (${path})`); + } + const config = configBuffer.toString(); + + return JSON.parse(config); +} diff --git a/libs/akita-schematics/src/ng-g/utils/find-module.ts b/libs/akita-schematics/src/ng-g/utils/find-module.ts new file mode 100644 index 00000000..e6c25484 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/find-module.ts @@ -0,0 +1,102 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +import { Path, join, normalize, relative, strings, basename, extname, dirname } from '@angular-devkit/core'; +import { DirEntry, Tree } from '@angular-devkit/schematics'; + +export interface ModuleOptions { + module?: string; + name: string; + flat?: boolean; + path?: string; + skipImport?: boolean; +} + +/** + * Find the module referred by a set of options passed to the schematics. + */ +export function findModuleFromOptions(host: Tree, options: ModuleOptions): Path | undefined { + if (options.hasOwnProperty('skipImport') && options.skipImport) { + return undefined; + } + + if (!options.module) { + const pathToCheck = (options.path || '') + (options.flat ? '' : '/' + strings.dasherize(options.name)); + + return normalize(findModule(host, pathToCheck)); + } else { + const modulePath = normalize('/' + options.path + '/' + options.module); + const moduleBaseName = normalize(modulePath).split('/').pop(); + + if (host.exists(modulePath)) { + return normalize(modulePath); + } else if (host.exists(modulePath + '.ts')) { + return normalize(modulePath + '.ts'); + } else if (host.exists(modulePath + '.module.ts')) { + return normalize(modulePath + '.module.ts'); + } else if (host.exists(modulePath + '/' + moduleBaseName + '.module.ts')) { + return normalize(modulePath + '/' + moduleBaseName + '.module.ts'); + } else { + throw new Error(`Specified module path ${modulePath} does not exist`); + } + } +} + +/** + * Function to find the "closest" module to a generated file's path. + */ +export function findModule(host: Tree, generateDir: string): Path { + let dir: DirEntry | null = host.getDir('/' + generateDir); + + const moduleRe = /\.module\.ts$/; + const routingModuleRe = /-routing\.module\.ts/; + + while (dir) { + const matches = dir.subfiles.filter((p) => moduleRe.test(p) && !routingModuleRe.test(p)); + + if (matches.length == 1) { + return join(dir.path, matches[0]); + } else if (matches.length > 1) { + throw new Error('More than one module matches. Use skip-import option to skip importing ' + 'the component into the closest module.'); + } + + dir = dir.parent; + } + + throw new Error('Could not find an NgModule. Use the skip-import ' + 'option to skip importing in NgModule.'); +} + +/** + * Build a relative path from one file path to another file path. + */ +export function buildRelativePath(from: string, to: string): string { + const { path: fromPath, filename: fromFileName, directory: fromDirectory } = parsePath(from); + const { path: toPath, filename: toFileName, directory: toDirectory } = parsePath(to); + const relativePath = relative(fromDirectory, toDirectory); + const fixedRelativePath = relativePath.startsWith('.') ? relativePath : `./${relativePath}`; + + return !toFileName || toFileName === 'index.ts' ? fixedRelativePath : `${fixedRelativePath.endsWith('/') ? fixedRelativePath : fixedRelativePath + '/'}${convertToTypeScriptFileName(toFileName)}`; +} + +function parsePath(path: string) { + const pathNormalized = normalize(path) as Path; + const filename = extname(pathNormalized) ? basename(pathNormalized) : ''; + const directory = filename ? dirname(pathNormalized) : pathNormalized; + return { + path: pathNormalized, + filename, + directory, + }; +} +/** + * Strips the typescript extension and clears index filenames + * foo.ts -> foo + * index.ts -> empty + */ +function convertToTypeScriptFileName(filename: string | undefined) { + return filename ? filename.replace(/(\.ts)|(index\.ts)$/, '') : ''; +} diff --git a/libs/akita-schematics/src/ng-g/utils/index.ts b/libs/akita-schematics/src/ng-g/utils/index.ts index b84df8e0..bd83665c 100644 --- a/libs/akita-schematics/src/ng-g/utils/index.ts +++ b/libs/akita-schematics/src/ng-g/utils/index.ts @@ -14,5 +14,35 @@ export const stringUtils = { capitalize, featurePath, singular, - plural + plural, }; + +export { isIvyEnabled } from './angular-utils'; + +export { + findNodes, + getSourceNodes, + getDecoratorMetadata, + getContentOfKeyLiteral, + insertAfterLastOccurrence, + insertImport, + addBootstrapToModule, + addDeclarationToModule, + addExportToModule, + addImportToModule, + addProviderToModule, + replaceImport, + containsProperty, +} from './ast-utils'; + +export { Host, Change, NoopChange, InsertChange, RemoveChange, ReplaceChange, createReplaceChange, createChangeRecorder, commitChanges } from './change'; + +export { AppConfig, getWorkspace, getWorkspacePath } from './config'; + +export { findModule, findModuleFromOptions, buildRelativePath, ModuleOptions } from './find-module'; + +export { findPropertyInAstObject } from './json-utilts'; + +export { getProjectPath, getProject } from './project'; + +export { parseName } from './parse-name'; diff --git a/libs/akita-schematics/src/ng-g/utils/json-utilts.ts b/libs/akita-schematics/src/ng-g/utils/json-utilts.ts new file mode 100644 index 00000000..3bc1db76 --- /dev/null +++ b/libs/akita-schematics/src/ng-g/utils/json-utilts.ts @@ -0,0 +1,13 @@ +import { JsonAstNode, JsonAstObject } from '@angular-devkit/core'; + +// https://github.com/angular/angular-cli/blob/master/packages/schematics/angular/utility/json-utils.ts +export function findPropertyInAstObject(node: JsonAstObject, propertyName: string): JsonAstNode | null { + let maybeNode: JsonAstNode | null = null; + for (const property of node.properties) { + if (property.key.value == propertyName) { + maybeNode = property.value; + } + } + + return maybeNode; +} diff --git a/libs/akita-schematics/src/ng-g/utils/project.ts b/libs/akita-schematics/src/ng-g/utils/project.ts index cf83ab52..ae225727 100644 --- a/libs/akita-schematics/src/ng-g/utils/project.ts +++ b/libs/akita-schematics/src/ng-g/utils/project.ts @@ -1,5 +1,5 @@ -import { getWorkspace } from './workspace'; import { Tree } from '@angular-devkit/schematics'; +import { getWorkspace } from 'schematics-utilities'; export function getProjectPath(host: Tree, options: { project?: string | undefined; path?: string | undefined }) { const workspace = getWorkspace(host); diff --git a/libs/akita-schematics/src/ng-g/utils/workspace.ts b/libs/akita-schematics/src/ng-g/utils/workspace.ts index 5baa8200..4f13c9cf 100644 --- a/libs/akita-schematics/src/ng-g/utils/workspace.ts +++ b/libs/akita-schematics/src/ng-g/utils/workspace.ts @@ -1,6 +1,3 @@ -import { SchematicsException, Tree } from '@angular-devkit/schematics'; -import { experimental } from '@angular-devkit/core'; - // The interfaces below are generated from the Angular CLI configuration schema // https://github.com/angular/angular-cli/blob/master/packages/@angular/cli/lib/config/schema.json export interface AppConfig { @@ -38,7 +35,8 @@ export interface AppConfig { * The output path (relative to the outDir). */ output?: string; - })[]; + } + )[]; /** * URL where files will be deployed. */ @@ -91,7 +89,8 @@ export interface AppConfig { | { input?: string; [name: string]: any; // tslint:disable-line:no-any - })[]; + } + )[]; /** * Options to pass to style preprocessors */ @@ -109,7 +108,8 @@ export interface AppConfig { | { input: string; [name: string]: any; // tslint:disable-line:no-any - })[]; + } + )[]; /** * Source file for environment config. */ @@ -125,23 +125,3 @@ export interface AppConfig { route: string; }; } - -export type WorkspaceSchema = experimental.workspace.WorkspaceSchema; - -export function getWorkspacePath(host: Tree): string { - const possibleFiles = ['/angular.json', '/.angular.json', '/workspace.json']; - const path = possibleFiles.filter(path => host.exists(path))[0]; - - return path; -} - -export function getWorkspace(host: Tree): WorkspaceSchema { - const path = getWorkspacePath(host); - const configBuffer = host.read(path); - if (configBuffer === null) { - throw new SchematicsException(`Could not find (${path})`); - } - const config = configBuffer.toString(); - - return JSON.parse(config); -} diff --git a/libs/akita-schematics/src/schematics-core/index.ts b/libs/akita-schematics/src/schematics-core/index.ts new file mode 100644 index 00000000..2b5d1df7 --- /dev/null +++ b/libs/akita-schematics/src/schematics-core/index.ts @@ -0,0 +1,43 @@ +import { dasherize, decamelize, camelize, classify, underscore, group, capitalize, featurePath, pluralize } from './utility/strings'; + +export { isIvyEnabled } from '../ng-g/utils/angular-utils'; + +export { + findNodes, + getSourceNodes, + getDecoratorMetadata, + getContentOfKeyLiteral, + insertAfterLastOccurrence, + insertImport, + addBootstrapToModule, + addDeclarationToModule, + addExportToModule, + addImportToModule, + addProviderToModule, + replaceImport, + containsProperty, +} from '../ng-g/utils/ast-utils'; + +export { Host, Change, NoopChange, InsertChange, RemoveChange, ReplaceChange, createReplaceChange, createChangeRecorder, commitChanges } from '../ng-g/utils/change'; + +export { AppConfig, getWorkspace, getWorkspacePath } from '../ng-g/utils/config'; + +export { findModule, findModuleFromOptions, buildRelativePath, ModuleOptions } from '../ng-g/utils/find-module'; + +export { findPropertyInAstObject } from '../ng-g/utils/json-utilts'; + +export { getProjectPath, getProject, isLib } from './utility/project'; + +export const stringUtils = { + dasherize, + decamelize, + camelize, + classify, + underscore, + group, + capitalize, + featurePath, + pluralize, +}; + +export { parseName } from './utility/parse-name'; diff --git a/libs/akita-schematics/src/schematics-core/utility/parse-name.ts b/libs/akita-schematics/src/schematics-core/utility/parse-name.ts new file mode 100644 index 00000000..a48f56b8 --- /dev/null +++ b/libs/akita-schematics/src/schematics-core/utility/parse-name.ts @@ -0,0 +1,16 @@ +import { Path, basename, dirname, normalize } from '@angular-devkit/core'; + +export interface Location { + name: string; + path: Path; +} + +export function parseName(path: string, name: string): Location { + const nameWithoutPath = basename(name as Path); + const namePath = dirname((path + '/' + name) as Path); + + return { + name: nameWithoutPath, + path: normalize('/' + namePath), + }; +} diff --git a/libs/akita-schematics/src/schematics-core/utility/project.ts b/libs/akita-schematics/src/schematics-core/utility/project.ts new file mode 100644 index 00000000..ccd5acdc --- /dev/null +++ b/libs/akita-schematics/src/schematics-core/utility/project.ts @@ -0,0 +1,39 @@ +import { getWorkspace } from '../../ng-g/utils/config'; +import { Tree } from '@angular-devkit/schematics'; + +export interface WorkspaceProject { + root: string; + projectType: string; +} + +export function getProject(host: Tree, options: { project?: string | undefined; path?: string | undefined }): WorkspaceProject { + const workspace = getWorkspace(host); + + if (!options.project) { + options.project = workspace.defaultProject !== undefined ? workspace.defaultProject : Object.keys(workspace.projects)[0]; + } + + return workspace.projects[options.project]; +} + +export function getProjectPath(host: Tree, options: { project?: string | undefined; path?: string | undefined }) { + const project = getProject(host, options); + + if (project.root.substr(-1) === '/') { + project.root = project.root.substr(0, project.root.length - 1); + } + + if (options.path === undefined) { + const projectDirName = project.projectType === 'application' ? 'app' : 'lib'; + + return `${project.root ? `/${project.root}` : ''}/src/${projectDirName}`; + } + + return options.path; +} + +export function isLib(host: Tree, options: { project?: string | undefined; path?: string | undefined }) { + const project = getProject(host, options); + + return project.projectType === 'library'; +} diff --git a/libs/akita-schematics/src/schematics-core/utility/strings.ts b/libs/akita-schematics/src/schematics-core/utility/strings.ts new file mode 100644 index 00000000..361698f1 --- /dev/null +++ b/libs/akita-schematics/src/schematics-core/utility/strings.ts @@ -0,0 +1,147 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const STRING_DASHERIZE_REGEXP = /[ _]/g; +const STRING_DECAMELIZE_REGEXP = /([a-z\d])([A-Z])/g; +const STRING_CAMELIZE_REGEXP = /(-|_|\.|\s)+(.)?/g; +const STRING_UNDERSCORE_REGEXP_1 = /([a-z\d])([A-Z]+)/g; +const STRING_UNDERSCORE_REGEXP_2 = /-|\s+/g; + +/** + * Converts a camelized string into all lower case separated by underscores. + * + ```javascript + decamelize('innerHTML'); // 'inner_html' + decamelize('action_name'); // 'action_name' + decamelize('css-class-name'); // 'css-class-name' + decamelize('my favorite items'); // 'my favorite items' + ``` + */ +export function decamelize(str: string): string { + return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase(); +} + +/** + Replaces underscores, spaces, or camelCase with dashes. + + ```javascript + dasherize('innerHTML'); // 'inner-html' + dasherize('action_name'); // 'action-name' + dasherize('css-class-name'); // 'css-class-name' + dasherize('my favorite items'); // 'my-favorite-items' + ``` + */ +export function dasherize(str?: string): string { + return decamelize(str || '').replace(STRING_DASHERIZE_REGEXP, '-'); +} + +/** + Returns the lowerCamelCase form of a string. + + ```javascript + camelize('innerHTML'); // 'innerHTML' + camelize('action_name'); // 'actionName' + camelize('css-class-name'); // 'cssClassName' + camelize('my favorite items'); // 'myFavoriteItems' + camelize('My Favorite Items'); // 'myFavoriteItems' + ``` + */ +export function camelize(str: string): string { + return str + .replace( + STRING_CAMELIZE_REGEXP, + (_match: string, _separator: string, chr: string) => { + return chr ? chr.toUpperCase() : ''; + } + ) + .replace(/^([A-Z])/, (match: string) => match.toLowerCase()); +} + +/** + Returns the UpperCamelCase form of a string. + + ```javascript + 'innerHTML'.classify(); // 'InnerHTML' + 'action_name'.classify(); // 'ActionName' + 'css-class-name'.classify(); // 'CssClassName' + 'my favorite items'.classify(); // 'MyFavoriteItems' + ``` + */ +export function classify(str: string): string { + return str + .split('.') + .map((part) => capitalize(camelize(part))) + .join('.'); +} + +/** + More general than decamelize. Returns the lower\_case\_and\_underscored + form of a string. + + ```javascript + 'innerHTML'.underscore(); // 'inner_html' + 'action_name'.underscore(); // 'action_name' + 'css-class-name'.underscore(); // 'css_class_name' + 'my favorite items'.underscore(); // 'my_favorite_items' + ``` + */ +export function underscore(str: string): string { + return str + .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2') + .replace(STRING_UNDERSCORE_REGEXP_2, '_') + .toLowerCase(); +} + +/** + Returns the Capitalized form of a string + + ```javascript + 'innerHTML'.capitalize() // 'InnerHTML' + 'action_name'.capitalize() // 'Action_name' + 'css-class-name'.capitalize() // 'Css-class-name' + 'my favorite items'.capitalize() // 'My favorite items' + ``` + */ +export function capitalize(str: string): string { + return str.charAt(0).toUpperCase() + str.substr(1); +} + +/** + Returns the plural form of a string + + ```javascript + 'innerHTML'.pluralize() // 'innerHTMLs' + 'action_name'.pluralize() // 'actionNames' + 'css-class-name'.pluralize() // 'cssClassNames' + 'regex'.pluralize() // 'regexes' + 'user'.pluralize() // 'users' + ``` + */ +export function pluralize(str: string): string { + return camelize( + [/([^aeiou])y$/, /()fe?$/, /([^aeiou]o|[sxz]|[cs]h)$/].map( + (c, i) => (str = str.replace(c, `$1${'iv'[i] || ''}e`)) + ) && str + 's' + ); +} + +export function group(name: string, group: string | undefined) { + return group ? `${group}/${name}` : name; +} + +export function featurePath( + group: boolean | undefined, + flat: boolean | undefined, + path: string, + name: string +) { + if (group && !flat) { + return `../../${path}/${name}/`; + } + + return group ? `../${path}/` : './'; +} diff --git a/libs/akita/jest.config.js b/libs/akita/jest.config.js index e3955c3d..a5c5d79c 100644 --- a/libs/akita/jest.config.js +++ b/libs/akita/jest.config.js @@ -5,10 +5,5 @@ module.exports = { '^.+\\.[tj]sx?$': 'ts-jest' }, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'], - coverageDirectory: '../../coverage/libs/akita', - globals: { - 'ts-jest': { - diagnostics: false // TODO turn on - } - } + coverageDirectory: '../../coverage/libs/akita' }; diff --git a/libs/akita/src/lib/actions.ts b/libs/akita/src/lib/actions.ts index f8b5718a..00cc6d5b 100644 --- a/libs/akita/src/lib/actions.ts +++ b/libs/akita/src/lib/actions.ts @@ -4,12 +4,14 @@ export interface StoreSnapshotAction { type: string | null; entityIds: IDS[] | null; skip: boolean; + payload: any } export const currentAction: StoreSnapshotAction = { type: null, entityIds: null, skip: false, + payload: null }; let customActionActive = false; @@ -19,15 +21,16 @@ export function resetCustomAction() { } // public API for custom actions. Custom action always wins -export function logAction(type: string, entityIds?) { - setAction(type, entityIds); +export function logAction(type: string, entityIds?, payload?: any) { + setAction(type, entityIds, payload); customActionActive = true; } -export function setAction(type: string, entityIds?) { +export function setAction(type: string, entityIds?, payload?: any) { if (customActionActive === false) { currentAction.type = type; currentAction.entityIds = entityIds; + currentAction.payload = payload } } diff --git a/libs/akita/src/lib/devtools.ts b/libs/akita/src/lib/devtools.ts index fcd8a5a8..ff6fbfe3 100644 --- a/libs/akita/src/lib/devtools.ts +++ b/libs/akita/src/lib/devtools.ts @@ -86,8 +86,9 @@ export function akitaDevtools(ngZoneOrOptions?: NgZoneLike | Partial { if (isAllowed(storeName) === false) return; - const { type, entityIds, skip } = action; + const { type, entityIds, skip, ...rest } = action; + const payload = rest.payload; if (skip) { setSkipAction(false); return; @@ -125,11 +126,11 @@ export function akitaDevtools(ngZoneOrOptions?: NgZoneLike | Partial=2.2.7 <3" -abab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== abbrev@1: version "1.1.1" @@ -3348,39 +4470,64 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-globals@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" + acorn "^7.1.1" + acorn-walk "^7.1.1" -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^6.0.1, acorn@^6.2.1: +acorn@^6.2.1: version "6.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + acorn@^7.1.0: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + agent-base@6: version "6.0.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" @@ -3388,6 +4535,20 @@ agent-base@6: dependencies: debug "4" +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + agentkeepalive@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a" @@ -3415,6 +4576,11 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + ajv@6.10.2: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" @@ -3425,7 +4591,37 @@ ajv@6.10.2: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@6.12.0, ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: +ajv@6.12.3: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@6.12.4: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@6.12.6, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== @@ -3445,16 +4641,6 @@ ajv@^6.12.2: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" - integrity sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y= - 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" - all-contributors-cli@^6.14.1: version "6.14.1" resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-6.14.1.tgz#1aec3d79b0f6f72534d3f396ace80a106b90fdc1" @@ -3488,6 +4674,11 @@ ansi-align@^3.0.0: dependencies: string-width "^3.0.0" +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -3571,10 +4762,10 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -app-root-path@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" - integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA== +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" @@ -3622,6 +4813,11 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -3637,10 +4833,10 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== array-find-index@^1.0.1: version "1.0.2" @@ -3706,6 +4902,11 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + asap@^2.0.0, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -3765,6 +4966,11 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + async@^2.5.0, async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -3792,19 +4998,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" - integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== - dependencies: - browserslist "^4.6.3" - caniuse-lite "^1.0.30000980" - chalk "^2.4.2" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.17" - postcss-value-parser "^4.0.0" - autoprefixer@9.7.4, autoprefixer@^9.6.5: version "9.7.4" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" @@ -3818,6 +5011,19 @@ autoprefixer@9.7.4, autoprefixer@^9.6.5: postcss "^7.0.26" postcss-value-parser "^4.0.2" +autoprefixer@9.8.6: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -3856,17 +5062,18 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-jest@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.3.0.tgz#999d0c19e8427f66b796bf9ea233eedf087b957c" - integrity sha512-qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^25.3.0" - "@jest/types" "^25.3.0" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^25.3.0" - chalk "^3.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" slash "^3.0.0" babel-loader@8.1.0: @@ -3923,11 +5130,14 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz#2af07632b8ac7aad7d414c1e58425d5fc8e84909" - integrity sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" babel-plugin-macros@^2.8.0: @@ -3953,14 +5163,15 @@ babel-polyfill@6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-current-node-syntax@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -3968,14 +5179,15 @@ babel-preset-current-node-syntax@^0.1.2: "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz#9ab40aee52a19bdc52b8b1ec2403d5914ac3d86b" - integrity sha512-tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw== +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - babel-plugin-jest-hoist "^25.2.6" - babel-preset-current-node-syntax "^0.1.2" + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" @@ -4008,12 +5220,10 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== - dependencies: - safe-buffer "5.1.2" +basic-auth@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" + integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= batch@0.6.1: version "0.6.1" @@ -4054,7 +5264,7 @@ bluebird@3.7.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== -bluebird@3.7.2, bluebird@^3.5.5: +bluebird@3.7.2, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -4159,13 +5369,6 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -4225,25 +5428,6 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" - integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== - dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.378" - node-releases "^1.1.52" - pkg-up "^3.1.0" - -browserslist@4.8.7: - version "4.8.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz#ec8301ff415e6a42c949d0e66b405eb539c532d0" - integrity sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA== - dependencies: - caniuse-lite "^1.0.30001027" - electron-to-chromium "^1.3.349" - node-releases "^1.1.49" - browserslist@^4.0.0, browserslist@^4.7.0, browserslist@^4.8.3, browserslist@^4.8.5, browserslist@^4.9.1: version "4.9.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" @@ -4273,15 +5457,16 @@ browserslist@^4.12.0: node-releases "^1.1.53" pkg-up "^2.0.0" -browserslist@^4.6.3: - version "4.12.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.1.tgz#6d08bef149b70d153930780ba762644e0f329122" - integrity sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ== +browserslist@^4.14.5, browserslist@^4.14.6, browserslist@^4.15.0: + version "4.16.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" + integrity sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ== dependencies: - caniuse-lite "^1.0.30001088" - electron-to-chromium "^1.3.481" - escalade "^3.0.1" - node-releases "^1.1.58" + caniuse-lite "^1.0.30001165" + colorette "^1.2.1" + electron-to-chromium "^1.3.621" + escalade "^3.1.1" + node-releases "^1.1.67" bs-logger@0.x: version "0.2.6" @@ -4377,7 +5562,51 @@ cacache@12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^12.0.2, cacache@^12.0.3: +cacache@15.0.5, cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + +cacache@^12.0.0: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^12.0.2: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== @@ -4524,6 +5753,11 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -4534,11 +5768,11 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -4549,26 +5783,26 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@1.0.30001035, caniuse-lite@^1.0.30001027: - version "1.0.30001035" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" - integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== - caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: version "1.0.30001032" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001032.tgz#b8d224914e2cd7f507085583d4e38144c652bce4" integrity sha512-8joOm7BwcpEN4BfVHtfh0hBXSAPVYk+eUIcNntGtMkUWy/6AKRCDZINCLe3kB1vHhT2vBxBF85Hh9VlPXi/qjA== -caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001088: - version "1.0.30001088" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" - integrity sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg== +caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001165: + version "1.0.30001168" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz#6fcd098c139d003b9bd484cbb9ca26cb89907f9a" + integrity sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ== caniuse-lite@^1.0.30001043: version "1.0.30001083" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz#52410c20c6f029f604f0d45eca0439a82e712442" integrity sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA== +caniuse-lite@^1.0.30001088: + version "1.0.30001088" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" + integrity sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg== + canonical-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" @@ -4595,7 +5829,7 @@ chalk@2.3.1: escape-string-regexp "^1.0.5" supports-color "^5.2.0" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4604,6 +5838,14 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4. escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@4.1.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -4631,10 +5873,10 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -change-emitter@^0.1.2: - version "0.1.6" - resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" - integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== chardet@^0.7.0: version "0.7.0" @@ -4661,7 +5903,7 @@ check-more-types@2.24.0: optionalDependencies: fsevents "~2.1.2" -chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.1, chokidar@^2.1.8: +chokidar@^2.0.2, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -4680,6 +5922,21 @@ chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.1, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.0.0, chokidar@^3.4.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -4715,6 +5972,11 @@ circular-dependency-plugin@5.2.0: resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -4770,10 +6032,10 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== +cli-spinners@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== cli-table3@0.5.1: version "0.5.1" @@ -4798,14 +6060,10 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== cliui@^5.0.0: version "5.0.0" @@ -4825,16 +6083,14 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-deep@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" - integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: - for-own "^0.1.3" - is-plain-object "^2.0.1" - kind-of "^3.0.2" - lazy-cache "^1.0.3" - shallow-clone "^0.1.2" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" clone-deep@^4.0.1: version "4.0.1" @@ -4876,25 +6132,35 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" +code-block-writer@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" + integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== + 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" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codelyzer@~5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-5.2.2.tgz#d0530a455784e6bea0b6d7e97166c73c30a5347f" - integrity sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA== +codelyzer@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-6.0.1.tgz#c0e9668e847255b37c759e68fb2700b11e277d0f" + integrity sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g== dependencies: - app-root-path "^2.2.1" + "@angular/compiler" "9.0.0" + "@angular/core" "9.0.0" + app-root-path "^3.0.0" aria-query "^3.0.0" axobject-query "2.0.2" css-selector-tokenizer "^0.7.1" cssauron "^1.4.0" damerau-levenshtein "^1.0.4" + rxjs "^6.5.3" semver-dsl "^1.0.1" source-map "^0.5.7" sprintf-js "^1.1.2" + tslib "^1.10.0" + zone.js "~0.10.3" collect-v8-coverage@^1.0.0: version "1.0.0" @@ -4954,6 +6220,11 @@ colorette@^1.1.0: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.0.tgz#45306add826d196e8c87236ac05d797f25982e63" integrity sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw== +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + colors@^1.1.2, colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -5030,6 +6301,13 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -5055,7 +6333,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: +concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -5319,20 +6597,17 @@ conventional-recommended-bump@6.0.5: meow "^5.0.0" q "^1.5.1" -convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" -cookie-parser@^1.4.5: - version "1.4.5" - resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" - integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== - dependencies: - cookie "0.4.0" - cookie-signature "1.0.6" +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= cookie-signature@1.0.6: version "1.0.6" @@ -5361,39 +6636,38 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" - integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== +copy-webpack-plugin@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz#2b3d2bfc6861b96432a65f0149720adbd902040b" + integrity sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA== dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" + cacache "^15.0.4" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - webpack-log "^2.0.0" + p-limit "^3.0.1" + schema-utils "^2.7.0" + serialize-javascript "^4.0.0" + webpack-sources "^1.4.3" -copy-webpack-plugin@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.2.tgz#10efc6ad219a61acbf2f5fb50af83da38431bc34" - integrity sha512-9Gm8X0c6eXlKnmltMPFCBeGOKjtcRIyTt4VaO3k1TkNgVTe5Ov2lYsYVuyLp0kp8DItO3apewflM+1GYgh6V2Q== +copy-webpack-plugin@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz#8015e4d5c5e637ab7b39c76daa9e03c7a4bf1ae5" + integrity sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q== dependencies: - cacache "^15.0.4" - fast-glob "^3.2.2" + cacache "^15.0.5" + fast-glob "^3.2.4" find-cache-dir "^3.3.1" glob-parent "^5.1.1" globby "^11.0.1" loader-utils "^2.0.0" normalize-path "^3.0.0" - p-limit "^2.3.0" - schema-utils "^2.7.0" - serialize-javascript "^3.1.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" webpack-sources "^1.4.3" copyfiles@^2.2.0: @@ -5416,45 +6690,40 @@ core-js-compat@^3.6.2: browserslist "^4.8.3" semver "7.0.0" +core-js-compat@^3.8.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.1.tgz#8d1ddd341d660ba6194cbe0ce60f4c794c87a36e" + integrity sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ== + dependencies: + browserslist "^4.15.0" + semver "7.0.0" + core-js-pure@^3.0.0: version "3.6.4" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== -core-js@3.6.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= +core-js@3.6.5, core-js@^3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-js@^2.4.0, core-js@^2.5.0: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - 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" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" +corser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= -cosmiconfig@4.0.0: +cosmiconfig@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== @@ -5485,16 +6754,16 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -coverage-istanbul-loader@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz#87d42f03fa0fd3fa8743ec76945d9d67f105722a" - integrity sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA== +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: - convert-source-map "^1.7.0" - istanbul-lib-instrument "^4.0.0" - loader-utils "^1.2.3" - merge-source-map "^1.1.0" - schema-utils "^2.6.1" + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" create-ecdh@^4.0.0: version "4.0.3" @@ -5527,6 +6796,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5547,6 +6821,15 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -5600,6 +6883,24 @@ css-loader@3.4.2: postcss-value-parser "^4.0.2" schema-utils "^2.6.0" +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + css-modules-loader-core@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" @@ -5741,7 +7042,7 @@ cssnano-util-same-parent@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== -cssnano@^4.1.10: +cssnano@4.1.10, cssnano@^4.1.10: version "4.1.10" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== @@ -5758,7 +7059,7 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.37" -cssom@^0.4.1: +cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== @@ -5768,18 +7069,13 @@ cssom@~0.3.6: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" - integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" -csstype@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== - cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -5878,6 +7174,14 @@ cz-conventional-changelog@^3.1.0: optionalDependencies: "@commitlint/load" ">6.1.1" +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + damerau-levenshtein@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" @@ -5897,14 +7201,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" date-fns@^1.27.2: version "1.30.1" @@ -5930,7 +7234,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@=3.1.0, debug@~3.1.0: +debug@3.1.0, debug@=3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== @@ -5957,11 +7261,16 @@ decamelize-keys@^1.0.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + 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" @@ -5996,7 +7305,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -6083,11 +7392,6 @@ depd@^1.1.2, depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - dependency-graph@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.7.2.tgz#91db9de6eb72699209d88aea4c1fd5221cac1c49" @@ -6144,6 +7448,11 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -6158,13 +7467,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -6214,17 +7516,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -document-register-element@1.14.3: - version "1.14.3" - resolved "https://registry.yarnpkg.com/document-register-element/-/document-register-element-1.14.3.tgz#3335d4578df6a1536a34595b91cca36dd5db61d7" - integrity sha512-SbJTzoQXLTcYxnpdDNRZXu/gwsGSShemXpvj6Pa6ujRwJFpJ41siil4tk4y+cQXnqylS6mc2Rtxp/PkMzfkqyQ== - dependencies: - lightercollective "^0.3.0" - -dom-accessibility-api@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz#d9c1cefa89f509d8cf132ab5d250004d755e76e3" - integrity sha512-HcPDilI95nKztbVikaN2vzwvmv0sE8Y2ZJFODy/m15n7mGXLeOKGiys9qWVbFbh+aq/KYj2lqMLybBOkYAEXqg== +dom-accessibility-api@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" + integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== dom-serializer@0: version "0.2.2" @@ -6249,12 +7544,12 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== dependencies: - webidl-conversions "^4.0.2" + webidl-conversions "^5.0.0" domutils@^1.7.0: version "1.7.0" @@ -6278,6 +7573,11 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== + dotenv@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" @@ -6319,31 +7619,48 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ecstatic@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" + integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== + dependencies: + he "^1.1.1" + mime "^1.6.0" + minimist "^1.1.0" + url-join "^2.0.5" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.349: - version "1.3.376" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz#7cb7b5205564a06c8f8ecfbe832cbd47a1224bb1" - integrity sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw== +ejs@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== + dependencies: + jake "^10.6.1" electron-to-chromium@^1.3.363: version "1.3.372" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.372.tgz#fb61b6dfe06f3278a384d084ebef75d463ec7580" integrity sha512-77a4jYC52OdisHM+Tne7dgWEvQT1FoNu/jYl279pP88ZtG4ZRIPyhQwAKxj6C2rzsyC1OwsOds9JlZtNncSz6g== -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.481, electron-to-chromium@^1.3.483: - version "1.3.483" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" - integrity sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg== - electron-to-chromium@^1.3.413: version "1.3.473" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz#d0cd5fe391046fb70674ec98149f0f97609d29b8" integrity sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A== +electron-to-chromium@^1.3.483: + version "1.3.483" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" + integrity sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg== + +electron-to-chromium@^1.3.621: + version "1.3.629" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz#a08d13b64d90e3c77ec5b9bffa3efbc5b4a00969" + integrity sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -6362,6 +7679,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -6387,7 +7709,14 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11, encoding@^0.1.12: +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +encoding@^0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= @@ -6401,14 +7730,13 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== +enhanced-resolve@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" + integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.0.0" enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: version "4.1.1" @@ -6419,6 +7747,22 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" @@ -6474,11 +7818,54 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + escalade@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" integrity sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -6494,10 +7881,15 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.11.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" - integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" estraverse "^4.2.0" @@ -6608,12 +8000,13 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^4.1.1" eslint-utils@^2.0.0: version "2.0.0" @@ -6622,27 +8015,46 @@ eslint-utils@^2.0.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.10.0.tgz#494edb3e4750fb791133ca379e786a8f648c72b9" + integrity sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA== dependencies: "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.1.3" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.3.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -6651,45 +8063,43 @@ eslint@6.8.0: ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.19" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.0.tgz#349fef01a202bbab047748300deb37fa44da79d7" - integrity sha512-Xs8airJ7RQolnDIbLtRutmfvSsAe0xqMMAantCN/GMoqf81TFbeI1T7Jpd56qYu1uuh32dOG5W/X9uO+ghPXzA== +espree@^7.3.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.1.0" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" - integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -6698,11 +8108,23 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -6713,7 +8135,7 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== @@ -6776,7 +8198,7 @@ execa@1.0.0, execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^3.2.0, execa@^3.4.0: +execa@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== @@ -6792,6 +8214,21 @@ execa@^3.2.0, execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + executable@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -6829,19 +8266,19 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-25.3.0.tgz#5fd36e51befd05afb7184bc954f8a4792d184c71" - integrity sha512-buboTXML2h/L0Kh44Ys2Cx49mX20ISc5KDirkxIs3Q9AJv0kazweUAbukegr+nHDOvFRKmxdojjIHCjqAceYfg== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== dependencies: - "@jest/types" "^25.3.0" + "@jest/types" "^26.6.2" ansi-styles "^4.0.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.3.0" - jest-message-util "^25.3.0" - jest-regex-util "^25.2.6" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" -express@4.17.1, express@^4.17.1: +express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -6877,6 +8314,13 @@ express@4.17.1, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -6945,11 +8389,6 @@ faker@^4.1.0: resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" integrity sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8= -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - 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" @@ -6960,7 +8399,7 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.2: +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.2, fast-glob@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== @@ -6982,7 +8421,7 @@ fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stab resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -7020,19 +8459,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs@^0.8.1: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -7040,6 +8466,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +figgy-pudding@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -7089,11 +8520,26 @@ file-loader@4.2.0: loader-utils "^1.2.3" schema-utils "^2.0.0" +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +filelist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" + integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== + dependencies: + minimatch "^3.0.4" + filesize@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" @@ -7138,6 +8584,15 @@ find-cache-dir@3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" +find-cache-dir@3.3.1, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -7147,24 +8602,6 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.0.tgz#4d74ed1fe9ef1731467ca24378e8f8f5c8b6ed11" - integrity sha512-PtXtQb7IrD8O+h6Cq1dbpJH5NzD8+9keN1zZ0YlpDzl1PwXEJEBj6u1Xa92t1Hwluoozd9TNKul5Hi2iqpsWwg== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-node-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.0.0.tgz#5db1fb9e668a3d451db3d618cd167cdd59e41b69" @@ -7239,6 +8676,11 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" @@ -7266,23 +8708,11 @@ follow-redirects@^1.0.0: dependencies: debug "^3.0.0" -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= - -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -for-own@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -7343,10 +8773,19 @@ fs-access@1.0.1: dependencies: null-check "^1.0.0" -fs-extra@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.0.tgz#0f0afb290bb3deb87978da816fcd3c7797f3a817" - integrity sha512-lk2cUCo8QzbiEWEbt7Cw3m27WMiRG321xsssbcIpfMhpRjrlC08WBOVQqj1/nQYYNnPtyIhP1oqLO3QwT2tPCw== +fs-extra@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" + integrity sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -7444,17 +8883,17 @@ generic-names@^2.0.1: dependencies: loader-utils "^1.1.0" +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -7619,7 +9058,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -7714,18 +9153,6 @@ globby@^6.1.0: 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" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - 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" - got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -7743,11 +9170,16 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -7886,13 +9318,10 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasha@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.1.0.tgz#dd05ccdfcfe7dab626247ce2a58efe461922f4ca" - integrity sha512-OFPDWmzPN1l7atOV1TgBVmNtBxaIysToK6Ve9DK+vT6pYuklw/nPNT+HJbZi0KDcI6vWB+9tgvZ5YD7fA3CXcA== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" +he@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== helpful-decorators@^2.0.6: version "2.0.6" @@ -7910,18 +9339,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -7931,18 +9348,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^2.3.1: - version "2.5.5" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" - integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== - -hoist-non-react-statics@^3.1.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -7987,17 +9392,12 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + whatwg-encoding "^1.0.5" html-entities@^1.3.1: version "1.3.1" @@ -8009,6 +9409,11 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + http-cache-semantics@^4.0.0, http-cache-semantics@^4.0.4: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -8056,6 +9461,14 @@ http-errors@~1.7.2: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -8084,6 +9497,31 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-proxy@^1.18.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-server@0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" + integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== + dependencies: + basic-auth "^1.0.3" + colors "^1.4.0" + corser "^2.0.1" + ecstatic "^3.3.2" + http-proxy "^1.18.0" + minimist "^1.2.5" + opener "^1.5.1" + portfinder "^1.0.25" + secure-compare "3.0.1" + union "~0.5.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -8098,6 +9536,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" @@ -8141,6 +9587,13 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -8170,29 +9623,19 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.3: +ignore-walk@^3.0.1, ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" -ignore@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" - integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4: +ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -8232,6 +9675,14 @@ import-fresh@^3.0.0, import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-fresh@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -8322,7 +9773,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@1.3.5, ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -8351,6 +9802,25 @@ inquirer@6.5.0: strip-ansi "^5.1.0" through "^2.3.6" +inquirer@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + inquirer@^6.3.1: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -8370,25 +9840,6 @@ inquirer@^6.3.1: strip-ansi "^5.1.0" through "^2.3.6" -inquirer@^7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.6.tgz#ee4ff0ea7ecda5324656fe665878790f66df7d0c" - integrity sha512-7SVO4h+QIdMq6XcqIqrNte3gS5MzCCKZdsq9DO4PJziBFNYzP3PGFbDjgadDb//MCahzgjCxvQ/O2wa7kx9o4w== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - inquirer@^7.0.4: version "7.1.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" @@ -8437,11 +9888,6 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -8467,6 +9913,14 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + 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" @@ -8510,7 +9964,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.0.2, is-buffer@^1.1.5: +is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -8539,6 +9993,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + 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" @@ -8581,6 +10042,11 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + 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" @@ -8670,6 +10136,11 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + is-npm@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" @@ -8740,7 +10211,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +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" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -8752,6 +10223,11 @@ is-plain-object@^3.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -8776,12 +10252,19 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -8822,6 +10305,13 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -8842,6 +10332,13 @@ is-wsl@^2.1.1: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -8874,14 +10371,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -8905,6 +10394,16 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -8931,6 +10430,16 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + jasmine-marbles@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/jasmine-marbles/-/jasmine-marbles-0.6.0.tgz#f78dc1a3bc452976de10ee8b47c73d616532a954" @@ -8938,59 +10447,59 @@ jasmine-marbles@~0.6.0: dependencies: lodash "^4.5.0" -jest-changed-files@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.3.0.tgz#85d8de6f4bd13dafda9d7f1e3f2565fc0e183c78" - integrity sha512-eqd5hyLbUjIVvLlJ3vQ/MoPxsxfESVXG9gvU19XXjKzxr+dXmZIqCXiY0OiYaibwlHZBJl2Vebkc0ADEMzCXew== +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/types" "^25.3.0" - execa "^3.2.0" + "@jest/types" "^26.6.2" + execa "^4.0.0" throat "^5.0.0" -jest-cli@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.3.0.tgz#d9e11f5700cc5946583cf0d01a9bdebceed448d2" - integrity sha512-XpNQPlW1tzpP7RGG8dxpkRegYDuLjzSiENu92+CYM87nEbmEPb3b4+yo8xcsHOnj0AG7DUt9b3uG8LuHI3MDzw== +jest-cli@^26.2.2: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^25.3.0" - "@jest/test-result" "^25.3.0" - "@jest/types" "^25.3.0" - chalk "^3.0.0" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" exit "^0.1.2" + graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.3.0" - jest-util "^25.3.0" - jest-validate "^25.3.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - realpath-native "^2.0.0" - yargs "^15.3.1" + yargs "^15.4.1" -jest-config@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.3.0.tgz#112b5e2f2e57dec4501dd2fe979044c06fb1317e" - integrity sha512-CmF1JnNWFmoCSPC4tnU52wnVBpuxHjilA40qH/03IHxIevkjUInSMwaDeE6ACfxMPTLidBGBCO3EbxvzPbo8wA== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.3.0" - "@jest/types" "^25.3.0" - babel-jest "^25.3.0" - chalk "^3.0.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^25.3.0" - jest-environment-node "^25.3.0" - jest-get-type "^25.2.6" - jest-jasmine2 "^25.3.0" - jest-regex-util "^25.2.6" - jest-resolve "^25.3.0" - jest-util "^25.3.0" - jest-validate "^25.3.0" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" micromatch "^4.0.2" - pretty-format "^25.3.0" - realpath-native "^2.0.0" + pretty-format "^26.6.2" -jest-diff@^25.2.1, jest-diff@^25.3.0: +jest-diff@^25.2.1: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.3.0.tgz#0d7d6f5d6171e5dacde9e05be47b3615e147c26f" integrity sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w== @@ -9000,299 +10509,326 @@ jest-diff@^25.2.1, jest-diff@^25.3.0: jest-get-type "^25.2.6" pretty-format "^25.3.0" -jest-docblock@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" - integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.3.0.tgz#a319eecf1f6076164ab86f99ca166a55b96c0bd4" - integrity sha512-aBfS4VOf/Qs95yUlX6d6WBv0szvOcTkTTyCIaLuQGj4bSHsT+Wd9dDngVHrCe5uytxpN8VM+NAloI6nbPjXfXw== +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== dependencies: - "@jest/types" "^25.3.0" - chalk "^3.0.0" - jest-get-type "^25.2.6" - jest-util "^25.3.0" - pretty-format "^25.3.0" + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" -jest-environment-jsdom@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.3.0.tgz#c493ab8c41f28001520c70ef67dd88b88be6af05" - integrity sha512-jdE4bQN+k2QEZ9sWOxsqDJvMzbdFSCN/4tw8X0TQaCqyzKz58PyEf41oIr4WO7ERdp7WaJGBSUKF7imR3UW1lg== +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== dependencies: - "@jest/environment" "^25.3.0" - "@jest/fake-timers" "^25.3.0" - "@jest/types" "^25.3.0" - jest-mock "^25.3.0" - jest-util "^25.3.0" - jsdom "^15.2.1" + detect-newline "^3.0.0" -jest-environment-node@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.3.0.tgz#9845f0e63991e8498448cb0ae804935689533db9" - integrity sha512-XO09S29Nx1NU7TiMPHMoDIkxoGBuKSTbE+sHp0gXbeLDXhIdhysUI25kOqFFSD9AuDgvPvxWCXrvNqiFsOH33g== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/environment" "^25.3.0" - "@jest/fake-timers" "^25.3.0" - "@jest/types" "^25.3.0" - jest-mock "^25.3.0" - jest-util "^25.3.0" - semver "^6.3.0" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-haste-map@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.3.0.tgz#b7683031c9c9ddc0521d311564108b244b11e4c6" - integrity sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^25.3.0" + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.2.3" - jest-serializer "^25.2.6" - jest-util "^25.3.0" - jest-worker "^25.2.6" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" - which "^2.0.2" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.3.0.tgz#16ae4f68adef65fb45001b26c864bcbcbf972830" - integrity sha512-NCYOGE6+HNzYFSui52SefgpsnIzvxjn6KAgqw66BdRp37xpMD/4kujDHLNW5bS5i53os5TcMn6jYrzQRO8VPrQ== +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.3.0" - "@jest/source-map" "^25.2.6" - "@jest/test-result" "^25.3.0" - "@jest/types" "^25.3.0" - chalk "^3.0.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" co "^4.6.0" - expect "^25.3.0" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^25.3.0" - jest-matcher-utils "^25.3.0" - jest-message-util "^25.3.0" - jest-runtime "^25.3.0" - jest-snapshot "^25.3.0" - jest-util "^25.3.0" - pretty-format "^25.3.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" throat "^5.0.0" -jest-leak-detector@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.3.0.tgz#5b6bf04903b35be56038915a55f47291771f769f" - integrity sha512-jk7k24dMIfk8LUSQQGN8PyOy9+J0NAfHZWiDmUDYVMctY8FLJQ1eQ8+PjMoN8PgwhLIggUqgYJnyRFvUz3jLRw== +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== dependencies: - jest-get-type "^25.2.6" - pretty-format "^25.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" jest-localstorage-mock@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jest-localstorage-mock/-/jest-localstorage-mock-2.4.0.tgz#c6073810735dd3af74020ea6c3885ec1cc6d0d13" integrity sha512-/mC1JxnMeuIlAaQBsDMilskC/x/BicsQ/BXQxEOw+5b1aGZkkOAqAF3nu8yq449CpzGtp5jJ5wCmDNxLgA2m6A== -jest-matcher-utils@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz#76765788a26edaa8bc5f0100aea52ae383559648" - integrity sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg== +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== dependencies: - chalk "^3.0.0" - jest-diff "^25.3.0" - jest-get-type "^25.2.6" - pretty-format "^25.3.0" + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" -jest-message-util@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.3.0.tgz#e3836826fe5ca538a337b87d9bd2648190867f85" - integrity sha512-5QNy9Id4WxJbRITEbA1T1kem9bk7y2fD0updZMSTNHtbEDnYOGLDPAuFBhFgVmOZpv0n6OMdVkK+WhyXEPCcOw== +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^25.3.0" - "@types/stack-utils" "^1.0.1" - chalk "^3.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" micromatch "^4.0.2" + pretty-format "^26.6.2" slash "^3.0.0" - stack-utils "^1.0.1" + stack-utils "^2.0.2" -jest-mock@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.3.0.tgz#d72644509e40987a732a9a2534a1054f4649402c" - integrity sha512-yRn6GbuqB4j3aYu+Z1ezwRiZfp0o9om5uOcBovVtkcRLeBCNP5mT0ysdenUsxAHnQUgGwPOE1wwhtQYe6NKirQ== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== dependencies: - "@jest/types" "^25.3.0" + "@jest/types" "^26.6.2" + "@types/node" "*" -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-preset-angular@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/jest-preset-angular/-/jest-preset-angular-8.1.3.tgz#99951afe34ffa5a3d2fd879936515d3235e3567a" - integrity sha512-T53bmWG4mNynumYcWqvhKGslQCJCTFpcL3SMrggrI65hI2G0ErYZ6WtdJqPDsFFk+KRN+iNLwNBG1idHO9k2uQ== +jest-preset-angular@8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/jest-preset-angular/-/jest-preset-angular-8.3.1.tgz#b8e4867639982a0989f4ef5ef0bad1c084070ef4" + integrity sha512-WhQm+0tXzikkvIF35XErV87DqYbieZI0R0MIGgn7VE/DDhdbXFDmYQxFZ7w4qcA0cGLLvSMTBbIsUtHeE/rFxQ== dependencies: - pretty-format "^25.0.0" - ts-jest "^25.0.0" + pretty-format "26.x" + ts-jest "26.x" -jest-regex-util@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" - integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.3.0.tgz#b0e4ae053dd44ddacc18c6ee12b5b7c28e445a90" - integrity sha512-bDUlLYmHW+f7J7KgcY2lkq8EMRqKonRl0XoD4Wp5SJkgAxKJnsaIOlrrVNTfXYf+YOu3VCjm/Ac2hPF2nfsCIA== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== dependencies: - "@jest/types" "^25.3.0" - jest-regex-util "^25.2.6" - jest-snapshot "^25.3.0" + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" -jest-resolve@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.3.0.tgz#cb90a5bbea54a02eccdbbf4126a819595dcf91d6" - integrity sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ== +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== dependencies: - "@jest/types" "^25.3.0" - browser-resolve "^1.11.3" - chalk "^3.0.0" - jest-pnp-resolver "^1.2.1" - realpath-native "^2.0.0" - resolve "^1.15.1" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" -jest-runner@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.3.0.tgz#673ef2ac79d2810eb6b2c1a3f82398375a3d1174" - integrity sha512-csDqSC9qGHYWDrzrElzEgFbteztFeZJmKhSgY5jlCIcN0+PhActzRNku0DA1Xa1HxGOb0/AfbP1EGJlP4fGPtA== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^25.3.0" - "@jest/environment" "^25.3.0" - "@jest/test-result" "^25.3.0" - "@jest/types" "^25.3.0" - chalk "^3.0.0" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" exit "^0.1.2" - graceful-fs "^4.2.3" - jest-config "^25.3.0" - jest-docblock "^25.3.0" - jest-haste-map "^25.3.0" - jest-jasmine2 "^25.3.0" - jest-leak-detector "^25.3.0" - jest-message-util "^25.3.0" - jest-resolve "^25.3.0" - jest-runtime "^25.3.0" - jest-util "^25.3.0" - jest-worker "^25.2.6" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.3.0.tgz#af4d40dbcc590fa5de9910cb6a120a13d131050b" - integrity sha512-gn5KYB1wxXRM3nfw8fVpthFu60vxQUCr+ShGq41+ZBFF3DRHZRKj3HDWVAVB4iTNBj2y04QeAo5cZ/boYaPg0w== - dependencies: - "@jest/console" "^25.3.0" - "@jest/environment" "^25.3.0" - "@jest/source-map" "^25.2.6" - "@jest/test-result" "^25.3.0" - "@jest/transform" "^25.3.0" - "@jest/types" "^25.3.0" +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" - graceful-fs "^4.2.3" - jest-config "^25.3.0" - jest-haste-map "^25.3.0" - jest-message-util "^25.3.0" - jest-mock "^25.3.0" - jest-regex-util "^25.2.6" - jest-resolve "^25.3.0" - jest-snapshot "^25.3.0" - jest-util "^25.3.0" - jest-validate "^25.3.0" - realpath-native "^2.0.0" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.3.1" + yargs "^15.4.1" -jest-serializer@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7" - integrity sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" -jest-snapshot@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.3.0.tgz#d4feb457494f4aaedcc83fbbf1ca21808fc3df71" - integrity sha512-GGpR6Oro2htJPKh5RX4PR1xwo5jCEjtvSPLW1IS7N85y+2bWKbiknHpJJRKSdGXghElb5hWaeQASJI4IiRayGg== +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^25.3.0" - "@types/prettier" "^1.19.0" - chalk "^3.0.0" - expect "^25.3.0" - jest-diff "^25.3.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.3.0" - jest-message-util "^25.3.0" - jest-resolve "^25.3.0" - make-dir "^3.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^25.3.0" - semver "^6.3.0" + pretty-format "^26.6.2" + semver "^7.3.2" -jest-util@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.3.0.tgz#e3b0064165818f10d78514696fd25efba82cf049" - integrity sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA== +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^25.3.0" - chalk "^3.0.0" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" is-ci "^2.0.0" - make-dir "^3.0.0" + micromatch "^4.0.2" -jest-validate@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.3.0.tgz#eb95fdee0039647bcd5d4be641b21e4a142a880c" - integrity sha512-3WuXgIZ4HXUvW6gk9twFFkT9j6zUorKnF2oEY8VEsHb7x5LGvVlN3WUsbqazVKuyXwvikO2zFJ/YTySMsMje2w== +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^25.3.0" - camelcase "^5.3.1" - chalk "^3.0.0" - jest-get-type "^25.2.6" + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^25.3.0" + pretty-format "^26.6.2" -jest-watcher@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.3.0.tgz#fd03fd5ca52f02bd3161ab177466bf1bfdd34e5c" - integrity sha512-dtFkfidFCS9Ucv8azOg2hkiY3sgJEHeTLtGFHS+jfBEE7eRtrO6+2r1BokyDkaG2FOD7485r/SgpC1MFAENfeA== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^25.3.0" - "@jest/types" "^25.3.0" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" ansi-escapes "^4.2.1" - chalk "^3.0.0" - jest-util "^25.3.0" - string-length "^3.1.0" - -jest-worker@24.9.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" jest-worker@25.1.0: version "25.1.0" @@ -9302,30 +10838,40 @@ jest-worker@25.1.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58" - integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA== +jest-worker@26.5.0: + version "26.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" + integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^26.0.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d" - integrity sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ== +jest-worker@^25.4.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== dependencies: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.3.0.tgz#7a5e59741d94b8662664c77a9f346246d6bf228b" - integrity sha512-iKd5ShQSHzFT5IL/6h5RZJhApgqXSoPxhp5HEi94v6OAw9QkF8T7X+liEU2eEHJ1eMFYTHmeWLrpBWulsDpaUg== +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@26.2.2: + version "26.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.2.2.tgz#a022303887b145147204c5f66e6a5c832333c7e7" + integrity sha512-EkJNyHiAG1+A8pqSz7cXttoVa34hOEzN/MrnJhYnfp5VHxflVcf2pu3oJSrhiy6LfIutLdWo+n6q63tjcoIeig== dependencies: - "@jest/core" "^25.3.0" + "@jest/core" "^26.2.2" import-local "^3.0.2" - jest-cli "^25.3.0" + jest-cli "^26.2.2" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -9350,36 +10896,36 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^15.2.1: - version "15.2.1" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" - integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== - dependencies: - abab "^2.0.0" - acorn "^7.1.0" - acorn-globals "^4.3.2" - array-equal "^1.0.0" - cssom "^0.4.1" - cssstyle "^2.0.0" - data-urls "^1.1.0" - domexception "^1.0.1" - escodegen "^1.11.1" - html-encoding-sniffer "^1.0.2" +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" nwsapi "^2.2.0" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.7" - saxes "^3.1.9" - symbol-tree "^3.2.2" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" tough-cookie "^3.0.1" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.1.2" - webidl-conversions "^4.0.2" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" - whatwg-url "^7.0.0" - ws "^7.0.0" + whatwg-url "^8.0.0" + ws "^7.2.3" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -9406,7 +10952,7 @@ json-fixer@^1.4.0: chalk "^2.4.2" pegjs "^0.10.0" -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -9416,11 +10962,6 @@ json-parse-even-better-errors@^2.0.1: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.2.0.tgz#304d29aa54bb01156a1328c454034ff0ac8a7bf4" integrity sha512-2tLgY7LRNZ9Hd6gmCuBG5/OjRHQpSgJQqJoYyLLOhUgn8LdOYrjaZLcxkWnDads+AD/haWWioPNziXQcgvQJ/g== -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" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -9467,6 +11008,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +jsonc-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" + integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -9525,13 +11071,6 @@ killable@^1.0.1: resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= - dependencies: - is-buffer "^1.0.2" - 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" @@ -9561,6 +11100,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + latest-version@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -9573,23 +11117,6 @@ lazy-ass@1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" - integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - less-loader@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" @@ -9599,29 +11126,37 @@ less-loader@5.0.0: loader-utils "^1.1.0" pify "^4.0.1" -less@3.11.1, less@^3.10.3: - version "3.11.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" - integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g== +less-loader@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.0.2.tgz#0d73a49ec32a9d3ff12614598e6e2b47fb2a35c4" + integrity sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +less@3.12.2: + version "3.12.2" + resolved "https://registry.yarnpkg.com/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4" + integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q== dependencies: - clone "^2.1.2" tslib "^1.10.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" image-size "~0.5.0" + make-dir "^2.1.0" mime "^1.4.1" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.83.0" + native-request "^1.0.5" source-map "~0.6.0" -less@3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" - integrity sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w== +less@^3.10.3: + version "3.11.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" + integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g== dependencies: clone "^2.1.2" + tslib "^1.10.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" @@ -9644,7 +11179,15 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= @@ -9660,10 +11203,13 @@ license-webpack-plugin@2.1.2: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" -lightercollective@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.3.0.tgz#1f07638642ec645d70bdb69ab2777676f35a28f0" - integrity sha512-RFOLSUVvwdK3xA0P8o6G7QGXLIyy1L2qv5caEI7zXN5ciaEjbAriRF182kbsoJ1S1TgvpyGcN485fMky6qxOPw== +license-webpack-plugin@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz#08eddb2f776c7c64c02f308a00e017d6e824d0b6" + integrity sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ== + dependencies: + "@types/webpack-sources" "^0.1.5" + webpack-sources "^1.2.0" lines-and-columns@^1.1.6: version "1.1.6" @@ -9787,7 +11333,7 @@ loader-utils@2.0.0, loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -9904,6 +11450,11 @@ lodash@4.17.15, lodash@^4.11.2, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.1 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@4.17.20, lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + log-symbols@3.0.0, log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -9918,6 +11469,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -9927,29 +11485,17 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -loglevel@^1.6.4: - version "1.6.7" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" - integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== - loglevel@^1.6.8: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== -lolex@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - longest@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -9981,6 +11527,18 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + magic-string@0.25.3: version "0.25.3" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.3.tgz#34b8d2a2c7fec9d9bdf9929a3fd81d271ef35be9" @@ -9995,7 +11553,7 @@ magic-string@0.25.7, magic-string@^0.25.0, magic-string@^0.25.2: dependencies: sourcemap-codec "^1.4.4" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -10015,6 +11573,23 @@ make-error@1.x, make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + make-fetch-happen@^8.0.7: version "8.0.7" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz#7f98e6e75784c541833d0ffe2f82c31418a87ac2" @@ -10048,13 +11623,6 @@ mamacro@^0.0.3: resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -10096,16 +11664,7 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.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" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= @@ -10172,15 +11731,6 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -merge-deep@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" - integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== - dependencies: - arr-union "^3.1.0" - clone-deep "^0.2.4" - kind-of "^3.0.2" - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -10218,14 +11768,6 @@ microevent.ts@~0.1.1: resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== -micromatch@4.x, micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -10245,6 +11787,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -10265,7 +11815,7 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: dependencies: mime-db "1.43.0" -mime@1.6.0, mime@^1.4.1: +mime@1.6.0, mime@^1.4.1, mime@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -10280,7 +11830,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -10290,14 +11840,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mini-create-react-context@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz#df60501c83151db69e28eac0ef08b4002efab040" - integrity sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA== - dependencies: - "@babel/runtime" "^7.5.5" - tiny-warning "^1.0.3" - mini-css-extract-plugin@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" @@ -10308,6 +11850,15 @@ mini-css-extract-plugin@0.8.0: schema-utils "^1.0.0" webpack-sources "^1.1.0" +mini-css-extract-plugin@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz#30ea7dee632b3002b0c77aeed447790408cb247e" + integrity sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + mini-svg-data-uri@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.1.3.tgz#9759ee5f4d89a4b724d089ce52eab4b623bfbc88" @@ -10348,7 +11899,7 @@ minimist@1.2.0, minimist@^1.1.1, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minimist@1.2.5, minimist@^1.1.3, minimist@^1.2.5: +minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -10406,7 +11957,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -10467,22 +12018,14 @@ mixin-deep@^1.2.0: 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" - integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -10504,17 +12047,6 @@ moment@2.24.0: resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -morgan@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" - integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== - dependencies: - basic-auth "~2.0.1" - debug "2.6.9" - depd "~2.0.0" - on-finished "~2.3.0" - on-headers "~1.0.2" - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -10555,6 +12087,17 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -10587,6 +12130,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +native-request@^1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" + integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -10602,6 +12150,16 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + ng-packagr@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-9.1.0.tgz#65380bd8f05c62ee3c5f42069404fe1ca492498c" @@ -10634,40 +12192,19 @@ ng-packagr@^9.1.0: terser "^4.3.8" update-notifier "^4.0.0" -ngx-infinite-scroll@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/ngx-infinite-scroll/-/ngx-infinite-scroll-8.0.2.tgz#ab527962f179b00f7b57c37cc0c8aba1bf88b131" - integrity sha512-+r748h8CAs0AZQXQw4eIE0bBH2xF+kBcqhJ/q3VG4f6p0qH+4XyhUlPkm3UGMke2Xe00V+RuWbolqmP7DoOGdw== - dependencies: - "@scarf/scarf" "0.1.5" - opencollective-postinstall "^2.0.2" - -ngx-take-until-destroy@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/ngx-take-until-destroy/-/ngx-take-until-destroy-5.4.0.tgz#6c8606ee956584dc947e2eb609c48b8f98b09900" - integrity sha512-e+VfCrHbLybdKWoQ8prdhmVzWI6vTnedr/9cVGQTkfepMdLz5D++VDk+Wnbs7mru6S9C+kIpNWUlh2YMPl928Q== - dependencies: - tslib "^1.9.0" - -ngx-toastr@^11.3.3: - version "11.3.3" - resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-11.3.3.tgz#d360061edb2bee0a045e6b3bf832754007ac7b3d" - integrity sha512-DbLFkSZHsVPuuIIrsY1ziEhdkFUQ0V1yG1N0+1nKXGI5QBVesEDxLUVtntjzxJcWw/uUV+bKApo//tGHHORabQ== - dependencies: - tslib "^1.9.0" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== dependencies: encoding "^0.1.11" - is-stream "^1.0.1" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" node-forge@0.9.0: version "0.9.0" @@ -10730,23 +12267,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" - integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== dependencies: growly "^1.3.0" - is-wsl "^2.1.1" - semver "^6.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - which "^1.3.1" - -node-releases@^1.1.49: - version "1.1.52" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" - integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== - dependencies: - semver "^6.3.0" + uuid "^8.3.0" + which "^2.0.2" node-releases@^1.1.50: version "1.1.51" @@ -10755,11 +12286,16 @@ node-releases@^1.1.50: dependencies: semver "^6.3.0" -node-releases@^1.1.52, node-releases@^1.1.53, node-releases@^1.1.58: +node-releases@^1.1.53, node-releases@^1.1.58: version "1.1.58" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== +node-releases@^1.1.67: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== + node-sass-tilde-importer@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" @@ -10767,6 +12303,11 @@ node-sass-tilde-importer@^1.0.0: dependencies: find-parent-dir "^0.3.0" +node-watch@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.7.0.tgz#033c0c04239d9348f3402b6b6f9c1e689a7edbe1" + integrity sha512-OOBiglke5SlRQT5WYfwXTmYqTfXjcTNBHpalyHLtLxDpQYVpVRkJqabcch1kmwJsjV/J4OZuzEafeb4soqtFZA== + noms@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" @@ -10783,7 +12324,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.5.0, "normalize-package-data@~1.0.1 || ^2.0.0": +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -10830,7 +12371,7 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== -npm-bundled@^1.1.1: +npm-bundled@^1.0.1, npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== @@ -10849,7 +12390,7 @@ npm-normalize-package-bin@^1.0.1: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": +npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: version "6.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== @@ -10868,6 +12409,15 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: semver "^7.0.0" validate-npm-package-name "^3.0.0" +npm-packlist@^1.1.12: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + npm-packlist@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.2.tgz#a3045b52aefc37e7a5e86a55e6ca8cb1e909e25a" @@ -10878,6 +12428,15 @@ npm-packlist@^2.1.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" +npm-pick-manifest@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" + integrity sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + npm-pick-manifest@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" @@ -10887,24 +12446,18 @@ npm-pick-manifest@^6.0.0: npm-package-arg "^8.0.0" semver "^7.0.0" -npm-registry-client@^8.5.1: - version "8.6.0" - resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" - integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== +npm-registry-fetch@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" + integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== 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" + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.2.0" npm-registry-fetch@^8.0.3: version "8.1.1" @@ -10920,7 +12473,7 @@ npm-registry-fetch@^8.0.3: minizlib "^2.0.0" npm-package-arg "^8.0.0" -npm-run-all@4.1.5, npm-run-all@^4.1.5: +npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== @@ -10949,7 +12502,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -"npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.1.2: +npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -10991,7 +12544,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +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" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -11099,7 +12652,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -11132,11 +12685,24 @@ open@6.4.0: dependencies: is-wsl "^1.1.0" +open@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" + integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + opencollective-postinstall@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + opn@^5.3.0, opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -11152,7 +12718,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1, optionator@^0.8.3: +optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -11164,16 +12730,42 @@ optionator@^0.8.1, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -ora@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05" - integrity sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - chalk "^3.0.0" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" + integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw== + dependencies: + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.2.0" + cli-spinners "^2.4.0" is-interactive "^1.0.0" - log-symbols "^3.0.0" + log-symbols "^4.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== + dependencies: + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.4.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" mute-stream "0.0.8" strip-ansi "^6.0.0" wcwidth "^1.0.1" @@ -11195,15 +12787,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^3.0.0, os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -11227,11 +12810,6 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -11247,11 +12825,6 @@ p-finally@^2.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -11259,7 +12832,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== @@ -11273,6 +12846,13 @@ p-limit@^2.3.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.1, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -11355,6 +12935,40 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" +pacote@9.5.5: + version "9.5.5" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.5.tgz#63355a393614c3424e735820c3731e2cbbedaeeb" + integrity sha512-jAEP+Nqj4kyMWyNpfTU/Whx1jA7jEc5cCOlurm0/0oL+v8TAp1QSsK83N7bYe+2bEdFzMAtPG5TBebjzzGV0cA== + dependencies: + bluebird "^3.5.3" + cacache "^12.0.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^4.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.8" + unique-filename "^1.1.1" + which "^1.3.1" + pacote@^11.1.10: version "11.1.10" resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.1.10.tgz#cbd56a5a60c9cf472bc8ea7ba87112d749655dd4" @@ -11448,21 +13062,36 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse5-html-rewriting-stream@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz#de1820559317ab4e451ea72dba05fddfd914480b" + integrity sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg== + dependencies: + parse5 "^6.0.1" + parse5-sax-parser "^6.0.1" + +parse5-sax-parser@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" + integrity sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg== + dependencies: + parse5 "^6.0.1" + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== - -parse5@^5.0.0: +parse5@5.1.1, parse5@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -11530,13 +13159,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -11673,13 +13295,6 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -11687,10 +13302,12 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" portfinder@^1.0.25: version "1.0.25" @@ -11799,6 +13416,17 @@ postcss-loader@3.0.0: postcss-load-config "^2.0.0" schema-utils "^1.0.0" +postcss-loader@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e" + integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.2" + postcss-merge-longhand@^4.0.11: version "4.0.11" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" @@ -11893,6 +13521,16 @@ postcss-modules-local-by-default@^3.0.2: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + postcss-modules-scope@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" @@ -11909,6 +13547,14 @@ postcss-modules-scope@^2.1.1: postcss "^7.0.6" postcss-selector-parser "^6.0.0" +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-modules-values@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" @@ -12104,6 +13750,11 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + postcss@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" @@ -12113,10 +13764,10 @@ postcss@6.0.1: source-map "^0.5.6" supports-color "^3.2.3" -postcss@7.0.17: - version "7.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -12131,6 +13782,15 @@ postcss@7.0.27, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16 source-map "^0.6.1" supports-color "^6.1.0" +postcss@7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + postcss@^6.0.1: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" @@ -12140,15 +13800,20 @@ postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.17: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== +postcss@^7.0.32: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -12164,25 +13829,25 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef" - integrity sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w== +prettier@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== pretty-bytes@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== -pretty-format@^25.0.0: - version "25.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.1.0.tgz#ed869bdaec1356fc5ae45de045e2c8ec7b07b0c8" - integrity sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ== +pretty-format@26.x, pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^25.1.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" pretty-format@^25.2.1, pretty-format@^25.3.0: version "25.3.0" @@ -12194,16 +13859,6 @@ pretty-format@^25.2.1, pretty-format@^25.3.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== - dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -12257,7 +13912,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.4" -prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -12266,6 +13921,13 @@ prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -12353,6 +14015,11 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.4.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -12429,6 +14096,14 @@ raw-loader@3.1.0: loader-utils "^1.1.0" schema-utils "^2.0.1" +raw-loader@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -12439,70 +14114,15 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.12.0, react-is@^16.8.1: version "16.13.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== -react-lifecycles-compat@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-loadable@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz#582251679d3da86c32aae2c8e689c59f1196d8c4" - integrity sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg== - dependencies: - prop-types "^15.5.0" - -react-router-dom@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" - integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" - integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== read-cache@^1.0.0: version "1.0.0" @@ -12551,6 +14171,15 @@ read-pkg-up@^5.0.0: find-up "^3.0.0" read-pkg "^5.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -12578,7 +14207,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0: +read-pkg@^5.0.0, read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -12646,10 +14275,12 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" -realpath-native@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" - integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" @@ -12658,18 +14289,6 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -recompose@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" - integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== - dependencies: - "@babel/runtime" "^7.0.0" - change-emitter "^0.1.2" - fbjs "^0.8.1" - hoist-non-react-statics "^2.3.1" - react-lifecycles-compat "^3.0.2" - symbol-observable "^1.0.4" - redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -12715,6 +14334,11 @@ regenerator-runtime@0.13.3: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" @@ -12746,6 +14370,11 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" @@ -12754,16 +14383,16 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - regexpp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" @@ -12788,6 +14417,18 @@ regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + registry-auth-token@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" @@ -12850,23 +14491,23 @@ request-progress@3.0.0: dependencies: throttleit "^1.0.0" -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.15" + lodash "^4.17.19" -request-promise-native@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.3" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.72.0, request@^2.74.0, request@^2.83.0, request@^2.88.0: +request@^2.72.0, request@^2.83.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -12902,11 +14543,6 @@ require-from-string@^2.0.1: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -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" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -12961,35 +14597,49 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== +resolve-url-loader@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@1.15.1, resolve@1.x, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2: +resolve@1.15.1, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" -resolve@^1.16.1: +resolve@1.17.0, resolve@^1.16.1: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" +resolve@^1.18.1, resolve@^1.8.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -13041,6 +14691,19 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -13063,20 +14726,20 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -13182,6 +14845,13 @@ rollup@2.2.0: optionalDependencies: fsevents "~2.1.2" +rollup@2.32.1: + version "2.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.32.1.tgz#625a92c54f5b4d28ada12d618641491d4dbb548c" + integrity sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw== + optionalDependencies: + fsevents "~2.1.2" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -13213,20 +14883,34 @@ rxjs@6.4.0: dependencies: tslib "^1.9.0" -rxjs@6.5.4, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.0, rxjs@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== - dependencies: - tslib "^1.9.0" - -rxjs@^6.0.0, rxjs@^6.5.4: +rxjs@6.5.5, rxjs@^6.5.4: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== dependencies: tslib "^1.9.0" +rxjs@6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== + dependencies: + tslib "^1.9.0" + +rxjs@6.6.3, rxjs@^6.6.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.0, rxjs@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -13237,6 +14921,11 @@ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-identifier@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.1.tgz#b6516bf72594f03142b5f914f4c01842ccb1b678" @@ -13249,7 +14938,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -13269,16 +14958,16 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sass-loader@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.2.0.tgz#e34115239309d15b2527cb62b5dfefb62a96ff7f" - integrity sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA== +sass-loader@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" + integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== dependencies: - clone-deep "^4.0.1" - loader-utils "^1.0.1" - neo-async "^2.5.0" - pify "^4.0.1" - semver "^5.5.0" + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" sass-loader@8.0.2: version "8.0.2" @@ -13291,10 +14980,10 @@ sass-loader@8.0.2: schema-utils "^2.6.1" semver "^6.3.0" -sass@1.22.9: - version "1.22.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.22.9.tgz#41a2ed6038027f58be2bd5041293452a29c2cb84" - integrity sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ== +sass@1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.27.0.tgz#0657ff674206b95ec20dc638a93e179c78f6ada2" + integrity sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -13305,6 +14994,13 @@ sass@^1.23.0: dependencies: chokidar ">=2.0.0 <4.0.0" +sass@^1.26.3: + version "1.30.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.30.0.tgz#60bbbbaf76ba10117e61c6c24f00161c3d60610e" + integrity sha512-26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw== + dependencies: + chokidar ">=2.0.0 <4.0.0" + sax@0.5.x: version "0.5.8" resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" @@ -13315,20 +15011,12 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^3.1.9: - version "3.1.11" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" - integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== - dependencies: - xmlchars "^2.1.1" - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" + xmlchars "^2.2.0" schema-utils@^1.0.0: version "1.0.0" @@ -13364,17 +15052,42 @@ schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schematics-utilities@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/schematics-utilities/-/schematics-utilities-1.1.1.tgz#0b78f60dd13b1c0c19a75ce81e0f2f7e64897db2" - integrity sha512-y6slqE4OkfSly++E1lkz6UT5qtpcdsrEf3dusE1OP80EEnog0WsW03flnvNAp54Knn0GdyXJh70KRR9+dYFXZg== +schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schematics-utilities@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/schematics-utilities/-/schematics-utilities-2.0.2.tgz#8b6c45ff1c09a496dd9f9a163e64ec602d72ae7d" + integrity sha512-rf9kf76c7LvfeHGAJJNjfYeVEf8kIpaTSU4e931MohjX/o1E+sxuBAD/rIwTKE5wmcRcuRrFCuGb9jcMUZ6eeg== dependencies: - "@angular-devkit/core" "^0.7.2" - "@angular-devkit/schematics" "^0.7.2" - npm-registry-client "^8.5.1" - parse5 "^5.0.0" - rxjs "^6.0.0" - typescript "^2.5.2" + "@angular-devkit/core" "^8.3.8" + "@angular-devkit/schematics" "^8.3.8" + "@schematics/angular" "^8.3.8" + "@schematics/update" "^0.803.8" + rxjs "^6.4.0" + typescript "^3.6.3" + optionalDependencies: + parse5 "^5.1.0" + +secure-compare@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= select-hose@^2.0.0: version "2.0.0" @@ -13407,22 +15120,24 @@ semver-dsl@^1.0.1: dependencies: semver "^5.3.0" +semver-intersect@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" + integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ== + dependencies: + semver "^5.0.0" + semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -semver@6.3.0, semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@6.3.0, semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -13432,11 +15147,18 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: +semver@7.3.2, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@7.x, semver@^7.2.1: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -13468,6 +15190,20 @@ serialize-javascript@^3.1.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -13506,7 +15242,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -13529,16 +15265,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" - integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= - dependencies: - is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" - mixin-object "^2.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -13614,11 +15340,6 @@ sisteransi@^1.0.4: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -13638,11 +15359,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slide@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - smart-buffer@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" @@ -13690,14 +15406,6 @@ sockjs-client@1.4.0: json3 "^3.3.2" url-parse "^1.4.3" -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - sockjs@0.3.20: version "0.3.20" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" @@ -13707,6 +15415,14 @@ sockjs@0.3.20: uuid "^3.4.0" websocket-driver "0.6.5" +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + socks-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" @@ -13724,6 +15440,14 @@ socks@^2.3.3: ip "1.1.5" smart-buffer "^4.1.0" +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -13731,16 +15455,11 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -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" - integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY= - source-map-loader@0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" @@ -13749,6 +15468,18 @@ source-map-loader@0.2.4: async "^2.5.0" loader-utils "^1.1.0" +source-map-loader@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.2.tgz#5b782bf08496d3a7f355e1780df0e25190a80991" + integrity sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA== + dependencies: + abab "^2.0.5" + iconv-lite "^0.6.2" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + source-map "^0.6.1" + whatwg-mimetype "^2.3.0" + source-map-resolve@^0.5.0, source-map-resolve@^0.5.2, source-map-resolve@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -13760,22 +15491,6 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2, source-map-resolve@^0.5.3: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@0.5.16, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" @@ -13784,6 +15499,14 @@ source-map-support@0.5.16, source-map-support@^0.5.5, source-map-support@^0.5.6, buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@0.5.19, source-map-support@^0.5.17, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + 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" @@ -13796,7 +15519,12 @@ source-map@0.1.x: dependencies: amdefine ">=0.0.4" -source-map@0.7.3, source-map@^0.7.3: +source-map@0.6.1, 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" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -13806,19 +15534,7 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -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" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -13861,17 +15577,6 @@ spdy-transport@^3.0.0: readable-stream "^3.0.6" wbuf "^1.7.3" -spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - spdy@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" @@ -13890,6 +15595,13 @@ speed-measure-webpack-plugin@1.3.1: dependencies: chalk "^2.0.1" +speed-measure-webpack-plugin@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz#6ff894fc83e8a6310dde3af863a0329cd79da4f5" + integrity sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ== + dependencies: + chalk "^2.0.1" + 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" @@ -13936,14 +15648,7 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== - dependencies: - safe-buffer "^5.1.1" - -ssri@^6.0.1: +ssri@^6.0.0, ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== @@ -13970,10 +15675,12 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" standard-version@^7.1.0: version "7.1.0" @@ -14061,13 +15768,13 @@ string-hash@^1.1.1: resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= -string-length@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" - integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== dependencies: - astral-regex "^1.0.0" - strip-ansi "^5.2.0" + char-regex "^1.0.2" + strip-ansi "^6.0.0" string-width@^1.0.1: version "1.0.2" @@ -14078,7 +15785,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -14245,11 +15952,16 @@ strip-json-comments@2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@3.0.1, strip-json-comments@^3.0.1: +strip-json-comments@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + style-inject@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" @@ -14263,6 +15975,14 @@ style-loader@1.0.0: loader-utils "^1.2.3" schema-utils "^2.0.1" +style-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -14281,6 +16001,17 @@ stylus-loader@3.0.2: lodash.clonedeep "^4.5.0" when "~3.6.x" +stylus-loader@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.1.tgz#8b4e749294d9fe0729c2e5e1f04cbf87e1c941aa" + integrity sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw== + dependencies: + fast-glob "^3.2.4" + klona "^2.0.4" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + schema-utils "^3.0.0" + stylus@0.54.5: version "0.54.5" resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" @@ -14293,6 +16024,20 @@ stylus@0.54.5: sax "0.5.x" source-map "0.1.x" +stylus@0.54.8: + version "0.54.8" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" + integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== + dependencies: + css-parse "~2.0.0" + debug "~3.1.0" + glob "^7.1.6" + mkdirp "~1.0.4" + safer-buffer "^2.1.2" + sax "~1.2.4" + semver "^6.3.0" + source-map "^0.7.3" + stylus@^0.54.7: version "0.54.7" resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2" @@ -14372,12 +16117,12 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.0.4, symbol-observable@^1.1.0: +symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-tree@^3.2.2: +symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== @@ -14397,7 +16142,12 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4.4.12: +tapable@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -14435,49 +16185,35 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.1.tgz#6a63c27debc15b25ffd2588562ee2eeabdcab923" - integrity sha512-dNxivOXmDgZqrGxOttBH6B4xaxT4zNC+Xd+2K8jwGDMK5q2CZI+KZMA1AAnSRT+BTRvuzKsDx+fpxzPAmAMVcA== +terser-webpack-plugin@2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz#4910ff5d1a872168cc7fa6cd3749e2b0d60a8a0b" + integrity sha512-xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg== dependencies: cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^24.9.0" - schema-utils "^2.6.1" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.4.3" - webpack-sources "^1.4.3" - -terser-webpack-plugin@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz#23bda2687b197f878a743373b9411d917adc2e45" - integrity sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw== - dependencies: - cacache "^15.0.4" find-cache-dir "^3.3.1" - jest-worker "^26.0.0" + jest-worker "^25.4.0" p-limit "^2.3.0" schema-utils "^2.6.6" serialize-javascript "^3.1.0" source-map "^0.6.1" - terser "^4.6.13" + terser "^4.6.12" webpack-sources "^1.4.3" -terser-webpack-plugin@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" + terser "^5.3.4" + webpack-sources "^1.4.3" terser-webpack-plugin@^1.4.3: version "1.4.3" @@ -14503,16 +16239,16 @@ terser@4.3.8: source-map "~0.6.1" source-map-support "~0.5.12" -terser@4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" - integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ== +terser@5.3.7: + version "5.3.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.7.tgz#798a4ae2e7ff67050c3e99fcc4e00725827d97e2" + integrity sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" -terser@^4.1.2, terser@^4.3.8, terser@^4.4.3: +terser@^4.1.2, terser@^4.3.8: version "4.6.6" resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.6.tgz#da2382e6cafbdf86205e82fb9a115bd664d54863" integrity sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g== @@ -14521,7 +16257,7 @@ terser@^4.1.2, terser@^4.3.8, terser@^4.4.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^4.6.13, terser@^4.8.0: +terser@^4.6.12, terser@^4.8.0: version "4.8.0" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== @@ -14530,6 +16266,15 @@ terser@^4.6.13, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.3.4: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -14544,7 +16289,7 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@^0.2.0: +text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -14596,16 +16341,6 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-warning@^1.0.0, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -14694,12 +16429,12 @@ tough-cookie@^3.0.1: psl "^1.1.28" punycode "^2.1.1" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== dependencies: - punycode "^2.1.0" + punycode "^2.1.1" tree-kill@1.2.2: version "1.2.2" @@ -14721,40 +16456,51 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -ts-jest@25.3.1: - version "25.3.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.3.1.tgz#58e2ed3506e4e4487c0b9b532846a5cade9656ba" - integrity sha512-O53FtKguoMUByalAJW+NWEv7c4tus5ckmhfa7/V0jBb2z8v5rDSLFC1Ate7wLknYPC1euuhY6eJjQq4FtOZrkg== +ts-action-operators@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-action-operators/-/ts-action-operators-9.1.1.tgz#70093688de343426bbac077572d5bc269e48b37b" + integrity sha512-i2yysOan0I5d+ic5PmqyNkYhgEomB9NLyCbwpuwPNVRFMeS8+mAMsgEtlX+wRuimpY5B3+FFFswJiKhVbx5Sow== + +ts-action@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/ts-action/-/ts-action-11.0.0.tgz#abb7f510b0d2e0b9534900cc22c45b8f7e795a3c" + integrity sha512-TDxvzZ5UtKsBuw0McRs/L+iASj80m60nV8EXCP680ZdIl+oRHPGnBk85sZJWXLzqQwb6yQ+CcMzPTfBr0dEaAA== + +ts-jest@26.4.0: + version "26.4.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.0.tgz#903c7827f3d3bc33efc2f91be294b164400c32e3" + integrity sha512-ofBzoCqf6Nv/PoWb/ByV3VNKy2KJSikamOBxvR3E6eVdIw10GwAXoyvMWXXjZJK2s6S27ZE8fI+JBTnGaovl6Q== dependencies: + "@types/jest" "26.x" bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" + jest-util "^26.1.0" json5 "2.x" lodash.memoize "4.x" make-error "1.x" - micromatch "4.x" mkdirp "1.x" - resolve "1.x" - semver "6.x" - yargs-parser "18.x" + semver "7.x" + yargs-parser "20.x" -ts-jest@^25.0.0: - version "25.2.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d" - integrity sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A== +ts-jest@26.x: + version "26.4.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.4.tgz#61f13fb21ab400853c532270e52cc0ed7e502c49" + integrity sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg== dependencies: + "@types/jest" "26.x" bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" + jest-util "^26.1.0" json5 "2.x" lodash.memoize "4.x" make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "^16.1.0" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" -ts-loader@5.4.5, ts-loader@^5.3.1: +ts-loader@5.4.5: version "5.4.5" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.4.5.tgz#a0c1f034b017a9344cef0961bfd97cc192492b8b" integrity sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw== @@ -14765,17 +16511,32 @@ ts-loader@5.4.5, ts-loader@^5.3.1: micromatch "^3.1.4" semver "^5.0.1" -ts-node@~8.8.2: - version "8.8.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.2.tgz#0b39e690bee39ea5111513a9d2bcdc0bc121755f" - integrity sha512-duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q== +ts-morph@^7.1.2: + version "7.3.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-7.3.0.tgz#1777b893d9573b3522108b43159b5ba2515ffde7" + integrity sha512-BUKSoz7AFSKPcYTZODbICW2mOthAN4vc5juD6FL1lD/dLwZ0WvrC3zqBM3/X6f5gHxq3yaz+HmanHGaWm0ddbQ== + dependencies: + "@dsherret/to-absolute-glob" "^2.0.2" + "@ts-morph/common" "~0.5.2" + code-block-writer "^10.1.0" + +ts-node@9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== dependencies: arg "^4.1.0" + create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.6" + source-map-support "^0.5.17" yn "3.1.1" +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + tsconfig-paths-webpack-plugin@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.2.0.tgz#6e70bd42915ad0efb64d3385163f0c1270f3e04d" @@ -14795,30 +16556,35 @@ tsconfig-paths@^3.4.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tslib@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" + integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== -tslib@1.11.1, tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: +tslib@2.0.3, tslib@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslib@1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" - integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== +tslib@^1.13.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslint-config-prettier@^1.18.0: version "1.18.0" resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== -tslint@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.1.tgz#ac03fbd17f85bfefaae348b353b25a88efe10cde" - integrity sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA== +tslint@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== dependencies: "@babel/code-frame" "^7.0.0" builtin-modules "^1.1.1" @@ -14831,7 +16597,7 @@ tslint@6.1.1: mkdirp "^0.5.3" resolve "^1.3.2" semver "^5.3.0" - tslib "^1.10.0" + tslib "^1.13.0" tsutils "^2.29.0" tsutils@^2.29.0: @@ -14865,6 +16631,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -14887,7 +16660,7 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.0, type-fest@^0.8.1: +type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -14900,6 +16673,16 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -14912,30 +16695,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d" - integrity sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg== - -typescript@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== - -typescript@3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.5.tgz#dae20114a7b4ff4bd642db9c8c699f2953e8bbdb" - integrity sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ== +typescript@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== -typescript@^2.5.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" - integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== - -ua-parser-js@^0.7.18: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== +typescript@^3.6.3, typescript@~3.9.7: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== uglify-js@^3.1.4: version "3.8.0" @@ -14945,6 +16713,11 @@ uglify-js@^3.1.4: commander "~2.20.3" source-map "~0.6.1" +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -14983,6 +16756,13 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +union@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== + dependencies: + qs "^6.4.0" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -15071,13 +16851,6 @@ update-notifier@^4.0.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -uri-js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" - integrity sha1-+QuFhQf4HepNz7s8TD2/orVX+qo= - dependencies: - punycode "^2.1.0" - uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -15090,6 +16863,11 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-join@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" + integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= + url-loader@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz#9f1f11b371acf6e51ed15a50db635e02eec18368" @@ -15161,20 +16939,25 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz#387d173be5383dbec209d21af033dcb892e3ac82" - integrity sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug== +v8-to-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" + integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -15195,12 +16978,7 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -vary@^1, vary@~1.1.2: +vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -15224,20 +17002,18 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -w3c-hr-time@^1.0.1: +w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" -w3c-xmlserializer@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" - integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" xml-name-validator "^3.0.0" walker@^1.0.7, walker@~1.0.5: @@ -15247,6 +17023,13 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -15256,6 +17039,17 @@ watchpack@^1.6.0: graceful-fs "^4.1.2" neo-async "^2.5.0" +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" @@ -15270,18 +17064,15 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== -webpack-core@^0.6.8: - version "0.6.9" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" - integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI= - dependencies: - source-list-map "~0.1.7" - source-map "~0.4.1" +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== webpack-dev-middleware@3.7.0: version "3.7.0" @@ -15343,45 +17134,6 @@ webpack-dev-server@3.11.0: ws "^6.2.1" yargs "^13.3.2" -webpack-dev-server@3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.2.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.4" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.25" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.19" - sockjs-client "1.4.0" - spdy "^4.0.1" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "12.0.5" - webpack-log@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" @@ -15397,12 +17149,20 @@ webpack-merge@4.2.1: dependencies: lodash "^4.17.5" +webpack-merge@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.2.0.tgz#31cbcc954f8f89cd4b06ca8d97a38549f7f3f0c9" + integrity sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + webpack-node-externals@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== -webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -15410,17 +17170,32 @@ webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack-subresource-integrity@1.1.0-rc.6: - version "1.1.0-rc.6" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz#37f6f1264e1eb378e41465a98da80fad76ab8886" - integrity sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w== +webpack-sources@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" + integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-subresource-integrity@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz#6f44ea99987266b70c4ec42ac51064d33e982277" + integrity sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q== + dependencies: + webpack-sources "^1.3.0" + +webpack-subresource-integrity@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz#e40b6578d3072e2d24104975249c52c66e9a743e" + integrity sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw== dependencies: - webpack-core "^0.6.8" + webpack-sources "^1.3.0" -webpack@4.39.2: - version "4.39.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz#c9aa5c1776d7c309d1b3911764f0288c8c2816aa" - integrity sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA== +webpack@4.42.0: + version "4.42.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" + integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -15442,37 +17217,37 @@ webpack@4.39.2: node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" -webpack@4.42.0: - version "4.42.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" - integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.7.4" webpack-sources "^1.4.1" websocket-driver@0.6.5: @@ -15496,31 +17271,26 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - -whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== dependencies: lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" when@~3.6.x: version "3.6.4" @@ -15565,7 +17335,12 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -word-wrap@^1.0.3, word-wrap@~1.2.3: +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.0.3, word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -15589,6 +17364,13 @@ worker-plugin@3.2.0: dependencies: loader-utils "^1.1.0" +worker-plugin@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-5.0.0.tgz#113b5fe1f4a5d6a957cecd29915bedafd70bb537" + integrity sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ== + dependencies: + loader-utils "^1.1.0" + worker-rpc@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" @@ -15596,14 +17378,6 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" @@ -15630,6 +17404,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -15659,10 +17442,10 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.0.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.2.tgz#36df62f68f0d1a6ec66d3f880a02476f3a81f24f" - integrity sha512-2qj/tYkDPDSVf7JiHanwEBwkhxi7DchFewIsSnR33MQtG3O/BPAJjqs4g6XEuayuRqIExSQMHZlmyDLbuSrXYw== +ws@^7.2.3: + version "7.4.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" + integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== xdg-basedir@^4.0.0: version "4.0.0" @@ -15674,7 +17457,7 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlchars@^2.1.1: +xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== @@ -15698,16 +17481,16 @@ xxhashjs@^0.2.1: 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" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -15718,6 +17501,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + yaml@^1.7.2: version "1.8.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.2.tgz#a29c03f578faafd57dcb27055f9a5d569cb0c3d9" @@ -15725,20 +17513,15 @@ yaml@^1.7.2: dependencies: "@babel/runtime" "^7.8.7" -yargs-parser@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.0.0.tgz#c737c93de2567657750cb1f2c00be639fd19c994" - integrity sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g== - dependencies: - camelcase "^4.1.0" +yargs-parser@20.0.0: + version "20.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.0.0.tgz#c65a1daaa977ad63cebdd52159147b789a4e19a9" + integrity sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA== -yargs-parser@18.x, yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^10.0.0: version "10.1.0" @@ -15747,15 +17530,7 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.0.0, yargs-parser@^13.1.2: +yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -15779,47 +17554,13 @@ yargs-parser@^18.1.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= - dependencies: - camelcase "^4.1.0" - -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: - cliui "^4.0.0" + camelcase "^5.0.0" decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.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 || ^4.0.0" - yargs-parser "^11.1.1" - -yargs@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.1.0.tgz#b2729ce4bfc0c584939719514099d8a916ad2301" - integrity sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg== - dependencies: - cliui "^4.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.0.0" yargs@15.0.2: version "15.0.2" @@ -15838,23 +17579,22 @@ yargs@15.0.2: y18n "^4.0.0" yargs-parser "^16.1.0" -yargs@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" - integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== +yargs@15.4.1, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^3.1.0" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^4.2.0" which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" + y18n "^4.0.0" + yargs-parser "^18.1.2" yargs@^13.2.4, yargs@^13.3.2: version "13.3.2" @@ -15889,22 +17629,18 @@ yargs@^15.0.1: y18n "^4.0.0" yargs-parser "^18.1.0" -yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" + y18n "^5.0.5" + yargs-parser "^20.2.2" yauzl@2.10.0, yauzl@^2.10.0: version "2.10.0" @@ -15919,7 +17655,12 @@ yn@3.1.1: resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -zone.js@^0.10.3: +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zone.js@^0.10.3, zone.js@~0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.3.tgz#3e5e4da03c607c9dcd92e37dd35687a14a140c16" integrity sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==