├── .circleci └── config.yml ├── .dependency-cruiser.json ├── .dockerignore ├── .eslintignore ├── .eslintrc ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── documentation.md │ ├── feature_request.md │ └── support-question.md ├── PULL_REQUEST_TEMPLATE.md ├── lock.yml └── workflows │ ├── ci_main.yml │ ├── ci_ts_latest.yml │ └── rebase.yml ├── .gitignore ├── .make-helpers.js ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE.txt ├── README.md ├── docs_app ├── .gitignore ├── README.md ├── angular.json ├── assets │ ├── Rx_Logo_S.png │ └── images │ │ └── marble-diagrams │ │ ├── audit.png │ │ ├── auditTime.png │ │ ├── buffer.png │ │ ├── bufferCount.png │ │ ├── bufferTime.png │ │ ├── bufferToggle.png │ │ ├── bufferWhen.png │ │ ├── catch.png │ │ ├── combineAll.png │ │ ├── combineLatest.png │ │ ├── concat.png │ │ ├── concatAll.png │ │ ├── concatMap.png │ │ ├── concatMapTo.png │ │ ├── count.png │ │ ├── debounce.png │ │ ├── debounceTime.png │ │ ├── defaultIfEmpty.png │ │ ├── defer.png │ │ ├── delay.png │ │ ├── delayWhen.png │ │ ├── dematerialize.png │ │ ├── elementAt.png │ │ ├── empty.png │ │ ├── endWith.png │ │ ├── every.png │ │ ├── exhaust.png │ │ ├── exhaustMap.png │ │ ├── expand.png │ │ ├── filter.png │ │ ├── find.png │ │ ├── findIndex.png │ │ ├── first.png │ │ ├── forkJoin.png │ │ ├── from.png │ │ ├── fromEvent.png │ │ ├── fromEventPattern.png │ │ ├── generate.png │ │ ├── groupBy.png │ │ ├── ignoreElements.png │ │ ├── interval.png │ │ ├── isEmpty.png │ │ ├── last.png │ │ ├── map.png │ │ ├── mapTo.png │ │ ├── materialize.png │ │ ├── max.png │ │ ├── merge.png │ │ ├── mergeAll.png │ │ ├── mergeMap.png │ │ ├── mergeMapTo.png │ │ ├── min.png │ │ ├── multicast.png │ │ ├── never.png │ │ ├── of.png │ │ ├── onErrorResumeNext.png │ │ ├── pairs.png │ │ ├── pairwise.png │ │ ├── partition.png │ │ ├── pluck.png │ │ ├── publish.png │ │ ├── publishLast.png │ │ ├── race.png │ │ ├── range.png │ │ ├── reduce.png │ │ ├── refCount.png │ │ ├── repeat.png │ │ ├── repeatWhen.png │ │ ├── retry.png │ │ ├── retryWhen.png │ │ ├── sample.png │ │ ├── sampleTime.png │ │ ├── scan.png │ │ ├── sequenceEqual.png │ │ ├── share.png │ │ ├── single.png │ │ ├── skip.png │ │ ├── skipLast.png │ │ ├── skipUntil.png │ │ ├── skipWhile.png │ │ ├── startWith.png │ │ ├── subscribeOn.png │ │ ├── switchAll.png │ │ ├── switchMap.png │ │ ├── switchMapTo.png │ │ ├── take.png │ │ ├── takeLast.png │ │ ├── takeUntil.png │ │ ├── takeWhile.png │ │ ├── tap.png │ │ ├── throttle.png │ │ ├── throttleTime.png │ │ ├── throw.png │ │ ├── throwIfEmpty.png │ │ ├── timeinterval.png │ │ ├── timeout.png │ │ ├── timeoutWith.png │ │ ├── timer.png │ │ ├── timestamp.png │ │ ├── toArray.png │ │ ├── window.png │ │ ├── windowCount.png │ │ ├── windowTime.png │ │ ├── windowToggle.png │ │ ├── windowWhen.png │ │ └── withLatestFrom.png ├── browserslist ├── content │ ├── code-of-conduct.md │ ├── file-not-found.md │ ├── guide │ │ ├── installation.md │ │ ├── observable.md │ │ ├── observer.md │ │ ├── operators.md │ │ ├── overview.md │ │ ├── scheduler.md │ │ ├── subject.md │ │ ├── subscription.md │ │ ├── testing │ │ │ ├── internal-marble-tests.md │ │ │ └── marble-testing.md │ │ └── v6 │ │ │ ├── migration.md │ │ │ └── pipeable-operators.md │ ├── images │ │ └── marketing │ │ │ └── home │ │ │ ├── Rx_Logo-512-512.png │ │ │ ├── rxjs-live-london.svg │ │ │ └── rxjs-live.svg │ ├── license.md │ ├── maintainer-guidelines.md │ ├── marketing │ │ ├── announcements.json │ │ ├── api.html │ │ ├── contributors.json │ │ ├── index.html │ │ ├── operator-decision-tree.html │ │ └── team.html │ ├── navigation.json │ └── resources.md ├── database.rules.json ├── firebase.json ├── ngsw-config.json ├── package-lock.json ├── package.json ├── scripts │ ├── _payload-limits.json │ ├── deploy-to-firebase.sh │ ├── deploy-to-firebase.test.sh │ ├── payload.sh │ ├── publish-docs.sh │ └── test-pwa-score.js ├── src │ ├── app │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── custom-elements │ │ │ ├── announcement-bar │ │ │ │ ├── announcement-bar.component.spec.ts │ │ │ │ ├── announcement-bar.component.ts │ │ │ │ └── announcement-bar.module.ts │ │ │ ├── api │ │ │ │ ├── api-list.component.html │ │ │ │ ├── api-list.component.spec.ts │ │ │ │ ├── api-list.component.ts │ │ │ │ ├── api-list.module.ts │ │ │ │ ├── api.service.spec.ts │ │ │ │ └── api.service.ts │ │ │ ├── code │ │ │ │ ├── code-example.component.spec.ts │ │ │ │ ├── code-example.component.ts │ │ │ │ ├── code-example.module.ts │ │ │ │ ├── code-tabs.component.spec.ts │ │ │ │ ├── code-tabs.component.ts │ │ │ │ ├── code-tabs.module.ts │ │ │ │ ├── code.component.spec.ts │ │ │ │ ├── code.component.ts │ │ │ │ ├── code.module.ts │ │ │ │ └── pretty-printer.service.ts │ │ │ ├── contributor │ │ │ │ ├── contributor-list.component.spec.ts │ │ │ │ ├── contributor-list.component.ts │ │ │ │ ├── contributor-list.module.ts │ │ │ │ ├── contributor.component.ts │ │ │ │ ├── contributor.service.spec.ts │ │ │ │ ├── contributor.service.ts │ │ │ │ └── contributors.model.ts │ │ │ ├── current-location │ │ │ │ ├── current-location.component.spec.ts │ │ │ │ ├── current-location.component.ts │ │ │ │ └── current-location.module.ts │ │ │ ├── custom-elements.module.ts │ │ │ ├── element-registry.ts │ │ │ ├── elements-loader.spec.ts │ │ │ ├── elements-loader.ts │ │ │ ├── expandable-section │ │ │ │ ├── expandable-section.component.html │ │ │ │ ├── expandable-section.component.ts │ │ │ │ └── expandable-section.module.ts │ │ │ ├── lazy-custom-element.component.spec.ts │ │ │ ├── lazy-custom-element.component.ts │ │ │ ├── live-example │ │ │ │ ├── live-example.component.html │ │ │ │ ├── live-example.component.spec.ts │ │ │ │ ├── live-example.component.ts │ │ │ │ └── live-example.module.ts │ │ │ ├── operator-decision-tree │ │ │ │ ├── README.md │ │ │ │ ├── fixtures.ts │ │ │ │ ├── interfaces.ts │ │ │ │ ├── operator-decision-tree-data.service.spec.ts │ │ │ │ ├── operator-decision-tree-data.service.ts │ │ │ │ ├── operator-decision-tree.component.html │ │ │ │ ├── operator-decision-tree.component.scss │ │ │ │ ├── operator-decision-tree.component.spec.ts │ │ │ │ ├── operator-decision-tree.component.ts │ │ │ │ ├── operator-decision-tree.module.spec.ts │ │ │ │ ├── operator-decision-tree.module.ts │ │ │ │ ├── operator-decision-tree.service.spec.ts │ │ │ │ ├── operator-decision-tree.service.ts │ │ │ │ ├── utils.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── resource │ │ │ │ ├── resource-list.component.html │ │ │ │ ├── resource-list.component.spec.ts │ │ │ │ ├── resource-list.component.ts │ │ │ │ ├── resource-list.module.ts │ │ │ │ ├── resource.model.ts │ │ │ │ ├── resource.service.spec.ts │ │ │ │ └── resource.service.ts │ │ │ ├── search │ │ │ │ ├── file-not-found-search.component.spec.ts │ │ │ │ ├── file-not-found-search.component.ts │ │ │ │ └── file-not-found-search.module.ts │ │ │ └── toc │ │ │ │ ├── toc.component.html │ │ │ │ ├── toc.component.spec.ts │ │ │ │ ├── toc.component.ts │ │ │ │ └── toc.module.ts │ │ ├── documents │ │ │ ├── document-contents.ts │ │ │ ├── document.service.spec.ts │ │ │ └── document.service.ts │ │ ├── layout │ │ │ ├── doc-viewer │ │ │ │ ├── doc-viewer.component.spec.ts │ │ │ │ ├── doc-viewer.component.ts │ │ │ │ └── dt.component.ts │ │ │ ├── footer │ │ │ │ ├── footer.component.html │ │ │ │ └── footer.component.ts │ │ │ ├── mode-banner │ │ │ │ └── mode-banner.component.ts │ │ │ ├── nav-item │ │ │ │ ├── nav-item.component.html │ │ │ │ ├── nav-item.component.spec.ts │ │ │ │ └── nav-item.component.ts │ │ │ ├── nav-menu │ │ │ │ ├── nav-menu.component.spec.ts │ │ │ │ └── nav-menu.component.ts │ │ │ ├── notification │ │ │ │ ├── notification.component.html │ │ │ │ ├── notification.component.spec.ts │ │ │ │ └── notification.component.ts │ │ │ └── top-menu │ │ │ │ ├── top-menu.component.spec.ts │ │ │ │ └── top-menu.component.ts │ │ ├── navigation │ │ │ ├── navigation.model.ts │ │ │ ├── navigation.service.spec.ts │ │ │ └── navigation.service.ts │ │ ├── search │ │ │ ├── interfaces.ts │ │ │ ├── search-box │ │ │ │ ├── search-box.component.spec.ts │ │ │ │ └── search-box.component.ts │ │ │ ├── search-worker.js │ │ │ ├── search.service.spec.ts │ │ │ └── search.service.ts │ │ ├── shared │ │ │ ├── attribute-utils.spec.ts │ │ │ ├── attribute-utils.ts │ │ │ ├── copier.service.ts │ │ │ ├── current-date.ts │ │ │ ├── custom-icon-registry.spec.ts │ │ │ ├── custom-icon-registry.ts │ │ │ ├── deployment.service.spec.ts │ │ │ ├── deployment.service.ts │ │ │ ├── ga.service.spec.ts │ │ │ ├── ga.service.ts │ │ │ ├── location.service.spec.ts │ │ │ ├── location.service.ts │ │ │ ├── logger.service.spec.ts │ │ │ ├── logger.service.ts │ │ │ ├── reporting-error-handler.spec.ts │ │ │ ├── reporting-error-handler.ts │ │ │ ├── scroll-spy.service.spec.ts │ │ │ ├── scroll-spy.service.ts │ │ │ ├── scroll.service.spec.ts │ │ │ ├── scroll.service.ts │ │ │ ├── search-results │ │ │ │ ├── search-results.component.html │ │ │ │ ├── search-results.component.spec.ts │ │ │ │ └── search-results.component.ts │ │ │ ├── select │ │ │ │ ├── select.component.html │ │ │ │ ├── select.component.spec.ts │ │ │ │ └── select.component.ts │ │ │ ├── shared.module.ts │ │ │ ├── stackblitz.service.ts │ │ │ ├── toc.service.spec.ts │ │ │ ├── toc.service.ts │ │ │ ├── web-worker.ts │ │ │ └── window.ts │ │ └── sw-updates │ │ │ ├── sw-updates.module.ts │ │ │ ├── sw-updates.service.spec.ts │ │ │ └── sw-updates.service.ts │ ├── assets │ │ ├── .gitkeep │ │ ├── images │ │ │ ├── favicons │ │ │ │ ├── apple-touch-icon-144x144.png │ │ │ │ ├── favicon-128x128.png │ │ │ │ ├── favicon-144x144.png │ │ │ │ ├── favicon-152x152.png │ │ │ │ ├── favicon-192x192.png │ │ │ │ ├── favicon-384x384.png │ │ │ │ ├── favicon-512x512.png │ │ │ │ ├── favicon-72x72.png │ │ │ │ ├── favicon-96x96.png │ │ │ │ └── favicon.ico │ │ │ ├── guide │ │ │ │ └── marble-diagram-anatomy.svg │ │ │ ├── logos │ │ │ │ ├── Rx_Logo_S.png │ │ │ │ ├── github-icon.svg │ │ │ │ ├── logo.png │ │ │ │ └── twitter-icon.svg │ │ │ ├── marble-diagrams │ │ │ │ ├── NEVER.png │ │ │ │ ├── audit.png │ │ │ │ ├── auditTime.png │ │ │ │ ├── buffer.png │ │ │ │ ├── bufferCount.png │ │ │ │ ├── bufferTime.png │ │ │ │ ├── bufferToggle.png │ │ │ │ ├── bufferWhen.png │ │ │ │ ├── catch.png │ │ │ │ ├── combineAll.png │ │ │ │ ├── combineLatest.png │ │ │ │ ├── concat.png │ │ │ │ ├── concatAll.png │ │ │ │ ├── concatMap.png │ │ │ │ ├── concatMapTo.png │ │ │ │ ├── count.png │ │ │ │ ├── create.png │ │ │ │ ├── debounce.png │ │ │ │ ├── debounceTime.png │ │ │ │ ├── defaultIfEmpty.png │ │ │ │ ├── defer.png │ │ │ │ ├── delay.png │ │ │ │ ├── delayWhen.png │ │ │ │ ├── dematerialize.png │ │ │ │ ├── distinctUntilChanged.png │ │ │ │ ├── distinctUntilKeyChanged.png │ │ │ │ ├── elementAt.png │ │ │ │ ├── empty.png │ │ │ │ ├── endWith.png │ │ │ │ ├── every.png │ │ │ │ ├── exhaust.png │ │ │ │ ├── exhaustMap.png │ │ │ │ ├── expand.png │ │ │ │ ├── filter.png │ │ │ │ ├── find.png │ │ │ │ ├── findIndex.png │ │ │ │ ├── first.png │ │ │ │ ├── forkJoin.png │ │ │ │ ├── from.png │ │ │ │ ├── fromEvent.png │ │ │ │ ├── fromEventPattern.png │ │ │ │ ├── generate.png │ │ │ │ ├── groupBy.png │ │ │ │ ├── ignoreElements.png │ │ │ │ ├── interval.png │ │ │ │ ├── isEmpty.png │ │ │ │ ├── last.png │ │ │ │ ├── map.png │ │ │ │ ├── mapTo.png │ │ │ │ ├── materialize.png │ │ │ │ ├── max.png │ │ │ │ ├── merge.png │ │ │ │ ├── mergeAll.png │ │ │ │ ├── mergeMap.png │ │ │ │ ├── mergeMapTo.png │ │ │ │ ├── min.png │ │ │ │ ├── multicast.png │ │ │ │ ├── observeOn.png │ │ │ │ ├── of.png │ │ │ │ ├── onErrorResumeNext.png │ │ │ │ ├── pairs.png │ │ │ │ ├── pairwise.png │ │ │ │ ├── partition.png │ │ │ │ ├── pluck.png │ │ │ │ ├── publish.png │ │ │ │ ├── publishBehavior.png │ │ │ │ ├── publishLast.png │ │ │ │ ├── publishReplay.png │ │ │ │ ├── race.png │ │ │ │ ├── range.png │ │ │ │ ├── reduce.png │ │ │ │ ├── refCount.png │ │ │ │ ├── repeat.png │ │ │ │ ├── repeatWhen.png │ │ │ │ ├── retry.png │ │ │ │ ├── retryWhen.png │ │ │ │ ├── sample.png │ │ │ │ ├── sampleTime.png │ │ │ │ ├── scan.png │ │ │ │ ├── sequenceEqual.png │ │ │ │ ├── share.png │ │ │ │ ├── single.png │ │ │ │ ├── skip.png │ │ │ │ ├── skipLast.png │ │ │ │ ├── skipUntil.png │ │ │ │ ├── skipWhile.png │ │ │ │ ├── startWith.png │ │ │ │ ├── subscribeOn.png │ │ │ │ ├── switchAll.png │ │ │ │ ├── switchMap.png │ │ │ │ ├── switchMapTo.png │ │ │ │ ├── take.png │ │ │ │ ├── takeLast.png │ │ │ │ ├── takeUntil.png │ │ │ │ ├── takeWhile.png │ │ │ │ ├── tap.png │ │ │ │ ├── throttle.png │ │ │ │ ├── throttleTime.png │ │ │ │ ├── throw.png │ │ │ │ ├── throwIfEmpty.png │ │ │ │ ├── timeInterval.png │ │ │ │ ├── timeout.png │ │ │ │ ├── timeoutWith.png │ │ │ │ ├── timer.png │ │ │ │ ├── timestamp.png │ │ │ │ ├── toArray.png │ │ │ │ ├── window.png │ │ │ │ ├── windowCount.png │ │ │ │ ├── windowTime.png │ │ │ │ ├── windowToggle.png │ │ │ │ ├── windowWhen.png │ │ │ │ ├── withLatestFrom.png │ │ │ │ └── zipAll.png │ │ │ └── support │ │ │ │ └── rxjs-404.png │ │ └── js │ │ │ ├── devtools-welcome.js │ │ │ └── prettify.js │ ├── environments │ │ ├── environment.archive.ts │ │ ├── environment.next.ts │ │ ├── environment.stable.ts │ │ └── environment.ts │ ├── extra-files │ │ ├── README.md │ │ ├── archive │ │ │ └── robots.txt │ │ ├── next │ │ │ └── robots.txt │ │ └── stable │ │ │ └── robots.txt │ ├── google385281288605d160.html │ ├── ie-polyfills.js │ ├── index.html │ ├── karma.conf.js │ ├── main.ts │ ├── noop-worker-basic.js │ ├── polyfills.ts │ ├── pwa-manifest.json │ ├── styles.scss │ ├── styles │ │ ├── 0-base │ │ │ ├── _base-dir.scss │ │ │ └── _typography.scss │ │ ├── 1-layouts │ │ │ ├── _api-page.scss │ │ │ ├── _content-layout.scss │ │ │ ├── _doc-viewer.scss │ │ │ ├── _footer.scss │ │ │ ├── _layout-global.scss │ │ │ ├── _layouts-dir.scss │ │ │ ├── _marketing-layout.scss │ │ │ ├── _not-found.scss │ │ │ ├── _print-layout.scss │ │ │ ├── _sidenav.scss │ │ │ ├── _table-of-contents.scss │ │ │ └── _top-menu.scss │ │ ├── 2-modules │ │ │ ├── _alert.scss │ │ │ ├── _api-list.scss │ │ │ ├── _api-pages.scss │ │ │ ├── _buttons.scss │ │ │ ├── _callout.scss │ │ │ ├── _card.scss │ │ │ ├── _code.scss │ │ │ ├── _contribute.scss │ │ │ ├── _contributor.scss │ │ │ ├── _deploy-theme.scss │ │ │ ├── _details.scss │ │ │ ├── _edit-page-cta.scss │ │ │ ├── _features.scss │ │ │ ├── _filetree.scss │ │ │ ├── _heading-anchors.scss │ │ │ ├── _hr.scss │ │ │ ├── _images.scss │ │ │ ├── _label.scss │ │ │ ├── _modules-dir.scss │ │ │ ├── _notification.scss │ │ │ ├── _presskit.scss │ │ │ ├── _progress-bar.scss │ │ │ ├── _resources.scss │ │ │ ├── _scrollbar.scss │ │ │ ├── _search-results.scss │ │ │ ├── _select-menu.scss │ │ │ ├── _subsection.scss │ │ │ ├── _table.scss │ │ │ └── _toc.scss │ │ ├── _constants.scss │ │ ├── _mixins.scss │ │ ├── _typography-theme.scss │ │ ├── main.scss │ │ └── rxjs-theme.scss │ ├── test.ts │ ├── testing │ │ ├── doc-viewer-utils.ts │ │ ├── location.service.ts │ │ ├── logger.service.ts │ │ └── search.service.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── tslint.json │ └── typings.d.ts ├── tests │ └── e2e │ │ ├── protractor.conf.js │ │ ├── tsconfig.e2e.json │ │ └── visual-testing.e2e-spec.ts ├── tools │ ├── README.md │ ├── decision-tree-generator │ │ ├── README.md │ │ ├── jest.config.js │ │ ├── main.ts │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── lib │ │ │ │ ├── addUniqueId.spec.ts │ │ │ │ ├── addUniqueId.ts │ │ │ │ ├── build.spec.ts │ │ │ │ ├── build.ts │ │ │ │ ├── decisionTreeReducer.spec.ts │ │ │ │ ├── decisionTreeReducer.ts │ │ │ │ ├── extractInitialSequence.spec.ts │ │ │ │ ├── extractInitialSequence.ts │ │ │ │ ├── fixtures.ts │ │ │ │ ├── flattenApiList.spec.ts │ │ │ │ ├── flattenApiList.ts │ │ │ │ ├── generateUniqueId.spec.ts │ │ │ │ ├── generateUniqueId.ts │ │ │ │ ├── helpers.spec.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ └── interfaces.ts │ │ │ └── tree.yml │ │ └── tsconfig.json │ ├── firebase-test-utils │ │ ├── FirebaseGlob.spec.ts │ │ ├── FirebaseGlob.ts │ │ ├── FirebaseRedirect.spec.ts │ │ ├── FirebaseRedirect.ts │ │ ├── FirebaseRedirector.spec.ts │ │ └── FirebaseRedirector.ts │ ├── stackblitz │ │ └── rxjs.version.js │ ├── transforms │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── README.md │ │ ├── angular-api-package │ │ │ ├── index.js │ │ │ ├── mocks │ │ │ │ ├── aliasedExports.ts │ │ │ │ ├── anotherOperator.ts │ │ │ │ ├── importedSrc.ts │ │ │ │ ├── operator.ts │ │ │ │ └── testSrc.ts │ │ │ ├── post-processors │ │ │ │ └── embedMarbleDiagrams.js │ │ │ ├── processors │ │ │ │ ├── addMetadataAliases.js │ │ │ │ ├── addMetadataAliases.spec.js │ │ │ │ ├── addNotYetDocumentedProperty.js │ │ │ │ ├── addNotYetDocumentedProperty.spec.js │ │ │ │ ├── computeApiBreadCrumbs.js │ │ │ │ ├── computeApiBreadCrumbs.spec.js │ │ │ │ ├── computeSearchTitle.js │ │ │ │ ├── computeSearchTitle.spec.js │ │ │ │ ├── computeStability.js │ │ │ │ ├── computeStability.spec.js │ │ │ │ ├── convertPrivateClassesToInterfaces.js │ │ │ │ ├── extractDecoratedClasses.js │ │ │ │ ├── extractDecoratedClasses.spec.js │ │ │ │ ├── extractPipeParams.js │ │ │ │ ├── extractPipeParams.spec.js │ │ │ │ ├── filterContainedDocs.js │ │ │ │ ├── filterPrivateDocs.js │ │ │ │ ├── filterPrivateDocs.spec.js │ │ │ │ ├── generateApiListDoc.js │ │ │ │ ├── generateApiListDoc.spec.js │ │ │ │ ├── generateDeprecationsListDoc.js │ │ │ │ ├── markAliases.spec.ts │ │ │ │ ├── markAliases.ts │ │ │ │ ├── markBarredODocsAsPrivate.js │ │ │ │ ├── markBarredODocsAsPrivate.spec.js │ │ │ │ ├── matchUpDirectiveDecorators.js │ │ │ │ ├── matchUpDirectiveDecorators.spec.js │ │ │ │ ├── mergeDecoratorDocs.js │ │ │ │ ├── mergeDecoratorDocs.spec.js │ │ │ │ ├── migrateLegacyJSDocTags.js │ │ │ │ ├── migrateLegacyJSDocTags.spec.js │ │ │ │ ├── processClassLikeMembers.js │ │ │ │ ├── processClassLikeMembers.spec.js │ │ │ │ ├── simplifyMemberAnchors.js │ │ │ │ ├── simplifyMemberAnchors.spec.js │ │ │ │ ├── splitDescription.js │ │ │ │ └── splitDescription.spec.js │ │ │ └── tag-defs │ │ │ │ ├── Annotation.js │ │ │ │ ├── deprecated.js │ │ │ │ ├── docsNotRequired.js │ │ │ │ ├── experimental.js │ │ │ │ ├── howToUse.js │ │ │ │ ├── internal.js │ │ │ │ ├── ngModule.js │ │ │ │ ├── no-description.js │ │ │ │ ├── security.js │ │ │ │ ├── stable.js │ │ │ │ ├── suppress.js │ │ │ │ ├── syntax.js │ │ │ │ ├── throws.js │ │ │ │ ├── ts2dart_const.js │ │ │ │ ├── usageNotes.js │ │ │ │ └── whatItDoes.js │ │ ├── angular-base-package │ │ │ ├── ignore.words │ │ │ ├── index.js │ │ │ ├── post-processors │ │ │ │ ├── add-image-dimensions.js │ │ │ │ ├── add-image-dimensions.spec.js │ │ │ │ ├── auto-link-code.js │ │ │ │ ├── auto-link-code.spec.js │ │ │ │ ├── autolink-headings.js │ │ │ │ ├── autolink-headings.spec.js │ │ │ │ ├── h1-checker.js │ │ │ │ └── h1-checker.spec.js │ │ │ ├── processors │ │ │ │ ├── checkUnbalancedBackTicks.js │ │ │ │ ├── checkUnbalancedBackTicks.spec.js │ │ │ │ ├── convertToJson.js │ │ │ │ ├── convertToJson.spec.js │ │ │ │ ├── copyContentAssets.js │ │ │ │ ├── copyContentAssets.spec.js │ │ │ │ ├── createSitemap.js │ │ │ │ ├── createSitemap.spec.js │ │ │ │ ├── fixInternalDocumentLinks.js │ │ │ │ ├── fixInternalDocumentLinks.spec.js │ │ │ │ ├── generateKeywords.js │ │ │ │ ├── generateKeywords.spec.js │ │ │ │ ├── renderLinkInfo.js │ │ │ │ └── renderLinkInfo.spec.js │ │ │ ├── readers │ │ │ │ └── json.js │ │ │ ├── rendering │ │ │ │ ├── filterByPropertyValue.js │ │ │ │ ├── filterByPropertyValue.spec.js │ │ │ │ ├── indentForMarkdown.js │ │ │ │ ├── toId.js │ │ │ │ ├── toId.spec.js │ │ │ │ ├── trimBlankLines.js │ │ │ │ ├── trimBlankLines.spec.js │ │ │ │ ├── truncateCode.js │ │ │ │ └── truncateCode.spec.js │ │ │ └── services │ │ │ │ ├── copyFolder.js │ │ │ │ ├── filterAmbiguousDirectiveAliases.js │ │ │ │ ├── filterAmbiguousDirectiveAliases.spec.js │ │ │ │ ├── filterPipes.js │ │ │ │ ├── filterPipes.spec.js │ │ │ │ └── getImageDimensions.js │ │ ├── angular-content-package │ │ │ ├── index.js │ │ │ └── inline-tag-defs │ │ │ │ └── anchor.js │ │ ├── angular.io-package │ │ │ ├── index.js │ │ │ └── processors │ │ │ │ ├── cleanGeneratedFiles.js │ │ │ │ ├── createOverviewDump.js │ │ │ │ └── processNavigationMap.js │ │ ├── authors-package │ │ │ ├── api-package.js │ │ │ ├── guide-package.js │ │ │ ├── index.js │ │ │ ├── index.spec.js │ │ │ ├── marketing-package.js │ │ │ ├── tutorial-package.js │ │ │ └── watchr.js │ │ ├── config.js │ │ ├── content-package │ │ │ ├── index.js │ │ │ ├── readers │ │ │ │ ├── content.js │ │ │ │ └── content.spec.js │ │ │ └── tag-defs │ │ │ │ ├── intro.js │ │ │ │ └── title.js │ │ ├── examples-package │ │ │ ├── file-readers │ │ │ │ └── example-reader.js │ │ │ ├── index.js │ │ │ ├── inline-tag-defs │ │ │ │ ├── example.js │ │ │ │ └── example.spec.js │ │ │ ├── processors │ │ │ │ ├── collect-examples.js │ │ │ │ ├── collect-examples.spec.js │ │ │ │ ├── render-examples.js │ │ │ │ └── render-examples.spec.js │ │ │ └── services │ │ │ │ ├── example-map.js │ │ │ │ ├── getExampleRegion.js │ │ │ │ ├── getExampleRegion.spec.js │ │ │ │ ├── parseArgString.js │ │ │ │ ├── region-matchers │ │ │ │ ├── block-c.js │ │ │ │ ├── block-c.spec.js │ │ │ │ ├── html.js │ │ │ │ ├── html.spec.js │ │ │ │ ├── inline-c-only.js │ │ │ │ ├── inline-c-only.spec.js │ │ │ │ ├── inline-c.js │ │ │ │ ├── inline-c.spec.js │ │ │ │ ├── inline-hash.js │ │ │ │ └── inline-hash.spec.js │ │ │ │ ├── region-parser.js │ │ │ │ └── region-parser.spec.js │ │ ├── helpers │ │ │ ├── test-package.js │ │ │ ├── utils.js │ │ │ └── utils.spec.js │ │ ├── links-package │ │ │ ├── index.js │ │ │ ├── inline-tag-defs │ │ │ │ ├── link.js │ │ │ │ └── link.spec.js │ │ │ └── services │ │ │ │ ├── disambiguators │ │ │ │ ├── disambiguateByDeprecated.js │ │ │ │ ├── disambiguateByDeprecated.spec.js │ │ │ │ ├── disambiguateByModule.js │ │ │ │ └── disambiguateByModule.spec.js │ │ │ │ ├── getAliases.js │ │ │ │ ├── getAliases.spec.js │ │ │ │ ├── getDocFromAlias.js │ │ │ │ ├── getDocFromAlias.spec.js │ │ │ │ ├── getLinkInfo.js │ │ │ │ └── getLinkInfo.spec.js │ │ ├── post-process-package │ │ │ ├── index.js │ │ │ └── processors │ │ │ │ ├── post-process-html.js │ │ │ │ └── post-process-html.spec.js │ │ ├── remark-package │ │ │ ├── index.js │ │ │ └── services │ │ │ │ ├── handlers │ │ │ │ └── code.js │ │ │ │ ├── renderMarkdown.js │ │ │ │ └── renderMarkdown.spec.js │ │ ├── target-package │ │ │ ├── index.js │ │ │ ├── inline-tag-defs │ │ │ │ ├── target.js │ │ │ │ └── target.spec.js │ │ │ └── services │ │ │ │ ├── targetEnvironments.js │ │ │ │ └── targetEnvironments.spec.js │ │ ├── templates │ │ │ ├── README.md │ │ │ ├── api │ │ │ │ ├── base.template.html │ │ │ │ ├── class.template.html │ │ │ │ ├── const.template.html │ │ │ │ ├── decorator.template.html │ │ │ │ ├── deprecation.template.html │ │ │ │ ├── directive.template.html │ │ │ │ ├── enum.template.html │ │ │ │ ├── export-base.template.html │ │ │ │ ├── function.template.html │ │ │ │ ├── includes │ │ │ │ │ ├── annotations.html │ │ │ │ │ ├── class-overview.html │ │ │ │ │ ├── decorator-overview.html │ │ │ │ │ ├── deprecation.html │ │ │ │ │ ├── description.html │ │ │ │ │ ├── directive-overview.html │ │ │ │ │ ├── export-as.html │ │ │ │ │ ├── info-bar.html │ │ │ │ │ ├── interface-overview.html │ │ │ │ │ ├── metadata.html │ │ │ │ │ ├── pipe-overview.html │ │ │ │ │ ├── renamed-exports.html │ │ │ │ │ ├── security-notes.html │ │ │ │ │ ├── see-also.html │ │ │ │ │ ├── selectors.html │ │ │ │ │ └── usageNotes.html │ │ │ │ ├── interface.template.html │ │ │ │ ├── let.template.html │ │ │ │ ├── lib │ │ │ │ │ ├── descendants.html │ │ │ │ │ ├── directiveHelpers.html │ │ │ │ │ ├── githubLinks.html │ │ │ │ │ ├── memberHelpers.html │ │ │ │ │ └── paramList.html │ │ │ │ ├── module.template.html │ │ │ │ ├── pipe.template.html │ │ │ │ ├── type-alias.template.html │ │ │ │ ├── value-module.template.html │ │ │ │ └── var.template.html │ │ │ ├── content.template.html │ │ │ ├── data-module.template.js │ │ │ ├── example-region.template.html │ │ │ ├── json-doc.template.json │ │ │ ├── overview-dump.template.html │ │ │ └── sitemap.template.xml │ │ └── test.js │ └── tslint.json ├── tsconfig.docs.json ├── tsconfig.json └── tslint.json ├── integration ├── side-effects │ ├── README.md │ ├── side-effects.json │ └── snapshots │ │ ├── esm │ │ ├── ajax.js │ │ ├── fetch.js │ │ ├── index.js │ │ ├── operators.js │ │ ├── testing.js │ │ └── websocket.js │ │ ├── esm2015 │ │ ├── ajax.js │ │ ├── fetch.js │ │ ├── index.js │ │ ├── operators.js │ │ ├── testing.js │ │ └── websocket.js │ │ └── esm5 │ │ ├── ajax.js │ │ ├── fetch.js │ │ ├── index.js │ │ ├── operators.js │ │ ├── testing.js │ │ └── websocket.js └── systemjs │ ├── systemjs-compatibility-spec.js │ └── tsconfig.json ├── package-lock.json ├── package.json ├── resources └── CI-CD │ ├── README.md │ └── logo │ └── svg │ ├── RxJs_Logo_Basic.svg │ ├── RxJs_Logo_Basic_Outline.svg │ ├── RxJs_Logo_Black.svg │ └── RxJs_Logo_Black_Outline.svg ├── spec-dtslint ├── Observable-spec.ts ├── helpers.ts ├── index.d.ts ├── observables │ ├── combineLatest-spec.ts │ ├── concat-spec.ts │ ├── defer-spec.ts │ ├── dom │ │ ├── ajax-spec.ts │ │ └── animationFrames-spec.ts │ ├── empty-spec.ts │ ├── forkJoin-spec.ts │ ├── from-spec.ts │ ├── iif-spec.ts │ ├── interval-spec.ts │ ├── never-spec.ts │ ├── of-spec.ts │ ├── partition-spec.ts │ ├── race-spec.ts │ ├── range-spec.ts │ ├── throwError-spec.ts │ ├── timer-spec.ts │ └── zip-spec.ts ├── operators │ ├── audit-spec.ts │ ├── auditTime-spec.ts │ ├── buffer-spec.ts │ ├── bufferCount-spec.ts │ ├── bufferTime-spec.ts │ ├── bufferToggle-spec.ts │ ├── bufferWhen-spec.ts │ ├── catchError-spec.ts │ ├── combineAll-spec.ts │ ├── combineLatest-spec.ts │ ├── combineLatestWith-spec.ts │ ├── concat-spec.ts │ ├── concatAll-spec.ts │ ├── concatMap-spec.ts │ ├── concatMapTo-spec.ts │ ├── concatWith-spec.ts │ ├── count-spec.ts │ ├── debounce-spec.ts │ ├── debounceTime-spec.ts │ ├── defaultIfEmpty-spec.ts │ ├── delay-spec.ts │ ├── delayWhen-spec.ts │ ├── dematerialize-spec.ts │ ├── distinct-spec.ts │ ├── distinctUntilChanged-spec.ts │ ├── distinctUntilKeyChanged-spec.ts │ ├── elementAt-spec.ts │ ├── endWith-spec.ts │ ├── every-spec.ts │ ├── exhaust-spec.ts │ ├── exhaustMap-spec.ts │ ├── expand-spec.ts │ ├── filter-spec.ts │ ├── finalize-spec.ts │ ├── find-spec.ts │ ├── findIndex-spec.ts │ ├── first-spec.ts │ ├── groupBy-spec.ts │ ├── ignoreElements-spec.ts │ ├── isEmpty-spec.ts │ ├── last-spec.ts │ ├── map-spec.ts │ ├── mapTo-spec.ts │ ├── materialize-spec.ts │ ├── max-spec.ts │ ├── merge-spec.ts │ ├── mergeAll-spec.ts │ ├── mergeMap-spec.ts │ ├── mergeMapTo-spec.ts │ ├── mergeScan-spec.ts │ ├── mergeWith-spec.ts │ ├── min-spec.ts │ ├── multicast-spec.ts │ ├── observeOn-spec.ts │ ├── onErrorResumeNext-spec.ts │ ├── pairwise-spec.ts │ ├── pluck-spec.ts │ ├── publish-spec.ts │ ├── publishBehavior-spec.ts │ ├── publishLast-spec.ts │ ├── publishReplay-spec.ts │ ├── race-spec.ts │ ├── reduce-spec.ts │ ├── refCount-spec.ts │ ├── repeat-spec.ts │ ├── retry-spec.ts │ ├── retryWhen-spec.ts │ ├── sample-spec.ts │ ├── sampleTime-spec.ts │ ├── scan-spec.ts │ ├── sequenceEqual-spec.ts │ ├── share-spec.ts │ ├── shareReplay-spec.ts │ ├── single-spec.ts │ ├── skip-spec.ts │ ├── skipLast-spec.ts │ ├── skipUntil-spec.ts │ ├── skipWhile-spec.ts │ ├── startWith-spec.ts │ ├── subscribeOn-spec.ts │ ├── switchAll-spec.ts │ ├── switchMap-spec.ts │ ├── switchMapTo-spec.ts │ ├── take-spec.ts │ ├── takeLast-spec.ts │ ├── takeUntil-spec.ts │ ├── takeWhile-spec.ts │ ├── tap-spec.ts │ ├── throttle-spec.ts │ ├── throttleTime-spec.ts │ ├── throwIfEmpty-spec.ts │ ├── timeInterval-spec.ts │ ├── timeout-spec.ts │ ├── timeoutWith-spec.ts │ ├── timestamp-spec.ts │ ├── toArray-spec.ts │ ├── window-spec.ts │ ├── windowCount-spec.ts │ ├── windowTime-spec.ts │ ├── windowToggle-spec.ts │ ├── windowWhen-spec.ts │ ├── withLatestFrom-spec.ts │ ├── zip-spec.ts │ ├── zipAll-spec.ts │ └── zipWith-spec.ts ├── tsconfig.json ├── tslint.json ├── types-spec.ts └── util │ └── pipe-spec.ts ├── spec ├── Notification-spec.ts ├── Observable-spec.ts ├── Scheduler-spec.ts ├── Subject-spec.ts ├── Subscriber-spec.ts ├── Subscription-spec.ts ├── ajax │ └── index-spec.ts ├── config-spec.ts ├── exports-spec.ts.disabled ├── helpers │ ├── interop-helper-spec.ts │ ├── interop-helper.ts │ ├── marble-testing.ts │ ├── observableMatcher.ts │ ├── polyfills.ts │ ├── test-helper.ts │ ├── testScheduler-ui.ts │ └── tests2png │ │ ├── diagram-test-runner.ts │ │ ├── painter.ts │ │ └── types.ts ├── index-spec.ts ├── observables │ ├── IteratorObservable-spec.ts │ ├── SubscribeOnObservable-spec.ts │ ├── bindCallback-spec.ts │ ├── bindNodeCallback-spec.ts │ ├── combineLatest-spec.ts │ ├── concat-spec.ts │ ├── defer-spec.ts │ ├── dom │ │ ├── ajax-spec.ts │ │ ├── animationFrames-spec.ts │ │ ├── fetch-spec.ts │ │ └── webSocket-spec.ts │ ├── empty-spec.ts │ ├── forkJoin-spec.ts │ ├── from-promise-spec.ts │ ├── from-spec.ts │ ├── fromEvent-spec.ts │ ├── fromEventPattern-spec.ts │ ├── generate-spec.ts │ ├── if-spec.ts │ ├── interval-spec.ts │ ├── merge-spec.ts │ ├── never-spec.ts │ ├── of-spec.ts │ ├── onErrorResumeNext-spec.ts │ ├── pairs-spec.ts │ ├── partition-spec.ts │ ├── race-spec.ts │ ├── range-spec.ts │ ├── throwError-spec.ts │ ├── timer-spec.ts │ ├── using-spec.ts │ └── zip-spec.ts ├── operators │ ├── audit-spec.ts │ ├── auditTime-spec.ts │ ├── buffer-spec.ts │ ├── bufferCount-spec.ts │ ├── bufferTime-spec.ts │ ├── bufferToggle-spec.ts │ ├── bufferWhen-spec.ts │ ├── catch-spec.ts │ ├── combineAll-spec.ts │ ├── combineLatest-legacy-spec.ts │ ├── combineLatestWith-spec.ts │ ├── concat-spec.ts │ ├── concatAll-spec.ts │ ├── concatMap-spec.ts │ ├── concatMapTo-spec.ts │ ├── concatWith-spec.ts │ ├── count-spec.ts │ ├── debounce-spec.ts │ ├── debounceTime-spec.ts │ ├── defaultIfEmpty-spec.ts │ ├── delay-spec.ts │ ├── delayWhen-spec.ts │ ├── dematerialize-spec.ts │ ├── distinct-spec.ts │ ├── distinctUntilChanged-spec.ts │ ├── distinctUntilKeyChanged-spec.ts │ ├── elementAt-spec.ts │ ├── endWith-spec.ts │ ├── every-spec.ts │ ├── exhaust-spec.ts │ ├── exhaustMap-spec.ts │ ├── expand-spec.ts │ ├── filter-spec.ts │ ├── finalize-spec.ts │ ├── find-spec.ts │ ├── findIndex-spec.ts │ ├── first-spec.ts │ ├── groupBy-spec.ts │ ├── ignoreElements-spec.ts │ ├── index-spec.ts │ ├── isEmpty-spec.ts │ ├── last-spec.ts │ ├── map-spec.ts │ ├── mapTo-spec.ts │ ├── materialize-spec.ts │ ├── max-spec.ts │ ├── merge-legacy-spec.ts │ ├── mergeAll-spec.ts │ ├── mergeMap-spec.ts │ ├── mergeMapTo-spec.ts │ ├── mergeScan-spec.ts │ ├── mergeWith-spec.ts │ ├── min-spec.ts │ ├── multicast-spec.ts │ ├── observeOn-spec.ts │ ├── onErrorResumeNext-spec.ts │ ├── pairwise-spec.ts │ ├── pluck-spec.ts │ ├── publish-spec.ts │ ├── publishBehavior-spec.ts │ ├── publishLast-spec.ts │ ├── publishReplay-spec.ts │ ├── race-spec.ts │ ├── reduce-spec.ts │ ├── refCount-spec.ts │ ├── repeat-spec.ts │ ├── repeatWhen-spec.ts │ ├── retry-spec.ts │ ├── retryWhen-spec.ts │ ├── sample-spec.ts │ ├── sampleTime-spec.ts │ ├── scan-spec.ts │ ├── sequenceEqual-spec.ts │ ├── share-spec.ts │ ├── shareReplay-spec.ts │ ├── single-spec.ts │ ├── skip-spec.ts │ ├── skipLast-spec.ts │ ├── skipUntil-spec.ts │ ├── skipWhile-spec.ts │ ├── startWith-spec.ts │ ├── subscribeOn-spec.ts │ ├── switch-spec.ts │ ├── switchMap-spec.ts │ ├── switchMapTo-spec.ts │ ├── take-spec.ts │ ├── takeLast-spec.ts │ ├── takeUntil-spec.ts │ ├── takeWhile-spec.ts │ ├── tap-spec.ts │ ├── throttle-spec.ts │ ├── throttleTime-spec.ts │ ├── throwIfEmpty-spec.ts │ ├── timeInterval-spec.ts │ ├── timeout-spec.ts │ ├── timeoutWith-spec.ts │ ├── timestamp-spec.ts │ ├── toArray-spec.ts │ ├── toPromise-spec.ts │ ├── window-spec.ts │ ├── windowCount-spec.ts │ ├── windowTime-spec.ts │ ├── windowToggle-spec.ts │ ├── windowWhen-spec.ts │ ├── withLatestFrom-spec.ts │ ├── zip-legacy-spec.ts │ ├── zipAll-spec.ts │ └── zipWith-spec.ts ├── scheduled │ └── scheduled-spec.ts ├── schedulers │ ├── AnimationFrameScheduler-spec.ts │ ├── AsapScheduler-spec.ts │ ├── QueueScheduler-spec.ts │ ├── TestScheduler-spec.ts │ └── VirtualTimeScheduler-spec.ts ├── subjects │ ├── AsyncSubject-spec.ts │ ├── BehaviorSubject-spec.ts │ └── ReplaySubject-spec.ts ├── support │ ├── default.opts │ ├── mocha-browser-runner.html │ ├── mocha-path-mappings.js │ ├── mocha.sauce.gruntfile.js │ ├── mocha.sauce.runner.js │ ├── tests2png.opts │ └── webpack.mocha.config.js ├── testing │ └── index-spec.ts ├── tsconfig.json ├── util │ ├── ArgumentOutOfRangeError-spec.ts │ ├── EmptyError-spec.ts │ ├── Immediate-spec.ts │ ├── IsNumeric-spec.ts │ ├── ObjectUnsubscribedError-spec.ts │ ├── TimeoutError-spec.ts │ ├── UnsubscriptionError-spec.ts │ ├── canReportError-spec.ts │ ├── isObservable-spec.ts │ ├── isPromise-spec.ts │ ├── pipe-spec.ts │ ├── subscribeToResult-spec.ts │ └── toSubscriber-spec.ts └── websocket │ └── index-spec.ts ├── src ├── Rx.global.js ├── ajax │ └── index.ts ├── fetch │ └── index.ts ├── index.ts ├── internal │ ├── AsyncSubject.ts │ ├── BehaviorSubject.ts │ ├── InnerSubscriber.ts │ ├── Notification.ts │ ├── Observable.ts │ ├── Observer.ts │ ├── Operator.ts │ ├── OuterSubscriber.ts │ ├── ReplaySubject.ts │ ├── Scheduler.ts │ ├── Subject.ts │ ├── SubjectSubscription.ts │ ├── Subscriber.ts │ ├── Subscription.ts │ ├── config.ts │ ├── observable │ │ ├── ConnectableObservable.ts │ │ ├── SubscribeOnObservable.ts │ │ ├── bindCallback.ts │ │ ├── bindNodeCallback.ts │ │ ├── combineLatest.ts │ │ ├── concat.ts │ │ ├── defer.ts │ │ ├── dom │ │ │ ├── AjaxObservable.ts │ │ │ ├── WebSocketSubject.ts │ │ │ ├── ajax.ts │ │ │ ├── animationFrames.ts │ │ │ ├── fetch.ts │ │ │ └── webSocket.ts │ │ ├── empty.ts │ │ ├── forkJoin.ts │ │ ├── from.ts │ │ ├── fromArray.ts │ │ ├── fromEvent.ts │ │ ├── fromEventPattern.ts │ │ ├── fromIterable.ts │ │ ├── fromObservable.ts │ │ ├── fromPromise.ts │ │ ├── generate.ts │ │ ├── iif.ts │ │ ├── interval.ts │ │ ├── merge.ts │ │ ├── never.ts │ │ ├── of.ts │ │ ├── onErrorResumeNext.ts │ │ ├── pairs.ts │ │ ├── partition.ts │ │ ├── race.ts │ │ ├── range.ts │ │ ├── throwError.ts │ │ ├── timer.ts │ │ ├── using.ts │ │ └── zip.ts │ ├── operators │ │ ├── audit.ts │ │ ├── auditTime.ts │ │ ├── buffer.ts │ │ ├── bufferCount.ts │ │ ├── bufferTime.ts │ │ ├── bufferToggle.ts │ │ ├── bufferWhen.ts │ │ ├── catchError.ts │ │ ├── combineAll.ts │ │ ├── combineLatestWith.ts │ │ ├── concat.ts │ │ ├── concatAll.ts │ │ ├── concatMap.ts │ │ ├── concatMapTo.ts │ │ ├── concatWith.ts │ │ ├── count.ts │ │ ├── debounce.ts │ │ ├── debounceTime.ts │ │ ├── defaultIfEmpty.ts │ │ ├── delay.ts │ │ ├── delayWhen.ts │ │ ├── dematerialize.ts │ │ ├── distinct.ts │ │ ├── distinctUntilChanged.ts │ │ ├── distinctUntilKeyChanged.ts │ │ ├── elementAt.ts │ │ ├── endWith.ts │ │ ├── every.ts │ │ ├── exhaust.ts │ │ ├── exhaustMap.ts │ │ ├── expand.ts │ │ ├── filter.ts │ │ ├── finalize.ts │ │ ├── find.ts │ │ ├── findIndex.ts │ │ ├── first.ts │ │ ├── groupBy.ts │ │ ├── ignoreElements.ts │ │ ├── index.ts │ │ ├── isEmpty.ts │ │ ├── last.ts │ │ ├── map.ts │ │ ├── mapTo.ts │ │ ├── materialize.ts │ │ ├── max.ts │ │ ├── mergeAll.ts │ │ ├── mergeMap.ts │ │ ├── mergeMapTo.ts │ │ ├── mergeScan.ts │ │ ├── mergeWith.ts │ │ ├── min.ts │ │ ├── multicast.ts │ │ ├── observeOn.ts │ │ ├── onErrorResumeNext.ts │ │ ├── pairwise.ts │ │ ├── partition.ts │ │ ├── pluck.ts │ │ ├── publish.ts │ │ ├── publishBehavior.ts │ │ ├── publishLast.ts │ │ ├── publishReplay.ts │ │ ├── race.ts │ │ ├── reduce.ts │ │ ├── refCount.ts │ │ ├── repeat.ts │ │ ├── repeatWhen.ts │ │ ├── retry.ts │ │ ├── retryWhen.ts │ │ ├── sample.ts │ │ ├── sampleTime.ts │ │ ├── scan.ts │ │ ├── sequenceEqual.ts │ │ ├── share.ts │ │ ├── shareReplay.ts │ │ ├── single.ts │ │ ├── skip.ts │ │ ├── skipLast.ts │ │ ├── skipUntil.ts │ │ ├── skipWhile.ts │ │ ├── startWith.ts │ │ ├── subscribeOn.ts │ │ ├── switchAll.ts │ │ ├── switchMap.ts │ │ ├── switchMapTo.ts │ │ ├── take.ts │ │ ├── takeLast.ts │ │ ├── takeUntil.ts │ │ ├── takeWhile.ts │ │ ├── tap.ts │ │ ├── throttle.ts │ │ ├── throttleTime.ts │ │ ├── throwIfEmpty.ts │ │ ├── timeInterval.ts │ │ ├── timeout.ts │ │ ├── timeoutWith.ts │ │ ├── timestamp.ts │ │ ├── toArray.ts │ │ ├── window.ts │ │ ├── windowCount.ts │ │ ├── windowTime.ts │ │ ├── windowToggle.ts │ │ ├── windowWhen.ts │ │ ├── withLatestFrom.ts │ │ ├── zipAll.ts │ │ └── zipWith.ts │ ├── scheduled │ │ ├── scheduleArray.ts │ │ ├── scheduleIterable.ts │ │ ├── scheduleObservable.ts │ │ ├── schedulePromise.ts │ │ └── scheduled.ts │ ├── scheduler │ │ ├── Action.ts │ │ ├── AnimationFrameAction.ts │ │ ├── AnimationFrameScheduler.ts │ │ ├── AsapAction.ts │ │ ├── AsapScheduler.ts │ │ ├── AsyncAction.ts │ │ ├── AsyncScheduler.ts │ │ ├── QueueAction.ts │ │ ├── QueueScheduler.ts │ │ ├── VirtualTimeScheduler.ts │ │ ├── animationFrame.ts │ │ ├── asap.ts │ │ ├── async.ts │ │ └── queue.ts │ ├── symbol │ │ ├── iterator.ts │ │ ├── observable.ts │ │ └── rxSubscriber.ts │ ├── testing │ │ ├── ColdObservable.ts │ │ ├── HotObservable.ts │ │ ├── SubscriptionLog.ts │ │ ├── SubscriptionLoggable.ts │ │ ├── TestMessage.ts │ │ └── TestScheduler.ts │ ├── types.ts │ ├── umd.ts │ └── util │ │ ├── ArgumentOutOfRangeError.ts │ │ ├── EmptyError.ts │ │ ├── Immediate.ts │ │ ├── ObjectUnsubscribedError.ts │ │ ├── TimeoutError.ts │ │ ├── UnsubscriptionError.ts │ │ ├── applyMixins.ts │ │ ├── canReportError.ts │ │ ├── errorObject.ts │ │ ├── hostReportError.ts │ │ ├── identity.ts │ │ ├── isArray.ts │ │ ├── isArrayLike.ts │ │ ├── isDate.ts │ │ ├── isFunction.ts │ │ ├── isInteropObservable.ts │ │ ├── isIterable.ts │ │ ├── isNumeric.ts │ │ ├── isObject.ts │ │ ├── isObservable.ts │ │ ├── isPromise.ts │ │ ├── isScheduler.ts │ │ ├── noop.ts │ │ ├── not.ts │ │ ├── pipe.ts │ │ ├── root.ts │ │ ├── subscribeTo.ts │ │ ├── subscribeToArray.ts │ │ ├── subscribeToIterable.ts │ │ ├── subscribeToObservable.ts │ │ ├── subscribeToPromise.ts │ │ ├── subscribeToResult.ts │ │ ├── toSubscriber.ts │ │ └── tryCatch.ts ├── operators │ └── index.ts ├── testing │ └── index.ts ├── tsconfig.base.json ├── tsconfig.cjs.json ├── tsconfig.cjs.spec.json ├── tsconfig.esm.json ├── tsconfig.esm5.json ├── tsconfig.esm5.rollup.json ├── tsconfig.types.json └── webSocket │ └── index.ts ├── tools ├── add-license-to-file.js ├── custom-esdoc-plugin.js ├── generate-alias.js ├── make-closure-core.js ├── make-closure.js ├── make-umd-bundle.js ├── prepare-package.js └── rollup-bundle.js ├── tsconfig.json ├── tslint.json └── wallaby.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | Dockerfile* 4 | docker-compose* 5 | .dockerignore 6 | .git 7 | .gitignore -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | integration/side-effects/snapshots/ -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # no eol conversions! 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation 3 | about: Issues around documentation 4 | 5 | --- 6 | 7 | ### Documentation Related To Component: 8 | 9 | 10 | 11 | ### Please check those that apply 12 | 13 | - [ ] typo 14 | - [ ] documentation doesn't exist 15 | - [ ] documentation needs clarification 16 | - [ ] error(s) in example 17 | - [ ] needs example 18 | 19 | ### Description Of The Issue 20 | 21 | 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/support-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Support Question 3 | about: "If you have a question, please check out our StackOverflow! " 4 | ---We primarily use GitHub as an issue tracker; for usage and support questions, please check out these resources below. Thanks! 5 | 6 | --- 7 | 8 | - StackOverflow: https://stackoverflow.com/questions/tagged/rxjs using the tag `rxjs` 9 | - Also have a look at the readme for more information, possibly can have some answers already: 10 | 11 | * https://github.com/ReactiveX/rxjs/blob/master/README.md 12 | * https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md 13 | -------------------------------------------------------------------------------- /.github/workflows/ci_ts_latest.yml: -------------------------------------------------------------------------------- 1 | name: CI (ts@latest) 2 | 3 | on: 4 | pull_request: 5 | types: ['opened', 'reopened', 'synchronize'] 6 | 7 | jobs: 8 | build: 9 | 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | node: [ '13' ] 14 | 15 | name: ts@latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - uses: actions/setup-node@v1 20 | with: 21 | node-version: ${{ matrix.node }} 22 | - name: build 23 | run: | 24 | npm install -g npm@latest 25 | npm ci 26 | npm install --no-save typescript@latest 27 | npm run compile 28 | 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editor-specific 2 | .idea/ 3 | *.iml 4 | *.sublime-project 5 | *.sublime-workspace 6 | .settings 7 | .vscode 8 | 9 | # Installed libs 10 | node_modules/ 11 | typings/ 12 | 13 | # Generated 14 | dist/ 15 | dist-compat/ 16 | tmp/ 17 | coverage/ 18 | img/ 19 | spec-js/ 20 | spec-build/ 21 | .out/ 22 | .tmp/ 23 | 24 | # Import location artifacts 25 | /ajax/ 26 | /fetch/ 27 | /operators/ 28 | /testing/ 29 | /webSocket/ 30 | 31 | # Misc 32 | npm-debug.log 33 | .DS_STORE 34 | *.tgz 35 | 36 | # The check-side-effects package generates and deletes this file. 37 | # If the process is killed, it will be left behind. 38 | check-side-effects.tmp-input.js 39 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:lts 2 | 3 | # Create app directory 4 | WORKDIR /rxjs 5 | 6 | COPY . . 7 | 8 | WORKDIR /rxjs/docs_app 9 | 10 | RUN npm run setup 11 | 12 | EXPOSE 4200 13 | 14 | CMD ["npm", "start:docker"] -------------------------------------------------------------------------------- /docs_app/assets/Rx_Logo_S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/Rx_Logo_S.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/audit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/audit.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/auditTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/auditTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/buffer.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/bufferCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/bufferCount.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/bufferTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/bufferTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/bufferToggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/bufferToggle.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/bufferWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/bufferWhen.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/catch.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/combineAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/combineAll.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/combineLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/combineLatest.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/concat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/concat.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/concatAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/concatAll.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/concatMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/concatMap.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/concatMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/concatMapTo.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/count.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/debounce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/debounce.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/debounceTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/debounceTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/defaultIfEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/defaultIfEmpty.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/defer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/defer.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/delay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/delay.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/delayWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/delayWhen.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/dematerialize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/dematerialize.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/elementAt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/elementAt.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/empty.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/endWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/endWith.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/every.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/every.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/exhaust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/exhaust.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/exhaustMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/exhaustMap.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/expand.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/filter.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/find.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/findIndex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/findIndex.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/first.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/forkJoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/forkJoin.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/from.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/from.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/fromEvent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/fromEvent.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/fromEventPattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/fromEventPattern.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/generate.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/groupBy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/groupBy.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/ignoreElements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/ignoreElements.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/interval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/interval.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/isEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/isEmpty.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/last.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/map.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/mapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/mapTo.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/materialize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/materialize.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/max.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/merge.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/mergeAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/mergeAll.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/mergeMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/mergeMap.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/mergeMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/mergeMapTo.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/min.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/multicast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/multicast.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/never.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/never.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/of.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/of.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/onErrorResumeNext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/onErrorResumeNext.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/pairs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/pairs.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/pairwise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/pairwise.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/partition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/partition.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/pluck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/pluck.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/publish.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/publishLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/publishLast.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/race.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/race.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/range.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/reduce.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/refCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/refCount.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/repeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/repeat.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/repeatWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/repeatWhen.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/retry.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/retryWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/retryWhen.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/sample.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/sampleTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/sampleTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/scan.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/sequenceEqual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/sequenceEqual.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/share.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/single.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/skip.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/skipLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/skipLast.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/skipUntil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/skipUntil.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/skipWhile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/skipWhile.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/startWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/startWith.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/subscribeOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/subscribeOn.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/switchAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/switchAll.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/switchMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/switchMap.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/switchMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/switchMapTo.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/take.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/take.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/takeLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/takeLast.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/takeUntil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/takeUntil.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/takeWhile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/takeWhile.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/tap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/tap.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/throttle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/throttle.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/throttleTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/throttleTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/throw.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/throwIfEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/throwIfEmpty.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/timeinterval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/timeinterval.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/timeout.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/timeoutWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/timeoutWith.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/timer.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/timestamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/timestamp.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/toArray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/toArray.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/window.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/windowCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/windowCount.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/windowTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/windowTime.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/windowToggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/windowToggle.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/windowWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/windowWhen.png -------------------------------------------------------------------------------- /docs_app/assets/images/marble-diagrams/withLatestFrom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/assets/images/marble-diagrams/withLatestFrom.png -------------------------------------------------------------------------------- /docs_app/browserslist: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /docs_app/content/file-not-found.md: -------------------------------------------------------------------------------- 1 | @description 2 | 3 |
4 | 5 |
6 |

Page Not Found

7 |

We're sorry. The page you are looking for cannot be found.

8 |
9 |
10 | -------------------------------------------------------------------------------- /docs_app/content/images/marketing/home/Rx_Logo-512-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/content/images/marketing/home/Rx_Logo-512-512.png -------------------------------------------------------------------------------- /docs_app/content/marketing/announcements.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "startDate": "2019-12-20", 4 | "endDate": "2020-03-20", 5 | "message": "RxJS Live Conference in London
March 19th-20th, 2020", 6 | "imageUrl": "generated/images/marketing/home/rxjs-live-london.svg", 7 | "linkUrl": "https://www.rxjs.live/london" 8 | } 9 | ] -------------------------------------------------------------------------------- /docs_app/content/marketing/api.html: -------------------------------------------------------------------------------- 1 |

API List

2 | 3 | -------------------------------------------------------------------------------- /docs_app/content/marketing/operator-decision-tree.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs_app/content/marketing/team.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs_app/database.rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | ".read": "auth != null", 4 | ".write": "auth != null" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /docs_app/scripts/_payload-limits.json: -------------------------------------------------------------------------------- 1 | { 2 | "aio": { 3 | "master": { 4 | "uncompressed": { 5 | "inline": 1971, 6 | "main": 567849, 7 | "polyfills": 40272, 8 | "prettify": 14886 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /docs_app/scripts/payload.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eu -o pipefail 4 | 5 | readonly thisDir=$(cd $(dirname $0); pwd) 6 | readonly parentDir=$(dirname $thisDir) 7 | 8 | # Track payload size functions 9 | source ../scripts/ci/payload-size.sh 10 | 11 | trackPayloadSize "aio" "dist/*.js" true true "${thisDir}/_payload-limits.json" 12 | 13 | -------------------------------------------------------------------------------- /docs_app/scripts/publish-docs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | readonly projectId=rxjs-dev 4 | readonly deployedUrl=https://rxjs-dev.firebaseapp.com 5 | readonly firebaseToken=$FIREBASE_TOKEN 6 | 7 | # Deploy 8 | ( 9 | cd "`dirname $0`/.." 10 | 11 | # Build the app 12 | npm run build --env=stable 13 | 14 | # Include any mode-specific files 15 | cp -rf src/extra-files/$deployEnv/. dist/ 16 | 17 | # Deploy to Firebase 18 | npm run firebase -- login 19 | npm run firebase -- use "$projectId" 20 | npm run firebase -- deploy --message "Deploy docs automatically" --non-interactive 21 | npm run firebase -- logout 22 | ) 23 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/code/code.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { CodeComponent } from './code.component'; 4 | import { MatSnackBarModule } from '@angular/material/snack-bar'; 5 | import { PrettyPrinter } from './pretty-printer.service'; 6 | import { CopierService } from 'app/shared/copier.service'; 7 | 8 | @NgModule({ 9 | imports: [ CommonModule, MatSnackBarModule ], 10 | declarations: [ CodeComponent ], 11 | entryComponents: [ CodeComponent ], 12 | exports: [ CodeComponent ], 13 | providers: [ PrettyPrinter, CopierService ] 14 | }) 15 | export class CodeModule { } 16 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/contributor/contributors.model.ts: -------------------------------------------------------------------------------- 1 | export class ContributorGroup { 2 | name: string; 3 | order: number; 4 | contributors: Contributor[]; 5 | } 6 | 7 | export class Contributor { 8 | group: string; 9 | name: string; 10 | picture?: string; 11 | website?: string; 12 | twitter?: string; 13 | github?: string; 14 | bio?: string; 15 | isFlipped? = false; 16 | } 17 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/current-location/current-location.component.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable component-selector */ 2 | import { Component } from '@angular/core'; 3 | import { LocationService } from 'app/shared/location.service'; 4 | 5 | /** Renders the current location path. */ 6 | @Component({ 7 | selector: 'current-location', 8 | template: '{{ location.currentPath | async }}' 9 | }) 10 | export class CurrentLocationComponent { 11 | constructor(public location: LocationService) { } 12 | } 13 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/current-location/current-location.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, Type } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { CurrentLocationComponent } from './current-location.component'; 4 | import { WithCustomElementComponent } from '../element-registry'; 5 | 6 | @NgModule({ 7 | imports: [ CommonModule ], 8 | declarations: [ CurrentLocationComponent ], 9 | entryComponents: [ CurrentLocationComponent ] 10 | }) 11 | export class CurrentLocationModule implements WithCustomElementComponent { 12 | customElementComponent: Type = CurrentLocationComponent; 13 | } 14 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/expandable-section/expandable-section.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{title}} 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/expandable-section/expandable-section.component.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable component-selector */ 2 | import {Component, Input} from '@angular/core'; 3 | 4 | /** Custom element wrapper for the material expansion panel with a title input. */ 5 | @Component({ 6 | selector: 'aio-expandable-section', 7 | templateUrl: 'expandable-section.component.html', 8 | }) 9 | export class ExpandableSectionComponent { 10 | @Input() title; 11 | } 12 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/live-example/live-example.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, Type } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { EmbeddedStackblitzComponent, LiveExampleComponent } from './live-example.component'; 4 | import { WithCustomElementComponent } from '../element-registry'; 5 | 6 | @NgModule({ 7 | imports: [ CommonModule ], 8 | declarations: [ LiveExampleComponent, EmbeddedStackblitzComponent ], 9 | entryComponents: [ LiveExampleComponent ] 10 | }) 11 | export class LiveExampleModule implements WithCustomElementComponent { 12 | customElementComponent: Type = LiveExampleComponent; 13 | } 14 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/operator-decision-tree/README.md: -------------------------------------------------------------------------------- 1 | The `operator-decision-tree` module requires `decision-tree-data.json`, which is hosted at `/generated/app`. 2 | 3 | The JSON is generated via the `docs_app/tools/decision-tree-generator`. 4 | 5 | # TODO 6 | - Consider placing the widget on the home page - or a link on the home page, “Decision Tree” 7 | - Manual focus calls when navigating the tree (example: after making a selection, focus on the current sentence) 8 | - Drop jasmine-marbles for just the TestScheduler -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/operator-decision-tree/interfaces.ts: -------------------------------------------------------------------------------- 1 | export interface OperatorTreeNode { 2 | id: string; 3 | label?: string; 4 | options?: string[]; 5 | path?: string; 6 | docType?: string; 7 | method?: string; 8 | } 9 | 10 | export interface OperatorTreeNodeWithOptions extends OperatorTreeNode { 11 | options: string[]; 12 | } 13 | 14 | export interface OperatorDecisionTree { 15 | [key: string]: OperatorTreeNode; 16 | initial: Required>; 17 | error?: any; 18 | } 19 | 20 | export interface State { 21 | previousBranchIds: string[]; 22 | currentBranchId: string; 23 | } 24 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/operator-decision-tree/operator-decision-tree-data.service.ts: -------------------------------------------------------------------------------- 1 | import { HttpClient } from '@angular/common/http'; 2 | import { Injectable } from '@angular/core'; 3 | import { Observable } from 'rxjs'; 4 | import { OperatorDecisionTree } from './interfaces'; 5 | 6 | @Injectable() 7 | export class OperatorDecisionTreeDataService { 8 | constructor(private http: HttpClient) {} 9 | 10 | getDecisionTree$(): Observable { 11 | return this.http.get( 12 | '/generated/docs/app/decision-tree-data.json' 13 | ); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/operator-decision-tree/operator-decision-tree.module.spec.ts: -------------------------------------------------------------------------------- 1 | import { OperatorDecisionTreeModule } from './operator-decision-tree.module'; 2 | 3 | describe('OperatorDecisionTreeModule', () => { 4 | let chooseYourOwnOperatorModule: OperatorDecisionTreeModule; 5 | 6 | beforeEach(() => { 7 | chooseYourOwnOperatorModule = new OperatorDecisionTreeModule(); 8 | }); 9 | 10 | it('should create an instance', () => { 11 | expect(chooseYourOwnOperatorModule).toBeTruthy(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/operator-decision-tree/utils.ts: -------------------------------------------------------------------------------- 1 | import { OperatorTreeNodeWithOptions } from './interfaces'; 2 | 3 | export function isInitialDecision(previousBranchIds: string[]): boolean { 4 | return ( 5 | previousBranchIds.includes('initial') && previousBranchIds.length === 1 6 | ); 7 | } 8 | 9 | export function treeIsErrorFree(tree): boolean { 10 | return !tree.error; 11 | } 12 | 13 | export function nodeHasOptions(node): node is OperatorTreeNodeWithOptions { 14 | return !!node.options; 15 | } 16 | -------------------------------------------------------------------------------- /docs_app/src/app/custom-elements/toc/toc.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, Type } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { MatIconModule } from '@angular/material/icon'; 4 | import { WithCustomElementComponent } from '../element-registry'; 5 | import { TocComponent } from './toc.component'; 6 | 7 | @NgModule({ 8 | imports: [ CommonModule, MatIconModule ], 9 | declarations: [ TocComponent ], 10 | entryComponents: [ TocComponent ], 11 | }) 12 | export class TocModule implements WithCustomElementComponent { 13 | customElementComponent: Type = TocComponent; 14 | } 15 | -------------------------------------------------------------------------------- /docs_app/src/app/documents/document-contents.ts: -------------------------------------------------------------------------------- 1 | export interface DocumentContents { 2 | /** The unique identifier for this document */ 3 | id: string; 4 | /** The HTML to display in the doc viewer */ 5 | contents: string|null; 6 | } 7 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 2 |

3 | Code licensed under an Apache-2.0 License. 4 | Documentation licensed under 5 | CC BY 4.0. 6 |

7 |

8 | Version {{versionInfo?.full}}. 9 |

10 | 11 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | import { NavigationNode, VersionInfo } from 'app/navigation/navigation.service'; 4 | 5 | @Component({ 6 | selector: 'aio-footer', 7 | templateUrl: 'footer.component.html' 8 | }) 9 | export class FooterComponent { 10 | @Input() nodes: NavigationNode[]; 11 | @Input() versionInfo: VersionInfo; 12 | } 13 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/mode-banner/mode-banner.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { VersionInfo } from 'app/navigation/navigation.service'; 3 | 4 | @Component({ 5 | selector: 'aio-mode-banner', 6 | template: ` 7 |
8 | This is the archived documentation for Angular v{{version?.major}}. 9 | Please visit angular.io to see documentation for the current version of Angular. 10 |
11 | ` 12 | }) 13 | export class ModeBannerComponent { 14 | @Input() mode: string; 15 | @Input() version: VersionInfo; 16 | } 17 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/nav-menu/nav-menu.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { CurrentNode, NavigationNode } from 'app/navigation/navigation.service'; 3 | 4 | @Component({ 5 | selector: 'aio-nav-menu', 6 | template: ` 7 | 8 | ` 9 | }) 10 | export class NavMenuComponent { 11 | @Input() currentNode: CurrentNode; 12 | @Input() isWide = false; 13 | @Input() nodes: NavigationNode[]; 14 | get filteredNodes() { return this.nodes ? this.nodes.filter(n => !n.hidden) : []; } 15 | } 16 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/notification/notification.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /docs_app/src/app/layout/top-menu/top-menu.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { NavigationNode } from 'app/navigation/navigation.service'; 3 | 4 | @Component({ 5 | selector: 'aio-top-menu', 6 | template: ` 7 | ` 10 | }) 11 | export class TopMenuComponent { 12 | @Input() nodes: NavigationNode[]; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /docs_app/src/app/search/interfaces.ts: -------------------------------------------------------------------------------- 1 | export interface SearchResults { 2 | query: string; 3 | results: SearchResult[]; 4 | } 5 | 6 | export interface SearchResult { 7 | path: string; 8 | title: string; 9 | type: string; 10 | titleWords: string; 11 | keywords: string; 12 | } 13 | 14 | export interface SearchArea { 15 | name: string; 16 | pages: SearchResult[]; 17 | priorityPages: SearchResult[]; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /docs_app/src/app/shared/current-date.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const CurrentDateToken = new InjectionToken('CurrentDate'); 4 | export function currentDateProvider() { return new Date(); } 5 | -------------------------------------------------------------------------------- /docs_app/src/app/shared/deployment.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { LocationService } from 'app/shared/location.service'; 3 | import { environment } from 'environments/environment'; 4 | 5 | /** 6 | * Information about the deployment of this application. 7 | */ 8 | @Injectable() 9 | export class Deployment { 10 | /** 11 | * The deployment mode set from the environment provided at build time; 12 | * or overridden by the `mode` query parameter: e.g. `...?mode=archive` 13 | */ 14 | mode: string = this.location.search()['mode'] || environment.mode; 15 | 16 | constructor(private location: LocationService) {} 17 | }; 18 | -------------------------------------------------------------------------------- /docs_app/src/app/shared/logger.service.ts: -------------------------------------------------------------------------------- 1 | import { ErrorHandler, Injectable } from '@angular/core'; 2 | import { environment } from '../../environments/environment'; 3 | 4 | 5 | @Injectable() 6 | export class Logger { 7 | 8 | constructor(private errorHandler: ErrorHandler) {} 9 | 10 | log(value: any, ...rest: any[]) { 11 | if (!environment.production) { 12 | console.log(value, ...rest); 13 | } 14 | } 15 | 16 | error(error: Error) { 17 | this.errorHandler.handleError(error); 18 | } 19 | 20 | warn(value: any, ...rest: any[]) { 21 | console.warn(value, ...rest); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /docs_app/src/app/shared/shared.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { SearchResultsComponent } from './search-results/search-results.component'; 4 | import { SelectComponent } from './select/select.component'; 5 | 6 | @NgModule({ 7 | imports: [ 8 | CommonModule 9 | ], 10 | exports: [ 11 | SearchResultsComponent, 12 | SelectComponent 13 | ], 14 | declarations: [ 15 | SearchResultsComponent, 16 | SelectComponent 17 | ] 18 | }) 19 | export class SharedModule {} 20 | -------------------------------------------------------------------------------- /docs_app/src/app/shared/window.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken } from '@angular/core'; 2 | 3 | export const WindowToken = new InjectionToken('Window'); 4 | export function windowProvider() { return window; } 5 | -------------------------------------------------------------------------------- /docs_app/src/app/sw-updates/sw-updates.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | 3 | import { SwUpdatesService } from './sw-updates.service'; 4 | 5 | 6 | @NgModule({ 7 | providers: [ 8 | SwUpdatesService 9 | ] 10 | }) 11 | export class SwUpdatesModule {} 12 | -------------------------------------------------------------------------------- /docs_app/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/.gitkeep -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-128x128.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-144x144.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-152x152.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-192x192.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-384x384.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-512x512.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-72x72.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/favicons/favicon.ico -------------------------------------------------------------------------------- /docs_app/src/assets/images/logos/Rx_Logo_S.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/logos/Rx_Logo_S.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/logos/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/logos/logo.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/NEVER.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/NEVER.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/audit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/audit.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/auditTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/auditTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/buffer.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/bufferCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/bufferCount.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/bufferTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/bufferTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/bufferToggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/bufferToggle.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/bufferWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/bufferWhen.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/catch.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/combineAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/combineAll.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/combineLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/combineLatest.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/concat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/concat.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/concatAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/concatAll.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/concatMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/concatMap.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/concatMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/concatMapTo.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/count.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/create.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/debounce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/debounce.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/debounceTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/debounceTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/defaultIfEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/defaultIfEmpty.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/defer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/defer.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/delay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/delay.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/delayWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/delayWhen.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/dematerialize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/dematerialize.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/distinctUntilChanged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/distinctUntilChanged.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/distinctUntilKeyChanged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/distinctUntilKeyChanged.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/elementAt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/elementAt.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/empty.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/endWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/endWith.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/every.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/every.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/exhaust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/exhaust.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/exhaustMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/exhaustMap.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/expand.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/filter.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/find.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/findIndex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/findIndex.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/first.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/forkJoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/forkJoin.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/from.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/from.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/fromEvent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/fromEvent.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/fromEventPattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/fromEventPattern.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/generate.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/groupBy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/groupBy.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/ignoreElements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/ignoreElements.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/interval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/interval.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/isEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/isEmpty.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/last.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/map.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/mapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/mapTo.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/materialize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/materialize.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/max.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/merge.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/mergeAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/mergeAll.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/mergeMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/mergeMap.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/mergeMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/mergeMapTo.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/min.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/multicast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/multicast.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/observeOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/observeOn.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/of.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/of.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/onErrorResumeNext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/onErrorResumeNext.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/pairs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/pairs.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/pairwise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/pairwise.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/partition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/partition.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/pluck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/pluck.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/publish.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/publishBehavior.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/publishBehavior.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/publishLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/publishLast.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/publishReplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/publishReplay.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/race.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/race.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/range.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/reduce.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/refCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/refCount.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/repeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/repeat.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/repeatWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/repeatWhen.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/retry.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/retryWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/retryWhen.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/sample.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/sampleTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/sampleTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/scan.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/sequenceEqual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/sequenceEqual.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/share.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/single.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/skip.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/skipLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/skipLast.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/skipUntil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/skipUntil.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/skipWhile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/skipWhile.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/startWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/startWith.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/subscribeOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/subscribeOn.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/switchAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/switchAll.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/switchMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/switchMap.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/switchMapTo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/switchMapTo.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/take.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/take.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/takeLast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/takeLast.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/takeUntil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/takeUntil.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/takeWhile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/takeWhile.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/tap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/tap.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/throttle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/throttle.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/throttleTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/throttleTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/throw.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/throwIfEmpty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/throwIfEmpty.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/timeInterval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/timeInterval.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/timeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/timeout.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/timeoutWith.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/timeoutWith.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/timer.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/timestamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/timestamp.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/toArray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/toArray.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/window.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/windowCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/windowCount.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/windowTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/windowTime.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/windowToggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/windowToggle.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/windowWhen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/windowWhen.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/withLatestFrom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/withLatestFrom.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/marble-diagrams/zipAll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/marble-diagrams/zipAll.png -------------------------------------------------------------------------------- /docs_app/src/assets/images/support/rxjs-404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/rxjs/d03dcd0ec736408b80d2ca68b0446f5de3472185/docs_app/src/assets/images/support/rxjs-404.png -------------------------------------------------------------------------------- /docs_app/src/assets/js/devtools-welcome.js: -------------------------------------------------------------------------------- 1 | var welcomeText = ( 2 | ' ____ _ ____ \n' + 3 | '| _ \\ __ __ | / ___| \n' + 4 | '| |_) |\\ \\/ / | \\___ \\ \n' + 5 | '| _ < > < |_| |___) | \n' + 6 | '|_| \\_\\/_/\\_\\___/|____/ \n' + 7 | '\nstarted experimenting with RxJS:\n' + 8 | '\ntype this into the console:\n' + 9 | '\nrxjs.interval(500).pipe(rxjs.operators.take(4)).subscribe(console.log)\n' 10 | ); 11 | if (console.info) { 12 | console.info(welcomeText); 13 | } else { 14 | console.log(welcomeText); 15 | } 16 | -------------------------------------------------------------------------------- /docs_app/src/environments/environment.archive.ts: -------------------------------------------------------------------------------- 1 | // This is for archived sites, which are hosted at https://vX.angular.io, where X is the major Angular version. 2 | export const environment = { 3 | gaId: 'UA-36380079-2', // Production id (since it is linked from the main site) 4 | production: true, 5 | mode: 'archive' 6 | }; 7 | -------------------------------------------------------------------------------- /docs_app/src/environments/environment.next.ts: -------------------------------------------------------------------------------- 1 | // This is for the staging site, which is hosted at https://next.angular.io (and https://aio-staging.firebaseapp.org) 2 | export const environment = { 3 | gaId: 'UA-36380079-2', // Production id (since it is linked from the main site) 4 | production: true, 5 | mode: 'next' 6 | }; 7 | -------------------------------------------------------------------------------- /docs_app/src/environments/environment.stable.ts: -------------------------------------------------------------------------------- 1 | // This is for the production site, which is hosted at https://angular.io 2 | export const environment = { 3 | gaId: 'UA-36380079-2', // Production id 4 | production: true, 5 | mode: 'stable' 6 | }; 7 | -------------------------------------------------------------------------------- /docs_app/src/extra-files/README.md: -------------------------------------------------------------------------------- 1 | # Extra files folder 2 | 3 | This folder is used for extra files that should be included in deployments to firebase. 4 | 5 | After the AIO application had been built and before it is deployed all files and folders 6 | inside the folder with the same name as the current deployment mode (next, stable, archive) 7 | will be copied to the `dist` folder. 8 | 9 | See the `scripts/deploy-to-firebase.sh` script for more detail. 10 | 11 | **Note:** 12 | The `deploy-to-firebase.sh` script always expects there to be a folder for the current deployment 13 | mode (even if it is empty). 14 | -------------------------------------------------------------------------------- /docs_app/src/extra-files/archive/robots.txt: -------------------------------------------------------------------------------- 1 | # Disallow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: / 4 | -------------------------------------------------------------------------------- /docs_app/src/extra-files/next/robots.txt: -------------------------------------------------------------------------------- 1 | # Disallow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: / 4 | -------------------------------------------------------------------------------- /docs_app/src/extra-files/stable/robots.txt: -------------------------------------------------------------------------------- 1 | # Allow all URLs (see http://www.robotstxt.org/robotstxt.html) 2 | User-agent: * 3 | Disallow: 4 | Sitemap: https://angular.io/generated/sitemap.xml 5 | -------------------------------------------------------------------------------- /docs_app/src/google385281288605d160.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google385281288605d160.html -------------------------------------------------------------------------------- /docs_app/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule); 12 | -------------------------------------------------------------------------------- /docs_app/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import './styles/rxjs-theme'; 3 | @import './styles/main.scss'; 4 | -------------------------------------------------------------------------------- /docs_app/src/styles/0-base/_base-dir.scss: -------------------------------------------------------------------------------- 1 | /* ============================== 2 | BASE STYLES 3 | ============================== */ 4 | 5 | @import 'typography'; -------------------------------------------------------------------------------- /docs_app/src/styles/1-layouts/_doc-viewer.scss: -------------------------------------------------------------------------------- 1 | .no-animations aio-doc-viewer > * { 2 | // Disable view transition animations. 3 | transition: none !important; 4 | } 5 | -------------------------------------------------------------------------------- /docs_app/src/styles/1-layouts/_layouts-dir.scss: -------------------------------------------------------------------------------- 1 | /* ============================== 2 | LAYOUT STYLES 3 | ============================== */ 4 | 5 | @import 'api-page'; 6 | @import 'content-layout'; 7 | @import 'doc-viewer'; 8 | @import 'footer'; 9 | @import 'layout-global'; 10 | @import 'marketing-layout'; 11 | @import 'not-found'; 12 | @import 'sidenav'; 13 | @import 'table-of-contents'; 14 | @import 'top-menu'; 15 | @import 'print-layout'; -------------------------------------------------------------------------------- /docs_app/src/styles/1-layouts/_not-found.scss: -------------------------------------------------------------------------------- 1 | #file-not-found { 2 | padding: 3rem 3rem 3rem; 3 | } 4 | 5 | .nf-container { 6 | align-items: center; 7 | padding: 32px; 8 | } 9 | 10 | .nf-response { 11 | margin: 32px; 12 | height: 100%; 13 | flex-direction: column; 14 | 15 | h1 { 16 | font-size: 48px; 17 | color: $pink; 18 | text-transform: uppercase; 19 | margin: 8px 0; 20 | } 21 | } 22 | 23 | .nf-icon.material-icons { 24 | color: $pink; 25 | font-size: 100px; 26 | position: static; 27 | } 28 | -------------------------------------------------------------------------------- /docs_app/src/styles/1-layouts/_table-of-contents.scss: -------------------------------------------------------------------------------- 1 | nav#main-table-of-contents { 2 | width: 200px; 3 | height: 900px; 4 | position: fixed; 5 | right: 0; 6 | top: 50px; 7 | bottom: 100px; 8 | margin-left: 32px; 9 | background-color: $pink; 10 | } -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_contribute.scss: -------------------------------------------------------------------------------- 1 | .contribute-container { 2 | h2 { 3 | margin: 0; 4 | } 5 | 6 | .l-sub-section { 7 | width: 90%; 8 | margin-bottom: 20px; 9 | 10 | &:last-child { 11 | margin-bottom: 0; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_edit-page-cta.scss: -------------------------------------------------------------------------------- 1 | .edit-page-cta { 2 | font-weight: 400; 3 | font-size: 14px; 4 | color: $pink; 5 | text-align: right; 6 | margin-right: 32px; 7 | display: block; 8 | position: absolute; 9 | right: 0; 10 | } -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_heading-anchors.scss: -------------------------------------------------------------------------------- 1 | .sidenav-content { 2 | h1, h2, h3, h4, h5, h6 { 3 | 4 | .header-link { 5 | color: $mediumgray; 6 | margin: 0 4px; 7 | text-decoration: none; 8 | user-select: none; 9 | visibility: hidden; 10 | display: inline-block; 11 | vertical-align: text-top; 12 | } 13 | 14 | &:hover .header-link { 15 | visibility: visible; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_hr.scss: -------------------------------------------------------------------------------- 1 | hr { 2 | border: none; 3 | background: $lightgray; 4 | height: 1px; 5 | } 6 | 7 | .hr-margin { 8 | display: block; 9 | height: 1px; 10 | border: 0; 11 | margin-top: 16px; 12 | margin-bottom: 16px; 13 | padding: 0; 14 | } -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | .progress-bar-container { 2 | height: 2px; 3 | overflow: hidden; 4 | position: fixed; 5 | top: 0; 6 | width: 100vw; 7 | z-index: 11; 8 | } 9 | -------------------------------------------------------------------------------- /docs_app/src/styles/2-modules/_subsection.scss: -------------------------------------------------------------------------------- 1 | .l-sub-section { 2 | color: $darkgray; 3 | background-color: rgba($pink, 0.05); 4 | border-left: 8px solid $pink; 5 | padding: 16px; 6 | margin-bottom: 8px; 7 | display: table; 8 | clear: both; 9 | width: 100%; 10 | box-sizing: border-box; 11 | 12 | h3 { 13 | margin: 8px 0 0; 14 | } 15 | 16 | a:hover { 17 | color: $pink; 18 | text-decoration: underline; 19 | } 20 | } -------------------------------------------------------------------------------- /docs_app/src/styles/main.scss: -------------------------------------------------------------------------------- 1 | // import global themes 2 | @import '~@angular/material/theming'; 3 | @import './rxjs-theme'; 4 | 5 | // import global variables 6 | @import './constants'; 7 | 8 | // import global mixins 9 | @import './mixins'; 10 | 11 | // import directories 12 | @import './0-base/base-dir'; 13 | @import './1-layouts/layouts-dir'; 14 | @import './2-modules/modules-dir'; 15 | -------------------------------------------------------------------------------- /docs_app/src/testing/logger.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class MockLogger { 5 | 6 | output: { log: any[], error: any[], warn: any[] } = { 7 | log: [], 8 | error: [], 9 | warn: [] 10 | }; 11 | 12 | log(value: any, ...rest: any[]) { 13 | this.output.log.push([value, ...rest]); 14 | } 15 | 16 | error(value: any, ...rest: any[]) { 17 | this.output.error.push([value, ...rest]); 18 | } 19 | 20 | warn(value: any, ...rest: any[]) { 21 | this.output.warn.push([value, ...rest]); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /docs_app/src/testing/search.service.ts: -------------------------------------------------------------------------------- 1 | import { Subject } from 'rxjs'; 2 | import { SearchResults } from 'app/search/interfaces'; 3 | 4 | export class MockSearchService { 5 | searchResults = new Subject(); 6 | initWorker = jasmine.createSpy('initWorker'); 7 | loadIndex = jasmine.createSpy('loadIndex'); 8 | search = jasmine.createSpy('search'); 9 | } 10 | -------------------------------------------------------------------------------- /docs_app/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "baseUrl": "", 6 | "types": [], 7 | "importHelpers": true 8 | }, 9 | "exclude": [ 10 | "testing/**/*", 11 | "test.ts", 12 | "test-specs.ts", 13 | "**/*.spec.ts" 14 | ], 15 | "angularCompilerOptions": { 16 | "preserveWhitespaces": false 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs_app/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "test.ts", 12 | "polyfills.ts" 13 | ], 14 | "include": [ 15 | "testing/**/*.ts", 16 | "**/*.spec.ts", 17 | "**/*.d.ts" 18 | ] 19 | } -------------------------------------------------------------------------------- /docs_app/src/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "aio", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "aio", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /docs_app/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /* SystemJS module definition */ 2 | declare var module: NodeModule; 3 | interface NodeModule { 4 | id: string; 5 | } 6 | -------------------------------------------------------------------------------- /docs_app/tests/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/e2e", 5 | "baseUrl": "./", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | roots: ['/src'], 3 | transform: { 4 | '^.+\\.tsx?$': 'ts-jest', 5 | }, 6 | testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', 7 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], 8 | }; 9 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/build.spec.ts: -------------------------------------------------------------------------------- 1 | import { build } from './build'; 2 | import { mockFlatApiList, mockRawTreeNodes } from './fixtures'; 3 | import { treeNodeCount } from './helpers'; 4 | 5 | describe('build', () => { 6 | const tree = build(mockFlatApiList, mockRawTreeNodes); 7 | it('should return a flat map of all nodes and one additional initial node', () => { 8 | expect(tree).toHaveProperty('initial'); 9 | expect(Object.keys(tree).length).toBe(treeNodeCount(mockRawTreeNodes) + 1); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/extractInitialSequence.ts: -------------------------------------------------------------------------------- 1 | import { TreeNode } from './interfaces'; 2 | 3 | /** 4 | * Strip out initial sequence and add to tree 5 | * 6 | * @export 7 | * @param {Tree} tree 8 | * @returns {{id: string, options: string[]}} 9 | */ 10 | export function extractInitialSequence(tree: TreeNode[]): {id: string, options: string[]} { 11 | return { 12 | id: 'initial', 13 | options: tree.filter(node => !node.depth).map(node => node.id) 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/generateUniqueId.spec.ts: -------------------------------------------------------------------------------- 1 | import { generateUniqueId } from './generateUniqueId'; 2 | 3 | describe('generateUniqueId', () => { 4 | describe('when called', () => { 5 | it('will generate a unique string', () => { 6 | const x = generateUniqueId(); 7 | expect(x).not.toBe(generateUniqueId()); 8 | expect(typeof x).toBe('string'); 9 | }); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/generateUniqueId.ts: -------------------------------------------------------------------------------- 1 | import { randomBytes } from 'crypto'; 2 | 3 | /** 4 | * Generates a unique ID for the decision tree nodes 5 | * 6 | * @export 7 | * @requires crypto:randomByes 8 | * @returns {string} 9 | */ 10 | export function generateUniqueId(): string { 11 | return randomBytes(2).toString('hex'); 12 | } 13 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/helpers.spec.ts: -------------------------------------------------------------------------------- 1 | import { isStable } from './helpers'; 2 | 3 | describe('isStable', () => { 4 | describe('when passed anything but the string "deprecated"', () => { 5 | it('will return true', () => { 6 | expect(isStable('')).toBeTruthy(); 7 | }); 8 | }); 9 | describe('when passed the string "deprecated"', () => { 10 | it('will return false', () => { 11 | expect(isStable('deprecated')).toBeFalsy(); 12 | }); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './addUniqueId'; 2 | export * from './build'; 3 | export * from './extractInitialSequence'; 4 | export * from './flattenApiList'; 5 | export * from './generateUniqueId'; 6 | export * from './interfaces'; 7 | export * from './decisionTreeReducer'; 8 | -------------------------------------------------------------------------------- /docs_app/tools/decision-tree-generator/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs" 4 | } 5 | } -------------------------------------------------------------------------------- /docs_app/tools/stackblitz/rxjs.version.js: -------------------------------------------------------------------------------- 1 | // Exposes the current RxJS version number from the library's package.json 2 | // for usage in TypeScript files. 3 | // (Since said package.json is outside of this TypeScript project, it's not 4 | // available for a direct TypeScript import). 5 | 6 | module.exports = require('../../../package.json').version; 7 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.template.js 2 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'env': { 3 | 'es6': true, 4 | 'jasmine': true, 5 | 'node': true 6 | }, 7 | 'extends': [ 8 | 'eslint:recommended', 9 | 'plugin:jasmine/recommended' 10 | ], 11 | 'plugins': [ 12 | 'jasmine' 13 | ], 14 | 'rules': { 15 | 'indent': ['error', 2], 16 | 'linebreak-style': ['error', 'unix'], 17 | 'quotes': ['error', 'single'], 18 | 'semi': ['error', 'always'], 19 | 'jasmine/new-line-before-expect': 0 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/mocks/aliasedExports.ts: -------------------------------------------------------------------------------- 1 | export * from './operator'; 2 | export { operator as aliasedOperator } from './operator'; 3 | export { operator } from './operator'; 4 | export { anotherOperator as operatorWithoutDuplicate } from './anotherOperator'; 5 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/mocks/anotherOperator.ts: -------------------------------------------------------------------------------- 1 | export const anotherOperator = () => {}; 2 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/mocks/importedSrc.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright Google Inc. All Rights Reserved. 4 | * 5 | * Use of this source code is governed by an MIT-style license that can be 6 | * found in the LICENSE file at https://angular.io/license 7 | */ 8 | 9 | export const x = 100; 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/mocks/operator.ts: -------------------------------------------------------------------------------- 1 | export const operator = () => {}; 2 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/processors/computeSearchTitle.js: -------------------------------------------------------------------------------- 1 | module.exports = function computeSearchTitleProcessor() { 2 | return { 3 | $runAfter: ['ids-computed'], 4 | $runBefore: ['generateKeywordsProcessor'], 5 | $process(docs) { 6 | docs.forEach(doc => { 7 | switch(doc.docType) { 8 | case 'function': 9 | doc.searchTitle = `${doc.name}()`; 10 | break; 11 | case 'module': 12 | doc.searchTitle = `${doc.id} package`; 13 | break; 14 | } 15 | }); 16 | } 17 | }; 18 | }; 19 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/processors/convertPrivateClassesToInterfaces.js: -------------------------------------------------------------------------------- 1 | module.exports = function convertPrivateClassesToInterfacesProcessor( 2 | convertPrivateClassesToInterfaces) { 3 | return { 4 | $runAfter: ['processing-docs'], 5 | $runBefore: ['docs-processed'], 6 | $process: function(docs) { 7 | convertPrivateClassesToInterfaces(docs, false); 8 | return docs; 9 | } 10 | }; 11 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/processors/filterPrivateDocs.js: -------------------------------------------------------------------------------- 1 | module.exports = function filterPrivateDocs() { 2 | return { 3 | $runAfter: ['extra-docs-added'], 4 | $runBefore: ['computing-paths'], 5 | $process: function(docs) { 6 | return docs.filter(function(doc) { return doc.privateExport !== true; }); 7 | } 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/processors/markBarredODocsAsPrivate.js: -------------------------------------------------------------------------------- 1 | module.exports = function markBarredODocsAsPrivate() { 2 | return { 3 | $runAfter: ['readTypeScriptModules'], 4 | $runBefore: ['adding-extra-docs'], 5 | $process: function(docs) { 6 | docs.forEach(doc => { 7 | if (doc.name && doc.name.indexOf('ɵ') === 0) { 8 | doc.privateExport = true; 9 | } 10 | }); 11 | } 12 | }; 13 | }; 14 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/Annotation.js: -------------------------------------------------------------------------------- 1 | // A ts2dart compiler annotation that can be ignored in API docs. 2 | module.exports = function() { 3 | return {name: 'Annotation', ignore: true}; 4 | }; 5 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/deprecated.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'deprecated'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/docsNotRequired.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'docsNotRequired'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/experimental.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'experimental'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/howToUse.js: -------------------------------------------------------------------------------- 1 | module.exports = function(log, createDocMessage) { 2 | return { 3 | name: 'howToUse', 4 | deprecated: true, 5 | transforms(doc, tag, value) { 6 | log.warn(createDocMessage('Deprecated `@howToUse` tag found', doc)); 7 | log.warn('PLEASE FIX by renaming to `@usageNotes.'); 8 | return value; 9 | } 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/internal.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Use this tag to ensure that dgeni does not include this code item 3 | * in the rendered docs. 4 | * 5 | * The `@internal` tag indicates to the compiler not to include the 6 | * item in the public typings file. 7 | * Use the `@nodoc` alias if you only want to hide the item from the 8 | * docs but not from the typings file. 9 | */ 10 | module.exports = function() { 11 | return { 12 | name: 'internal', 13 | aliases: ['nodoc'], 14 | transforms: function() { return true; } 15 | }; 16 | }; 17 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/ngModule.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'ngModule'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/no-description.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'noDescription', transforms: function() { return true; }}; 3 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/security.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'security'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/stable.js: -------------------------------------------------------------------------------- 1 | module.exports = function(log, createDocMessage) { 2 | return { 3 | name: 'stable', 4 | deprecated: true, 5 | transforms(doc, tag, value) { 6 | log.warn(createDocMessage('Deprecated `@stable` tag found', doc)); 7 | log.warn('PLEASE REMOVE - its value is now computed.'); 8 | return value; 9 | } 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/suppress.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'suppress'}; 3 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/syntax.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'syntax'}; 3 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/throws.js: -------------------------------------------------------------------------------- 1 | module.exports = function(extractTypeTransform, wholeTagTransform) { 2 | return { 3 | name: 'throws', 4 | aliases: ['exception'], 5 | multi: true, 6 | transforms: [ extractTypeTransform, wholeTagTransform ] 7 | }; 8 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/ts2dart_const.js: -------------------------------------------------------------------------------- 1 | // A ts2dart compiler annotation that can be ignored in API docs. 2 | module.exports = function() { 3 | return {name: 'ts2dart_const', ignore: true}; 4 | }; 5 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/usageNotes.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return { 3 | name: 'usageNotes' 4 | }; 5 | }; 6 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-api-package/tag-defs/whatItDoes.js: -------------------------------------------------------------------------------- 1 | module.exports = function(log, createDocMessage) { 2 | return { 3 | name: 'whatItDoes', 4 | deprecated: true, 5 | transforms(doc, tag, value) { 6 | log.warn(createDocMessage('Deprecated `@whatItDoes` tag found', doc)); 7 | log.warn('PLEASE FIX by adding the content of this tag as the first paragraph of the `@description` tag.'); 8 | return value; 9 | } 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/processors/copyContentAssets.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function copyContentAssetsProcessor(copyFolder) { 3 | return { 4 | $runBefore: ['postProcessHtml'], 5 | assetMappings: [], 6 | $process() { 7 | this.assetMappings.forEach(map => { 8 | copyFolder(map.from, map.to); 9 | }); 10 | } 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/readers/json.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Read in JSON files 3 | */ 4 | module.exports = function jsonFileReader() { 5 | return { 6 | name: 'jsonFileReader', 7 | getDocs: function(fileInfo) { 8 | 9 | // We return a single element array because content files only contain one document 10 | return [{ 11 | docType: fileInfo.baseName + '-json', 12 | data: JSON.parse(fileInfo.content), 13 | template: 'json-doc.template.json', 14 | id: fileInfo.baseName, 15 | aliases: [fileInfo.baseName, fileInfo.relativePath] 16 | }]; 17 | } 18 | }; 19 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/rendering/filterByPropertyValue.js: -------------------------------------------------------------------------------- 1 | module.exports = function filterBy() { 2 | return { 3 | name: 'filterByPropertyValue', 4 | process: function(list, property, value) { 5 | if (!list) return list; 6 | return list.filter(item => item[property] === value); 7 | } 8 | }; 9 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/rendering/toId.js: -------------------------------------------------------------------------------- 1 | module.exports = function toId() { 2 | return { 3 | name: 'toId', 4 | process: function(str) { return str.replace(/[^(a-z)(A-Z)(0-9)._-]/g, '-'); } 5 | }; 6 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/rendering/toId.spec.js: -------------------------------------------------------------------------------- 1 | var factory = require('./toId'); 2 | 3 | describe('toId filter', function() { 4 | var filter; 5 | 6 | beforeEach(function() { filter = factory(); }); 7 | 8 | it('should be called "toId"', function() { expect(filter.name).toEqual('toId'); }); 9 | 10 | it('should convert a string to make it appropriate for use as an HTML id', function() { 11 | expect(filter.process('This is a big string with €bad#characaters¢\nAnd even NewLines')) 12 | .toEqual('This-is-a-big-string-with--bad-characaters--And-even-NewLines'); 13 | }); 14 | }); -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/rendering/trimBlankLines.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return { 3 | name: 'trimBlankLines', 4 | process: function(str) { 5 | var lines = str.split(/\r?\n/); 6 | while (lines.length && (lines[0].trim() === '')) { 7 | lines.shift(); 8 | } 9 | while (lines.length && (lines[lines.length - 1].trim() === '')) { 10 | lines.pop(); 11 | } 12 | return lines.join('\n'); 13 | } 14 | }; 15 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/rendering/trimBlankLines.spec.js: -------------------------------------------------------------------------------- 1 | var factory = require('./trimBlankLines'); 2 | 3 | describe('trimBlankLines filter', function() { 4 | var filter; 5 | 6 | beforeEach(function() { filter = factory(); }); 7 | 8 | it('should be called "trimBlankLines"', 9 | function() { expect(filter.name).toEqual('trimBlankLines'); }); 10 | 11 | it('should remove empty lines from the start and end of the string', function() { 12 | expect(filter.process('\n \n\nsome text\n \nmore text\n \n')) 13 | .toEqual('some text\n \nmore text'); 14 | }); 15 | }); -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/services/copyFolder.js: -------------------------------------------------------------------------------- 1 | const {copySync} = require('fs-extra'); 2 | 3 | module.exports = function copyFolder() { 4 | return (from, to) => copySync(from, to); 5 | }; 6 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/services/filterPipes.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * This service is used by the autoLinkCode post-processors to filter out pipe docs 4 | * where the matching word is the pipe name and is not preceded by a pipe 5 | */ 6 | module.exports = function filterPipes() { 7 | return (docs, words, index) => 8 | docs.filter(doc => 9 | doc.docType !== 'pipe' || 10 | doc.pipeOptions.name !== '\'' + words[index] + '\'' || 11 | index > 0 && words[index - 1].trim() === '|'); 12 | }; 13 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-base-package/services/getImageDimensions.js: -------------------------------------------------------------------------------- 1 | const { resolve } = require('canonical-path'); 2 | const sizeOf = require('image-size'); 3 | 4 | module.exports = function getImageDimensions() { 5 | return (basePath, path) => sizeOf(resolve(basePath, path)); 6 | }; 7 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular-content-package/inline-tag-defs/anchor.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'a', 3 | description: 'A shorthand for creating heading anchors. Usage: `{@a some-id}`', 4 | handler: function(doc, tagName, tagDescription) { 5 | return ''; 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/angular.io-package/processors/cleanGeneratedFiles.js: -------------------------------------------------------------------------------- 1 | const rimraf = require('rimraf'); 2 | module.exports = function cleanGeneratedFiles() { 3 | return { 4 | $runAfter: ['writing-files'], 5 | $runBefore: ['writeFilesProcessor'], 6 | $process: function() { 7 | rimraf.sync('src/generated/{*.json}'); 8 | } 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/content-package/tag-defs/intro.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'intro'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/content-package/tag-defs/title.js: -------------------------------------------------------------------------------- 1 | module.exports = function() { 2 | return {name: 'title'}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/file-readers/example-reader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The point of this reader is to tag all the files that are going to be used as examples in the 3 | * documentation. 4 | * Later on we can extract the regions, via "shredding"; and we can also construct runnable examples 5 | * for passing to Stackblitz and the like. 6 | */ 7 | module.exports = function exampleFileReader() { 8 | return { 9 | name: 'exampleFileReader', 10 | getDocs: function(fileInfo) { 11 | return [{docType: 'example-file', content: fileInfo.content, startingLine: 1}]; 12 | } 13 | }; 14 | }; 15 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/example-map.js: -------------------------------------------------------------------------------- 1 | module.exports = function exampleMap() { 2 | return {}; 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/region-matchers/block-c.js: -------------------------------------------------------------------------------- 1 | // These kind of comments are used CSS and other languages that do not support inline comments 2 | module.exports = { 3 | regionStartMatcher: /^\s*\/\*\s*#docregion\s*(.*)\s*\*\/\s*$/, 4 | regionEndMatcher: /^\s*\/\*\s*#enddocregion\s*(.*)\s*\*\/\s*$/, 5 | plasterMatcher: /^\s*\/\*\s*#docplaster\s*(.*)\s*\*\/\s*$/, 6 | createPlasterComment: plaster => `/* ${plaster} */` 7 | }; -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/region-matchers/html.js: -------------------------------------------------------------------------------- 1 | // These kind of comments are used in HTML 2 | module.exports = { 3 | regionStartMatcher: /^\s*)?\s*$/, 4 | regionEndMatcher: /^\s*\s*$/, 5 | plasterMatcher: /^\s*\s*$/, 6 | createPlasterComment: plaster => `` 7 | }; 8 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/region-matchers/inline-c-only.js: -------------------------------------------------------------------------------- 1 | // These kind of comments are used in languages that do not support block comments, such as Jade 2 | module.exports = { 3 | regionStartMatcher: /^\s*\/\/\s*#docregion\s*(.*)\s*$/, 4 | regionEndMatcher: /^\s*\/\/\s*#enddocregion\s*(.*)\s*$/, 5 | plasterMatcher: /^\s*\/\/\s*#docplaster\s*(.*)\s*$/, 6 | createPlasterComment: plaster => `// ${plaster}` 7 | }; 8 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/region-matchers/inline-c.js: -------------------------------------------------------------------------------- 1 | // This comment type is used in C like languages such as JS, TS, Dart, etc 2 | module.exports = { 3 | regionStartMatcher: /^\s*\/\/\s*#docregion\s*(.*)\s*$/, 4 | regionEndMatcher: /^\s*\/\/\s*#enddocregion\s*(.*)\s*$/, 5 | plasterMatcher: /^\s*\/\/\s*#docplaster\s*(.*)\s*$/, 6 | createPlasterComment: plaster => `/* ${plaster} */` 7 | }; 8 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/examples-package/services/region-matchers/inline-hash.js: -------------------------------------------------------------------------------- 1 | // These type of comments are used in hash comment based languages such as bash and Yaml 2 | module.exports = { 3 | regionStartMatcher: /^\s*#\s*#docregion\s*(.*)\s*$/, 4 | regionEndMatcher: /^\s*#\s*#enddocregion\s*(.*)\s*$/, 5 | plasterMatcher: /^\s*#\s*#docplaster\s*(.*)\s*$/, 6 | createPlasterComment: plaster => `# ${plaster}` 7 | }; 8 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/links-package/services/disambiguators/disambiguateByDeprecated.js: -------------------------------------------------------------------------------- 1 | module.exports = function disambiguateByDeprecated() { 2 | return (alias, originatingDoc, docs) => docs.filter(doc => doc.deprecated === undefined); 3 | }; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/links-package/services/disambiguators/disambiguateByDeprecated.spec.js: -------------------------------------------------------------------------------- 1 | const disambiguateByDeprecated = require('./disambiguateByDeprecated')(); 2 | const docs = [ 3 | { id: 'doc1' }, 4 | { id: 'doc2', deprecated: true }, 5 | { id: 'doc3', deprecated: '' }, 6 | { id: 'doc4' }, 7 | { id: 'doc5', deprecated: 'Some text' }, 8 | ]; 9 | 10 | describe('disambiguateByDeprecated', () => { 11 | it('should filter out docs whose `deprecated` property is defined', () => { 12 | expect(disambiguateByDeprecated('alias', {}, docs)).toEqual([ 13 | { id: 'doc1' }, 14 | { id: 'doc4' }, 15 | ]); 16 | }); 17 | }); -------------------------------------------------------------------------------- /docs_app/tools/transforms/links-package/services/disambiguators/disambiguateByModule.js: -------------------------------------------------------------------------------- 1 | module.exports = function disambiguateByModule() { 2 | return (alias, originatingDoc, docs) => { 3 | const originatingModule = originatingDoc && originatingDoc.moduleDoc; 4 | if (originatingModule) { 5 | const filteredDocs = docs.filter(doc => doc.moduleDoc === originatingModule); 6 | if (filteredDocs.length > 0) { 7 | return filteredDocs; 8 | } 9 | } 10 | return docs; 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/links-package/services/getAliases.spec.js: -------------------------------------------------------------------------------- 1 | var getAliasesFactory = require('./getAliases'); 2 | 3 | describe('getAliases', function() { 4 | 5 | it('should extract all the parts from a code name', function() { 6 | 7 | var getAliases = getAliasesFactory(); 8 | 9 | expect(getAliases({id: 'module:ng.service:$http#get'})).toEqual([ 10 | '$http#get', 'service:$http#get', 'ng.$http#get', 'module:ng.$http#get', 11 | 'ng.service:$http#get', 'module:ng.service:$http#get', 'get' 12 | ]); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/post-process-package/index.js: -------------------------------------------------------------------------------- 1 | var Package = require('dgeni').Package; 2 | var base = require('dgeni-packages/base'); 3 | 4 | module.exports = new Package('post-process-package', [base]) 5 | .processor(require('./processors/post-process-html')); 6 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/remark-package/index.js: -------------------------------------------------------------------------------- 1 | var Package = require('dgeni').Package; 2 | 3 | /** 4 | * @dgPackage remark 5 | * @description Overrides the renderMarkdown service with an implementation based on remark 6 | */ 7 | module.exports = new Package('remark', ['nunjucks']) 8 | 9 | .factory(require('./services/renderMarkdown')); 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/remark-package/services/handlers/code.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Render markdown code blocks as `` tags 3 | */ 4 | module.exports = function code(h, node) { 5 | var value = node.value ? ('\n' + node.value + '\n') : ''; 6 | var lang = node.lang && node.lang.match(/^[^ \t]+(?=[ \t]|$)/); 7 | var props = {}; 8 | 9 | if (lang) { 10 | props.language = lang; 11 | } 12 | 13 | return h(node, 'code-example', props, [{ type: 'text', value }]); 14 | }; 15 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/target-package/index.js: -------------------------------------------------------------------------------- 1 | var Package = require('dgeni').Package; 2 | 3 | module.exports = new Package('target', [require('dgeni-packages/jsdoc')]) 4 | 5 | .factory(require('./services/targetEnvironments')) 6 | .factory(require('./inline-tag-defs/target')) 7 | 8 | .config(function(inlineTagProcessor, targetInlineTagDef) { 9 | inlineTagProcessor.inlineTagDefinitions.push(targetInlineTagDef); 10 | }); 11 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/const.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'var.template.html' -%} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/decorator.template.html: -------------------------------------------------------------------------------- 1 | {% import "lib/memberHelpers.html" as memberHelper -%} 2 | {% import "lib/paramList.html" as params -%} 3 | {% extends 'export-base.template.html' %} 4 | 5 | {% block overview %}{% include "includes/decorator-overview.html" %}{% endblock %} 6 | {% block details %} 7 | {% include "includes/description.html" %} 8 | {$ memberHelper.renderProperties(doc.members, 'metadata-members', 'metadata-member', 'Options') $} 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/deprecation.template.html: -------------------------------------------------------------------------------- 1 | {% block overview %} 2 |
3 |

Deprecations

4 |

The API listed below will be removed in the next major release!

5 | 6 | {% for deprecation in doc.data %} 7 | 8 | 11 | 14 | 15 | {% endfor %} 16 |
9 | {$ deprecation.name $} 10 | 12 | {$ deprecation.text $} 13 |
17 |
18 | {% endblock %} 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/directive.template.html: -------------------------------------------------------------------------------- 1 | {% import "lib/directiveHelpers.html" as directiveHelper -%} 2 | {% import "lib/paramList.html" as params -%} 3 | {% extends 'class.template.html' -%} 4 | 5 | {% block overview %}{% include "includes/directive-overview.html" %}{% endblock %} 6 | {% block additional -%} 7 | {% include "includes/selectors.html" %} 8 | {$ directiveHelper.renderBindings(doc.inputs, 'inputs', 'input', 'Inputs') $} 9 | {$ directiveHelper.renderBindings(doc.outputs, 'outputs', 'output', 'Outputs') $} 10 | {% include "includes/export-as.html" %} 11 | {% endblock %} 12 | 13 | {% block annotations %}{% endblock %} 14 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/enum.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'class.template.html' -%} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/export-base.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.template.html' -%} 2 | 3 | {% block body %} 4 | {% include "includes/renamed-exports.html" %} 5 |

{$ doc.shortDescription | marked $}

6 | {% include "includes/security-notes.html" %} 7 | {% include "includes/deprecation.html" %} 8 | {% block overview %}{% endblock %} 9 | {% block details %}{% endblock %} 10 | {% include "includes/usageNotes.html" %} 11 | {% include "includes/see-also.html" %} 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/annotations.html: -------------------------------------------------------------------------------- 1 | {%- if doc.decorators.length %} 2 |
3 |

Annotations

4 | {%- for decorator in doc.decorators %} 5 | @{$ decorator.name $}({$ decorator.arguments $}) 6 | {% if not decorator.notYetDocumented %}{$ decorator.description | marked $}{% endif %} 7 | {% endfor %} 8 |
9 | {% endif %} 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/class-overview.html: -------------------------------------------------------------------------------- 1 | {% import "lib/memberHelpers.html" as memberHelper -%} 2 | 3 |
4 | 5 | {% if doc.isAbstract %}abstract {% endif%}{$ doc.docType $} {$ doc.name $}{$ doc.typeParams | escape $}{$ memberHelper.renderHeritage(doc) $} {{$ memberHelper.renderMembers(doc) $} 6 | } 7 | 8 | {$ descendants.renderDescendants(doc, 'class', 'Subclasses') $} 9 |
10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/decorator-overview.html: -------------------------------------------------------------------------------- 1 | {% import "lib/memberHelpers.html" as memberHelper -%} 2 | 3 | {% if doc.members.length %} 4 |
5 | 6 | @{$ doc.name $}{$ doc.typeParams | escape $}({ {$ memberHelper.renderMembers(doc) $} 7 | }) 8 | 9 |
10 | {% endif %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/deprecation.html: -------------------------------------------------------------------------------- 1 | {% if doc.deprecated %} 2 |
3 |

Deprecation Notes

4 | {$ doc.deprecated | marked $} 5 |
6 | {% endif %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/description.html: -------------------------------------------------------------------------------- 1 | {% if doc.description %} 2 |
3 |

Description

4 | {$ doc.description | trimBlankLines | marked $} 5 |
6 | {% endif %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/export-as.html: -------------------------------------------------------------------------------- 1 | {%- if doc.exportAs %} 2 |
3 |

Exported as

4 |
5 | {$ doc.exportAs $} 6 |
7 |
8 | {% endif %} 9 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/interface-overview.html: -------------------------------------------------------------------------------- 1 | {% import "lib/memberHelpers.html" as memberHelper -%} 2 | 3 |
4 | 5 | interface {$ doc.name $}{$ doc.typeParams | escape $}{$ memberHelper.renderHeritage(doc) $} {{$ memberHelper.renderMembers(doc) $} 6 | } 7 | 8 | {$ descendants.renderDescendants(doc, 'interface', 'Child Interfaces') $} 9 | {$ descendants.renderDescendants(doc, 'class', 'Class Implementations') $} 10 |
-------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/renamed-exports.html: -------------------------------------------------------------------------------- 1 | {% if doc.renamedDuplicates %} 2 |
3 | Aliased as 4 | {% for d in doc.renamedDuplicates %} 5 | {$ d.name $}{% if not loop.last %}, {% endif %} 6 | {% endfor %} 7 |
8 | {% endif %} 9 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/security-notes.html: -------------------------------------------------------------------------------- 1 | {% if doc.security %} 2 |
3 |

Security Risk

4 | {$ doc.security | marked $} 5 |
6 | {% endif %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/see-also.html: -------------------------------------------------------------------------------- 1 | {%- if doc.see.length %} 2 |
3 |

See Also

4 |
    5 | {% for see in doc.see %} 6 |
  • {$ see | marked $}
  • {% endfor %} 7 |
8 |
9 | {% endif %} 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/selectors.html: -------------------------------------------------------------------------------- 1 | {%- if doc.selector %} 2 |
3 |

Selectors

4 | 5 | {%- for selector in doc.selector.split(',') %} 6 | {$ selector $}{% endfor %} 7 | 8 |
9 | {% endif %} 10 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/includes/usageNotes.html: -------------------------------------------------------------------------------- 1 | {% if doc.usageNotes %} 2 |
3 |

Usage Notes

4 | {$ doc.usageNotes | marked $} 5 |
6 | {% endif %} 7 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/let.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'var.template.html' -%} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/lib/directiveHelpers.html: -------------------------------------------------------------------------------- 1 | {% macro renderBindings(bindings, cssContainerClass, cssItemClass, title) -%} 2 | {% if bindings.length %} 3 |
4 |

{$ title $}

5 | {% for binding in bindings %} 6 |
7 | {$ binding.bindingName $} bound to {$ binding.memberDoc.containerDoc.name $}.{$ binding.propertyName $} 8 | {#{$ binding.memberDoc.description | trimBlankLines | marked $}#} 9 |
10 | {% endfor %} 11 |
12 | {% endif %} 13 | {%- endmacro %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/module.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.template.html' -%} 2 | 3 | {% block body -%} 4 | 5 | {% include "includes/deprecation.html" %} 6 | {% include "includes/description.html" %} 7 | 8 |
9 |
    10 | {% for export in doc.exports -%} 11 | {% if not export.duplicateOf %} 12 |
  • {$ export.name $}
  • 13 | {% endif %} 14 | {%- endfor %} 15 |
16 |
17 | 18 | {%- endblock %} 19 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/pipe.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' -%} 2 | 3 | {% block overview %} 4 | {% include "includes/pipe-overview.html" %} 5 | {% endblock %} 6 | {% block details %} 7 | {% include "includes/description.html" %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/type-alias.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' %} 2 | 3 | {% block overview %} 4 |
5 | 6 | type {$ doc.name $}{$ doc.typeParameters | escape $}{% if doc.typeDefinition %} = {$ doc.typeDefinition | escape $}{% endif %}; 7 | 8 |
9 | {% endblock %} 10 | 11 | {% block details %} 12 | {% include "includes/description.html" %} 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/value-module.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'interface.template.html' %} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/api/var.template.html: -------------------------------------------------------------------------------- 1 | {% extends 'export-base.template.html' %} 2 | 3 | {% block overview %} 4 | 5 | const {$ doc.name $}: {$ doc.symbolTypeName or 'any' $}; 6 | 7 | {% endblock %} 8 | 9 | {% block details %} 10 | {% include "includes/description.html" %} 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/content.template.html: -------------------------------------------------------------------------------- 1 | {% if doc.title %}{$ ('# ' + doc.title.trim()) | marked $}{% endif %} 2 |
3 | {$ doc.description | marked $} 4 |
-------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/data-module.template.js: -------------------------------------------------------------------------------- 1 | /* tslint:disable quotemark */ 2 | /* TODO: rework this so that it has single quotes */ 3 | export const {$ doc.serviceName $} = {$ doc.value | json $}; 4 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/example-region.template.html: -------------------------------------------------------------------------------- 1 | {$ doc.contents | escape $} 2 | -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/json-doc.template.json: -------------------------------------------------------------------------------- 1 | {$ doc.data | json $} -------------------------------------------------------------------------------- /docs_app/tools/transforms/templates/sitemap.template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {%- for url in doc.urls %} 4 | 5 | https://rxjs-dev.firebaseapp.com/{$ url $} 6 | {% endfor %} 7 | -------------------------------------------------------------------------------- /docs_app/tsconfig.docs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "noUnusedParameters": false, 6 | "noUnusedLocals": false, 7 | "target": "es6" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /integration/side-effects/README.md: -------------------------------------------------------------------------------- 1 | This test checks if the side effects for loading RxJs packages have changed using . 2 | 3 | Running `npm test:side-effects` will check all ES modules listed in `side-effects.json`. 4 | 5 | Running `npm test:side-effects:update` will update any changed side effects. 6 | 7 | To add a new ES module to this test, add a new entry in `side-effects.json`. 8 | 9 | Usually the ESM and FESM should have the same output, but retained objects that were renamed during the flattening step will leave behind a different name. 10 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/ajax.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/fetch.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/index.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/operators.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/testing.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm/websocket.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/ajax.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/fetch.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/index.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/operators.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/testing.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm2015/websocket.js: -------------------------------------------------------------------------------- 1 | var NotificationKind; 2 | 3 | (function(NotificationKind) { 4 | NotificationKind["NEXT"] = "N"; 5 | NotificationKind["ERROR"] = "E"; 6 | NotificationKind["COMPLETE"] = "C"; 7 | })(NotificationKind || (NotificationKind = {})); 8 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/ajax.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/fetch.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/index.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | 3 | var NotificationKind; 4 | 5 | (function(NotificationKind) { 6 | NotificationKind["NEXT"] = "N"; 7 | NotificationKind["ERROR"] = "E"; 8 | NotificationKind["COMPLETE"] = "C"; 9 | })(NotificationKind || (NotificationKind = {})); 10 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/operators.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | 3 | var NotificationKind; 4 | 5 | (function(NotificationKind) { 6 | NotificationKind["NEXT"] = "N"; 7 | NotificationKind["ERROR"] = "E"; 8 | NotificationKind["COMPLETE"] = "C"; 9 | })(NotificationKind || (NotificationKind = {})); 10 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/testing.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | 3 | var NotificationKind; 4 | 5 | (function(NotificationKind) { 6 | NotificationKind["NEXT"] = "N"; 7 | NotificationKind["ERROR"] = "E"; 8 | NotificationKind["COMPLETE"] = "C"; 9 | })(NotificationKind || (NotificationKind = {})); 10 | -------------------------------------------------------------------------------- /integration/side-effects/snapshots/esm5/websocket.js: -------------------------------------------------------------------------------- 1 | import "tslib"; 2 | 3 | var NotificationKind; 4 | 5 | (function(NotificationKind) { 6 | NotificationKind["NEXT"] = "N"; 7 | NotificationKind["ERROR"] = "E"; 8 | NotificationKind["COMPLETE"] = "C"; 9 | })(NotificationKind || (NotificationKind = {})); 10 | -------------------------------------------------------------------------------- /integration/systemjs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "moduleResolution": "classic", 5 | "target": "es2015", 6 | "outDir": "../../dist/integration/", 7 | "rootDir": "." 8 | }, 9 | "exclude": [ 10 | "node_modules" 11 | ] 12 | } -------------------------------------------------------------------------------- /resources/CI-CD/README.md: -------------------------------------------------------------------------------- 1 | This folder contains all resources, docs licenses or other information 2 | related to the corporate identity and corporate design of this project. 3 | -------------------------------------------------------------------------------- /spec-dtslint/index.d.ts: -------------------------------------------------------------------------------- 1 | // TypeScript Version: 2.8 2 | -------------------------------------------------------------------------------- /spec-dtslint/observables/dom/animationFrames-spec.ts: -------------------------------------------------------------------------------- 1 | import { animationFrames } from 'rxjs'; 2 | 3 | it('should just be an observable of numbers', () => { 4 | const o$ = animationFrames(); // $ExpectType Observable 5 | }); 6 | 7 | it('should allow the passing of a timestampProvider', () => { 8 | const o$ = animationFrames(performance); // $ExpectType Observable 9 | }); 10 | 11 | it('should not allow the passing of an invalid timestamp provider', () => { 12 | const o$ = animationFrames({ now() { return 'wee' } }); // $ExpectError 13 | }); -------------------------------------------------------------------------------- /spec-dtslint/observables/empty-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, empty, animationFrameScheduler, EMPTY } from 'rxjs'; 2 | 3 | it('should infer correctly with no parameter', () => { 4 | const a = empty(); // $ExpectType Observable 5 | }); 6 | 7 | it('should support scheduler parameter', () => { 8 | const a = empty(animationFrameScheduler); // $ExpectType Observable 9 | }); 10 | 11 | it('should always infer empty observable', () => { 12 | // Empty Observable that replace empty static function 13 | const a = EMPTY; // $ExpectType Observable 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/observables/interval-spec.ts: -------------------------------------------------------------------------------- 1 | import { interval, animationFrameScheduler } from 'rxjs'; 2 | 3 | it('should infer correctly with number param', () => { 4 | const a = interval(1); // $ExpectType Observable 5 | }); 6 | 7 | it('should infer correctly with no param', () => { 8 | const a = interval(); // $ExpectType Observable 9 | }); 10 | 11 | it('should support scheduler', () => { 12 | const a = interval(1, animationFrameScheduler); // $ExpectType Observable 13 | }); 14 | -------------------------------------------------------------------------------- /spec-dtslint/observables/never-spec.ts: -------------------------------------------------------------------------------- 1 | import { never } from 'rxjs'; 2 | 3 | it('should not support any parameter', () => { 4 | const a = never(1); // $ExpectError 5 | }); 6 | 7 | it('should infer never', () => { 8 | const a = never(); // $ExpectType Observable 9 | }); 10 | -------------------------------------------------------------------------------- /spec-dtslint/observables/range-spec.ts: -------------------------------------------------------------------------------- 1 | import { range, animationFrameScheduler } from 'rxjs'; 2 | 3 | it('should infer correctly with number parameters', () => { 4 | const a = range(1, 2); // $ExpectType Observable 5 | }); 6 | 7 | it('should accept only number parameters', () => { 8 | const a = range('a', 1); // $ExpectError 9 | }); 10 | 11 | it('should allow 1 parameter', () => { 12 | const a = range(1); // $ExpectType Observable 13 | }); 14 | 15 | it('should support scheduler', () => { 16 | const a = range(1, 2, animationFrameScheduler); // $ExpectType Observable 17 | }); 18 | -------------------------------------------------------------------------------- /spec-dtslint/observables/throwError-spec.ts: -------------------------------------------------------------------------------- 1 | import { throwError, animationFrameScheduler } from 'rxjs'; 2 | 3 | it('should accept any type and return never observable', () => { 4 | const a = throwError(1); // $ExpectType Observable 5 | const b = throwError('a'); // $ExpectType Observable 6 | const c = throwError({a: 1}); // $ExpectType Observable 7 | }); 8 | 9 | it('should support scheduler', () => { 10 | const a = throwError(1, animationFrameScheduler); // $ExpectType Observable 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/buffer-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { buffer } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(buffer(of('foo'))); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(buffer()); // $ExpectError 10 | const p = of(1, 2, 3).pipe(buffer(6)); // $ExpectError 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/bufferWhen-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { bufferWhen } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(bufferWhen(() => of('a', 'b', 'c'))); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(bufferWhen()); // $ExpectError 10 | }); 11 | 12 | it('should enforce type of closingSelector', () => { 13 | const o = of(1, 2, 3).pipe(bufferWhen(of('a', 'b', 'c'))); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/concatAll-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { concatAll } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(of(1, 2, 3)).pipe(concatAll()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(concatAll()); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/debounce-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, timer } from 'rxjs'; 2 | import { debounce } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(debounce(() => timer(47))); // $ExpectType Observable 6 | }); 7 | 8 | it('should infer correctly with a Promise', () => { 9 | const o = of(1, 2, 3).pipe(debounce(() => new Promise(() => {}))); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce types', () => { 13 | const o = of(1, 2, 3).pipe(debounce()); // $ExpectError 14 | const p = of(1, 2, 3).pipe(debounce(() => {})); // $ExpectError 15 | }); 16 | -------------------------------------------------------------------------------- /spec-dtslint/operators/dematerialize-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, Notification } from 'rxjs'; 2 | import { dematerialize } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(Notification.createNext('foo')).pipe(dematerialize()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(Notification.createNext('foo')).pipe(dematerialize(() => {})); // $ExpectError 10 | }); 11 | 12 | it('should enforce Notification source', () => { 13 | const o = of('foo').pipe(dematerialize()); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/finalize-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { finalize } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(finalize(() => {})); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(finalize()); // $ExpectError 10 | const p = of(1, 2, 3).pipe(finalize((value => {}))); // $ExpectError 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/ignoreElements-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { ignoreElements } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(ignoreElements()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(ignoreElements('nope')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/isEmpty-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { isEmpty } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(isEmpty()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(isEmpty('nope')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/mapTo-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { mapTo } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(mapTo(47)); // $ExpectType Observable 6 | }); 7 | 8 | it('should infer correctly when returning a different type', () => { 9 | const o = of(1, 2, 3).pipe(mapTo('carrot')); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce types', () => { 13 | const o = of(1, 2, 3).pipe(mapTo()); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/materialize-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { materialize } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('foo').pipe(materialize()); // $ExpectType Observable> 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('foo').pipe(materialize(() => {})); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/mergeAll-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { mergeAll } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(of(1, 2, 3)).pipe(mergeAll()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(mergeAll()); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/pairwise-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { pairwise } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('apple', 'banana', 'peach').pipe(pairwise()); // $ExpectType Observable<[string, string]> 6 | }); 7 | 8 | it('should infer correctly with multiple types', () => { 9 | const o = of('apple', 4, 'peach', 7).pipe(pairwise()); // $ExpectType Observable<[string | number, string | number]> 10 | }); 11 | 12 | it('should enforce types', () => { 13 | const o = of('apple', 'banana', 'peach').pipe(pairwise('lemon')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/publishBehavior-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { publishBehavior } from 'rxjs/operators'; 3 | 4 | it('should enforce parameter', () => { 5 | const a = of(1, 2, 3).pipe(publishBehavior()); // $ExpectError 6 | }); 7 | 8 | it('should infer correctly with parameter', () => { 9 | const a = of(1, 2, 3).pipe(publishBehavior(4)); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce type on parameter', () => { 13 | const a = of(1, 2, 3).pipe(publishBehavior('a')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/publishLast-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { publishLast } from 'rxjs/operators'; 3 | 4 | it('should accept empty parameter', () => { 5 | const a = of(1, 2, 3).pipe(publishLast()); // $ExpectType Observable 6 | }); 7 | 8 | it('should infer when type is specified', () => { 9 | const a = of(1, 2, 3).pipe(publishLast()); // $ExpectType Observable 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/refCount-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { refCount } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const a = of(1, 2, 3).pipe(refCount()); // $ExpectType Observable 6 | }); 7 | 8 | it('should not accept any parameters', () => { 9 | const a = of(1, 2, 3).pipe(refCount(1)); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/repeat-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { repeat } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('a', 'b', 'c').pipe(repeat()); // $ExpectType Observable 6 | }); 7 | 8 | it('should accept a count parameter', () => { 9 | const o = of('a', 'b', 'c').pipe(repeat(47)); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce types', () => { 13 | const o = of('a', 'b', 'c').pipe(repeat('aa')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/retry-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { retry } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(retry()); // $ExpectType Observable 6 | }); 7 | 8 | it('should accept a count parameter', () => { 9 | const o = of(1, 2, 3).pipe(retry(47)); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce types', () => { 13 | const o = of(1, 2, 3).pipe(retry('aa')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/sample-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { sample } from 'rxjs/operators'; 3 | 4 | it('should enforce parameter', () => { 5 | const a = of(1, 2, 3).pipe(sample()); // $ExpectError 6 | }); 7 | 8 | it('should accept observable as notifier parameter', () => { 9 | const a = of(1, 2, 3).pipe(sample(of(4))); // $ExpectType Observable 10 | const b = of(1, 2, 3).pipe(sample(of('a'))); // $ExpectType Observable 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/sampleTime-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, asyncScheduler } from 'rxjs'; 2 | import { sampleTime } from 'rxjs/operators'; 3 | 4 | it('should enforce period parameter', () => { 5 | const a = of(1, 2, 3).pipe(sampleTime()); // $ExpectError 6 | }); 7 | 8 | it('should infer correctly', () => { 9 | const a = of(1, 2, 3).pipe(sampleTime(1000)); // $ExpectType Observable 10 | }); 11 | 12 | it('should accept scheduler parameter', () => { 13 | const a = of(1, 2, 3).pipe(sampleTime(1000, asyncScheduler)); // $ExpectType Observable 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/share-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { share } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('foo', 'bar', 'baz').pipe(share()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('foo', 'bar', 'baz').pipe(share('abc')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/skip-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { skip } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('foo', 'bar', 'baz').pipe(skip(7)); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('foo', 'bar', 'baz').pipe(skip()); // $ExpectError 10 | const p = of('foo', 'bar', 'baz').pipe(skip('7')); // $ExpectError 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/skipLast-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { skipLast } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('foo', 'bar', 'baz').pipe(skipLast(7)); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('foo', 'bar', 'baz').pipe(skipLast()); // $ExpectError 10 | const p = of('foo', 'bar', 'baz').pipe(skipLast('7')); // $ExpectError 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/skipUntil-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { skipUntil } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('foo', 'bar', 'baz').pipe(skipUntil(of(4, 'RxJS', 7))); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('foo', 'bar', 'baz').pipe(skipUntil()); // $ExpectError 10 | const p = of('foo', 'bar', 'baz').pipe(skipUntil('7')); // $ExpectError 11 | }); 12 | -------------------------------------------------------------------------------- /spec-dtslint/operators/switchAll-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { switchAll } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(of(1, 2, 3)).pipe(switchAll()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(switchAll()); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/take-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { take } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(take(7)); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(take('7')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/takeLast-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { takeLast } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(takeLast(7)); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(takeLast('7')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/takeUntil-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { takeUntil } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(takeUntil(of(1, 2, 3))); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1, 2, 3).pipe(takeUntil(value => value < 3)); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/throwIfEmpty-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { throwIfEmpty } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('a', 'b', 'c').pipe(throwIfEmpty()); // $ExpectType Observable 6 | }); 7 | 8 | it('should support an errorFactory', () => { 9 | const o = of('a', 'b', 'c').pipe(throwIfEmpty(() => 47)); // $ExpectType Observable 10 | }); 11 | 12 | it('should enforce errorFactory type', () => { 13 | const o = of('a', 'b', 'c').pipe(throwIfEmpty('nope')); // $ExpectError 14 | const p = of('a', 'b', 'c').pipe(throwIfEmpty(x => 47)); // $ExpectError 15 | }); 16 | -------------------------------------------------------------------------------- /spec-dtslint/operators/timeInterval-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, asyncScheduler } from 'rxjs'; 2 | import { timeInterval } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('a', 'b', 'c').pipe(timeInterval()); // $ExpectType Observable> 6 | }); 7 | 8 | it('should support a scheduler', () => { 9 | const o = of('a', 'b', 'c').pipe(timeInterval(asyncScheduler)); // $ExpectType Observable> 10 | }); 11 | 12 | it('should enforce scheduler type', () => { 13 | const o = of('a', 'b', 'c').pipe(timeInterval('nope')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/timestamp-spec.ts: -------------------------------------------------------------------------------- 1 | import { of, asyncScheduler } from 'rxjs'; 2 | import { timestamp } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('a', 'b', 'c').pipe(timestamp()); // $ExpectType Observable> 6 | }); 7 | 8 | it('should support a scheduler', () => { 9 | const o = of('a', 'b', 'c').pipe(timestamp(asyncScheduler)); // $ExpectType Observable> 10 | }); 11 | 12 | it('should enforce scheduler type', () => { 13 | const o = of('a', 'b', 'c').pipe(timestamp('nope')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/operators/toArray-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { toArray } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of(1, 2, 3).pipe(toArray()); // $ExpectType Observable 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of(1).pipe(toArray('')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/window-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { window } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | of(1).pipe(window(of('1'))); // $ExpectType Observable> 6 | }); 7 | 8 | it('should enforce types', () => { 9 | of(1).pipe(window('')); // $ExpectError 10 | }); 11 | -------------------------------------------------------------------------------- /spec-dtslint/operators/windowCount-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { windowCount } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | of('test').pipe(windowCount(1)); // $ExpectType Observable> 6 | of('test').pipe(windowCount(1, 2)); // $ExpectType Observable> 7 | }); 8 | 9 | it('should enforce windowSize type', () => { 10 | of(1).pipe(windowCount()); // $ExpectError 11 | of(1).pipe(windowCount('1')); // $ExpectError 12 | }); 13 | 14 | it('should enforce startEveryWindow type', () => { 15 | of(1).pipe(windowCount(1, '2')); // $ExpectError 16 | }); 17 | -------------------------------------------------------------------------------- /spec-dtslint/operators/windowWhen-spec.ts: -------------------------------------------------------------------------------- 1 | import { of } from 'rxjs'; 2 | import { windowWhen } from 'rxjs/operators'; 3 | 4 | it('should infer correctly', () => { 5 | const o = of('a', 'b', 'c').pipe(windowWhen(() => of(1, 2, 3))); // $ExpectType Observable> 6 | }); 7 | 8 | it('should enforce types', () => { 9 | const o = of('a', 'b', 'c').pipe(windowWhen()); // $ExpectError 10 | }); 11 | 12 | it('should enforce closingSelector type', () => { 13 | const o = of('a', 'b', 'c').pipe(windowWhen('nope')); // $ExpectError 14 | }); 15 | -------------------------------------------------------------------------------- /spec-dtslint/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "lib": ["esnext", "dom"], 5 | "module": "commonjs", 6 | "noEmit": true, 7 | "paths": { 8 | "rxjs": ["../dist/types"], 9 | "rxjs/operators": ["../dist/types/operators"] 10 | }, 11 | "skipLibCheck": true, 12 | "strict": true, 13 | "target": "esnext" 14 | } 15 | } -------------------------------------------------------------------------------- /spec-dtslint/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rulesDirectory": ["../node_modules/tslint-etc/dist/rules"], 3 | "rules": { 4 | "expect-deprecation": true, 5 | "expect-type": true, 6 | "no-dtslint-typo": true 7 | } 8 | } -------------------------------------------------------------------------------- /spec/ajax/index-spec.ts: -------------------------------------------------------------------------------- 1 | import * as index from 'rxjs/ajax'; 2 | import { expect } from 'chai'; 3 | 4 | describe('index', () => { 5 | it('should export static ajax observable creator functions', () => { 6 | expect(index.ajax).to.exist; 7 | }); 8 | 9 | it('should export Ajax data classes', () => { 10 | expect(index.AjaxResponse).to.exist; 11 | expect(index.AjaxError).to.exist; 12 | expect(index.AjaxTimeoutError).to.exist; 13 | // Interfaces can be checked by creating a variable of that type 14 | let ajaxRequest: index.AjaxRequest; 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /spec/config-spec.ts: -------------------------------------------------------------------------------- 1 | import { config } from '../src/internal/config'; 2 | import { expect } from 'chai'; 3 | 4 | describe('config', () => { 5 | it('should have a Promise property that defaults to nothing', () => { 6 | expect(config).to.have.property('Promise'); 7 | expect(config.Promise).to.be.undefined; 8 | }); 9 | }); -------------------------------------------------------------------------------- /spec/helpers/polyfills.ts: -------------------------------------------------------------------------------- 1 | if (typeof Symbol !== 'function') { 2 | let id = 0; 3 | const symbolFn: any = (description: string) => 4 | `Symbol_${id++} ${description} (RxJS Testing Polyfill)`; 5 | 6 | Symbol = symbolFn; 7 | } 8 | 9 | if (!(Symbol as any).observable) { 10 | (Symbol as any).observable = Symbol('Symbol.observable polyfill from RxJS Testing'); 11 | } 12 | -------------------------------------------------------------------------------- /spec/observables/never-spec.ts: -------------------------------------------------------------------------------- 1 | import { NEVER } from 'rxjs'; 2 | import { expect } from 'chai'; 3 | import { expectObservable } from '../helpers/marble-testing'; 4 | 5 | declare const asDiagram: any; 6 | 7 | /** @test {NEVER} */ 8 | describe('NEVER', () => { 9 | asDiagram('NEVER')('should create a cold observable that never emits', () => { 10 | const expected = '-'; 11 | const e1 = NEVER; 12 | expectObservable(e1).toBe(expected); 13 | }); 14 | 15 | it('should return the same instance every time', () => { 16 | expect(NEVER).to.equal(NEVER); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /spec/support/default.opts: -------------------------------------------------------------------------------- 1 | --require spec/support/mocha-path-mappings.js 2 | --require dist/spec/helpers/polyfills.js 3 | --require dist/spec/helpers/testScheduler-ui.js 4 | --ui dist/spec/helpers/testScheduler-ui.js 5 | 6 | --reporter dot 7 | 8 | --check-leaks 9 | --globals WebSocket,FormData,XDomainRequest,ActiveXObject,fetch,AbortController 10 | 11 | --recursive 12 | --timeout 5000 13 | -------------------------------------------------------------------------------- /spec/support/tests2png.opts: -------------------------------------------------------------------------------- 1 | --require ts-node/register 2 | --require tsconfig-paths/register 3 | --require spec/helpers/polyfills.ts 4 | --require source-map-support/register 5 | --require spec/helpers/tests2png/diagram-test-runner.ts 6 | --require spec/helpers/testScheduler-ui.ts 7 | --ui spec/helpers/testScheduler-ui.ts 8 | 9 | --reporter dot 10 | 11 | --recursive 12 | --timeout 5000 13 | -------------------------------------------------------------------------------- /spec/testing/index-spec.ts: -------------------------------------------------------------------------------- 1 | import * as index from 'rxjs/testing'; 2 | import { expect } from 'chai'; 3 | 4 | describe('index', () => { 5 | it('should export TestScheduler', () => { 6 | expect(index.TestScheduler).to.exist; 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /spec/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "outDir": "../dist/spec", 6 | "target": "es5", 7 | "module": "commonjs" 8 | }, 9 | "references": [ 10 | { 11 | "path": "../src/tsconfig.types.json" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /spec/util/ArgumentOutOfRangeError-spec.ts: -------------------------------------------------------------------------------- 1 | import { expect } from 'chai'; 2 | import { ArgumentOutOfRangeError } from 'rxjs'; 3 | 4 | /** @test {ArgumentOutOfRangeError} */ 5 | describe('ArgumentOutOfRangeError', () => { 6 | const error = new ArgumentOutOfRangeError(); 7 | it('Should have a name', () => { 8 | expect(error.name).to.be.equal('ArgumentOutOfRangeError'); 9 | }); 10 | it('Should have a message', () => { 11 | expect(error.message).to.be.equal('argument out of range'); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /spec/util/EmptyError-spec.ts: -------------------------------------------------------------------------------- 1 | import { expect } from 'chai'; 2 | import { EmptyError } from 'rxjs'; 3 | 4 | /** @test {EmptyError} */ 5 | describe('EmptyError', () => { 6 | const error = new EmptyError(); 7 | it('Should have a name', () => { 8 | expect(error.name).to.be.equal('EmptyError'); 9 | }); 10 | it('Should have a message', () => { 11 | expect(error.message).to.be.equal('no elements in sequence'); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /spec/util/ObjectUnsubscribedError-spec.ts: -------------------------------------------------------------------------------- 1 | import { expect } from 'chai'; 2 | import { ObjectUnsubscribedError } from 'rxjs'; 3 | 4 | /** @test {ObjectUnsubscribedError} */ 5 | describe('ObjectUnsubscribedError', () => { 6 | const error = new ObjectUnsubscribedError(); 7 | it('Should have a name', () => { 8 | expect(error.name).to.be.equal('ObjectUnsubscribedError'); 9 | }); 10 | it('Should have a message', () => { 11 | expect(error.message).to.be.equal('object unsubscribed'); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /spec/util/TimeoutError-spec.ts: -------------------------------------------------------------------------------- 1 | import { expect } from 'chai'; 2 | import { TimeoutError } from 'rxjs'; 3 | 4 | /** @test {TimeoutError} */ 5 | describe('TimeoutError', () => { 6 | const error = new TimeoutError(); 7 | it('Should have a name', () => { 8 | expect(error.name).to.be.equal('TimeoutError'); 9 | }); 10 | it('Should have a message', () => { 11 | expect(error.message).to.be.equal('Timeout has occurred'); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /spec/websocket/index-spec.ts: -------------------------------------------------------------------------------- 1 | import * as index from 'rxjs/webSocket'; 2 | import { expect } from 'chai'; 3 | 4 | describe('index', () => { 5 | it('should export static websocket subject creator functions', () => { 6 | expect(index.webSocket).to.exist; 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /src/Rx.global.js: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | root.Rx = factory(); 3 | })(window || global || this, function () { 4 | return require('../dist/package/Rx'); 5 | }); -------------------------------------------------------------------------------- /src/ajax/index.ts: -------------------------------------------------------------------------------- 1 | export { ajax } from '../internal/observable/dom/ajax'; 2 | export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; 3 | -------------------------------------------------------------------------------- /src/fetch/index.ts: -------------------------------------------------------------------------------- 1 | export { fromFetch } from '../internal/observable/dom/fetch'; 2 | -------------------------------------------------------------------------------- /src/internal/Observer.ts: -------------------------------------------------------------------------------- 1 | import { Observer } from './types'; 2 | import { config } from './config'; 3 | import { hostReportError } from './util/hostReportError'; 4 | 5 | export const empty: Observer = { 6 | closed: true, 7 | next(value: any): void { /* noop */}, 8 | error(err: any): void { 9 | if (config.useDeprecatedSynchronousErrorHandling) { 10 | throw err; 11 | } else { 12 | hostReportError(err); 13 | } 14 | }, 15 | complete(): void { /*noop*/ } 16 | }; 17 | -------------------------------------------------------------------------------- /src/internal/Operator.ts: -------------------------------------------------------------------------------- 1 | import { Subscriber } from './Subscriber'; 2 | import { TeardownLogic } from './types'; 3 | 4 | export interface Operator { 5 | call(subscriber: Subscriber, source: any): TeardownLogic; 6 | } 7 | -------------------------------------------------------------------------------- /src/internal/observable/fromArray.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | import { SchedulerLike } from '../types'; 3 | import { subscribeToArray } from '../util/subscribeToArray'; 4 | import { scheduleArray } from '../scheduled/scheduleArray'; 5 | 6 | export function fromArray(input: ArrayLike, scheduler?: SchedulerLike) { 7 | if (!scheduler) { 8 | return new Observable(subscribeToArray(input)); 9 | } else { 10 | return scheduleArray(input, scheduler); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/internal/observable/fromIterable.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | import { SchedulerLike } from '../types'; 3 | import { subscribeToIterable } from '../util/subscribeToIterable'; 4 | import { scheduleIterable } from '../scheduled/scheduleIterable'; 5 | 6 | export function fromIterable(input: Iterable, scheduler?: SchedulerLike) { 7 | if (!input) { 8 | throw new Error('Iterable cannot be null'); 9 | } 10 | if (!scheduler) { 11 | return new Observable(subscribeToIterable(input)); 12 | } else { 13 | return scheduleIterable(input, scheduler); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/internal/observable/fromObservable.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | import { subscribeToObservable } from '../util/subscribeToObservable'; 3 | import { InteropObservable, SchedulerLike } from '../types'; 4 | import { scheduleObservable } from '../scheduled/scheduleObservable'; 5 | 6 | export function fromObservable(input: InteropObservable, scheduler?: SchedulerLike) { 7 | if (!scheduler) { 8 | return new Observable(subscribeToObservable(input)); 9 | } else { 10 | return scheduleObservable(input, scheduler); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/internal/observable/fromPromise.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | import { SchedulerLike } from '../types'; 3 | import { subscribeToPromise } from '../util/subscribeToPromise'; 4 | import { schedulePromise } from '../scheduled/schedulePromise'; 5 | 6 | export function fromPromise(input: PromiseLike, scheduler?: SchedulerLike) { 7 | if (!scheduler) { 8 | return new Observable(subscribeToPromise(input)); 9 | } else { 10 | return schedulePromise(input, scheduler); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/internal/operators/publishBehavior.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | import { BehaviorSubject } from '../BehaviorSubject'; 3 | import { multicast } from './multicast'; 4 | import { ConnectableObservable } from '../observable/ConnectableObservable'; 5 | import { UnaryFunction } from '../types'; 6 | 7 | /** 8 | * @param value 9 | * @return {ConnectableObservable} 10 | * @name publishBehavior 11 | */ 12 | export function publishBehavior(value: T): UnaryFunction, ConnectableObservable> { 13 | return (source: Observable) => multicast(new BehaviorSubject(value))(source) as ConnectableObservable; 14 | } 15 | -------------------------------------------------------------------------------- /src/internal/scheduler/QueueScheduler.ts: -------------------------------------------------------------------------------- 1 | import { AsyncScheduler } from './AsyncScheduler'; 2 | 3 | export class QueueScheduler extends AsyncScheduler { 4 | } 5 | -------------------------------------------------------------------------------- /src/internal/symbol/iterator.ts: -------------------------------------------------------------------------------- 1 | export function getSymbolIterator(): symbol { 2 | if (typeof Symbol !== 'function' || !Symbol.iterator) { 3 | return '@@iterator' as any; 4 | } 5 | 6 | return Symbol.iterator; 7 | } 8 | 9 | export const iterator = getSymbolIterator(); 10 | 11 | /** 12 | * @deprecated use {@link iterator} instead 13 | */ 14 | export const $$iterator = iterator; 15 | -------------------------------------------------------------------------------- /src/internal/symbol/observable.ts: -------------------------------------------------------------------------------- 1 | /** Symbol.observable addition */ 2 | /* Note: This will add Symbol.observable globally for all TypeScript users, 3 | however, we are no longer polyfilling Symbol.observable */ 4 | declare global { 5 | interface SymbolConstructor { 6 | readonly observable: symbol; 7 | } 8 | } 9 | 10 | /** Symbol.observable or a string "@@observable". Used for interop */ 11 | export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')(); 12 | -------------------------------------------------------------------------------- /src/internal/symbol/rxSubscriber.ts: -------------------------------------------------------------------------------- 1 | /** @deprecated do not use, this is no longer checked by RxJS internals */ 2 | export const rxSubscriber = (() => 3 | typeof Symbol === 'function' 4 | ? Symbol('rxSubscriber') 5 | : '@@rxSubscriber_' + Math.random())(); 6 | 7 | /** 8 | * @deprecated use rxSubscriber instead 9 | */ 10 | export const $$rxSubscriber = rxSubscriber; 11 | -------------------------------------------------------------------------------- /src/internal/testing/SubscriptionLog.ts: -------------------------------------------------------------------------------- 1 | export class SubscriptionLog { 2 | constructor(public subscribedFrame: number, 3 | public unsubscribedFrame: number = Number.POSITIVE_INFINITY) { 4 | } 5 | } -------------------------------------------------------------------------------- /src/internal/testing/TestMessage.ts: -------------------------------------------------------------------------------- 1 | import { Notification } from '../Notification'; 2 | 3 | export interface TestMessage { 4 | frame: number; 5 | notification: Notification; 6 | isGhost?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /src/internal/util/applyMixins.ts: -------------------------------------------------------------------------------- 1 | export function applyMixins(derivedCtor: any, baseCtors: any[]) { 2 | for (let i = 0, len = baseCtors.length; i < len; i++) { 3 | const baseCtor = baseCtors[i]; 4 | const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); 5 | for (let j = 0, len2 = propertyKeys.length; j < len2; j++) { 6 | const name = propertyKeys[j]; 7 | derivedCtor.prototype[name] = baseCtor.prototype[name]; 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/internal/util/errorObject.ts: -------------------------------------------------------------------------------- 1 | // typeof any so that it we don't have to cast when comparing a result to the error object 2 | export const errorObject: any = { e: {} }; -------------------------------------------------------------------------------- /src/internal/util/hostReportError.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Throws an error on another job so that it's picked up by the runtime's 3 | * uncaught error handling mechanism. 4 | * @param err the error to throw 5 | */ 6 | export function hostReportError(err: any) { 7 | setTimeout(() => { throw err; }, 0); 8 | } -------------------------------------------------------------------------------- /src/internal/util/identity.ts: -------------------------------------------------------------------------------- 1 | export function identity(x: T): T { 2 | return x; 3 | } 4 | -------------------------------------------------------------------------------- /src/internal/util/isArray.ts: -------------------------------------------------------------------------------- 1 | export const isArray = (() => Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number'))(); 2 | -------------------------------------------------------------------------------- /src/internal/util/isArrayLike.ts: -------------------------------------------------------------------------------- 1 | export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function'); -------------------------------------------------------------------------------- /src/internal/util/isDate.ts: -------------------------------------------------------------------------------- 1 | export function isDate(value: any): value is Date { 2 | return value instanceof Date && !isNaN(+value); 3 | } 4 | -------------------------------------------------------------------------------- /src/internal/util/isFunction.ts: -------------------------------------------------------------------------------- 1 | export function isFunction(x: any): x is Function { 2 | return typeof x === 'function'; 3 | } 4 | -------------------------------------------------------------------------------- /src/internal/util/isInteropObservable.ts: -------------------------------------------------------------------------------- 1 | import { InteropObservable } from '../types'; 2 | import { observable as Symbol_observable } from '../symbol/observable'; 3 | 4 | /** Identifies an input as being Observable (but not necessary an Rx Observable) */ 5 | export function isInteropObservable(input: any): input is InteropObservable { 6 | return input && typeof input[Symbol_observable] === 'function'; 7 | } 8 | -------------------------------------------------------------------------------- /src/internal/util/isIterable.ts: -------------------------------------------------------------------------------- 1 | import { iterator as Symbol_iterator } from '../symbol/iterator'; 2 | 3 | /** Identifies an input as being an Iterable */ 4 | export function isIterable(input: any): input is Iterable { 5 | return input && typeof input[Symbol_iterator] === 'function'; 6 | } 7 | -------------------------------------------------------------------------------- /src/internal/util/isNumeric.ts: -------------------------------------------------------------------------------- 1 | import { isArray } from './isArray'; 2 | 3 | export function isNumeric(val: any): val is number | string { 4 | // parseFloat NaNs numeric-cast false positives (null|true|false|"") 5 | // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 6 | // subtraction forces infinities to NaN 7 | // adding 1 corrects loss of precision from parseFloat (#15100) 8 | return !isArray(val) && (val - parseFloat(val) + 1) >= 0; 9 | } 10 | -------------------------------------------------------------------------------- /src/internal/util/isObject.ts: -------------------------------------------------------------------------------- 1 | export function isObject(x: any): x is Object { 2 | return x !== null && typeof x === 'object'; 3 | } 4 | -------------------------------------------------------------------------------- /src/internal/util/isObservable.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from '../Observable'; 2 | 3 | /** 4 | * Tests to see if the object is an RxJS {@link Observable} 5 | * @param obj the object to test 6 | */ 7 | export function isObservable(obj: any): obj is Observable { 8 | return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); 9 | } 10 | -------------------------------------------------------------------------------- /src/internal/util/isPromise.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Tests to see if the object is an ES2015 (ES6) Promise 3 | * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects} 4 | * @param value the object to test 5 | */ 6 | export function isPromise(value: any): value is PromiseLike { 7 | return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; 8 | } 9 | -------------------------------------------------------------------------------- /src/internal/util/isScheduler.ts: -------------------------------------------------------------------------------- 1 | import { SchedulerLike } from '../types'; 2 | 3 | export function isScheduler(value: any): value is SchedulerLike { 4 | return value && typeof (value).schedule === 'function'; 5 | } 6 | -------------------------------------------------------------------------------- /src/internal/util/noop.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-empty */ 2 | export function noop() { } 3 | -------------------------------------------------------------------------------- /src/internal/util/not.ts: -------------------------------------------------------------------------------- 1 | export function not(pred: Function, thisArg: any): Function { 2 | function notPred(): any { 3 | return !(( notPred).pred.apply(( notPred).thisArg, arguments)); 4 | } 5 | ( notPred).pred = pred; 6 | ( notPred).thisArg = thisArg; 7 | return notPred; 8 | } -------------------------------------------------------------------------------- /src/internal/util/subscribeToArray.ts: -------------------------------------------------------------------------------- 1 | import { Subscriber } from '../Subscriber'; 2 | 3 | /** 4 | * Subscribes to an ArrayLike with a subscriber 5 | * @param array The array or array-like to subscribe to 6 | */ 7 | export const subscribeToArray = (array: ArrayLike) => (subscriber: Subscriber) => { 8 | for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) { 9 | subscriber.next(array[i]); 10 | } 11 | subscriber.complete(); 12 | }; 13 | -------------------------------------------------------------------------------- /src/internal/util/subscribeToPromise.ts: -------------------------------------------------------------------------------- 1 | import { Subscriber } from '../Subscriber'; 2 | import { hostReportError } from './hostReportError'; 3 | 4 | export const subscribeToPromise = (promise: PromiseLike) => (subscriber: Subscriber) => { 5 | promise.then( 6 | (value) => { 7 | if (!subscriber.closed) { 8 | subscriber.next(value); 9 | subscriber.complete(); 10 | } 11 | }, 12 | (err: any) => subscriber.error(err) 13 | ) 14 | .then(null, hostReportError); 15 | return subscriber; 16 | }; 17 | -------------------------------------------------------------------------------- /src/internal/util/tryCatch.ts: -------------------------------------------------------------------------------- 1 | import { errorObject } from './errorObject'; 2 | 3 | let tryCatchTarget: Function | undefined; 4 | 5 | function tryCatcher(this: any): any { 6 | errorObject.e = undefined; 7 | try { 8 | return tryCatchTarget!.apply(this, arguments); 9 | } catch (e) { 10 | errorObject.e = e; 11 | return errorObject; 12 | } finally { 13 | tryCatchTarget = undefined; 14 | } 15 | } 16 | 17 | export function tryCatch(fn: T): T { 18 | tryCatchTarget = fn; 19 | return tryCatcher as Function as T; 20 | } 21 | -------------------------------------------------------------------------------- /src/testing/index.ts: -------------------------------------------------------------------------------- 1 | export { TestScheduler } from '../internal/testing/TestScheduler'; 2 | -------------------------------------------------------------------------------- /src/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "baseUrl": ".", 6 | "paths": { 7 | "rxjs": ["./"], 8 | "rxjs/*": ["./*"] 9 | } 10 | }, 11 | "include": [ 12 | "./**/*.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "target": "es5", 6 | "outDir": "../dist/cjs" 7 | }, 8 | "exclude": [ 9 | "./internal/umd.ts" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/tsconfig.cjs.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.cjs.json", 3 | /** 4 | * this is pseudo config for test case's relative path resolution to `../src`, runs 5 | * cjs config once more instead of manual copying to utilize incremental build. 6 | */ 7 | "compilerOptions": { 8 | "outDir": "../dist/src" 9 | } 10 | } -------------------------------------------------------------------------------- /src/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "module": "esnext", 5 | "importHelpers": true, 6 | "target": "es2015", 7 | "outDir": "../dist/esm" 8 | } 9 | } -------------------------------------------------------------------------------- /src/tsconfig.esm5.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "module": "esnext", 5 | "importHelpers": true, 6 | "target": "es5", 7 | "outDir": "../dist/esm5" 8 | }, 9 | "exclude": [ 10 | "./internal/umd.ts" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/tsconfig.esm5.rollup.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.esm5.json", 3 | "compilerOptions": { 4 | "outDir": "../dist/esm5_for_rollup", 5 | "noEmitHelpers": true 6 | }, 7 | "exclude": [] 8 | } -------------------------------------------------------------------------------- /src/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.esm.json", 3 | "compilerOptions": { 4 | "composite": true, 5 | "module": "es2015", 6 | "target": "esnext", 7 | "removeComments": false, 8 | "declaration": true, 9 | "declarationMap": true, 10 | "declarationDir": "../dist/types", 11 | "emitDeclarationOnly": true 12 | }, 13 | "exclude": [ 14 | "./internal/umd.ts" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/webSocket/index.ts: -------------------------------------------------------------------------------- 1 | export { webSocket as webSocket } from '../internal/observable/dom/webSocket'; 2 | export { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject'; 3 | -------------------------------------------------------------------------------- /tools/make-closure-core.js: -------------------------------------------------------------------------------- 1 | var makeClosure = require('./make-closure'); 2 | 3 | makeClosure('dist/global/rxjs.umd.js'); 4 | -------------------------------------------------------------------------------- /tools/make-umd-bundle.js: -------------------------------------------------------------------------------- 1 | const rollupBundle = require('./rollup-bundle'); 2 | const fs = require('fs-extra'); 3 | 4 | fs.ensureDirSync('dist/global'); 5 | 6 | rollupBundle({ 7 | input: 'dist/esm5_for_rollup/internal/umd.js', 8 | dest: 'dist/global/rxjs.umd.js', 9 | }); 10 | --------------------------------------------------------------------------------