{"_id":"@barakplasma/finite-state-machine","_rev":"2-739ec019140805ffd30e62cd7b6726dd","name":"@barakplasma/finite-state-machine","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@barakplasma/finite-state-machine","version":"0.0.1","description":"finite-state-machine","license":"MIT","repository":{"type":"git","url":"git+https://github.com/barakplasma/finite-state-machine.git"},"author":{"name":"Michael Salaverry","url":"https://github.com/barakplasma"},"keywords":[],"main":"lib/index","types":"lib/index","scripts":{"clean":"rimraf lib && rimraf coverage","format":"prettier --write \"{src,__tests__}/**/*.ts\" --single-quote --trailing-comma es5","lint":"tslint --force --format verbose \"src/**/*.ts\"","prepublishOnly":"npm run build","prebuild":"npm run clean && npm run format && npm run lint && echo Using TypeScript && tsc --version","build":"tsc --pretty","test":"jest","coverage":"jest --coverage","watch":"npm run build -- --watch","watch:test":"jest --watch"},"dependencies":{},"devDependencies":{"@types/jest":"^23.3.3","@types/node":"^10.11.4","coveralls":"^3.0.2","jest":"^23.6.0","prettier":"^1.14.3","rimraf":"^2.6.2","ts-jest":"^23.10.3","ts-node":"^7.0.1","tslint":"^5.11.0","tslint-config-prettier":"^1.15.0","typescript":"^3.1.1"},"engines":{"node":">=10.0.0"},"jest":{"preset":"ts-jest"},"directories":{"lib":"lib"},"bugs":{"url":"https://github.com/barakplasma/finite-state-machine/issues"},"homepage":"https://github.com/barakplasma/finite-state-machine#readme","gitHead":"7192c8f04ba28dda809d2a6fb72c36d7fac624e3","_id":"@barakplasma/finite-state-machine@0.0.1","_nodeVersion":"10.15.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lGCujzXuL3Exc4RRE95ztFYDKEefrsy5uLQi2Kbh4dYPsYlXgx902s49+qdgytvLl9KtILEjOPHs0LUVcPerrA==","shasum":"214c3a606d7558653f3046e16a58f8e8fa3b4dcd","tarball":"https://registry.npmjs.org/@barakplasma/finite-state-machine/-/finite-state-machine-0.0.1.tgz","fileCount":7,"unpackedSize":11718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRGBHCRA9TVsSAnZWagAAoGQQAIW8hkSL8Zn8Ugbri9ms\nTJz4E3+6f15k2J838k/2Vc6L4FqxXRLLT0vwzYhjo+5wbcXYj4dS6G/IRgmE\n1/R1Qt0n6CdnxjP7uuufXgio32JsBYNEr7Hlxur+IppM7FHmFYj71p+6ijoX\nzANIKaCEIBqQxMFgXz1dVcmkHpIBsVciWQ5zxZldzCnCqc1H47buyO1JeI5l\n9PegJIgks9sJ+DZjD9zbUHdj8+U4iXE9sl42KS3ByF1ctagkKYbB6AYO/r/v\nq8LzK5QIJeUkrSbFL40J7qMjOxI27gjALjuF3QluDOVQCwP/z7FlM0+WTQyt\nIEuqrrCRqh/x/uNP3rOpj0a9VG74XBQz0/1EWrvt98qdFY1Ea3dvzjAs9Zek\nEBX66X0N8AqmoXkkG6yGi4/x15rR4eZdFL8cH6f1ESODTxidFxekHtw5Jn9w\nYtCUO+cc45wsB0veu/m9eAVh3MlYbUWCGQAItZ75Yx2grSjETAT2ign280aH\ndpexWiXWj2BW4AoCBnjy/aXSOZ+C1A3nddufqdBcZcgvVUIcs8hodsX43Ix5\n7e95Rs/hSpOr3sv6KIx6DRGLsCMEX8WTbsiOcMyrb/A6syGIyQA9HDuihSJ0\nH+iQdzfPFcGmRc4Xt+IqivLFrhVLQ8sP6vKnj0hnGxXfpuZCSUPYO/mLiMmU\nOQJg\r\n=tpOD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN8KCT8eaODtixlMhXurKm6ADWSkWgQDNuyJuIa9RxuwIgRIx04nCC0zjfn+rmkzWeBE7fMwFNYJv2zeZCsOKgHMc="}]},"maintainers":[{"name":"barakplasma","email":"barakplasma@gmail.com"}],"_npmUser":{"name":"barakplasma","email":"barakplasma@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/finite-state-machine_0.0.1_1564762182763_0.19743410519780302"},"_hasShrinkwrap":false},"0.0.2":{"name":"@barakplasma/finite-state-machine","version":"0.0.2","description":"finite-state-machine","license":"MIT","repository":{"type":"git","url":"git+https://github.com/barakplasma/finite-state-machine.git"},"author":{"name":"Michael Salaverry","url":"https://github.com/barakplasma"},"keywords":[],"main":"lib/index","types":"lib/index","scripts":{"clean":"rimraf lib && rimraf coverage","format":"prettier --write \"{src,__tests__}/**/*.ts\" --single-quote --trailing-comma es5","lint":"tslint --force --format verbose \"src/**/*.ts\"","prepublishOnly":"npm run build","prebuild":"npm run clean && npm run format && npm run lint && echo Using TypeScript && tsc --version","build":"tsc --pretty","test":"jest","coverage":"jest --coverage","watch":"npm run build -- --watch","watch:test":"jest --watch"},"dependencies":{},"devDependencies":{"@types/jest":"^23.3.3","@types/node":"^10.11.4","coveralls":"^3.0.2","jest":"^23.6.0","prettier":"^1.14.3","rimraf":"^2.6.2","ts-jest":"^23.10.3","ts-node":"^7.0.1","tslint":"^5.11.0","tslint-config-prettier":"^1.15.0","typescript":"^3.1.1"},"engines":{"node":">=10.0.0"},"jest":{"preset":"ts-jest"},"directories":{"lib":"lib"},"bugs":{"url":"https://github.com/barakplasma/finite-state-machine/issues"},"homepage":"https://github.com/barakplasma/finite-state-machine#readme","gitHead":"bed66a7ad43a4cf34fc2b888cf2e24367fcb98fd","_id":"@barakplasma/finite-state-machine@0.0.2","_nodeVersion":"10.15.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-oQk5R7PV87NLRezx9GXntBnjilbQLXMUBC0+XCDFC7tsSXB7aDj+AHkplZivXsS1sGgT2V6v+Vc2jkPRJrW2HA==","shasum":"52065a9a7175c7832cb9a725e899bb05f9c7d9ec","tarball":"https://registry.npmjs.org/@barakplasma/finite-state-machine/-/finite-state-machine-0.0.2.tgz","fileCount":7,"unpackedSize":11568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRGKgCRA9TVsSAnZWagAAn5UP/RHZPhWaapPrWxQv0Ia9\nHdSWppItRd8Gy0AplT97foIT7vN8UYNUDGfp1sIswNb+YzWs7cC1zwapaxQt\nAeLzVyY9R+z+iGVRyfAgZH8NIfblMsf6W/YEThmLR6dkePYH7laL1y/Pr0NN\nfUhx0tbQpTofJSaLcAKmKBnsuM81PehHd3sj5H5wMQAAzdF5szw03RRX/ujK\n5RiU5qHUsK0WbgNhfUHUJn57wr58tZOB4ZQFUPOZJqPKW2bQsscUcRhOnR5u\nNS1PICiI6rt2tRgt7jvSNELV7fYaHd4gOBxVcjNwjJTMWm36xlasKLJ2mmVs\n+DN1I6Pqo+PUMg9KVmSpVQg2IBwr4xHK9ktB02ysPWRM1PXNM15oZLwFP82D\nkZWAcKVEcSKQoDmJt2tziBcHAlRpPk66i4g5YyezjrmJJIwAyt8EMmcQzyir\nQiqXGhyEcGumN/wwNACEc8smrzVjVufLb70b3jSLoK8zHbpUyxFTO6qk/iqa\n595OqLXypM7Qyf2I+yu5ML5heOWVyhXT9VeqymMmb1nRKxot60lTqLbeBTxF\n8EWeZonlgZapgEExj2ysKIuVegU5as+vzHmOX2oPYprbFvHBOYnnsHaZltCW\nwv3QXFadp5dM/mk40HpTZm0DMQ5dY5aATzgl2DBwiIQekHORbMFxmMG1xjB0\nhl4o\r\n=FdKt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeWL9ZqZE1uaAb4WnbZu5dNeaL8yC49WuNeFARIKlDXwIgGyw1CAQ6NwTczNLuSZMlRzKrGW4oDmEUB/sirY9PnQM="}]},"maintainers":[{"name":"barakplasma","email":"barakplasma@gmail.com"}],"_npmUser":{"name":"barakplasma","email":"barakplasma@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/finite-state-machine_0.0.2_1564762783986_0.05294057163495869"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-02T16:09:42.555Z","0.0.1":"2019-08-02T16:09:42.898Z","modified":"2022-04-04T17:43:01.135Z","0.0.2":"2019-08-02T16:19:44.112Z"},"maintainers":[{"name":"barakplasma","email":"barakplasma@gmail.com"}],"description":"finite-state-machine","homepage":"https://github.com/barakplasma/finite-state-machine#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/barakplasma/finite-state-machine.git"},"author":{"name":"Michael Salaverry","url":"https://github.com/barakplasma"},"bugs":{"url":"https://github.com/barakplasma/finite-state-machine/issues"},"license":"MIT","readme":"[![Build Status](https://travis-ci.org/barakplasma/finite-state-machine.svg?branch=master)](https://travis-ci.org/barakplasma/finite-state-machine.svg?branch=master)\n[![Coverage Status](https://coveralls.io/repos/github/barakplasma/finite-state-machine/badge.svg?branch=master)](https://coveralls.io/github/barakplasma/finite-state-machine?branch=master)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)\n\n# Finite State Machine\nTiny finite state machine library for fun and profit.\nSee the tests for more usage examples.\n\n## Using this module in other modules\n\nHere is a quick example of how this module can be used in other modules. The [TypeScript Module Resolution Logic](https://www.typescriptlang.org/docs/handbook/module-resolution.html) makes it quite easy. The file `src/index.ts` is a [barrel](https://basarat.gitbooks.io/typescript/content/docs/tips/barrel.html) that re-exports selected exports from other files. The _package.json_ file contains `main` attribute that points to the generated `lib/index.js` file and `typings` attribute that points to the generated `lib/index.d.ts` file.\n\n- To use the `FSM` class in a TypeScript file -\n\n```ts\nimport { FSM } from \"@barakplasma/finite-state-machine\";\n\nconst anFSM = new FSM();\n\nanFSM.addState('on');\nanFSM.addState('off');\n\nanFSM.on({ inputName: 'toggle' }, () => {\n    return new Map([['on', 'off'], ['off', 'on']]);\n});\n\nconst { dispatch } = anFSM;\n\ndispatch({ inputName: 'toggle' });\n\nanFSM.getCurrentState() // 'off'\n```\n\n- To use the `FSM` class in a JavaScript file -\n\n```js\nconst FSM = require('my-amazing-lib').FSM;\n\nconst anFSM = new FSM();\n\nanFSM.addState('on');\nanFSM.addState('off');\n\nanFSM.on({ inputName: 'toggle' }, () => {\n    return new Map([['on', 'off'], ['off', 'on']]);\n});\n\nconst { dispatch } = anFSM;\n\ndispatch({ inputName: 'toggle' });\n\nanFSM.getCurrentState() // 'off'\n```\n\n# finite-state-machine\n","readmeFilename":"README.md"}