{"_id":"@abasb75/state-manager","_rev":"8-cbcf9ca96f17bb449053c3ec2973467b","name":"@abasb75/state-manager","dist-tags":{"latest":"0.0.0-test9"},"versions":{"0.0.0-test":{"name":"@abasb75/state-manager","version":"0.0.0-test","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"ace6695bed51aa7027f5178fb7b77202868405f0","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test.tgz","fileCount":19,"integrity":"sha512-QRqrIiJO6SJqo+xrY20+jqRDV7RTMy3R0tFk4J5pJeRgCIZXqn0eCee9RocdjGdINN8U3GL4arLeEYMUgM2GkA==","signatures":[{"sig":"MEUCIQCoJdmospfhzSOAYxdhSjGnaQOvYDs6s6+/M7GTPt9bUQIgaqr/jYdydwq50t5oHUCLC0nmEKGRMGX6+2/u3c6tKvk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37795},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a8652fee4c84fb2c459bdbe8916a7dfce8c1d699","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{"pako":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"pako":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test_1733066142496_0.829162068270235","host":"s3://npm-registry-packages"}},"0.0.0-test0":{"name":"@abasb75/state-manager","version":"0.0.0-test0","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test0","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"052accef641da3d7094ffdc67ffba5f3b2a651c9","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test0.tgz","fileCount":19,"integrity":"sha512-PgKPc1xsLtX79kD5Sy4RmIEPyJprV2u5tYToVxyJAIpGg6vUdhiyBPBhTQ+KtbzUe4MjcB+5FfhwxjpdHi6Vaw==","signatures":[{"sig":"MEYCIQCkv4Q+GCBhUkWWjiJ5Usp7/EdYN8/Jy1sjo8JBGQ7lKQIhAIPwusUyKtLmwXX45rIEbbH7XWbDBaFK3KSGZ2+t/rdH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37765},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a8652fee4c84fb2c459bdbe8916a7dfce8c1d699","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{"@abasb75/state-manager":"^0.0.0-test"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test0_1733066268717_0.814407950310327","host":"s3://npm-registry-packages"}},"0.0.0-test1":{"name":"@abasb75/state-manager","version":"0.0.0-test1","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test1","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"dc5ff8fec90aec06e4d6f6a3f5f7180cfa545fba","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test1.tgz","fileCount":19,"integrity":"sha512-33ewq9XHpMV7CVarOFXVMlTTmTMCxvBMdbPvuRP7Yc0h+vqDrBMg2A76nkcAgbGmik9iW9y8f5FFEqyutwr60g==","signatures":[{"sig":"MEUCIQDByuEXBC1i+1ebW3eeDeU5Pl32EnQgMp3sPWyyXjiDIQIgNPCqnoNu9zxIO2jeZ/j2JbXRcvxVBHdEnwq6CcNpi/o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39157},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a8652fee4c84fb2c459bdbe8916a7dfce8c1d699","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{"pako":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"pako":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test1_1733068105238_0.6870338753930187","host":"s3://npm-registry-packages"}},"0.0.0-test2":{"name":"@abasb75/state-manager","version":"0.0.0-test2","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test2","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"372368e18096f3ec5408dd9fd053be6f6a445d51","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test2.tgz","fileCount":19,"integrity":"sha512-FKymEXK9JI/dFfUZb3AvCQqw37RaKZTKNEHxDmJg0+ztPYw+yaAaRYPcNhT4NN+rOCdJSRfQSSgeB7uOechHfw==","signatures":[{"sig":"MEUCIQDbFlWNCo5IKCRpVfLHNtBRYJnTK60EWsM0duNsq13XaQIgUVaE/VS72wXVcwbpsTzF4JsMRo+ZxaNQKUhGjVbknPQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39107},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a8652fee4c84fb2c459bdbe8916a7dfce8c1d699","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test2_1733068247826_0.32753053536207144","host":"s3://npm-registry-packages"}},"0.0.0-test5":{"name":"@abasb75/state-manager","version":"0.0.0-test5","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test5","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"ad89efa7bcd68e56f1bb8975f52fae6f35dfcfbf","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test5.tgz","fileCount":19,"integrity":"sha512-IHaBZQvLQYo+UJ8yCxvGz7hQLm3QAw5OYtWK53lLhzay3K2RD2meNLm/1uezhV45XyOQo3DIP3g0hqd4o4uoyw==","signatures":[{"sig":"MEQCIBK9xs3K45HAZ1AhSPYb2j3d63Y0ft3BiBdczpEmyp5sAiBv7VxFmQcwK2byn4oaRB2TyJF6fwOI542OK46YUuVJfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39541},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"dfd1a1403d2f903d404560ef5656c7d12affe281","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test5_1733074448731_0.5555494127669247","host":"s3://npm-registry-packages"}},"0.0.0-test6":{"name":"@abasb75/state-manager","version":"0.0.0-test6","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test6","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"93f712f51d2be8ea06c1d1fc751a3941d8d44824","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test6.tgz","fileCount":19,"integrity":"sha512-vmnPPC91Y4v6K/Ka4KWHAVeKGyfD5s3+ohPvQAnapF5AV245XUvP4mumSrpq/UUnu/d0PiCEQwHkC6nISvaP5g==","signatures":[{"sig":"MEQCIE+uW6C1vU78VbMJE8lVkI2B09xWAECnoXfIs0y/2ewUAiAI/0SwsXhvzPCUp1Y/gdls7z2DXx9AydEi5emazyThMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39932},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"dfd1a1403d2f903d404560ef5656c7d12affe281","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test6_1733135503176_0.9938514903814504","host":"s3://npm-registry-packages"}},"0.0.0-test7":{"name":"@abasb75/state-manager","version":"0.0.0-test7","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test7","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"b937b9908a80b0a56c80dbfbf45ed8a052a0dc8f","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test7.tgz","fileCount":19,"integrity":"sha512-oWuQBbQEQeM6/9b1POCBjAAVwLYkrXAV0/8ETTkQF5nP5hvPvoPgCcAJ9OUbVsW8PELkLi6mQ0rQOJVYsR2qBw==","signatures":[{"sig":"MEUCIGlp+PixCBZUwohoVT2xMjgeVHSd8sJyii4iJ8MXrJfoAiEA1/StB1ORv9+oYmSXUiypNfnP2/0rdBmuFW/+rJOI6ZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40123},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"9212c801c667271e63e5f5d150bf7424c7acae40","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test7_1733234087854_0.5092998281671048","host":"s3://npm-registry-packages"}},"0.0.0-test8":{"name":"@abasb75/state-manager","version":"0.0.0-test8","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","_id":"@abasb75/state-manager@0.0.0-test8","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"homepage":"https://github.com/abasb75/state-manager#readme","bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"dist":{"shasum":"6e52c00efbd7349525e4e85b9def63174443cb89","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test8.tgz","fileCount":19,"integrity":"sha512-FjBhxUILpNuA5pAkcqWhMjMzi7KAA5xQ+h7hEmLVctUDFYulFo4g+vzDIs5svUtaheNhK/4P67sS+NrRUXRsfw==","signatures":[{"sig":"MEUCICShxq+Lj79MssqKmThoinylUhFfLYnSYWesOeNBGNRQAiEAr4g6iGq4B0fYQuilp6UEJjP9xJoEiIBaAfjRokrts6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40568},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"9212c801c667271e63e5f5d150bf7424c7acae40","_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"repository":{"url":"git+https://github.com/abasb75/state-manager/raction.git","type":"git"},"_npmVersion":"10.9.0","description":"a javascript powerfull state manager","directories":{},"_nodeVersion":"22.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/state-manager_0.0.0-test8_1733290816260_0.715259533920815","host":"s3://npm-registry-packages"}},"0.0.0-test9":{"name":"@abasb75/state-manager","version":"0.0.0-test9","description":"a javascript powerfull state manager","main":"index.js","type":"module","types":"index.d.ts","keywords":["state","state-manager"],"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/abasb75/state-manager/raction.git"},"bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"homepage":"https://github.com/abasb75/state-manager#readme","dependencies":{},"peerDependencies":{},"devDependencies":{},"_id":"@abasb75/state-manager@0.0.0-test9","gitHead":"9212c801c667271e63e5f5d150bf7424c7acae40","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-bEiY46sp8jemkCIaVyJMffGXakjbXJa9GsRJ+GxrleykZcEA1QEIA8eB9lXC+XVaE/zNNJ1pSJPJl2r4rYga8g==","shasum":"1328b4046ccd2c15ac1b43546ae7f7121331cc6e","tarball":"https://registry.npmjs.org/@abasb75/state-manager/-/state-manager-0.0.0-test9.tgz","fileCount":19,"unpackedSize":40607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS/UyERNgY29ggcGDV9RO4cUnzYV7Yhd6+uQzS9+nIrAIgbApZq9hT2RjE48au2SsE+K8sOZMizMDGZQtcfqyey5E="}]},"_npmUser":{"name":"abasb75","email":"abasbagheria@gmail.com"},"directories":{},"maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/state-manager_0.0.0-test9_1733888401498_0.4958344126414478"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-01T15:15:42.404Z","modified":"2024-12-11T03:40:02.160Z","0.0.0-test":"2024-12-01T15:15:42.704Z","0.0.0-test0":"2024-12-01T15:17:48.898Z","0.0.0-test1":"2024-12-01T15:48:25.447Z","0.0.0-test2":"2024-12-01T15:50:48.006Z","0.0.0-test5":"2024-12-01T17:34:08.908Z","0.0.0-test6":"2024-12-02T10:31:43.353Z","0.0.0-test7":"2024-12-03T13:54:48.018Z","0.0.0-test8":"2024-12-04T05:40:16.406Z","0.0.0-test9":"2024-12-11T03:40:01.730Z"},"bugs":{"url":"https://github.com/abasb75/state-manager/issues"},"author":{"name":"Abbas Bagheri","email":"abasbagheria@gmail.com"},"license":"ISC","homepage":"https://github.com/abasb75/state-manager#readme","keywords":["state","state-manager"],"repository":{"type":"git","url":"git+https://github.com/abasb75/state-manager/raction.git"},"description":"a javascript powerfull state manager","maintainers":[{"name":"abasb75","email":"abasbagheria@gmail.com"}],"readme":"# @abasb75/state-manager\n`@abasb75/state-manager` is a great and best state manager tools for your javascript web applications.  \n1. sync data between opened browser tabs when updating state.\n2. save data on `localstorage`\n3. great type hint for `state` or defined `action`\n\n# installation\n\n```sh\nnpm i @abasb75/state-manager --save\n```\n\n# Quick Start:\n\n1. Create `initial value`  for passing to store's object:\n\n```javascript\n\ninterface StateType {\n    darkMode:boolean;\n    counter:number;\n    notes:{\n        text:string;\n        date:number;\n    }[];\n}\n\nconst initialState:StateType = {\n    darkMode:false,\n    counter:0,\n    notes:[],\n}\n\n```\n\n\n2. Define your `actions`:\n\n```javascript\n\nconst actions = {\n    toggleDarkMode:(state:StateType)=>{\n        return {\n            ...state,\n            darkMode:!state.darkMode,\n        };\n    },\n    counter:{\n        increment:(state:StateType)=>{\n            return {\n                ...state,\n                counter:state.counter+1,\n            }\n        },\n        decrement:(state:StateType)=>{\n            return {\n                ...state,\n                counter:state.counter-1,\n            }\n        },\n    },\n    notes:{\n        add:(state:StateType,text:string):StateType=>{\n            console.log('add worked!')\n            return {\n                ...state,\n                notes:[\n                    ...state.notes,\n                    {\n                        text:text,\n                        date:Date.now(),\n                    }\n                ]\n            }\n        },\n        delete:(state:StateType,id:number):StateType=>{\n            return {\n                ...state,\n                notes:state.notes.filter(n=>n.date!==id),\n            }\n        },\n    }\n}\n\n```\n\n3. Create your store:\n\n```javascript\n\nimport { createStore } from \"@abasb75/state-manager\";\n\n...\n\nconst initialState:StateType = {\n    ...\n}\n\n\nconst actions = {\n    ...\n}\n\nconst store = createStore({\n    initialState,\n    actions,\n    storgable:true, // if storagble sets true, states saved on localstorage\n    storageKey:'mystorage',\n});\n\nexport default store;\n\n```\n\n4. import store everywhere you neeed it:\n\n```javascript\n\nimport store from './store';\n\n```\n\n5. get state data with `get` method:\n\n```javascript\n\nconst state = store.get(); //return state\n\n...\n\nconst state = store.get(state=>state.counter); //return counter value \n\n```\n\n6. update state properties value with `set` method:\n\n```javascript\n\nstore.set({\n  counter:0;\n}).then(state=>{\n  console.log(state.counter);\n});\n\n```\n\n7. update state value with defiened `actions`:\n\n```javascript\nstore.getActions().counter.increment();\n\n```\n\n8. For `subscribe` state changes:\n\n```javascript\nconst unsubscribe = (state)=>{\n    console.log(state);\n}\n\n// subscribe return itself unsubscribe\nunsubscribe();\n\n// alternative for get subscriber:\nconst subscribeId = store.addSubscriber((state)=>{\n    console.log(state);\n});\n\n// and  unsubscribe with subscribeId:\nstore.unsubscribe(subscribeId);\n\n```\n\n# Rect\n`@abasb75/react-state-manager` is an extention to use this package in react.\n\n# Examples:\n<a href=\"https://github.com/abasb75/state-manager/tree/main/react-test\">Simple Note App</a>","readmeFilename":"README.md"}