{"_id":"@breadstone/ziegel-redux","_rev":"9-75e719e371f4a4a544d44b31dac2154d","name":"@breadstone/ziegel-redux","dist-tags":{"latest":"0.0.9"},"versions":{"0.0.1":{"name":"@breadstone/ziegel-redux","version":"0.0.1","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@0.0.1","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"c600b74fb74b25cbdb4f0273f1ae6af06af5d83e","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.1.tgz","fileCount":75,"integrity":"sha512-eO3HWTl3jydKsWd0N7Wnb7yJ+GzoKEHTPa0DcKNjsdzSt/Wmrwe5mYQdjvMklimtsXb11+YKHD/nTYZicrodcg==","signatures":[{"sig":"MEYCIQCfYwZPBzCI32OTx2+N82px3HryH2cHrbA5Nnm9vBOeugIhAJ3zLWl78xmp6l+j+XeT1VECne13MrWGvmAmKmry/TkV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121684},"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 redux.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.1_1750993748025_0.27440666531930447","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@breadstone/ziegel-redux","version":"0.0.2","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@0.0.2","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"8b67c9446ccb46c6c9e92841a30b133dff29b365","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.2.tgz","fileCount":76,"integrity":"sha512-AM69jpn6+xCFoTukhyq3pNSLIp+2OksV3quSkNjlZauQ+s0OFoJct2u70ywF2IsnVqyWD061jQZyYk5cdh1nAg==","signatures":[{"sig":"MEUCIQCwYS6oceRKQi0+PPy0wMN2UPBA0WjSyQ0BwBkYkJECNQIgK0faH9q5hV4rue8yZ2+WopiiUqxxEH3KHv7D+0F51vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122147},"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 redux.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.2_1750994527929_0.015198028498904836","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@breadstone/ziegel-redux","version":"0.0.3","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"dbc202236d923846b00bcb482fb20337bf149243","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.3.tgz","fileCount":72,"integrity":"sha512-m+mf7QJtTk5s3IU430RkjUFVVbaj0DsiyAkGd1y0GW1OvLWOXfGmgyvmek+ECuSIHmF3tGr3KTG+gaJffA0ycw==","signatures":[{"sig":"MEQCIGCdfzTcrnGQRti9UGWtHFbAntj1HqBbIOL+Q147BgMuAiBt1pahpZ14W9jmBzKocIDsyYHs6NuXXpDy9kwnW8ohkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43696},"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 redux.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.3_1751575616111_0.035546353599209546","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@breadstone/ziegel-redux","version":"0.0.4","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"33c14c16dcfffae6def00f33d1f3561c45f1a6fa","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.4.tgz","fileCount":72,"integrity":"sha512-Jf9kYR0wwHdZ+2bjnzsQnVMqNNQU6BOmgOloSKHc3fP6HD+qQvlOKnH5COIdgJrmxoCrPLmYw/8MX8b7ZmbctQ==","signatures":[{"sig":"MEUCIQCaWWvfD/cq4YlAzvxjue3Jf2w++LffXEsxa8wmQguFVQIgBKwiWjA60wtF7IauN1Tbc5V0ZOCXhTu0pnLPYL8YksU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43696},"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 redux.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.4_1751576123239_0.5436249725124864","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@breadstone/ziegel-redux","version":"0.0.5","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"3dc4cecaeeaa1ed57973fa0dac87d726a42b04ad","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.5.tgz","fileCount":72,"integrity":"sha512-jmoU16E6VqvTh85x43XI4bUQKmEeIO0MDf1kvdro4kY56uGIaHTjtEM505oB1+I+g7HN0ImCA8M1t1oPo0uWKA==","signatures":[{"sig":"MEUCIQC6dZjumxXzZARxW8CGcAEMrnIDOqClldVyl5q4esz/7AIgOR1JNGbqfV3Pudy3vL8eyYCpKHe9B1OEENNT92k6lZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47424},"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 redux.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.5_1751699303224_0.5150340001946034","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@breadstone/ziegel-redux","version":"0.0.6","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"7a4edd0a49f04378844bca3536b4d621523f5131","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.6.tgz","fileCount":72,"integrity":"sha512-anlhUWPfrQwCsGp30/FVVEntpq2PBgeJUEDCaPr0LzI+LpEe4MItr+wcwnNJzJpoTnsvooh52Mavc+u+oW2+2Q==","signatures":[{"sig":"MEUCIQDUTClX+c4242ZuU74Tr2i7rncsw6sDTk61EARHVr5lSgIgCkwBDzvijZ8X9pm4Nv72lx6YOzFou7lKZq6LMbejvTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51937},"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 redux.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.6_1754467865840_0.625928048317008","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@breadstone/ziegel-redux","version":"0.0.7","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"19ba5f9c0e5df8b0f53ddbd65f5b1d91bbf64bbc","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.7.tgz","fileCount":72,"integrity":"sha512-3SUft1KlN2rcz2Q1ZcGTcXBNKVtWCAW03AJEraEIfFP6WjY2WQnULCEEZipOl/moNvE0fBihd6bmoDH44Xa19Q==","signatures":[{"sig":"MEYCIQCTV5FCpouTkgPEnMDc92yZmYvnVfhRICaujsB6BZ0ZfAIhAJgngHIzmQamLyXwvcN7i1M9EauIluLq1s1L3FYhCIB0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51937},"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 redux.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.7_1754468281955_0.4394570524748598","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@breadstone/ziegel-redux","version":"0.0.8","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-redux@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":"01e2b300b63b7c7e3e0e83362dfa384676902b0c","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.8.tgz","fileCount":72,"integrity":"sha512-8w3oXAV7MiTZqw3Cp9Fui3Gr+ub3z7DkMImfbqcq3lNUL2MleWaWIsk9hZxZd8b9ZrnsmcIyiKnnZFMKx18n1A==","signatures":[{"sig":"MEQCIEcfcqADHBeCQz50eGzgiMNic3uZdPt9ExcIfRcqYiiZAiBlVmbD5n9KOMMH4OWU+m2KIkggNFBqvtx8J1sDG46Ihw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50677},"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 redux.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-redux_0.0.8_1754745307626_0.6705920603842213","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@breadstone/ziegel-redux","version":"0.0.9","description":"Includes utilities for redux.","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","tslib":"^2.8.1"},"_id":"@breadstone/ziegel-redux@0.0.9","gitHead":"efc417cb60db843da253c8b83aa7ea54fe94ed5f","homepage":"https://github.com/RueDeRennes/ziegel#readme","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-pRXNxuxBqWpC5KIqr+ZdSrG5kvFjEpQ1XRXQ2P4u73Bt5kf5LqWo+nuehvc7lm/Tq+9kTwrYqoss0OFLITC3PQ==","shasum":"d915bb1c67418c7163b6dad4a161affdc7a99321","tarball":"https://registry.npmjs.org/@breadstone/ziegel-redux/-/ziegel-redux-0.0.9.tgz","fileCount":72,"unpackedSize":50677,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCWXnfaTgenGNspo+VL1idHwjTKQ7zIi+50vhPfXDt3ZgIhANS8fuqW95w1SwPysE2f84Kiunl4OoBV4X5Z46kX9DW+"}]},"_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-redux_0.0.9_1756450341861_0.25407102556230776"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-27T03:09:07.844Z","modified":"2025-08-29T06:52:22.260Z","0.0.1":"2025-06-27T03:09:08.210Z","0.0.2":"2025-06-27T03:22:08.135Z","0.0.3":"2025-07-03T20:46:56.287Z","0.0.4":"2025-07-03T20:55:23.412Z","0.0.5":"2025-07-05T07:08:23.468Z","0.0.6":"2025-08-06T08:11:06.066Z","0.0.7":"2025-08-06T08:18:02.182Z","0.0.8":"2025-08-09T13:15:07.817Z","0.0.9":"2025-08-29T06:52:22.040Z"},"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 redux.","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"readme":"# @breadstone/ziegel-redux\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--redux-red.svg)](https://www.npmjs.com/package/@breadstone/ziegel-redux)\r\n\r\nState management and reactive patterns for the ziegel framework. Provides Redux-style stores, observables, subjects, and action/reducer patterns for predictable state management.\r\n\r\n> **State Management**: Redux-inspired state management with reactive programming patterns and type-safe actions and stores.\r\n\r\n## 🚀 Overview\r\n\r\n`@breadstone/ziegel-redux` provides:\r\n- **Redux Store**: Type-safe Redux store implementation with actions and reducers\r\n- **Reactive Patterns**: Observables, subjects, and subscription management\r\n- **Action System**: Structured action interfaces and dispatching\r\n- **Middleware Support**: Extensible middleware pipeline for actions\r\n- **State Management**: Predictable state updates with action/reducer patterns\r\n- **Type Safety**: Full TypeScript support for stores, actions, and state\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @breadstone/ziegel-redux\r\n# or\r\nyarn add @breadstone/ziegel-redux\r\n```\r\n\r\n## 🧩 Features & Usage Examples\r\n\r\n### Redux Store\r\n\r\n```typescript\r\nimport { Store, IStore, IAction } from '@breadstone/ziegel-redux';\r\n\r\ninterface AppState {\r\n  count: number;\r\n  user: User | null;\r\n}\r\n\r\ninterface IncrementAction extends IAction {\r\n  type: 'INCREMENT';\r\n  payload?: number;\r\n}\r\n\r\nconst store = new Store<AppState>({\r\n  count: 0,\r\n  user: null\r\n});\r\n\r\n// Dispatch actions\r\nstore.dispatch({ type: 'INCREMENT', payload: 1 });\r\n```\r\n\r\n### Observable and Subject\r\n\r\n```typescript\r\nimport { Observable, Subject, IObservable, IObserver } from '@breadstone/ziegel-redux';\r\n\r\n// Create a subject for data streaming\r\nconst dataSubject = new Subject<string>();\r\n\r\n// Subscribe to changes\r\ndataSubject.subscribe(value => {\r\n  console.log('Received:', value);\r\n});\r\n\r\n// Emit values\r\ndataSubject.next('Hello');\r\ndataSubject.next('World');\r\n\r\n// Create custom observables\r\nconst customObservable = new Observable<number>(observer => {\r\n  let count = 0;\r\n  const interval = setInterval(() => {\r\n    observer.next(count++);\r\n  }, 1000);\r\n\r\n  return () => clearInterval(interval);\r\n});\r\n```\r\n\r\n### Action System\r\n\r\n```typescript\r\nimport { IAction, IDispatcher, IReducer } from '@breadstone/ziegel-redux';\r\n\r\n// Define typed actions\r\ninterface SetUserAction extends IAction {\r\n  type: 'SET_USER';\r\n  payload: User;\r\n}\r\n\r\ninterface ClearUserAction extends IAction {\r\n  type: 'CLEAR_USER';\r\n}\r\n\r\ntype UserActions = SetUserAction | ClearUserAction;\r\n\r\n// Implement reducer\r\nconst userReducer: IReducer<User | null, UserActions> = (state = null, action) => {\r\n  switch (action.type) {\r\n    case 'SET_USER':\r\n      return action.payload;\r\n    case 'CLEAR_USER':\r\n      return null;\r\n    default:\r\n      return state;\r\n  }\r\n};\r\n```\r\n\r\n### Middleware\r\n\r\n```typescript\r\nimport { IMiddleware, IAction, IStore } from '@breadstone/ziegel-redux';\r\n\r\n// Create logging middleware\r\nconst loggingMiddleware: IMiddleware = (store, next) => (action) => {\r\n  console.log('Dispatching action:', action);\r\n  const result = next(action);\r\n  console.log('New state:', store.getState());\r\n  return result;\r\n};\r\n\r\n// Apply middleware to store\r\nstore.use(loggingMiddleware);\r\n```\r\n\r\n### Reactive Subscriptions\r\n\r\n```typescript\r\nimport { ISubscription, ISubscribable } from '@breadstone/ziegel-redux';\r\n\r\n// Subscribe to store changes\r\nconst subscription: ISubscription = store.subscribe(state => {\r\n  console.log('State changed:', state);\r\n});\r\n\r\n// Unsubscribe when done\r\nsubscription.unsubscribe();\r\n\r\n// Work with subscribable patterns\r\nfunction processSubscribable<T>(subscribable: ISubscribable<T>) {\r\n  return subscribable.subscribe(value => {\r\n    // Process the value\r\n    console.log('Processing:', value);\r\n  });\r\n}\r\n```\r\n\r\n## 📚 Package import points\r\n\r\n```typescript\r\nimport {\r\n    // Reactive Interfaces\r\n    IObservable, IObserver, ISubscribable, ISubscriber, ISubscription,\r\n\r\n    // Reactive Implementations\r\n    Observable, Subject,\r\n\r\n    // Redux Interfaces\r\n    IAction, IDispatcher, IMiddleware, IReducer,\r\n\r\n    // Store\r\n    IStore, Store\r\n} from '@breadstone/ziegel-redux';\r\n```\r\n    // Redux utilities (to be implemented)\r\n    // This package is planned for Redux state management patterns\r\n    // Implementation will follow Redux/Redux Toolkit patterns\r\n} from '@breadstone/ziegel-redux';\r\n```\r\n\r\n## 📚 API Documentation\r\n\r\nFor detailed API documentation, visit: [API Docs](./../../.docs/api/ziegel-redux/index.md)\r\n\r\n## Related Packages\r\n\r\n- **@breadstone/ziegel-core**: Foundation utilities and type definitions\r\n- **redux**: Core Redux library\r\n- **reselect**: Selector library for Redux\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"}