{"_id":"@breadstone/ziegel-rx","_rev":"9-aa8cbf17f3bfac636d76775a11bc81f3","name":"@breadstone/ziegel-rx","dist-tags":{"latest":"0.0.9"},"versions":{"0.0.1":{"name":"@breadstone/ziegel-rx","version":"0.0.1","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.1","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"ee4f887b7b14a187138974fd488a1e9b7578baa3","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.1.tgz","fileCount":95,"integrity":"sha512-q5JTWogy9ea5WzFT4aNEtq2rSEX3GHlXtRvH+LTBrAlOOqzfesn9ojqPEiWUur+Md1kb+o0AiAK3dDCu07AISg==","signatures":[{"sig":"MEUCIQCC6NtcP/IfcxD6KycepUCuN+VbzXabsGBT+EkctgWaSwIgRUAL/dMLFYAxN3yAM5rVkGw/H++kf8TEn/5O58ztHzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184808},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"6e85e7a52b57c3f29013f4fd6383076cd22dc9a0","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"realsancezz@gmail.com"},"email":"realsancezz@gmail.com"},"commonjs":"./Index.js","repository":{"url":"https://breadstone.visualstudio.com/ziegel/_git/ziegel","type":"git"},"_npmVersion":"11.3.0","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.1_1750993744115_0.6074250177003335","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@breadstone/ziegel-rx","version":"0.0.2","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.2","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"da630bec846652eedd630ae218fba2af31f29d3b","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.2.tgz","fileCount":96,"integrity":"sha512-bYWf9k8AcM4gpl0xE0S8f1IS0NfBkCab+E49GNjNTeG8fh4O0pZbajUQN8nG//RFhkxpkDq1z2o0hVvRNB+vyQ==","signatures":[{"sig":"MEUCIFYNt5FZq3ZNxJsew7caVd9WexSTnoSIKK+ZBMQi8401AiEA6b5UAswutKWe1JS9xBEqD+k2s/5gpz7gbwoVwOAvFyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185271},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"810d476703d4a1544150277fa8510b8110622415","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"realsancezz@gmail.com"},"email":"realsancezz@gmail.com"},"commonjs":"./Index.js","repository":{"url":"https://breadstone.visualstudio.com/ziegel/_git/ziegel","type":"git"},"_npmVersion":"11.3.0","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.2_1750994524337_0.05664273458084068","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@breadstone/ziegel-rx","version":"0.0.3","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.3","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"179215d1dd730d1f296dfb8719bb794078e154d1","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.3.tgz","fileCount":92,"integrity":"sha512-ItcjvxlVAP6txLf4qXBdEweuRpNj6ihDfUW89UaiaUol6bY63rPxrEKZW/ryQK8I2SBdUQger/bugap+Yj1Kqw==","signatures":[{"sig":"MEUCIFhERhN02+5r9SvcavB4NlhFnOO1QtGXjV1gU1TdwAQEAiEA3ONeaWxbR7S8A82HpSAXIVP+c9U4X9I0znp7HnOMHrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78028},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"b4d03ca0908154138403f2a27ca8efb54bee6e80","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"10.9.2","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.3_1751575601707_0.4620372974699798","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@breadstone/ziegel-rx","version":"0.0.4","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.4","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"fe1332654cc21272d221ce5f3786455616b3919a","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.4.tgz","fileCount":92,"integrity":"sha512-4CMjbWJ+H+JOB7sSzlhtF1oVNJilkDpGwV87PGODTRC18D5IjEm8Umzeft8kr4K6cb03OzVSiARedQjYu+gDpA==","signatures":[{"sig":"MEUCIEF+ja93sKFV9+KEqdIZ+jSydqzI87F0iM1K3PHEVF33AiEAjhymil44KR3kN0i6z3C3S425IClU871/8LSj5sb+hTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78028},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"87efb239ae0aa6121dc170cd110bc9be7bb0c622","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"10.9.2","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.4_1751576119407_0.7114345568241898","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@breadstone/ziegel-rx","version":"0.0.5","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.5","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"7adaeedd280410cb04eaf8f8621f4bbf9f043dec","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.5.tgz","fileCount":92,"integrity":"sha512-KNcCzD3OO7ZigLh2d9D4a76Mf4QDSRtWjUZQoJMd9wovamSrWhv4VrMPJjRz9lW0WEqyyWHa92AA5UEH298ccg==","signatures":[{"sig":"MEUCICpB+eI3B2djSpy86E1vdlawLFS7BcXLIcEOpr5PwCv7AiEAxBMYUnfNWL4uiyRiv2eQddw76XYtDFq0AvU6xlM5Slc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81671},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"7eb0efd9f6fa2d25da83ba6a3bd737a0da028bf7","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"9.8.1","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.5_1751699304019_0.5798007272947094","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@breadstone/ziegel-rx","version":"0.0.6","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.6","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"424a2c965539cfce3c8dff5f045fad44141629a9","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.6.tgz","fileCount":92,"integrity":"sha512-a01/LK1eME+xmB2X6FcYEb/LhVxvxdGuQexX7+m4w2T0pWiUjtRSSfscK4m8Xm3W52K4NhJuc98mM9DCXS3PvA==","signatures":[{"sig":"MEUCIQDr6RqIgSU8xOK63ZuR2DfJzanhYPX89kRBKHcUlfzmhgIgPcd8WJZWniWk388WbnLIgg4ULfJUaa9Cvk+j//U0Fmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86325},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"2513477b6a87dede7a429076b048197086e267b2","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.6_1754467861629_0.31150514728672674","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@breadstone/ziegel-rx","version":"0.0.7","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.7","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"5e7b4c92f5bd282411590627c8d1630c4d5630f8","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.7.tgz","fileCount":92,"integrity":"sha512-ty6sXxPBcC1XwSnLa4i+kM9f1+3XHFlmrX/0rsHAOsl8osRcxX9Umqs7D8QPfuEiOxoREAkwY/gd460DN0kzhw==","signatures":[{"sig":"MEQCIGqhRbv0k7KcyHrjrQzkJ41fQ7VpF4pGjvJAlKRjeGmJAiAvqiaZZ8luQCEp1N63v4NMv6XhVNjBzQ9NtrPvyGS0sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86325},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"7647e351d85d9dfbae9e9e9d84095559a75822d3","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.7_1754468267546_0.8174701306842509","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@breadstone/ziegel-rx","version":"0.0.8","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-rx@0.0.8","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"8d4e31b0c6bf6dd5228cd843e64f648d91d48e83","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.8.tgz","fileCount":92,"integrity":"sha512-lp9MxDnKN7D16443IxEuaPXAuBuf/hlUocHRXLkIWVoFcrGGRAa9w/HeSrNq1hfVnF/ep62itTId4/aEPguZhA==","signatures":[{"sig":"MEUCIQCcOB0xch3IqySO9EwbAR8ddobY4GB4lpFhEMTqPZ/L4wIgR4C0DyZcc7Qj4T887mW42LYVCAGhzjIKnAcIhWwbLYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85065},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"e3ad0a5eb92747c06f8642ef6b1b2e012ef6cb77","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes utilities for rx.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-rx_0.0.8_1754745292039_0.09864554329250552","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@breadstone/ziegel-rx","version":"0.0.9","description":"Includes utilities for rx.","license":"MIT","author":{"name":"andre.wehlert","email":"awehlert@breadstone.de","url":"https://www.breadstone.de"},"main":"./Index.js","module":"./Index.js","commonjs":"./Index.js","typings":"./Index.d.ts","types":"./Index.d.ts","repository":{"type":"git","url":"git+https://github.com/RueDeRennes/ziegel.git"},"bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dependencies":{"@breadstone/ziegel-core":"0.0.9","rxjs":"^7.8.2","tslib":"^2.8.1"},"_id":"@breadstone/ziegel-rx@0.0.9","gitHead":"efc417cb60db843da253c8b83aa7ea54fe94ed5f","homepage":"https://github.com/RueDeRennes/ziegel#readme","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-VhdCKLOGqA3ZAg/5mLXJgUWtd3DN8nl6LWDtlybK4mx0E2Ks/6eo6CZe+NReAw3j8TqCRtJyL296pDo/a37yoA==","shasum":"f195ff88e1f887249177a6ed382ea39153d82ad0","tarball":"https://registry.npmjs.org/@breadstone/ziegel-rx/-/ziegel-rx-0.0.9.tgz","fileCount":92,"unpackedSize":85065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEJo0jyLZcg/fpet6ix0ZZ59qb6WVBIxcTA3+K/yO7LhAiBJdKIR2wlEWr7JO5zqkzMaoK9aVkgzTZXUpgQdXcBT8A=="}]},"_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"directories":{},"maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ziegel-rx_0.0.9_1756450327394_0.9816899969911035"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-27T03:09:04.044Z","modified":"2025-08-29T06:52:07.755Z","0.0.1":"2025-06-27T03:09:04.331Z","0.0.2":"2025-06-27T03:22:04.512Z","0.0.3":"2025-07-03T20:46:41.883Z","0.0.4":"2025-07-03T20:55:19.607Z","0.0.5":"2025-07-05T07:08:24.201Z","0.0.6":"2025-08-06T08:11:01.825Z","0.0.7":"2025-08-06T08:17:47.720Z","0.0.8":"2025-08-09T13:14:52.242Z","0.0.9":"2025-08-29T06:52:07.581Z"},"bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"author":{"name":"andre.wehlert","email":"awehlert@breadstone.de","url":"https://www.breadstone.de"},"license":"MIT","homepage":"https://github.com/RueDeRennes/ziegel#readme","repository":{"type":"git","url":"git+https://github.com/RueDeRennes/ziegel.git"},"description":"Includes utilities for rx.","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"readme":"# @breadstone/ziegel-rx\r\n\r\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\r\n[![npm](https://img.shields.io/badge/npm-@breadstone/ziegel--rx-red.svg)](https://www.npmjs.com/package/@breadstone/ziegel-rx)\r\n\r\nReactive programming extensions and advanced RxJS utilities for the ziegel framework. Provides enhanced operators, reactive patterns, BLoC architecture, and subscription management utilities.\r\n\r\n> **Reactive Extensions**: Advanced reactive programming with custom operators, BLoC patterns, and enhanced RxJS utilities for complex data streams.\r\n\r\n## 🚀 Overview\r\n\r\n`@breadstone/ziegel-rx` provides:\r\n- **Enhanced RxJS Operators**: Custom operators for common reactive patterns\r\n- **BLoC Architecture**: Business Logic Component pattern implementation\r\n- **Subscription Management**: Advanced subscription handling and cleanup\r\n- **Reactive Extensions**: Extensions for observables and subjects\r\n- **Stream Utilities**: Countdown, observe, and transformation utilities\r\n- **Pattern Implementations**: Reactive design patterns for enterprise applications\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @breadstone/ziegel-rx\r\n# or\r\nyarn add @breadstone/ziegel-rx\r\n```\r\n\r\n## 🧩 Features & Usage Examples\r\n\r\n### Enhanced RxJS Operators\r\n\r\n```typescript\r\nimport { notNull, empty } from '@breadstone/ziegel-rx';\r\nimport { map, filter } from 'rxjs/operators';\r\n\r\n// Filter out null values from streams\r\nconst dataStream$ = source$.pipe(\r\n  notNull(), // Removes null and undefined values\r\n  map(data => data.value)\r\n);\r\n\r\n// Empty operator for placeholder streams\r\nconst emptyStream$ = empty<string>();\r\n```\r\n\r\n### BLoC Architecture Pattern\r\n\r\n```typescript\r\nimport { Bloc, BlocObserver, Transition } from '@breadstone/ziegel-rx';\r\n\r\n// Define events and states\r\ninterface CounterEvent {\r\n  type: 'increment' | 'decrement';\r\n}\r\n\r\ninterface CounterState {\r\n  count: number;\r\n}\r\n\r\n// Implement BLoC\r\nclass CounterBloc extends Bloc<CounterEvent, CounterState> {\r\n  constructor() {\r\n    super({ count: 0 });\r\n  }\r\n\r\n  mapEventToState(event: CounterEvent): CounterState {\r\n    const currentState = this.state;\r\n    switch (event.type) {\r\n      case 'increment':\r\n        return { count: currentState.count + 1 };\r\n      case 'decrement':\r\n        return { count: currentState.count - 1 };\r\n      default:\r\n        return currentState;\r\n    }\r\n  }\r\n}\r\n\r\n// Use BLoC\r\nconst counterBloc = new CounterBloc();\r\ncounterBloc.add({ type: 'increment' });\r\n```\r\n\r\n### BLoC Observer\r\n\r\n```typescript\r\nimport { BlocObserver, Transition } from '@breadstone/ziegel-rx';\r\n\r\nclass AppBlocObserver extends BlocObserver {\r\n  onTransition(transition: Transition<any, any>): void {\r\n    console.log('State transition:', transition);\r\n  }\r\n\r\n  onError(error: Error): void {\r\n    console.error('BLoC error:', error);\r\n  }\r\n}\r\n\r\n// Set global observer\r\nBloc.observer = new AppBlocObserver();\r\n```\r\n\r\n### Subscription Extensions\r\n\r\n```typescript\r\nimport {\r\n  CompositeUnsubscribable,\r\n  subscribeOnce,\r\n  once\r\n} from '@breadstone/ziegel-rx';\r\n\r\n// Composite subscription management\r\nconst subscriptions = new CompositeUnsubscribable();\r\n\r\nsubscriptions.add(\r\n  stream1$.subscribe(value => console.log('Stream 1:', value))\r\n);\r\nsubscriptions.add(\r\n  stream2$.subscribe(value => console.log('Stream 2:', value))\r\n);\r\n\r\n// Unsubscribe from all at once\r\nsubscriptions.unsubscribe();\r\n\r\n// Subscribe once to an observable\r\nsubscribeOnce(dataStream$, value => {\r\n  console.log('Received once:', value);\r\n});\r\n\r\n// Alternative syntax\r\nonce(dataStream$, value => {\r\n  console.log('Received once:', value);\r\n});\r\n```\r\n\r\n### Observable Extensions\r\n\r\n```typescript\r\nimport {\r\n  observe,\r\n  toBehaviorSubject,\r\n  toReplaySubject,\r\n  toSubject\r\n} from '@breadstone/ziegel-rx';\r\nimport { from } from 'rxjs';\r\n\r\n// Convert arrays to observables with observe\r\nconst arrayObservable$ = observe([1, 2, 3, 4, 5]);\r\n\r\n// Convert observables to different subject types\r\nconst source$ = from([1, 2, 3]);\r\n\r\nconst behaviorSubject = toBehaviorSubject(source$, 0); // With initial value\r\nconst replaySubject = toReplaySubject(source$, 3); // Replay last 3 values\r\nconst subject = toSubject(source$);\r\n```\r\n\r\n### Countdown Utilities\r\n\r\n```typescript\r\nimport { countdown, countdown2 } from '@breadstone/ziegel-rx';\r\n\r\n// Countdown from 10 to 0\r\ncountdown(10).subscribe(count => {\r\n  console.log('Countdown:', count);\r\n});\r\n\r\n// Advanced countdown with custom interval\r\ncountdown2(30, 1000).subscribe(count => {\r\n  console.log('30 second countdown:', count);\r\n});\r\n```\r\n\r\n```typescript\r\nimport { IReactiveCommand } from '@breadstone/ziegel-rx';\r\n\r\n// Implement reactive commands for user interactions\r\nclass SaveCommand implements IReactiveCommand {\r\n    execute() {\r\n        // Command execution logic\r\n    }\r\n\r\n    canExecute() {\r\n        // Command availability logic\r\n    }\r\n}\r\n```\r\n\r\n### Enhanced Operators\r\n\r\n```typescript\r\nimport { customOperators } from '@breadstone/ziegel-rx';\r\nimport { of } from 'rxjs';\r\n\r\n// Use enhanced operators for complex data transformations\r\nconst stream$ = of(1, 2, 3).pipe(\r\n    // Custom operators for enterprise scenarios\r\n);\r\n```\r\n\r\n### Observable Patterns\r\n\r\n```typescript\r\nimport { reactivePatterns } from '@breadstone/ziegel-rx';\r\n\r\n// Implement reactive data patterns\r\nconst dataStream$ = reactivePatterns.createDataStream();\r\n```\r\n\r\n## 📚 Package import points\r\n\r\n## 📚 Package import points\r\n\r\n```typescript\r\nimport {\r\n    // Subscription Management\r\n    CompositeUnsubscribable,\r\n\r\n    // Extensions\r\n    countdown, countdown2, observe,\r\n    subscribeOnce, once,\r\n    toBehaviorSubject, toReplaySubject, toSubject,\r\n\r\n    // Operators\r\n    empty, notNull,\r\n\r\n    // BLoC Pattern\r\n    Bloc, BlocObserver, Transition,\r\n    EventStreamClosedException\r\n} from '@breadstone/ziegel-rx';\r\n```\r\n\r\n## 📚 API Documentation\r\n\r\nFor detailed API documentation, visit: [API Docs](./../../.docs/api/ziegel-rx/index.md)\r\n\r\n## Related Packages\r\n\r\n- **@breadstone/ziegel-core**: Foundation utilities and reactive patterns\r\n- **rxjs**: Core reactive programming library\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Issues\r\n\r\nPlease report bugs and feature requests in the [Issue Tracker](https://github.com/RueDeRennes/ziegel/issues)\r\n\r\n---\r\n\r\n*Part of the [ziegel Enterprise TypeScript Framework](../../README.md)*","readmeFilename":"README.md"}