{"_id":"javascript-state-machine","_rev":"51-0b29cddafd5b72fe8a988a05b4bb7da4","name":"javascript-state-machine","time":{"modified":"2022-06-19T03:53:31.266Z","created":"2014-03-16T18:00:16.116Z","2.3.0":"2014-03-16T18:00:18.377Z","2.3.1":"2014-03-16T18:19:03.287Z","2.3.2":"2014-03-16T18:25:20.739Z","2.3.4":"2015-01-21T03:31:19.330Z","2.3.5":"2015-01-21T04:19:19.223Z","2.4.0":"2016-11-20T22:40:46.402Z","3.0.0-rc.1":"2017-01-10T17:58:35.474Z","3.0.1":"2017-06-10T21:52:30.251Z","3.1.0":"2018-07-12T14:31:05.703Z"},"description":"A finite state machine library","readme":"# Javascript State Machine\n\n[![NPM version](https://img.shields.io/npm/v/javascript-state-machine.svg?style=flat)](https://www.npmjs.org/package/javascript-state-machine)\n[![Build Status](https://travis-ci.org/jakesgordon/javascript-state-machine.svg?branch=master)](https://travis-ci.org/jakesgordon/javascript-state-machine)\n\nA library for finite state machines.\n\n![matter state machine](examples/matter.png)\n\n<br>\n\n### NOTE for existing users\n\n> **VERSION 3.0** Is a significant rewrite from earlier versions.\n  Existing 2.x users should be sure to read the [Upgrade Guide](docs/upgrading-from-v2.md).\n\n<br>\n\n# Installation\n\nIn a browser:\n\n```html\n  <script src='state-machine.js'></script>\n```\n\n> after downloading the [source](dist/state-machine.js) or the [minified version](dist/state-machine.min.js)\n\nUsing npm:\n\n```shell\n  npm install --save-dev javascript-state-machine\n```\n\nIn Node.js:\n\n```javascript\n  var StateMachine = require('javascript-state-machine');\n```\n\n# Usage\n\nA state machine can be constructed using:\n\n```javascript\n  var fsm = new StateMachine({\n    init: 'solid',\n    transitions: [\n      { name: 'melt',     from: 'solid',  to: 'liquid' },\n      { name: 'freeze',   from: 'liquid', to: 'solid'  },\n      { name: 'vaporize', from: 'liquid', to: 'gas'    },\n      { name: 'condense', from: 'gas',    to: 'liquid' }\n    ],\n    methods: {\n      onMelt:     function() { console.log('I melted')    },\n      onFreeze:   function() { console.log('I froze')     },\n      onVaporize: function() { console.log('I vaporized') },\n      onCondense: function() { console.log('I condensed') }\n    }\n  });\n```\n\n... which creates an object with a current state property:\n\n  * `fsm.state`\n\n... methods to transition to a different state:\n\n  * `fsm.melt()`\n  * `fsm.freeze()`\n  * `fsm.vaporize()`\n  * `fsm.condense()`\n\n... observer methods called automatically during the lifecycle of a transition:\n\n  * `onMelt()`\n  * `onFreeze()`\n  * `onVaporize()`\n  * `onCondense()`\n\n... along with the following helper methods:\n\n  * `fsm.is(s)`            - return true if state `s` is the current state\n  * `fsm.can(t)`           - return true if transition `t` can occur from the current state\n  * `fsm.cannot(t)`        - return true if transition `t` cannot occur from the current state\n  * `fsm.transitions()`    - return list of transitions that are allowed from the current state\n  * `fsm.allTransitions()` - return list of all possible transitions\n  * `fsm.allStates()`      - return list of all possible states\n\n# Terminology\n\nA state machine consists of a set of [**States**](docs/states-and-transitions.md)\n\n  * solid\n  * liquid\n  * gas\n\nA state machine changes state by using [**Transitions**](docs/states-and-transitions.md)\n\n  * melt\n  * freeze\n  * vaporize\n  * condense\n\nA state machine can perform actions during a transition by observing [**Lifecycle Events**](docs/lifecycle-events.md)\n\n  * onBeforeMelt\n  * onAfterMelt\n  * onLeaveSolid\n  * onEnterLiquid\n  * ...\n\nA state machine can also have arbitrary [**Data and Methods**](docs/data-and-methods.md).\n\nMultiple instances of a state machine can be created using a [**State Machine Factory**](docs/state-machine-factory.md).\n\n# Documentation\n\nRead more about\n\n  * [States and Transitions](docs/states-and-transitions.md)\n  * [Data and Methods](docs/data-and-methods.md)\n  * [Lifecycle Events](docs/lifecycle-events.md)\n  * [Asynchronous Transitions](docs/async-transitions.md)\n  * [Initialization](docs/initialization.md)\n  * [Error Handling](docs/error-handling.md)\n  * [State History](docs/state-history.md)\n  * [Visualization](docs/visualization.md)\n  * [State Machine Factory](docs/state-machine-factory.md)\n  * [Upgrading from 2.x](docs/upgrading-from-v2.md)\n \n# Contributing\n\nYou can [Contribute](docs/contributing.md) to this project with issues or pull requests.\n\n# Release Notes\n\nSee [RELEASE NOTES](RELEASE_NOTES.md) file.\n\n# License\n\nSee [MIT LICENSE](https://github.com/jakesgordon/javascript-state-machine/blob/master/LICENSE) file.\n\n# Contact\n\nIf you have any ideas, feedback, requests or bug reports, you can reach me at\n[jake@codeincomplete.com](mailto:jake@codeincomplete.com), or via\nmy website: [Code inComplete](http://codeincomplete.com/)\n","maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"versions":{"2.3.1":{"name":"javascript-state-machine","description":"A simple finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"main":"state-machine.js","devDependencies":{"qunit":"~0.6.2"},"version":"2.3.1","_id":"javascript-state-machine@2.3.1","dist":{"shasum":"a2ace7381d65faa2c3d9377c3fd0fa4dd8707c6f","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.3.1.tgz","integrity":"sha512-HN5GtfIW2RPHHV6i6zXX2EvUCLZdHQwgxocJpSoC3K18z/u+HlhOUwIoT5DL35EpCK0bcGGK1zwFW/7awVr1cg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2xP8Wjd1uF00TTXq27EgtyN5s7/wgfEZfUNz7sG+uMgIhAOKXtsbX5NIO6w8guyLj6frc4Nbi1y1mlTg8ituYqeuQ"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"directories":{}},"2.3.2":{"name":"javascript-state-machine","description":"A simple finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"main":"state-machine.js","devDependencies":{"qunit":"~0.6.2"},"version":"2.3.2","_id":"javascript-state-machine@2.3.2","dist":{"shasum":"c4861c8cea0f085c1f5b751cf51882d34068b05f","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.3.2.tgz","integrity":"sha512-ZSZm9mgRfbMXMDjiDTAKj4/KqzSxJaAi6qh7e7dgZ3v/IbMQdas1zn0FqGOcqO9H/p0Y+xx8GXd08sK1OeUH+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRNuaciThIm9nmoiVNvki2mNsBJYkKJDNtREKD5LkzVgIhAKWVORHtfW5sNopkOZXMAOVxBwEiLNk5Ae0VLxckByP6"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"directories":{}},"2.3.4":{"name":"javascript-state-machine","description":"A simple finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"main":"state-machine.js","devDependencies":{"qunit":"~0.6.2"},"version":"2.3.4","gitHead":"fdfbcddcf31ce8cc077aa077629f04b19e48dfd5","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@2.3.4","scripts":{},"_shasum":"f175b456044ab442ff7f440a3b484736116f1428","_from":".","_npmVersion":"2.2.0","_nodeVersion":"0.10.35","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"dist":{"shasum":"f175b456044ab442ff7f440a3b484736116f1428","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.3.4.tgz","integrity":"sha512-7/rVAQkOJMhQW7bXnx69ebM0athqMooPSiV6O+rwkJAt+ScaE+mOrxf5DvrHKxb7wvFqWIs90fJoVbE8jqFfNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvvEVXxnil92vpWUC0nLWRqXM3vDepIgUSlv+MmjsB6AiA3dauNWEVZ0ZAaUMrJg4YTYweK7C5wCRpvsWu/IrC7gA=="}]},"directories":{}},"2.3.5":{"name":"javascript-state-machine","description":"A simple finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"main":"state-machine.js","devDependencies":{"qunit":"~0.6.2"},"version":"2.3.5","gitHead":"b5e3918837f4c6902ffa33346fcb6ec2e40962e2","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@2.3.5","scripts":{},"_shasum":"2e939462000ab632ff7a0a3121baed48cd444ae9","_from":".","_npmVersion":"2.2.0","_nodeVersion":"0.10.35","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"dist":{"shasum":"2e939462000ab632ff7a0a3121baed48cd444ae9","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.3.5.tgz","integrity":"sha512-Mb/dnwhq12Wmm8gmSEAPTfw4yJUjf9NSWFsUSs5hWhf5Z+n/ZO2Hgik6M6C2PNIewEPvKUe/SqKYILpgQuZ5+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDr8mDpmYjggCjAaSxKQEV6BlJ07gTBpM1JQa/atYWS5gIhAJNmwIDY0LwG1+kPoDz9WxTS9SYyGZWN/TttJJWK/e2R"}]},"directories":{}},"2.4.0":{"name":"javascript-state-machine","description":"A simple finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"main":"state-machine.js","devDependencies":{"local-web-server":"~1.2.6","qunit":"~0.9.1","uglify-js":"^2.7.4"},"version":"2.4.0","scripts":{"start":"ws --rewrite '/test -> /test/'","test":"node test/runner","minify":"uglifyjs state-machine.js --output state-machine.min.js --compress --mangle --stats"},"gitHead":"c7538b4fce486a84de7a456b72ce7dc15201c818","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@2.4.0","_shasum":"d8be31ec38f24ac1a1832f0b672fc3cd5f79c96e","_from":".","_npmVersion":"4.0.3","_nodeVersion":"6.9.1","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"dist":{"shasum":"d8be31ec38f24ac1a1832f0b672fc3cd5f79c96e","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-2.4.0.tgz","integrity":"sha512-N5ebPfbgUPBQgu+Q3km/EAxFdG7sS9b+upP3917F/xvH+QES55ba9TfayJJqUQ1OdEuHqwqdadiyqYfalucBvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1rz79RdMGuo+HKYUKTNTXbdnp5K0t00LE+CYyYhHhPAIgQl+N5UoutkVGawOFyqp82dNxmrFgzFdREFMHJMWWXAo="}]},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/javascript-state-machine-2.4.0.tgz_1479681644388_0.11312017869204283"},"directories":{}},"3.0.0-rc.1":{"name":"javascript-state-machine","description":"A finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"keywords":["finite state machine","state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"license":"LGPL-3.0","main":"lib/state-machine.js","files":["lib/**/*.js","dist/**/*.js"],"directories":{},"devDependencies":{"ava":"^0.17.0","fs-sync":"^1.0.3","glob":"^7.1.1","nyc":"^10.0.0","pascal-case":"^2.0.0","uglify-js":"^2.7.5","webpack":"^2.2.0-rc.1"},"version":"3.0.0-rc.1","scripts":{"start":"npm run watch","build":"npm run bundle && npm run minify","bundle":"webpack","minify":"bin/minify","watch":"ava --watch","test":"nyc ava -v && nyc report --reporter=html"},"ava":{"files":["test/**/*.js"],"source":["src/**/*.js"]},"gitHead":"efb57ea1c1489860c79bb03533677a1406a3e954","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@3.0.0-rc.1","_shasum":"35a706544897ab1b29d98443f6a57005d6afc201","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.9.2","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"dist":{"shasum":"35a706544897ab1b29d98443f6a57005d6afc201","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-3.0.0-rc.1.tgz","integrity":"sha512-vvbE2/IsCYndtRJefDmSC0rb3kytvcI6WMB4EXvHmm1RKU6bea2s47ntX02T5yPZqyM2vrfoYhN9TINx6MvSlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDU2nIRtpiyBrzJkWFnVyopy+glG+NScem9EWYKMb8TdQIgCWhhtE97elm14OQGkbE/WiKWHlhfhDmwvvV9DRuRW3U="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/javascript-state-machine-3.0.0-rc.1.tgz_1484071115221_0.8970068243797868"}},"3.0.1":{"name":"javascript-state-machine","description":"A finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"keywords":["finite state machine","state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"license":"LGPL-3.0","main":"lib/state-machine.js","files":["lib/**/*.js","dist/**/*.js"],"directories":{},"devDependencies":{"ava":"^0.17.0","fs-sync":"^1.0.3","glob":"^7.1.1","nyc":"^10.0.0","pascal-case":"^2.0.0","uglify-js":"^2.7.5","webpack":"^2.2.0-rc.1"},"version":"3.0.1","scripts":{"start":"npm run watch","build":"npm run bundle && npm run minify","bundle":"webpack","minify":"bin/minify","watch":"ava --watch","test":"nyc ava -v && nyc report --reporter=html"},"ava":{"files":["test/**/*.js"],"source":["src/**/*.js"]},"gitHead":"e09614a51f2a64724bb151da6462bcb34fdb9883","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@3.0.1","_shasum":"327320336a20364e26b51d91662c14f14d41ea52","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"dist":{"shasum":"327320336a20364e26b51d91662c14f14d41ea52","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-3.0.1.tgz","integrity":"sha512-y59Bdo1TvnsvDUgtz+iG8sRe7RA3y26NcR42PB5AT3EiGe0w0RW65yfFSmViFQBw5xEKa5oocdpBBFc4oWHb6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3MyKCgpj1XiX7i6SyqviU6Ooqw70OUUT5Zz6LuXoc1QIgXtUuycinFnKdfRJxDfL5zZc7XrTeAS/udWmcIpiqG3g="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/javascript-state-machine-3.0.1.tgz_1497131550123_0.5375977938529104"}},"3.1.0":{"name":"javascript-state-machine","description":"A finite state machine library","homepage":"https://github.com/jakesgordon/javascript-state-machine","repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"keywords":["finite state machine","state machine","server","client"],"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"maintainers":[{"name":"jakesgordon","email":"jakesgordon@gmail.com"}],"license":"MIT","main":"lib/state-machine.js","files":["lib/**/*.js","dist/**/*.js"],"directories":{},"devDependencies":{"ava":"^0.17.0","fs-sync":"^1.0.3","glob":"^7.1.1","nyc":"^10.0.0","pascal-case":"^2.0.0","uglify-js":"^2.7.5","webpack":"^2.2.0-rc.1"},"version":"3.1.0","scripts":{"start":"npm run watch","build":"npm run bundle && npm run minify","bundle":"webpack","minify":"bin/minify","watch":"ava --watch","test":"nyc ava -v && nyc report --reporter=html"},"ava":{"files":["test/**/*.js"],"source":["src/**/*.js"]},"gitHead":"bfee5d404e49e23e22a969375e4e030c0baea291","bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"_id":"javascript-state-machine@3.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jakesgordon","email":"jakesgordon@gmail.com"},"dist":{"integrity":"sha512-BwhYxQ1OPenBPXC735RgfB+ZUG8H3kjsx8hrYTgWnoy6TPipEy4fiicyhT2lxRKAXq9pG7CfFT8a2HLr6Hmwxg==","shasum":"06eeb2136a6a19ae1b56105c25caec283dd5cd14","tarball":"https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-3.1.0.tgz","fileCount":12,"unpackedSize":90668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbR2YpCRA9TVsSAnZWagAAtocP/iMV7mnpH2MHviiMENtP\nld9FvE6NDc7zbznegScIr6i/aO/0CWoUMjdK3u5XYTZk1O1TFBZa4UJW5STv\nGXYltkDi5t1fbwyWAkkmv9yq/7fdivUlx85WBLyxROXXhXDylF2jY25WyS0b\nOnJdNlHFhGLp23nhRaJSk2T5oN3neg+Q4SRw3Nx2Sx71lgx/SRS4W8ag4B7J\n6fepCuTJ/sVVDG1Vs+u0RRKXr7c40ySawarS5e8UF/rEAGtnngtCDlo+V1CB\nQkaz/IxGpcvZu50bwzl3ZetlYQtJ09mHO0qccg//qYxztZqNcCIW+xnuqyH3\nUIiYv9SRE/9iPD1YZ+mAqXsiU53odrYdPx6LPKik+dcqcaM3Jts77dHJNJDj\nW2z8dEQ6mVTT2uIAhK/LFEMqxGf9OpOojtTDK4EpSp86Wf4boXWFdfhiUCUb\nvKZFllHjhUEHFbKWrB/yRgop5HRYRVjpN110QdxDPvMuBtvt0p4CbNQbAUd+\nKvng0pmNKQPXtohtz/xXv9tNld70euV112HO/cHjdxTfX1Z+zQ/JicRr2h3f\ny39sXrFBsa/kfwi4phbkNbROcl78OelKrVUat3W7JxIGlOUuEPhc7LtQ2kfo\n5GVCu6ShKno+DtiSFnbSqWU0Ou8sChXmWh/4936XakUrOdu6JFSAlMj7+i56\nNET5\r\n=ypKl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHTkkKiP3iPrfvIX4KWvN4t+GSdRWn+y2JD6tqPq1btCAiBAm32STmA8YTaTNtx+X6yVUUWQRfxTOxgwKzOH+E/tVA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/javascript-state-machine_3.1.0_1531405865630_0.8673616380360629"},"_hasShrinkwrap":false}},"dist-tags":{"latest":"3.1.0","next":"3.0.0-rc.1"},"readmeFilename":"README.md","homepage":"https://github.com/jakesgordon/javascript-state-machine","keywords":["finite state machine","state machine","server","client"],"repository":{"type":"git","url":"git://github.com/jakesgordon/javascript-state-machine.git"},"author":{"name":"Jake Gordon","email":"jake@codeincomplete.com"},"users":{"jmorrell":true,"jonathanstowe":true,"richardbushnell":true,"jasonevrtt":true,"wenbing":true,"antanst":true,"sopepos":true,"hyokosdeveloper":true,"dralc":true,"yinyongcom666":true,"morewry":true,"stevepsharpe":true,"soocyshi":true,"shangsinian":true,"iusfof":true,"rshaw":true,"muccix":true,"xrush":true},"bugs":{"url":"https://github.com/jakesgordon/javascript-state-machine/issues"},"license":"MIT"}