CodeVetter · Repo Unpack · System map
ReactiveX/rxjs
The runtime centers on the active realm's Observable rather than an RxJS-owned replacement constructor. Four versioned packages separate fallback acquisition, reactive extensions, testing, and migration. The documentation application remains on an older Angular/RxJS stack, while package distribution and publication follow an ESM and local-release model.
- The workspace uses pnpm 10.34.5, requires Node >=22.13.0 at the root, and includes packages/* plus apps/rxjs.dev.
- The architecture separates platform acquisition, Symbol extensions, and migration tooling; migration tooling is not a runtime dependency.
- The rxjs root imports the fallback initializer and exports core classes, subject factories, notifications, and errors without exporting the operator catalog.
- rxjs depends on @rxjs/observable-polyfill; @rxjs/test declares rxjs as a peer; @rxjs/migrate uses TypeScript and Zod for tooling.
- The fallback publishes one ESM implementation for browser, webpack, import, and require conditions; package builds use tshy followed by ESM finalization.
- apps/rxjs.dev uses Angular 13 and RxJS ^7.5.1, with Angular build/test, Dgeni documentation generation, marble generation, and a Firebase deployment script.
- Observed state owners include fallback WeakRef subscription state, Subject subscriber Sets, document caches, and a worker search index; these are in-memory structures.
- release:beta packs four packages in supporting-package-first order, performs publication dry runs, requires exact-version confirmation, then verifies registry integrity and tags.