{"_id":"fsm-event","_rev":"12-0f16fd16931598c160d86ecf1cbc1554","name":"fsm-event","description":"Stateful finite state machine wrapper around fsm","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"fsm-event","version":"1.0.0","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test-cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"7a0f0d5cd424e92ef8e7a45d6a68b37189928a48","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@1.0.0","_shasum":"0a7c18cd5f57f6ba193a33edcd446e6565b7db2c","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"0a7c18cd5f57f6ba193a33edcd446e6565b7db2c","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-1.0.0.tgz","integrity":"sha512-Jb21xZ0B4OrLbxz2iYeCWMOqW7C82Gc8vMdDt0qYhxtP1MhBxBdwjYsmgOCYMlxVl7iu/kx0ZZyIwzijH7bJTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZq2h3tkWlMJiv4AWjrx2RNeB+rVOLigEGMtoCRNxIfAiAU90+2rHdAX+SEyXkGyw9lBM4YbApXizPIW8bCCgKDtg=="}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]},"1.0.1":{"name":"fsm-event","version":"1.0.1","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test-cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"aba3c4ee1c36021b356428f472ef60d268e28e0a","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@1.0.1","_shasum":"226b38e5ec5f74fd7cfacda1b9dead9cd3bfabeb","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"226b38e5ec5f74fd7cfacda1b9dead9cd3bfabeb","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-1.0.1.tgz","integrity":"sha512-WjW/T55VZiaANYjulMujapGMHDi9JJVrxTJj4zssQKSCoquOKy/eDItX+grigdO04C39rqqvXyMCQ+wcEJmDow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDMrjXbOvJ7ustPTZSdrHHX2RGuWwME0pA/XF12ty8qwIhAMwGhusG+FMBwj+0TuOQvtraiBQ9eAD0K095wo9Jv5wA"}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]},"1.0.2":{"name":"fsm-event","version":"1.0.2","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test-cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"337afd9f3313ffeed6ef761fc46545257bbbf86d","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@1.0.2","_shasum":"9cf66b230956a8536414beded3680dc03cd43917","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"9cf66b230956a8536414beded3680dc03cd43917","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-1.0.2.tgz","integrity":"sha512-wGkcTTDyj945KTesTMylYKPdbe7U+lF9vFHtszGrnb0UDaz87ShJ0glanntTNQU+/qTHaSXyDzfg8w7L1UD/bA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFyLbDFfVYHsFoXcgNl/NKcJ++g4Nrq+4JIPkVDQIFLGAiBv6olQe6G8UbbpLU/ogDVIjm2X7QqT5pWWQbZiH3/Nlw=="}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]},"1.0.3":{"name":"fsm-event","version":"1.0.3","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test-cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"60d20b2d4d89775863324657b08e35a25ef5b195","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@1.0.3","_shasum":"200fa6180e4d51c91ad019434fdb0a6542ba0a45","_from":".","_npmVersion":"2.8.3","_nodeVersion":"1.8.1","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"200fa6180e4d51c91ad019434fdb0a6542ba0a45","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-1.0.3.tgz","integrity":"sha512-9I7e8FPfOj0WB1A9LRjvsGa7OoO8im4kflK/vgmiHt2+2CWP9vewAF41XauBjH0z27Ijrvli38i2VvzetRog5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEH5BYqtRjif7iegavd7SGEcCjWJPAlOkZSld3FCt1FBAiEAqyCzYPF3gsKwbKl7bK6nD+WtHNNLpFP8XWqKFFOxWes="}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]},"2.0.0":{"name":"fsm-event","version":"2.0.0","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test-cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"c932da252d805efdb4f4ecbdf68e215d440817d5","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@2.0.0","_shasum":"0d54d278e735198b4848a7bc5442c7a5f127d1a5","_from":".","_npmVersion":"2.11.0","_nodeVersion":"2.2.1","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"0d54d278e735198b4848a7bc5442c7a5f127d1a5","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-2.0.0.tgz","integrity":"sha512-rdvTfyiZlHcgMGe14gQOnzyQqj1cuW5+bRvMhuD8SClQEv5FRdAaow6IwSHvgjJNMbifLLtVo/6Fyk0dH+qubA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlbS60ejBKQV8f+JVqhu9Ywxo4JO05VBM4RyhwkpwFvwIhAK5f6fb4viHvdtTHSOnhWIiLtnFa6EhV5OgJrOPyL0oF"}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]},"2.1.0":{"name":"fsm-event","version":"2.1.0","description":"Stateful finite state machine wrapper around fsm","main":"index.js","scripts":{"test":"standard && NODE_ENV=test node test","test:cov":"standard && NODE_ENV=test istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"keywords":["state machine","state","simple","unix","minimal","event"],"license":"MIT","dependencies":{"fsm":"^1.0.2"},"devDependencies":{"istanbul":"^0.3.13","standard":"^3.7.3","tape":"^4.0.0"},"files":["LICENSE","index.js","README.md"],"gitHead":"a3ab9e692d39c01c2bdd88d9de9e2a0e07089f85","bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","_id":"fsm-event@2.1.0","_shasum":"d385716ed38f9c92feab2ba601e2aac6c0ba5a92","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"},"dist":{"shasum":"d385716ed38f9c92feab2ba601e2aac6c0ba5a92","tarball":"https://registry.npmjs.org/fsm-event/-/fsm-event-2.1.0.tgz","integrity":"sha512-s48iJB9SaM2+G1l7t5tZBkcGo5XKDLGItLqxNpX5pgX/CDod+zXqt3edlU/JsdSzIYshqiDI9XNtSjH/zuXY0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEvdPeU1cifs95gkH7yagSS1fB079cufTn3dIVI8oeVgIgfnzjSPgIpgWTyZUwYwxBa55891913Coo1j0cWHZIh0A="}]},"maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}]}},"readme":"# fsm-event\n[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n[![Downloads][downloads-image]][downloads-url]\n[![js-standard-style][standard-image]][standard-url]\n\nStateful finite state machine wrapper around\n[`fsm`](https://github.com/dominictarr/fsm). Emits events when transitioning\nstates.\n\n## Installation\n```bash\n$ npm install fsm-event\n```\n\n## Usage\n```js\nconst fsm = require('fsm-event')\n\nconst m = fsm('START', {\n  START: { pause: 'PAUSED' },\n  PAUSED: { resume: 'START' }\n})\n\nm.on('START:leave', cb => console.log('leaving start!'); cb())\nm.on('PAUSED', () => console.log('paused state!'))\n\nm('pause')\n// 'leaving start'\n// 'paused state!'\n```\n\n## API\n### m = fsm([start,] events)\nCreate a state machine. `start` defaults to `START`.\n\n### m.on(event, cb)\nAttach a listener to the state machine. See [events](#Events) for an overview\nof all events.\n\n### m(event)\nTransition states in the state machine. Must be a valid transition defined on\ninitalization. Will throw if an invalid transition is triggered. Alias:\n`m.emit(event)`.\n\n## Events\nEach state transition triggers 3 events. __important:__ When listening to\n`:enter` or `:leave` events, the callback must be called so that the state\nmachine can proceed to the next state.\n```txt\nerror           incorrect transition\n<state>         when new state is entered\n<state>:enter   when transitioning into state\n<state>:leave   when transitioning away from state\ndone            when state transition finished\n```\n\n## Why?\nMost state machines have overly complicated interfaces for managing state. The\nfsm state machine is simple but doesn't manage state for you, so I wrote a\nwrapper around it that manages state in an event-driven way. The initial use\ncase was to manage complex, stateful UI elements but it can be used anywhere.\n\n## See Also\n- [fsm](https://github.com/dominictarr/fsm)\n- [javascript-state-machine](https://github.com/jakesgordon/javascript-state-machine)\n- [statement](https://github.com/timoxley/statement)\n- [stream-fsm](https://www.npmjs.com/package/stream-fsm)\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n\n[npm-image]: https://img.shields.io/npm/v/fsm-event.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/fsm-event\n[travis-image]: https://img.shields.io/travis/yoshuawuyts/fsm-event/master.svg?style=flat-square\n[travis-url]: https://travis-ci.org/yoshuawuyts/fsm-event\n[coveralls-image]: https://img.shields.io/coveralls/yoshuawuyts/fsm-event.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/yoshuawuyts/fsm-event?branch=master\n[downloads-image]: http://img.shields.io/npm/dm/fsm-event.svg?style=flat-square\n[downloads-url]: https://npmjs.org/package/fsm-event\n[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square\n[standard-url]: https://github.com/feross/standard\n","maintainers":[{"name":"yoshuawuyts","email":"i@yoshuawuyts.com"}],"time":{"modified":"2022-06-18T03:59:08.047Z","created":"2015-05-10T16:30:09.691Z","1.0.0":"2015-05-10T16:30:09.691Z","1.0.1":"2015-05-10T16:53:52.412Z","1.0.2":"2015-05-10T17:01:45.882Z","1.0.3":"2015-05-10T17:26:31.021Z","2.0.0":"2015-06-18T22:20:54.371Z","2.1.0":"2015-09-13T03:02:28.258Z"},"homepage":"https://github.com/yoshuawuyts/fsm-event#readme","keywords":["state machine","state","simple","unix","minimal","event"],"repository":{"type":"git","url":"git+https://github.com/yoshuawuyts/fsm-event.git"},"bugs":{"url":"https://github.com/yoshuawuyts/fsm-event/issues"},"license":"MIT","readmeFilename":"README.md","users":{"blitmaster":true,"fabiosantoscode":true,"jden":true,"jsdnxx":true}}