├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── actions │ └── install-dependencies │ │ └── action.yml ├── lock.yml └── workflows │ ├── ci_main.yml │ ├── ci_ts_latest.yml │ ├── publish.yml │ └── rebase.yml ├── .gitignore ├── .prettierrc.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── apps └── rxjs.dev │ ├── .browserslistrc │ ├── .eslintrc.js │ ├── .firebaserc │ ├── .gitignore │ ├── README.md │ ├── angular.json │ ├── content │ ├── 6-to-7-change-summary.md │ ├── blackLivesMatter.md │ ├── code-of-conduct.md │ ├── deprecations │ │ ├── array-argument.md │ │ ├── breaking-changes.md │ │ ├── index.md │ │ ├── multicasting.md │ │ ├── resultSelector.md │ │ ├── scheduler-argument.md │ │ ├── subscribe-arguments.md │ │ └── to-promise.md │ ├── file-not-found.md │ ├── guide │ │ ├── core-semantics.md │ │ ├── glossary-and-semantics.md │ │ ├── higher-order-observables.md │ │ ├── importing.md │ │ ├── installation.md │ │ ├── observable.md │ │ ├── observer.md │ │ ├── operators.md │ │ ├── overview.md │ │ ├── scheduler.md │ │ ├── subject.md │ │ ├── subscription.md │ │ └── testing │ │ │ └── marble-testing.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 │ └── operator-decision-tree.yml │ ├── database.rules.json │ ├── firebase.json │ ├── ngsw-config.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.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.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.ts │ │ │ │ └── expandable-section.module.ts │ │ │ ├── lazy-custom-element.component.spec.ts │ │ │ ├── lazy-custom-element.component.ts │ │ │ ├── live-example │ │ │ │ ├── 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.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.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.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.ts │ │ │ ├── mode-banner │ │ │ │ └── mode-banner.component.ts │ │ │ ├── nav-item │ │ │ │ ├── nav-item.component.spec.ts │ │ │ │ └── nav-item.component.ts │ │ │ ├── nav-menu │ │ │ │ ├── nav-menu.component.spec.ts │ │ │ │ └── nav-menu.component.ts │ │ │ ├── notification │ │ │ │ └── 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.service.ts │ │ │ └── search.worker.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.spec.ts │ │ │ │ └── search-results.component.ts │ │ │ ├── select │ │ │ │ ├── select.component.spec.ts │ │ │ │ └── select.component.ts │ │ │ ├── shared.module.ts │ │ │ ├── stackblitz.service.ts │ │ │ ├── toc.service.spec.ts │ │ │ ├── toc.service.ts │ │ │ ├── web-worker-message.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 │ │ │ │ ├── audit.svg │ │ │ │ ├── auditTime.png │ │ │ │ ├── buffer.png │ │ │ │ ├── bufferCount.png │ │ │ │ ├── bufferTime.png │ │ │ │ ├── bufferToggle.png │ │ │ │ ├── bufferWhen.svg │ │ │ │ ├── catch.png │ │ │ │ ├── combineAll.png │ │ │ │ ├── combineLatest.png │ │ │ │ ├── concat.png │ │ │ │ ├── concatAll.png │ │ │ │ ├── concatAll.svg │ │ │ │ ├── concatMap.png │ │ │ │ ├── concatMapTo.png │ │ │ │ ├── count.png │ │ │ │ ├── create.png │ │ │ │ ├── debounce.svg │ │ │ │ ├── debounceTime.png │ │ │ │ ├── defaultIfEmpty.png │ │ │ │ ├── defer.png │ │ │ │ ├── delay.svg │ │ │ │ ├── delayWhen.png │ │ │ │ ├── dematerialize.png │ │ │ │ ├── distinctUntilChanged.png │ │ │ │ ├── distinctUntilKeyChanged.png │ │ │ │ ├── elementAt.png │ │ │ │ ├── empty.png │ │ │ │ ├── endWith.png │ │ │ │ ├── every.png │ │ │ │ ├── exhaustAll.svg │ │ │ │ ├── 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 │ │ │ │ ├── never.png │ │ │ │ ├── observeOn.png │ │ │ │ ├── of.png │ │ │ │ ├── onErrorResumeNext.png │ │ │ │ ├── pairwise.png │ │ │ │ ├── partition.png │ │ │ │ ├── race.png │ │ │ │ ├── range.png │ │ │ │ ├── reduce.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.svg │ │ │ │ ├── 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.svg │ │ │ │ ├── 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 │ ├── 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 │ └── typings.d.ts │ ├── tests │ └── e2e │ │ ├── protractor.conf.js │ │ ├── tsconfig.e2e.json │ │ └── visual-testing.e2e-spec.ts │ ├── tools │ ├── README.md │ ├── firebase-test-utils │ │ ├── FirebaseGlob.spec.ts │ │ ├── FirebaseGlob.ts │ │ ├── FirebaseRedirect.spec.ts │ │ ├── FirebaseRedirect.ts │ │ ├── FirebaseRedirector.spec.ts │ │ └── FirebaseRedirector.ts │ ├── marbles │ │ ├── diagrams │ │ │ ├── audit.txt │ │ │ ├── bufferWhen.txt │ │ │ ├── concatAll.txt │ │ │ ├── debounce.txt │ │ │ ├── delay.txt │ │ │ ├── exhaustAll.txt │ │ │ ├── throttle.txt │ │ │ └── windowWhen.txt │ │ ├── scripts │ │ │ └── index.ts │ │ └── tsconfig.marbles.json │ ├── 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 │ │ │ ├── checkOperator.js │ │ │ ├── computeApiBreadCrumbs.js │ │ │ ├── computeApiBreadCrumbs.spec.js │ │ │ ├── computeSearchTitle.js │ │ │ ├── computeSearchTitle.spec.js │ │ │ ├── computeStability.js │ │ │ ├── computeStability.spec.js │ │ │ ├── convertPrivateClassesToInterfaces.js │ │ │ ├── extractDecoratedClasses.js │ │ │ ├── extractDecoratedClasses.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 │ │ │ ├── deprecated.js │ │ │ ├── internal.js │ │ │ └── throws.js │ │ ├── angular-base-package │ │ ├── ignore-words.json │ │ ├── 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 │ │ │ ├── toId.js │ │ │ ├── toId.spec.js │ │ │ ├── trimBlankLines.js │ │ │ ├── trimBlankLines.spec.js │ │ │ ├── truncateCode.js │ │ │ └── truncateCode.spec.js │ │ └── services │ │ │ ├── copyFolder.js │ │ │ ├── filterAmbiguousDirectiveAliases.js │ │ │ ├── filterAmbiguousDirectiveAliases.spec.js │ │ │ ├── filterFromInImports.spec.js │ │ │ ├── filterFromInImports.ts │ │ │ ├── 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 │ │ ├── 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 │ │ │ ├── disambiguateByNonMember.js │ │ │ ├── disambiguateByNonMember.spec.js │ │ │ ├── disambiguateByNonOperator.js │ │ │ └── disambiguateByNonOperator.spec.js │ │ │ ├── getAliases.js │ │ │ ├── getAliases.spec.js │ │ │ ├── getDocFromAlias.js │ │ │ ├── getDocFromAlias.spec.js │ │ │ ├── getLinkInfo.js │ │ │ └── getLinkInfo.spec.js │ │ ├── remark-package │ │ ├── index.js │ │ └── services │ │ │ ├── handlers │ │ │ └── code.js │ │ │ ├── markedNunjucksFilter.js │ │ │ ├── plugins │ │ │ └── mapHeadings.js │ │ │ ├── renderMarkdown.js │ │ │ └── renderMarkdown.spec.js │ │ ├── rxjs-decision-tree-generator │ │ ├── README.md │ │ ├── index.ts │ │ └── 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 │ │ ├── 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 │ ├── tsconfig.app.json │ ├── tsconfig.docs.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── tsconfig.worker.json ├── nx.json ├── package.json ├── packages ├── observable │ ├── .eslintrc.json │ ├── .tshy │ │ ├── browser.json │ │ ├── build.json │ │ ├── commonjs.json │ │ ├── esm.json │ │ └── webpack.json │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── observable.spec.ts │ │ ├── observable.ts │ │ └── types.ts │ └── tsconfig.json └── rxjs │ ├── .dependency-cruiser.json │ ├── .dockerignore │ ├── .eslintrc.json │ ├── .gitattributes │ ├── CHANGELOG.md │ ├── Dockerfile │ ├── README.md │ ├── integration │ └── import │ │ ├── fixtures │ │ ├── browser │ │ │ ├── browser-test.js │ │ │ ├── index.html │ │ │ ├── index.mjs │ │ │ └── package.json │ │ ├── commonjs │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── esm │ │ │ ├── index.mjs │ │ │ └── package.json │ │ ├── vite-bundle │ │ │ ├── .gitignore │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── main.ts │ │ │ │ └── vite-env.d.ts │ │ │ ├── test.mjs │ │ │ └── tsconfig.json │ │ └── webpack-bundle │ │ │ ├── index.html │ │ │ ├── package.json │ │ │ ├── src │ │ │ └── main.ts │ │ │ ├── test.js │ │ │ ├── tsconfig.json │ │ │ └── webpack.config.js │ │ └── runner.js │ ├── package.json │ ├── spec-dtslint │ ├── AsyncSubject-spec.ts │ ├── BehaviorSubject-spec.ts │ ├── Observable-spec.ts │ ├── ReplaySubject-spec.ts │ ├── Subject-spec.ts │ ├── Subscriber-spec.ts │ ├── errors-spec.ts │ ├── firstValueFrom-spec.ts │ ├── helpers.ts │ ├── index.d.ts │ ├── lastValueFrom-spec.ts │ ├── observables │ │ ├── bindCallback-spec.ts │ │ ├── combineLatest-spec.ts │ │ ├── concat-spec.ts │ │ ├── defer-spec.ts │ │ ├── dom │ │ │ ├── ajax-spec.ts │ │ │ ├── animationFrames-spec.ts │ │ │ └── fetch-spec.ts │ │ ├── empty-spec.ts │ │ ├── forkJoin-spec.ts │ │ ├── from-spec.ts │ │ ├── fromEvent-spec.ts │ │ ├── iif-spec.ts │ │ ├── interval-spec.ts │ │ ├── never-spec.ts │ │ ├── of-spec.ts │ │ ├── onErrorResumeNext-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 │ │ ├── catchError-spec.ts │ │ ├── combineLatestAll-spec.ts │ │ ├── combineLatestWith-spec.ts │ │ ├── concatAll-spec.ts │ │ ├── concatMap-spec.ts │ │ ├── concatMapTo-spec.ts │ │ ├── concatWith-spec.ts │ │ ├── connect-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 │ │ ├── exhaustAll-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 │ │ ├── mergeAll-spec.ts │ │ ├── mergeMap-spec.ts │ │ ├── mergeMapTo-spec.ts │ │ ├── mergeScan-spec.ts │ │ ├── mergeWith-spec.ts │ │ ├── min-spec.ts │ │ ├── observeOn-spec.ts │ │ ├── onErrorResumeNextWith-spec.ts │ │ ├── pairwise-spec.ts │ │ ├── raceWith-spec.ts │ │ ├── reduce-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 │ │ ├── switchAll-spec.ts │ │ ├── switchMap-spec.ts │ │ ├── switchMapTo-spec.ts │ │ ├── switchScan-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 │ │ ├── zipAll-spec.ts │ │ └── zipWith-spec.ts │ ├── tsconfig.json │ ├── types-spec.ts │ └── util │ │ ├── pipe-spec.ts │ │ └── rx-spec.ts │ ├── spec │ ├── 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 │ ├── firstValueFrom-spec.ts │ ├── helpers │ │ ├── interop-helper-spec.ts │ │ ├── interop-helper.ts │ │ ├── marble-testing.ts │ │ ├── observableMatcher.ts │ │ ├── setup.ts │ │ ├── subscription.ts │ │ └── test-helper.ts │ ├── index-spec.ts │ ├── lastValueFrom-spec.ts │ ├── module-test-spec.mjs │ ├── observables │ │ ├── bindCallback-spec.ts │ │ ├── bindNodeCallback-spec.ts │ │ ├── combineLatest-spec.ts │ │ ├── concat-spec.ts │ │ ├── connectable-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 │ │ ├── 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 │ │ ├── catchError-spec.ts │ │ ├── combineLatestAll-spec.ts │ │ ├── combineLatestWith-spec.ts │ │ ├── concatAll-spec.ts │ │ ├── concatMap-spec.ts │ │ ├── concatMapTo-spec.ts │ │ ├── concatWith-spec.ts │ │ ├── connect-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 │ │ ├── exhaustAll-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 │ │ ├── mergeAll-spec.ts │ │ ├── mergeMap-spec.ts │ │ ├── mergeMapTo-spec.ts │ │ ├── mergeScan-spec.ts │ │ ├── mergeWith-spec.ts │ │ ├── min-spec.ts │ │ ├── observeOn-spec.ts │ │ ├── onErrorResumeNext-spec.ts │ │ ├── pairwise-spec.ts │ │ ├── raceWith-spec.ts │ │ ├── reduce-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 │ │ ├── switchAll-spec.ts │ │ ├── switchMap-spec.ts │ │ ├── switchMapTo-spec.ts │ │ ├── switchScan-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 │ │ ├── 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 │ │ ├── animationFrameProvider-spec.ts │ │ ├── dateTimestampProvider-spec.ts │ │ ├── intervalProvider-spec.ts │ │ └── timeoutProvider-spec.ts │ ├── subjects │ │ ├── AsyncSubject-spec.ts │ │ ├── BehaviorSubject-spec.ts │ │ └── ReplaySubject-spec.ts │ ├── support │ │ ├── .mocharc.js │ │ ├── mocha-browser-runner.html │ │ ├── mocha.sauce.gruntfile.js │ │ └── mocha.sauce.runner.js │ ├── testing │ │ └── index-spec.ts │ ├── tsconfig.json │ ├── util │ │ ├── ArgumentOutOfRangeError-spec.ts │ │ ├── EmptyError-spec.ts │ │ ├── Immediate-spec.ts │ │ ├── TimeoutError-spec.ts │ │ ├── UnsubscriptionError-spec.ts │ │ ├── isObservable-spec.ts │ │ ├── isPromise-spec.ts │ │ ├── pipe-spec.ts │ │ └── rx-spec.ts │ └── websocket │ │ └── index-spec.ts │ ├── src │ ├── Rx.global.js │ ├── ajax │ │ └── index.ts │ ├── fetch │ │ └── index.ts │ ├── index.ts │ ├── internal │ │ ├── AnyCatcher.ts │ │ ├── AsyncSubject.ts │ │ ├── BehaviorSubject.ts │ │ ├── Notification.ts │ │ ├── Operator.ts │ │ ├── ReplaySubject.ts │ │ ├── Scheduler.ts │ │ ├── Subject.ts │ │ ├── ajax │ │ │ ├── AjaxResponse.ts │ │ │ ├── ajax.ts │ │ │ ├── errors.ts │ │ │ └── types.ts │ │ ├── firstValueFrom.ts │ │ ├── lastValueFrom.ts │ │ ├── observable │ │ │ ├── bindCallback.ts │ │ │ ├── bindCallbackInternals.ts │ │ │ ├── bindNodeCallback.ts │ │ │ ├── combineLatest.ts │ │ │ ├── concat.ts │ │ │ ├── connectable.ts │ │ │ ├── defer.ts │ │ │ ├── dom │ │ │ │ ├── WebSocketSubject.ts │ │ │ │ ├── animationFrames.ts │ │ │ │ ├── fetch.ts │ │ │ │ └── webSocket.ts │ │ │ ├── empty.ts │ │ │ ├── forkJoin.ts │ │ │ ├── fromEvent.ts │ │ │ ├── fromEventPattern.ts │ │ │ ├── fromSubscribable.ts │ │ │ ├── generate.ts │ │ │ ├── iif.ts │ │ │ ├── interval.ts │ │ │ ├── merge.ts │ │ │ ├── never.ts │ │ │ ├── of.ts │ │ │ ├── onErrorResumeNext.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 │ │ │ ├── combineLatestAll.ts │ │ │ ├── combineLatestWith.ts │ │ │ ├── concatAll.ts │ │ │ ├── concatMap.ts │ │ │ ├── concatMapTo.ts │ │ │ ├── concatWith.ts │ │ │ ├── connect.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 │ │ │ ├── exhaustAll.ts │ │ │ ├── exhaustMap.ts │ │ │ ├── expand.ts │ │ │ ├── filter.ts │ │ │ ├── finalize.ts │ │ │ ├── find.ts │ │ │ ├── findIndex.ts │ │ │ ├── first.ts │ │ │ ├── groupBy.ts │ │ │ ├── ignoreElements.ts │ │ │ ├── isEmpty.ts │ │ │ ├── joinAllInternals.ts │ │ │ ├── last.ts │ │ │ ├── map.ts │ │ │ ├── mapTo.ts │ │ │ ├── materialize.ts │ │ │ ├── max.ts │ │ │ ├── mergeAll.ts │ │ │ ├── mergeInternals.ts │ │ │ ├── mergeMap.ts │ │ │ ├── mergeMapTo.ts │ │ │ ├── mergeScan.ts │ │ │ ├── mergeWith.ts │ │ │ ├── min.ts │ │ │ ├── observeOn.ts │ │ │ ├── onErrorResumeNextWith.ts │ │ │ ├── pairwise.ts │ │ │ ├── partition.ts │ │ │ ├── raceWith.ts │ │ │ ├── reduce.ts │ │ │ ├── repeat.ts │ │ │ ├── repeatWhen.ts │ │ │ ├── retry.ts │ │ │ ├── retryWhen.ts │ │ │ ├── sample.ts │ │ │ ├── sampleTime.ts │ │ │ ├── scan.ts │ │ │ ├── scanInternals.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 │ │ │ ├── switchScan.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 │ │ │ ├── scheduleAsyncIterable.ts │ │ │ ├── scheduleIterable.ts │ │ │ ├── scheduleObservable.ts │ │ │ ├── schedulePromise.ts │ │ │ ├── scheduleReadableStreamLike.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 │ │ │ ├── animationFrameProvider.ts │ │ │ ├── asap.ts │ │ │ ├── async.ts │ │ │ ├── dateTimestampProvider.ts │ │ │ ├── immediateProvider.ts │ │ │ ├── intervalProvider.ts │ │ │ ├── performanceTimestampProvider.ts │ │ │ ├── queue.ts │ │ │ ├── timeoutProvider.ts │ │ │ └── timerHandle.ts │ │ ├── symbol │ │ │ └── iterator.ts │ │ ├── testing │ │ │ ├── ColdObservable.ts │ │ │ ├── HotObservable.ts │ │ │ ├── TestMessage.ts │ │ │ ├── TestScheduler.ts │ │ │ └── subscription-logging.ts │ │ ├── types.ts │ │ └── util │ │ │ ├── ArgumentOutOfRangeError.ts │ │ │ ├── EmptyError.ts │ │ │ ├── Immediate.ts │ │ │ ├── NotFoundError.ts │ │ │ ├── SequenceError.ts │ │ │ ├── args.ts │ │ │ ├── argsArgArrayOrObject.ts │ │ │ ├── argsOrArgArray.ts │ │ │ ├── arrRemove.ts │ │ │ ├── createObject.ts │ │ │ ├── executeSchedule.ts │ │ │ ├── identity.ts │ │ │ ├── isDate.ts │ │ │ ├── isScheduler.ts │ │ │ ├── mapOneOrManyArgs.ts │ │ │ ├── noop.ts │ │ │ ├── not.ts │ │ │ ├── pipe.ts │ │ │ ├── rx.ts │ │ │ ├── throwUnobservableError.ts │ │ │ └── workarounds.ts │ ├── operators │ │ └── index.ts │ ├── testing │ │ └── index.ts │ ├── tsconfig.base.json │ ├── tsconfig.cjs.json │ ├── tsconfig.cjs.spec.json │ ├── tsconfig.esm.json │ ├── tsconfig.types.json │ ├── tsconfig.types.spec.json │ └── webSocket │ │ └── index.ts │ ├── tools │ ├── add-license-to-file.js │ ├── generate-alias.js │ └── subject-benchmark.js │ ├── tsconfig.json │ ├── tsconfig.mocha.json │ └── wallaby.js ├── 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 ├── scripts ├── copy-common-package-files.js ├── publish.js └── release.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | indent_size = 2 6 | indent_style = space 7 | trim_trailing_whitespace = true 8 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | packages/rxjs/integration/import/fixtures -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Questions, request, issues other than Rx core bugs 4 | url: https://github.com/ReactiveX/rxjs/discussions 5 | about: For general discussions, or request please use discussions. 6 | -------------------------------------------------------------------------------- /.github/lock.yml: -------------------------------------------------------------------------------- 1 | # Configuration for lock-threads - https://github.com/dessant/lock-threads 2 | 3 | # Number of days of inactivity before a closed issue or pull request is locked 4 | daysUntilLock: 30 5 | 6 | # Issues and pull requests with these labels will not be locked. Set to `[]` to disable 7 | exemptLabels: [] 8 | 9 | # Label to add before locking, such as `outdated`. Set to `false` to disable 10 | lockLabel: false 11 | 12 | # Comment to post before locking. Set to `false` to disable 13 | lockComment: false 14 | 15 | # Limit to only `issues` or `pulls` 16 | # only: issues 17 | 18 | # Optionally, specify configuration settings just for `issues` or `pulls` 19 | # issues: 20 | # exemptLabels: 21 | # - help-wanted 22 | # lockLabel: outdated 23 | 24 | # pulls: 25 | # daysUntilLock: 30 26 | -------------------------------------------------------------------------------- /.github/workflows/ci_ts_latest.yml: -------------------------------------------------------------------------------- 1 | name: CI (ts@latest) 2 | 3 | on: 4 | pull_request: 5 | types: ['opened', 'reopened', 'synchronize'] 6 | 7 | permissions: 8 | contents: read 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | strategy: 14 | matrix: 15 | node: ['20'] 16 | 17 | name: ts@latest 18 | 19 | steps: 20 | - uses: actions/checkout@v4 21 | 22 | - name: Install Dependencies 23 | uses: ./.github/actions/install-dependencies 24 | with: 25 | node-version: ${{ matrix.node }} 26 | 27 | - name: build 28 | run: | 29 | yarn workspace rxjs add typescript@latest @types/node@latest --peer --no-save 30 | yarn nx compile rxjs 31 | -------------------------------------------------------------------------------- /.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 | .tshy-build 16 | 17 | # Import location artifacts 18 | packages/rxjs/ajax/ 19 | packages/rxjs/fetch/ 20 | packages/rxjs/operators/ 21 | packages/rxjs/testing/ 22 | packages/rxjs/webSocket/ 23 | 24 | # Copied Package Files 25 | packages/**/LICENSE.txt 26 | packages/**/CODE_OF_CONDUCT.md 27 | 28 | # Misc 29 | npm-debug.log 30 | .DS_STORE 31 | *.tgz 32 | .eslintcache 33 | package-lock.json 34 | 35 | integration/import/**/rx.json 36 | integration/import/**/operators.json 37 | 38 | 39 | .nx/cache -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "singleQuote": true, 4 | "printWidth": 140, 5 | "overrides": [ 6 | { 7 | "files": ["spec/**/*.ts", "spec-dtslint/**/*.ts"], 8 | "options": { 9 | "requirePragma": true 10 | } 11 | }, 12 | { 13 | "files": ["spec/operators/**/*.ts", "spec/subjects/**/*.ts"], 14 | "options": { 15 | "requirePragma": false 16 | } 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /apps/rxjs.dev/.browserslistrc: -------------------------------------------------------------------------------- 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'. 13 | not ios_saf 15.2-15.3 14 | not safari 15.2-15.3 15 | -------------------------------------------------------------------------------- /apps/rxjs.dev/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "targets": { 3 | "rxjs-dev": { 4 | "hosting": { 5 | "stable": [ 6 | "rxjs-dev" 7 | ] 8 | } 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /apps/rxjs.dev/content/deprecations/index.md: -------------------------------------------------------------------------------- 1 | # Deprecations and Breaking Changes 2 | 3 | While the core team always tries to limit changes, sometimes we have to deprecate APIs or do breaking changes for various reasons. 4 | This section aims to describe some of the deprecations and breaking changes we did more in detail. Some of the changes are to extensive to describe 5 | them appropriately in a changelog. Additionally, we can provide code examples in the documentation, to make required changes more comprehensible and therefore 6 | lower migration efforts. 7 | 8 | Do notice that this is not a complete list, please see the [changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md) for the complete list. -------------------------------------------------------------------------------- /apps/rxjs.dev/content/file-not-found.md: -------------------------------------------------------------------------------- 1 | @description 2 | 3 |
We're sorry. The page you are looking for cannot be found.
8 |8 | Code licensed under an Apache-2.0 License. Documentation licensed under 9 | CC BY 4.0. 10 |
11 |Version {{ versionInfo?.full }}.
`, 12 | }) 13 | export class FooterComponent { 14 | @Input() nodes: NavigationNode[]; 15 | @Input() versionInfo: VersionInfo; 16 | } 17 | -------------------------------------------------------------------------------- /apps/rxjs.dev/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 | 11 | ` 12 | }) 13 | export class ModeBannerComponent { 14 | @Input() mode: string; 15 | @Input() version: VersionInfo; 16 | } 17 | -------------------------------------------------------------------------------- /apps/rxjs.dev/src/app/layout/nav-menu/nav-menu.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { NavMenuComponent } from './nav-menu.component'; 2 | import { NavigationNode } from 'app/navigation/navigation.service'; 3 | 4 | // Testing the component class behaviors, independent of its template 5 | // No dependencies, no life-cycle hooks. Just new it and test :) 6 | // Let e2e tests verify how it displays. 7 | describe('NavMenuComponent (class-only)', () => { 8 | it('should filter out hidden nodes', () => { 9 | const component = new NavMenuComponent(); 10 | const nodes: NavigationNode[] = 11 | [ { title: 'a' }, { title: 'b', hidden: true}, { title: 'c'} ]; 12 | component.nodes = nodes; 13 | expect(component.filteredNodes).toEqual([ nodes[0], nodes[2] ]); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /apps/rxjs.dev/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: `The API listed below will be removed in the next major release!
5 |9 | {$ deprecation.name $} 10 | | 11 |12 | {$ deprecation.text $} 13 | | 14 |
{$ 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 | -------------------------------------------------------------------------------- /apps/rxjs.dev/tools/transforms/templates/api/includes/annotations.html: -------------------------------------------------------------------------------- 1 | {%- if doc.decorators.length %} 2 |{$ doc.exportAs $}
6 |