{"_id":"@futureverse/stateboss","_rev":"48-6e9acc7c1b2777bd7dca4f729b80ed8f","name":"@futureverse/stateboss","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.1":{"name":"@futureverse/stateboss","version":"0.0.1","_id":"@futureverse/stateboss@0.0.1","maintainers":[{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"41ab00c2e4e3e499630883bc80442e35428ff55e","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.0.1.tgz","fileCount":8,"integrity":"sha512-gO0BS+s/jjolSNO1Gdbl9ob6vHN74jj3X7bEgLn4rlpHtK4x9q2pS5z+K8UzpV9LeIIlQ+lxY51FqYNmaz7jlQ==","signatures":[{"sig":"MEQCIAwmWbW0hzt0/9tZkAVNjtVnjXO2Ru6buZiOZJtN5mX4AiANoXkbQOZszKa8bpW8owwQuesBnLn9GNCASLUePC8tww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6reOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqADw//RunkuwvWK6m472U7MXdZvnEG/FLpGCh63OaBLwB9sodxbI/S\r\nQP2VswHFKbtb3FC25m5g8KN1zkV2fjO8lLqGdrgdfgNFZ3xPXtblRICr7RTs\r\nryUQV1P9Zo6y5EzCi81YM5vVBPpswtT/vxXwwZ6lQGJRBTEIWqKa7TOnm8mW\r\n+HP+ylERTvsp/UPpevXz2HRmDsqE3qJd1G0iyD0VlILJFUs6nTDPIkjci+qQ\r\nOXpjZX38lUp5v5BO85CKvIlLvU/m9yqkm0V9U/qsOnmRSF33ycKYsZ1Gn5hT\r\nv9KecXX4WdYOuEJGYLen5aYBgauHEWoXRFDf5GlnVis93/gbQMgVDVgDzbjJ\r\nXISkkuVIGjor4W45QrmcN1aB6ZO5A9GPXUaihSSMggUfDjUC6Zr9j6E7Szr6\r\nvQ1RWPETXvYLirEDOyZj0C8Y1zzelSoD7xwI0NkEJP0cBuKhBRjes11JKXx8\r\nOLzmPibXJaPpOMSvg8ei1egyrfIXWDLp+XoOkLJFfSU4ZbcR0gHX49KX/IZb\r\n9WoDxQSsNri+ebjTMJ9G/ZVZoIOoOfh82rGYE3QyG0FozKFZ6p0JGo0BO31Z\r\nbgX/uG3lVOMNeGHfmLswHJiL8oadRRbnq2gyEplRXHbfcU75hdnEmqRq1IM7\r\n2ZMgdxeAgQPzCFOwcxc1CCcWEAnUmhGB+X8=\r\n=ZW5H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"fd7272bb7fbab35ca78bb990b56a183a77bbfdaf","_npmUser":{"name":"felixschl","email":"felixschlitter@gmail.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"8.19.2","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"18.12.1","dependencies":{"react":"^18.2.0","tslib":"^2.4.1","@sylo/logger":"^0.1.18"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.0.1_1676326798020_0.9072556001652918","host":"s3://npm-registry-packages"}},"0.1.0-pre.1":{"name":"@futureverse/stateboss","version":"0.1.0-pre.1","_id":"@futureverse/stateboss@0.1.0-pre.1","maintainers":[{"name":"hally9k","email":"hally9k@gmail.com"},{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"b01f16291d43aa285848e6df3a9657cd7f62440c","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.1.0-pre.1.tgz","fileCount":8,"integrity":"sha512-VmFRKu9wPiqjcxFgY6p/QEeaXw6OqWS0JzFX+Nz0/xuOnHv7wEzMgWNkhPmKxunhjrXuKxtRPDS9ND5FBSLo3w==","signatures":[{"sig":"MEUCIGks2QwI7H+/+TGjtqkNKDtNmXFbpDro6fvQfdwCyhywAiEA0U1JXOUSZtqftcP2bMGlW5apAHttfwV2Vm3OH0ExU5k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIjkOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8Ug//ZXisblChnxaPk0Okz4a4wuV4fzn/yf+6x6QHjY4c78DMQhcz\r\nHRCXiwZ+r47zyTe77it/e+Z3idmVpAAPnTb3hThD7Z1Xllbnl7g7xHXzE9XD\r\nzbrN/pzOjYobPea9F8K18amjRG8MwFNNDsOJ1CpdrED7dmjf5QgXLdSJ8hNn\r\nadHteXiLo9hBCGiR/AWmAeNaxSJbYmZyz40bX8ekd/5rHnFr4JNVCtauQmf8\r\nIXNMa+Ki0kLjzI4mWz9WaK74/SVTQ/fjdvkRvxeGG/6tuOeLtW/AiX7zGGSS\r\niPL5MjQj4dQvUXxWTVKwFPTjnBhJFLOLaOUnlGqTMBmVLgH4grushPhCzMbT\r\nW/FlW1Dx3FSY36jm4L9VlovETsf9GexlrJ/x895xEjZ8T4jKZQBnz69/2SDY\r\nwev7tWAn0tHn3XTqKarN3poO78lwYUlBtQrHVN9vFMJJb2BKxhSe9LsYjTTX\r\nLBEt1YnXMwDNr16uCJd59aW4gXbhZBR4xqa/fr+ambOeijTrHn96+Fs0Ci7M\r\nQgTGJ6pg/R+F6HzGerrOPF0dQ+mOWXl5D/6LlACDQtO6jfE9kyVOdnu6CUSs\r\nX2L5WMClbptCER/A/5IQzsUeEY/Dc7CMxORCVobf7fw9BdW1M6oyMe1SbGJ6\r\nW0I0HildBWjpdxF6bCpfYcD5J6VZTIkq5ZU=\r\n=oEQK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"felixschl","email":"felixschlitter@gmail.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"8.19.2","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"18.12.1","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0","tslib":"^2.5.0","@sylo/logger":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.1.0-pre.1_1679964430225_0.7709303582559623","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@futureverse/stateboss","version":"0.1.0","_id":"@futureverse/stateboss@0.1.0","maintainers":[{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},{"name":"jcsanpedro","email":"john@sylo.io"},{"name":"nick95550","email":"nicholas@sylo.io"},{"name":"helenpham","email":"helen@sylo.io"},{"name":"garethdainesnpm","email":"gareth.daines@futureverse.com"},{"name":"developer-darpan","email":"Darpan@sylo.io"},{"name":"rupertfv","email":"rupert@sylo.io"},{"name":"tknff","email":"tikonoff@gmail.com"},{"name":"donlok","email":"donlokuge@gmail.com"},{"name":"mj.liang","email":"kim.liang@futureverse.com"},{"name":"hlissnake","email":"hlislichking@gmail.com"},{"name":"chris.czurylo","email":"krzysztof.czurylo@gmail.com"},{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"b393e7c97469bab4798320612befa4358c9bbadf","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.1.0.tgz","fileCount":12,"integrity":"sha512-fYZMEUOA2DbDEHnB2NAUrkcO9hNRz6fqtLsK+h/XzkRIc5HLeRSUNmgh3YyfwsfQ4/WNqckPFi0u96Jhd5iflg==","signatures":[{"sig":"MEUCIQCDvM4XXZp0o5rl0cMrN/7f627eAmf4Zke7uckqgRmM+gIgBiaZC1QXd6H4cusD7Y94ixMmLs5IdYVmKE0hUdAEKkA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9520},"main":"./src/index.js","type":"commonjs","gitHead":"cf565294762d7703aa533dece6ed6dcfcb1e9ba0","typings":"./src/index.d.ts","_npmUser":{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"10.1.0","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.1.0_1700517071001_0.9774821811513172","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@futureverse/stateboss","version":"0.1.1","_id":"@futureverse/stateboss@0.1.1","maintainers":[{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},{"name":"jcsanpedro","email":"john@sylo.io"},{"name":"nick95550","email":"nicholas@sylo.io"},{"name":"helenpham","email":"helen@sylo.io"},{"name":"garethdainesnpm","email":"gareth.daines@futureverse.com"},{"name":"developer-darpan","email":"Darpan@sylo.io"},{"name":"rupertfv","email":"rupert@sylo.io"},{"name":"tknff","email":"tikonoff@gmail.com"},{"name":"donlok","email":"donlokuge@gmail.com"},{"name":"mj.liang","email":"kim.liang@futureverse.com"},{"name":"hlissnake","email":"hlislichking@gmail.com"},{"name":"chris.czurylo","email":"krzysztof.czurylo@gmail.com"},{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"3bf6c6541cee8ca3165de11224f86b7e8bcf6c49","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.1.1.tgz","fileCount":8,"integrity":"sha512-K0sZAx//Mz4WFAem0S0CPk3JhVLY0qnau5HCwM4KfbieohnOZuLMiTsji0JBX+IuxFRjHmGHsnvpvAa//1LK3g==","signatures":[{"sig":"MEUCIQDJVkFDFdvD/m+sAfxqynK/qF6zVu/qctRZZNDHxnTYTAIgGwgEy5E35whPE/41lRIk+wWMtudRRTC0+AXbUYWADzA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9599},"main":"./src/index.js","type":"commonjs","gitHead":"cf565294762d7703aa533dece6ed6dcfcb1e9ba0","typings":"./src/index.d.ts","_npmUser":{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"10.1.0","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.1.1_1700591684834_0.7385918620207212","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@futureverse/stateboss","version":"0.1.2","_id":"@futureverse/stateboss@0.1.2","maintainers":[{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},{"name":"jcsanpedro","email":"john@sylo.io"},{"name":"nick95550","email":"nicholas@sylo.io"},{"name":"helenpham","email":"helen@sylo.io"},{"name":"garethdainesnpm","email":"gareth.daines@futureverse.com"},{"name":"developer-darpan","email":"Darpan@sylo.io"},{"name":"rupertfv","email":"rupert@sylo.io"},{"name":"tknff","email":"tikonoff@gmail.com"},{"name":"donlok","email":"donlokuge@gmail.com"},{"name":"mj.liang","email":"kim.liang@futureverse.com"},{"name":"hlissnake","email":"hlislichking@gmail.com"},{"name":"chris.czurylo","email":"krzysztof.czurylo@gmail.com"},{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"32f29cab85471eabffdd674aa331ced76fb921cc","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.1.2.tgz","fileCount":8,"integrity":"sha512-ChBQf+aWN/Ku9cbqEce7yD7GAiUqdUuoAfiJTOmHNFfAZkYLmx7KOz9f2lks836Uqcd3e6UaRnZPkoK7N9iN5g==","signatures":[{"sig":"MEUCIQCplDFkR+aYpAoVBtGV7uXD3rCyQSROXNjU3ONAQ/oCCgIgWqjVD5F56MQXjDD2bRFFjrEpUDkw6goIg5WqIoxM2Ss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9599},"main":"./src/index.js","type":"commonjs","gitHead":"cf565294762d7703aa533dece6ed6dcfcb1e9ba0","typings":"./src/index.d.ts","_npmUser":{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"10.1.0","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.1.2_1700599748754_0.15310654611942165","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@futureverse/stateboss","version":"0.1.3","_id":"@futureverse/stateboss@0.1.3","maintainers":[{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},{"name":"jcsanpedro","email":"john@sylo.io"},{"name":"nick95550","email":"nicholas@sylo.io"},{"name":"helenpham","email":"helen@sylo.io"},{"name":"garethdainesnpm","email":"gareth.daines@futureverse.com"},{"name":"developer-darpan","email":"Darpan@sylo.io"},{"name":"rupertfv","email":"rupert@sylo.io"},{"name":"tknff","email":"tikonoff@gmail.com"},{"name":"donlok","email":"donlokuge@gmail.com"},{"name":"mj.liang","email":"kim.liang@futureverse.com"},{"name":"hlissnake","email":"hlislichking@gmail.com"},{"name":"chris.czurylo","email":"krzysztof.czurylo@gmail.com"},{"name":"felixschl","email":"felixschlitter@gmail.com"},{"name":"pramodya-centrapass","email":"pramodya.dealwis@centrapass.com"},{"name":"admin-futureverse","email":"admin@futureverse.com"}],"dist":{"shasum":"575bf1b348f3b7fa01b6331e3ae23555aeb39c4e","tarball":"https://registry.npmjs.org/@futureverse/stateboss/-/stateboss-0.1.3.tgz","fileCount":8,"integrity":"sha512-+sKS1/JL29XAECAwO9mJrqsyWkCRJDwz2bS+JLDZYO8HLAKGcZUrBWxvfkfe3KDvD4VAwGwJuT2bfyLDaipXwQ==","signatures":[{"sig":"MEUCIQDkWvi+WLVUJRbaS+uGG/cMg6kAup5gJAwhKt5/a/f3uQIgCD6mIm1gsLDsvVfd2SHLpwDzwvlZZpM1SCObcyL+kTw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9599},"main":"./src/index.js","type":"commonjs","gitHead":"15f117d391b168afbe2a445f3d378bc1dac36cee","typings":"./src/index.d.ts","_npmUser":{"name":"kingsley.wang","email":"kingsley.wang@futureverse.com"},"deprecated":"This package is deprecated and no longer maintained. Please do not use it.","_npmVersion":"10.1.0","description":"``` yarn add @futureverse/stateboss ```","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stateboss_0.1.3_1700689030607_0.008250345805438597","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-02-13T22:19:57.837Z","modified":"2025-10-27T21:03:25.817Z","0.0.1":"2023-02-13T22:19:58.197Z","0.1.0-pre.1":"2023-03-28T00:47:10.385Z","0.1.0":"2023-11-20T21:51:11.184Z","0.1.1":"2023-11-21T18:34:44.996Z","0.1.2":"2023-11-21T20:49:08.924Z","0.1.3":"2023-11-22T21:37:10.798Z"},"description":"``` yarn add @futureverse/stateboss ```","maintainers":[{"email":"admin@futureverse.com","name":"admin-futureverse"},{"email":"gareth.daines@futureverse.com","name":"garethdainesnpm"},{"email":"john@sylo.io","name":"jcsanpedro"}],"readme":"# @futureverse/stateboss\n\n```\nyarn add @futureverse/stateboss\n```\n\n## Features\n\n- Seamless & type-safe state management\n  - Export porcelain interfaces from containers\n  - Access interface from anywhere in the hierarchy\n- First class logging support (via `@sylo/logger`)\n  - Completely optional\n  - Containers always get a contextualized logger\n  - Ships with no-op and console.log loggers\n  - Grab a logger anywhere with `useLogger`\n\n## Example\n\n```typescript\nimport React from 'react';\nimport * as L from '@sylo/logger';\nimport { createContainer, LoggerProvider, useLogger, Logger } from '@futureverse/stateboss';\n\nfunction useCounterImpl(logger: Logger): {\n  increment(): void;\n  decrement(): void;\n  counter: number;\n} {\n  const [counter, setCounter] = React.useState(0);\n  const increment = React.useCallback(() => {\n    logger.d('incrementing!');\n    setCounter((x) => x + 1);\n  }, []);\n  const decrement = React.useCallback(() => {\n    logger.d('decrementing!');\n    setCounter((x) => x - 1);\n  }, []);\n  return {\n    counter,\n    increment,\n    decrement,\n  };\n}\n\nconst { Provider: CounterProvider, useContainer: useCounter } = createContainer(useCounterImpl);\n\nfunction MyComponent() {\n  const { counter, increment, decrement } = useCounter();\n  const logger = useLogger();\n  React.useEffect(() => {\n    logger.d('counter updated: ', counter);\n  }, [counter, /* stable: */ logger]);\n  return (\n    <div>\n      <div>counter: {counter}</div>\n      <div>\n        <button onClick={increment}>+</button>\n        <button onClick={decrement}>-</button>\n      </div>\n    </div>\n  );\n}\n\nfunction MyApp() {\n  return (\n    <LoggerProvider logger={L.consoleLogger}>\n      <CounterProvider>\n        <MyComponent />\n      </CounterProvider>\n    </LoggerProvider>\n  );\n}\n```\n\n## Maintainers\n\n- [Felix Schlitter](https://github.com/felixschl) (Author)\n- [Darpan Patil](https://github.com/developer-darpan)\n","readmeFilename":"README.md"}