{"_id":"@opuscapita/fsm-task-manager","_rev":"58-df5a1910360f262a176f91234725b394","name":"@opuscapita/fsm-task-manager","dist-tags":{"latest":"0.0.1-beta.4"},"versions":{"0.0.1-beta.0":{"name":"@opuscapita/fsm-task-manager","version":"0.0.1-beta.0","author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","_id":"@opuscapita/fsm-task-manager@0.0.1-beta.0","maintainers":[{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"}],"homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"dist":{"shasum":"a454593c0f20f8e3de92ed2a8a244af4eafb8248","tarball":"https://registry.npmjs.org/@opuscapita/fsm-task-manager/-/fsm-task-manager-0.0.1-beta.0.tgz","integrity":"sha512-MDaU/0nHwf3UIdOOUJ7ULZowEAU9CAf1nOxb6yUuw2etC7p6rBcPYy8B7jfa6I9FqD9zpcCzApRAM3WsnWvm+g==","signatures":[{"sig":"MEQCIGv6cVT+fhepTs5Mwedg5+zT83Srfu5KelVyt0vXoO0CAiBPbu0mauxP9mgIx1B0D2rC37KZzMKDljppVMcGcec27w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a454593c0f20f8e3de92ed2a8a244af4eafb8248","scripts":{"lint":"eslint src","test":"mocha src/**/*.spec.js --require config/mocha-setup.js","build":"cross-env NODE_ENV=production webpack --config config/webpack.config.js","publish-release":"update-changelog -- --all && npm run build && npm-publish --release"},"_npmUser":{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},"repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"_npmVersion":"4.6.1","description":"Task manager for FSM workflow","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"3.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"mocha":"3.3.0","eslint":"3.12.2","webpack":"3.0.0","cross-env":"^5.0.1","babel-core":"6.24.0","babel-eslint":"6.1.2","babel-loader":"6.4.1","babel-register":"6.24.1","babel-preset-react":"6.24.1","babel-preset-es2015":"6.24.1","eslint-plugin-react":"6.8.0","babel-preset-stage-0":"6.24.1","mocha-junit-reporter":"1.13.0","@opuscapita/npm-scripts":"2.0.0-beta.2","eslint-config-opuscapita":"1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/fsm-task-manager-0.0.1-beta.0.tgz_1499348371722_0.3524918546900153","host":"s3://npm-registry-packages"}},"0.0.1-beta.1":{"name":"@opuscapita/fsm-task-manager","version":"0.0.1-beta.1","author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","_id":"@opuscapita/fsm-task-manager@0.0.1-beta.1","maintainers":[{"name":"eriihine","email":"esa.riihinen@gmail.com"},{"name":"havantkim","email":"kimmo.havantola@opuscapita.com"},{"name":"ilkkalehtinen","email":"ilkka.lehtinen@opuscapita.com"},{"name":"gr4per","email":"arne.graeper@opuscapita.com"},{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},{"name":"alexeysergeev","email":"sab@scand.com"}],"homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"dist":{"shasum":"7b1229763519534cb1e151af7d7132bde5e33e36","tarball":"https://registry.npmjs.org/@opuscapita/fsm-task-manager/-/fsm-task-manager-0.0.1-beta.1.tgz","integrity":"sha512-2IMznM34DYAlTNg7+npCfX4jUBhU4IfwQSX56RE83i8OUpV3idVPMBPhsFuNuvoHE1vcAqPV7fNXhzSjQwKxVw==","signatures":[{"sig":"MEUCIQCWcY0ZF2uTEyPMby3CBsEVOW8HTpARGM6WuzJLWjl1twIgT3rtTboCJFcHroMwyFpB1sEpDtb81J4xUf0B2YDQc8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/index.js","_from":".","files":["lib"],"_shasum":"7b1229763519534cb1e151af7d7132bde5e33e36","scripts":{"lint":"eslint src","test":"mocha src/**/*.spec.js --require config/mocha-setup.js","build":"cross-env NODE_ENV=production webpack --config config/webpack.config.js","publish-release":"update-changelog -- --all && npm run build && npm-publish --release"},"_npmUser":{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},"repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"_npmVersion":"4.6.1","description":"Task manager for FSM workflow","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"3.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"mocha":"3.3.0","eslint":"3.12.2","webpack":"3.0.0","cross-env":"^5.0.1","babel-core":"6.24.0","babel-eslint":"6.1.2","babel-loader":"6.4.1","babel-register":"6.24.1","babel-preset-react":"6.24.1","babel-preset-es2015":"6.24.1","eslint-plugin-react":"6.8.0","babel-preset-stage-0":"6.24.1","mocha-junit-reporter":"1.13.0","@opuscapita/npm-scripts":"2.0.0-beta.2","eslint-config-opuscapita":"1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/fsm-task-manager-0.0.1-beta.1.tgz_1499349844314_0.21112284227274358","host":"s3://npm-registry-packages"}},"0.0.1-beta.2":{"name":"@opuscapita/fsm-task-manager","version":"0.0.1-beta.2","author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","_id":"@opuscapita/fsm-task-manager@0.0.1-beta.2","maintainers":[{"name":"tamkov-sc","email":"tamkov@scand.com"},{"name":"eriihine","email":"esa.riihinen@gmail.com"},{"name":"havantkim","email":"kimmo.havantola@opuscapita.com"},{"name":"ilkkalehtinen","email":"ilkka.lehtinen@opuscapita.com"},{"name":"gr4per","email":"arne.graeper@opuscapita.com"},{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},{"name":"alexeysergeev","email":"sab@scand.com"}],"homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"dist":{"shasum":"9358964605a95274ced7c0afb7355de3974247a3","tarball":"https://registry.npmjs.org/@opuscapita/fsm-task-manager/-/fsm-task-manager-0.0.1-beta.2.tgz","integrity":"sha512-JlthapCwoX25TBKRPRni+38CYilWzveR/ypOz+NHTwVGgQLvgjDeD8eF0Z/Luiy5elW3+RnrQuUC5nEkdafJRw==","signatures":[{"sig":"MEUCIQCX7qg7sCykm+o7YxtLlep0ushj0njaPmPENkAbBro30wIgLrM4BA66sqMpExqPk5vMlx+h2x4gyqjqBOwZGKtBYmU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/index.js","_from":".","files":["lib"],"_shasum":"9358964605a95274ced7c0afb7355de3974247a3","scripts":{"lint":"eslint src","test":"mocha src/**/*.spec.js --require config/mocha-setup.js","build":"cross-env NODE_ENV=production webpack --config config/webpack.config.js","publish-release":"update-changelog -- --all && npm run build && npm-publish --release"},"_npmUser":{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},"repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"_npmVersion":"4.6.1","description":"Task manager for FSM workflow","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"3.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"mocha":"3.3.0","eslint":"3.12.2","webpack":"3.0.0","cross-env":"^5.0.1","babel-core":"6.24.0","babel-eslint":"6.1.2","babel-loader":"6.4.1","babel-register":"6.24.1","babel-preset-react":"6.24.1","babel-preset-es2015":"6.24.1","eslint-plugin-react":"6.8.0","babel-preset-stage-0":"6.24.1","mocha-junit-reporter":"1.13.0","@opuscapita/npm-scripts":"2.0.0-beta.2","eslint-config-opuscapita":"1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/fsm-task-manager-0.0.1-beta.2.tgz_1499778007244_0.5984528223052621","host":"s3://npm-registry-packages"}},"0.0.1-beta.3":{"name":"@opuscapita/fsm-task-manager","version":"0.0.1-beta.3","author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","_id":"@opuscapita/fsm-task-manager@0.0.1-beta.3","maintainers":[{"name":"tamkov-sc","email":"tamkov@scand.com"},{"name":"eriihine","email":"esa.riihinen@gmail.com"},{"name":"havantkim","email":"kimmo.havantola@opuscapita.com"},{"name":"ilkkalehtinen","email":"ilkka.lehtinen@opuscapita.com"},{"name":"gr4per","email":"arne.graeper@opuscapita.com"},{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},{"name":"alexeysergeev","email":"sab@scand.com"}],"homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"dist":{"shasum":"dc2a9e543ca48158de331a46fae17aa1c6634da6","tarball":"https://registry.npmjs.org/@opuscapita/fsm-task-manager/-/fsm-task-manager-0.0.1-beta.3.tgz","integrity":"sha512-YxJVwip28Ye+ubmguRkxKTSck6d+I1tO9Sz4iYHg8AvIboS+3G6e3m6gxwCi6TYtdWMTDMQk5/4IqfPSeBCoKQ==","signatures":[{"sig":"MEQCIDXvICvq5ii+76UKltcBq5YT92DrQ02sj+8hoMijKgAsAiBo0HFXSwNbOhaq+sTUB1x1bz9B5nh8EZwuJtxsG5Ccag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/index.js","_from":".","files":["lib"],"_shasum":"dc2a9e543ca48158de331a46fae17aa1c6634da6","scripts":{"lint":"eslint src","test":"mocha src/**/*.spec.js --require config/mocha-setup.js","build":"cross-env NODE_ENV=production webpack --config config/webpack.config.js","publish-release":"update-changelog -- --all && npm run build && npm-publish --release"},"_npmUser":{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},"repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"_npmVersion":"4.6.1","description":"Task manager for FSM workflow","directories":{},"_nodeVersion":"6.9.1","dependencies":{"bluebird":"3.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"mocha":"3.3.0","eslint":"3.12.2","webpack":"3.0.0","cross-env":"^5.0.1","babel-core":"6.24.0","babel-eslint":"6.1.2","babel-loader":"6.4.1","babel-register":"6.24.1","babel-preset-react":"6.24.1","babel-preset-es2015":"6.24.1","eslint-plugin-react":"6.8.0","babel-preset-stage-0":"6.24.1","mocha-junit-reporter":"1.13.0","@opuscapita/npm-scripts":"2.0.0-beta.2","eslint-config-opuscapita":"1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/fsm-task-manager-0.0.1-beta.3.tgz_1500017697955_0.08717152546159923","host":"s3://npm-registry-packages"}},"0.0.1-beta.4":{"name":"@opuscapita/fsm-task-manager","version":"0.0.1-beta.4","author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","_id":"@opuscapita/fsm-task-manager@0.0.1-beta.4","maintainers":[{"name":"tamkov-sc","email":"tamkov@scand.com"},{"name":"eriihine","email":"esa.riihinen@gmail.com"},{"name":"havantkim","email":"kimmo.havantola@opuscapita.com"},{"name":"ilkkalehtinen","email":"ilkka.lehtinen@opuscapita.com"},{"name":"gr4per","email":"arne.graeper@opuscapita.com"},{"name":"kirillvolkovich","email":"kirill.volkovich@jcatalog.com"},{"name":"alexeysergeev","email":"sab@scand.com"}],"homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"dist":{"shasum":"ec76692389df68d13eb562614a01a41b6882fae7","tarball":"https://registry.npmjs.org/@opuscapita/fsm-task-manager/-/fsm-task-manager-0.0.1-beta.4.tgz","integrity":"sha512-RRwpPqN9lfGir81I+J11M85YhIBPxJFdHCGGC60WRQjLqCfWf7uK0IgmCINiRccnvnmNlwbOu2YcnTu/eOQ//w==","signatures":[{"sig":"MEUCIQDqiFNSBvkgp+30/0QQjHTC0H0hSsvU2zKxfzopCEbKkAIgZcfQxppGBp20Wj8r1fQbyNbUYYS8Wo8AEni1wx3aMJc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/index.js","_from":".","files":["lib"],"_shasum":"ec76692389df68d13eb562614a01a41b6882fae7","scripts":{"lint":"eslint src","test":"mocha src/**/*.spec.js --require config/mocha-setup.js","build":"cross-env NODE_ENV=production webpack --config config/webpack.config.js","publish-release":"update-changelog -- --all && npm run build && npm-publish --release"},"_npmUser":{"name":"alexeysergeev","email":"sab@scand.com"},"repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"_npmVersion":"3.10.10","description":"Task manager for FSM workflow","directories":{},"_nodeVersion":"6.9.4","dependencies":{"bluebird":"3.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"mocha":"3.3.0","eslint":"3.12.2","webpack":"3.0.0","cross-env":"^5.0.1","babel-core":"6.24.0","babel-eslint":"6.1.2","babel-loader":"6.4.1","babel-register":"6.24.1","babel-preset-react":"6.24.1","babel-preset-es2015":"6.24.1","eslint-plugin-react":"6.8.0","babel-preset-stage-0":"6.24.1","mocha-junit-reporter":"1.13.0","@opuscapita/npm-scripts":"2.0.0-beta.2","eslint-config-opuscapita":"1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/fsm-task-manager-0.0.1-beta.4.tgz_1500292567910_0.2793556354008615","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-07-06T13:39:32.664Z","modified":"2026-04-15T16:05:32.858Z","0.0.1-beta.0":"2017-07-06T13:39:32.664Z","0.0.1-beta.1":"2017-07-06T14:04:05.370Z","0.0.1-beta.2":"2017-07-11T13:00:08.146Z","0.0.1-beta.3":"2017-07-14T07:34:58.988Z","0.0.1-beta.4":"2017-07-17T11:56:08.805Z"},"bugs":{"url":"https://github.com/OpusCapita/fsm/issues"},"author":{"name":"Daniel Zhitomirsky","email":"dzhitomirsky@scand.com"},"license":"Apache-2.0","homepage":"https://github.com/OpusCapita/fsm/tree/master/task-manager#readme","repository":{"url":"https://github.com/OpusCapita/fsm/tree/master/task-manager","type":"git"},"description":"Task manager for FSM workflow","maintainers":[{"email":"kacpermklosowski@gmail.com","name":"kuos"},{"email":"pim.machineuser@opuscapita.com","name":"ocmachineuser"},{"email":"elzbieta.rymarkiewicz-czapiewska@opuscapita.com","name":"elaczapiewska"},{"email":"ocbuildautomation@opuscapita.com","name":"ocautomation"},{"email":"piotr.krzysztof.murdzia@gmail.com","name":"piotr.krzysztof.murdzia"},{"email":"domin25001@gmail.com","name":"dsbbl"},{"email":"stefan.machnow@opuscapita.com","name":"smachnow"},{"email":"ilham.kaddouri@opuscapita.com","name":"ilhamkadduri"},{"email":"michal.blachu14@gmail.com","name":"mblachu"}],"readme":"## Intro\nFSM Task(Work) manager is an extension to finite state machine. It manages\nexisting tasks (stateful full objects, e.g. invoice) within the lifecycle\nspecified in finite state machine (definition.\n\n## Usage\n### Machine(workflow) definition\n\nExample cound be found [here](../core#example)\n\n### Task(process) Manager\n```\ncontext machine = new Machine({\n  machineDefinition: new MachineDefinition({schema,actions,conditions}),\n  context\n});\n\nconst taskManager = new TaskManager({\n  machine: machine,\n  search: search,\n  update: update\n});\n\n//function that return promise that is resolved with task list\nfunction search(searchParams) {\n  return new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve([{status: ''}, {status: ''}]);\n    }, 500)\n  })\n};\n\n//function that return promise that is resolved after object saving\nfunction update(object) {\n return new Promise((resolve, reject) => {\n  //some hard-working persistent saving code\n  resolve();\n })\n};\n```\n\n## Starting the process\nAfter configuration there is only one thing is left behind - to start task list monitoring.\n```\ntaskManager.run({ timeout: 1000 });\n```\n\n_timeout_ argument indicates the frequency of calling _search_ action and checking for\navailable automatic event / sending events (in case found auto-transitions);\n\n## Stopping the process\nIf the time has come to kill the process, you have to do the next:\n```\ntaskManager.stop();\n```\nThis method return true/false in case of correct/incorrect process finish, correspondingly.\n\n## Getting ongoing/stopped process statistic\nSometime you may need to get the process statistic (currently available values are: machine name,\nstart & end timestamps)\n\n```\ntaskManager.processCache\n```\n\nThis field is an object with next signature:\n{<timer_descriptor> : {\n  <name>,\n  <started>,\n  <finished>\n}}\n\nTBD: increase process cache notation usability\nTBD: add 1 by 1 event sending queue\n\n## Sending event to object with TaskManager\nYou might need an ability to send event to an object with further saving.\nIf you configured TaskManager properly and it knows how to save objects, next two code snippets do the same:\n```\n//passed as constructor arg to TaskManager\nconst update = (object) => {\n  <some async object update code>\n  return Promise\n};\nmachine.sendEvent({object, event, request}).then(({object}) => {\n  return update(object);\n})\n\n----equals---\n\ntaskManager.sendEvent({object, event, request})\n```\n\n## Starting workflow with TaskManager\nAlso you might want to start the workflow with further object saving.\nIf you configured TaskManager properly and it knows how to save objects, next to code snippets do the same:\n```\n//passed as constructor arg to TaskManager\nconst update = (object) => {\n  <some async object update code>\n  return Promise\n};\nmachine.start({object}).then(({object}) => {\n  return update(object);\n})\n\n----equals---\n\ntaskManager.start({object})\n```\n","readmeFilename":"README.md"}