{"_id":"move-on","_rev":"16-ef88acb004de8958aba27abd828af423","name":"move-on","description":"Creates a queue of sync or async functions with resolve and reject callback.","dist-tags":{"latest":"2.1.9"},"versions":{"1.0.0":{"name":"move-on","version":"1.0.0","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"index.js","keywords":["function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"cli-color":"^1.2.0","of-type":"^2.1.0","typeof-arguments":"^3.1.0"},"gitHead":"f00ee148bbe8480e16c77d401c4ec80f523ebc6c","_id":"move-on@1.0.0","_shasum":"26d5428112d9e1052de0c2b500867b03907de071","_from":".","_npmVersion":"4.6.1","_nodeVersion":"8.3.0","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"shasum":"26d5428112d9e1052de0c2b500867b03907de071","tarball":"https://registry.npmjs.org/move-on/-/move-on-1.0.0.tgz","integrity":"sha512-iMnTZzTSkKdJ64eLj74hK0TDJoGOe9FB3v75H9Le3jKZJyo3HFHhzNJ+zGru/UT+GxmEHlamhvrxkLNJlNt9ig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4ad9O7jQoqBFnopKWYL3aLuGIgrQ8BW/F7WmHN3Er8AiEA+FO2VydhrRFUtClMOaU4Hix5CuBOxaLcfWL27eR0LK4="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on-1.0.0.tgz_1504580999926_0.6654573483392596"},"directories":{}},"1.1.0":{"name":"move-on","version":"1.1.0","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"index.js","keywords":["function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"cli-color":"^1.2.0","of-type":"^2.1.0","typeof-arguments":"^3.1.0"},"gitHead":"e707d605612d9a5f94c4c43162198182bd936eba","_id":"move-on@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-4Jfjhfwe9dDrRQFSkmEhLHLmUjNgUMPrr/VGxoJkPXPnCaCcMCvc55UATH0bGiOkxw1RPucX93JkU/CD5hG3GQ==","shasum":"5111b45716c8624f3f88b08f3df59a08dd14fa1e","tarball":"https://registry.npmjs.org/move-on/-/move-on-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY3ssSwAeOV9ed80ZUiDK5+TSxyy6Shntf0WZbQKoPRgIgCPOhaRwhwDM19PSOHsMXmcnyqqXm7pxCAu7NF5lAvCA="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on-1.1.0.tgz_1516778382741_0.6900380973238498"},"directories":{}},"1.1.1":{"name":"move-on","version":"1.1.1","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"index.js","keywords":["function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"cli-color":"^1.2.0","of-type":"^2.1.3","typeof-arguments":"^3.1.1"},"gitHead":"13e89ae490a8fb0ca3c7ffcd0254557f9c0ec728","_id":"move-on@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-0AvPNEQYJYjMYGfLNzCjQkGZfdF/FNs1Xb1zB+3wTtyO15SCUL7bA5+vO4hfEPR4rPzS6b3qqCQ6OIKTV+5Jqw==","shasum":"d46eb3cca84f758b2d19e0dd1c2690687988cd24","tarball":"https://registry.npmjs.org/move-on/-/move-on-1.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE57W3l293nUiRs4GoR77hdOgYsPYW55r5gX4NKpKhIjAiAliBja0InqEm3Fwe7xnDqUmPfPGpd+vtTxKONMYuJ6AA=="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on-1.1.1.tgz_1517217200836_0.831882537342608"},"directories":{}},"1.1.2":{"name":"move-on","version":"1.1.2","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"index.js","keywords":["function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"cli-color":"^1.2.0","of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"gitHead":"fdf3fdebccccc54adf16815ad275f0007d0719c6","_id":"move-on@1.1.2","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-PEIUU0l/0n+RMf5hikZbgL5xdZpBs3LS0OdHxbqB33M9sWEkYnMUdGJm5Aathc9WCAYKooMalCqXX5z/0cNUAQ==","shasum":"d6866815af2069f26cc4413a4bcae3d214ca4e4b","tarball":"https://registry.npmjs.org/move-on/-/move-on-1.1.2.tgz","fileCount":5,"unpackedSize":18959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJ3d+CRA9TVsSAnZWagAAezEQAKJXyBeZurZVvOypoa2c\naTN4c5TLZoD/V/fK6NAbN4fGtbnbS9dNuusot/403aenfjjaIFbcAURn2j47\nUZLlmq1P1+0iDlGNEdR3rNYR5JgHLeYWfbueZ6ZMkAweu+WGMZYtGNuaDhe9\nSWNdGpZhN0/HbIoVa0Gotlb00xuOwSTr+IV59SEoC4ZqPoeUzFZsxVqqNY1T\nGlfyn7z7Py8UEDD8K37pRWbWy3mzNoY8CZ4J3QbNjBynUI5LCojWIVnNkk5F\nw5tC1qmthnklyicut6oWtJE8H0T7auHBp5mslARyk9kH2y5LfN5zvf74wDpN\nsNdcUittED47XirCoR+T08VPM1HyXtVSTLhkLhC1m9uIWmUc7O1Fvz6wSSaF\nlt77IFHtHioshVVGWvfc6FQBPpIT3jEkgHtlfeLJ3ykvQ3wQp+gI7pkf3oqG\n9uz5q1bFePU9Eqp3CVnClF2Bmn0R9QxN5gzGcoWHXr0Cat+SV1cTFlXkE9vk\nHvGgPobVc8n+TVuHc8KH1wMV0RCxkXz9G+0yXnv56/T03f1BStxJLHxq1tiC\n6dugtjAWthDxCfOZSgAEin+UkwRXDNp1gxUTvDWvjQeTyXv3IsScJ+2Uph+j\nytBOcsODAdVX72NAHcUZNXpsLZqbNznDfjMk41RIoRC1YFwVylAsFcQ2YKDp\nc0nY\r\n=MJi+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCc7N5zGRExSIQgC7Y7oOfjF7inToZTenT/tM04FKOoYQIhALSfpzrD5+M8WwZBNrS+iq80Vik1l9ZWJBo7TLojgGPV"}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_1.1.2_1529313149525_0.18887125868634547"},"_hasShrinkwrap":false},"2.1.0":{"name":"move-on","version":"2.1.0","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"7c1fe2a450e24c0f240a6854efc4ee8cbfbc3ae8","_id":"move-on@2.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-sw33Xh6P/yAX28aXRrTsHg2v2weycusAgiUtqTnEo6TOOU7vVCt5xaBcLNIVS3GMHjVPS3EBEs54xVTi1s1Uaw==","shasum":"e2c4ce1943c874cea1b2f81e5be856a7eb9bff24","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.0.tgz","fileCount":30,"unpackedSize":1712866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUH9ACRA9TVsSAnZWagAA+RwQAIUPn9mWFt+b/dgmJuEu\n1k1vhyOxCufu7+vZJk2jtq3r83S50pD6cjGxHOSTD/u9cRPqNe5RCz6uhfLj\nacuXIkk/A5MDHbmlALC8djaQMMB5Fai3619w97UcQNJts499ob6K16pIPg7X\nS8SJvVD1zpRFbxwnCfBKf2c/kZeLhO5uSiZp7c2RL7eWMJ88UBdxNtqYBgOT\n/SCU4Q+0+Ep5eRjjEPGZHI3NszP8RZfwNwNgEZAf1RgLbJk+3s0NHSnabgtG\n0yD+iCP7QkWPPXZe+tNftmn8fDh24cJsifHQmQ4wp4IFu3ngGHzsaucg1dEK\noh5qxNcp2FPXvEdbuRkkAW+JsiQbgFNgD0HpCksFOYVUtcmgD7IwgvDenRfl\neehXrqX5fVhZsMn6FlxQJaLMYt1c67+wiH9QgH4Xc4gx2UGM0FMuCsrwQJzr\nWo3ui9tY4eNxIwEsyqL/+uod6riWeFgEAZswAnBw3DUgiq32sdYNBtuocKtI\njslag3wV9llv9LXQ1BllwLRpfLWg/QZPyeBRrAe37TT5rPKxrS0rrzCxLSu+\n4h082bIKbijk3NFdwNcHc6MOb/asHC6kJYU3FRtx/NeU4HXGSw3PXV5kNB+A\nXy5ruCZGRjw9E3qby8I+phws7V6R0GMi/S+X7gDJXoq0po1fRhxPh5/+wXOT\nLHJq\r\n=eOwy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEFAWFY0eGzEnS8XXq7jJbAvrcKlf3hdxRMLhv2fdY41AiEAga1+Lr11ZjSWLN1kT+LFosDoqJGMsduIE0E6lCJybOg="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.0_1532002112577_0.5831059960466622"},"_hasShrinkwrap":false},"2.1.1":{"name":"move-on","version":"2.1.1","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"10b93d448fa917c82c4f10049bb47524fde6d548","_id":"move-on@2.1.1","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-LXaHKgUxcIjUAo6WC838dkPJYnDe/EXQb4DTWFN6vhRmVhGhp/aakcNEXAgt1JyVSheLAlEW/kFkXDt9BMzssg==","shasum":"9472fbb12dacb8c99573fe598cd1d48c7df987b9","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.1.tgz","fileCount":30,"unpackedSize":1713166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUJFfCRA9TVsSAnZWagAA2HwP/AxjIvHHwt6o4kPb8OWw\naYgvtZe/f9CPeh091eRYySVgL//dZNKbNHsi9oiqIQZ0RdaJEqKVnKjTf57/\nOzt7s4q6xk74dY9qHAODGcEYVJOU8/PJOaRY6ml41HMSx/eOU6YLppzqtXJt\nBFMi4ah9PE4GB7Mn5Xhz7Yp+ePXvXnVXfVUsuhMNU7cTl/oUo1wnTg7PmmHg\n2qU+J7RKccawIEfFKlp5wBrR1DkFXOBdriTD4vlFkudzcrKPXg5GeHVBE+dJ\nvg76BGL38ERY/8q5QrSQLVdIPlYOq26Y10n6S5a5cwcMX/f5p8EraYQ/Snv8\nP/HGR/EUcG99uqehaN7Snx/AR5EjLkSKWup5LLtul2eAipyMiCE6KmCci753\nrMGbbSJZnQnvo+1jRD+3vu93YCFpiFX/9455p0njkbH+W27tSP1J6AFVMxD0\ntlQtGUPDFLguuRK49NBR0ofrwZjCqz6igMD15pMYrDW6p3WtUCHVgUxGmr9D\nmeeNNQoqngPqSTVMTw/xpek+blpdqodAkkRDtXzzU3TjwUFvsfI8k6MxQ9Tq\nzlEzpn3YGIGmu/Gw/nqFXfFaJO7J1q1HV5d0TxR/9rpRg/3SFJdGWNH9yZyG\n1zo3w+ZgGmo7hIg9BlhnLYZV8s/l44ApeyTDCeAwWcZm2+ELNWzeRwMeM4BE\n4XxP\r\n=fb6s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3CP7jK0Krz014fN2JfJxjSyY+IPQx7J/WFmwLDQT6uAiEA0155YMXjs357xVTK7vYgJapP1j5MrwL4+x95u27jwJA="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.1_1532006750854_0.2432332051360837"},"_hasShrinkwrap":false},"2.1.2":{"name":"move-on","version":"2.1.2","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"136799d48424a0b7d957851578369a421974793f","_id":"move-on@2.1.2","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-qazOADvvTNv4GXLmVntdeYfRlebY/JIn/EokLzDRC75+ZlX/7ZVwWfwhJrrAmg5FeKjVtbn6w0y3hlBqeNkD1Q==","shasum":"3d4e9f34cfadd65542003d76baefe62e7ec0ce02","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.2.tgz","fileCount":30,"unpackedSize":1713167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUJMLCRA9TVsSAnZWagAAGMIP/Rsz8PeT7zm/SBJrXkh+\n0jOguYe61RcwCOnY87RBMw6KfTYx2pBmEMFXVEDvfeHiH5BaHpN2YTfGUTXo\nBkj+BJHW87LHlPV8EPHv6dtGNKUznCTIdGoeLLwUNONPyhhmR+2wzK1d/8Rc\n110iwmKYnccMvaP9S96ymXNlqolYcwPnUYjLgHvX9wQnF/Ihf0xlqQm1fonB\nWFxmbzxpRyMGh9vMDfqme1vK7cv775oGaRppP20uwutCtetHvqltlg/nzbPw\nQ1RuFaSDioy9ABP4ntsWRqod1RQzPE22rP9uvwHoGoXQ3GvX7oLqZf8mEL47\ng2vB6omq4q/xJ0Pn0y4JWuaSNd/C37Q66LA/rjX/NpYkwEunTJnY4/eQwBks\n3r4d0pTXjSZ3tAeygW8dynuBsXs95yivD1/JxWEtJ2LFxhHf/H7wyhvCAeS9\n6nctsz+mzTKZyeDD1u39SgLKSbjgsuUu2K8hIPVmCoSW2iaUgv6rWe7xzsEu\nfUgX2UtF/drgjMQ1ItilKJosvGiYISSh14SRXOzKQcGPmcqguHtmOLRd85/i\nvBO4gLBYALhM5k8UBeyQfcSSr29NWm/NxC1e1gRPv2Yx2de71X19GiQuiS36\nW1cTkvZp9Be60bWiL5vX8lbp66LdtLM0ivCrixJWLTyAsOt72fiMyisRai8M\nuMRg\r\n=T3ir\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn3UONfJy8R5cVpoowbFbmvePmf6FoKuQyzuVWcypJnQIgCTazfDEuhU7Zfh3EsdUX+W34+J/1OjlFJUPYzNGTcpQ="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.2_1532007179026_0.04789351358832983"},"_hasShrinkwrap":false},"2.1.3":{"name":"move-on","version":"2.1.3","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"e8272ccc06d4127909a3627f6e77a556429eb5a8","_id":"move-on@2.1.3","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-eikcW2Vp9Jo9gFiu92Bgzz6t27Mb+KOQtHf91GsCcjz+YYt0AZoGpM0ltEMn1BxHhNbQrIYJhEaNdv/EKNUnyw==","shasum":"4dfac8ed931dedfa3ed2084cf63534898059e537","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.3.tgz","fileCount":30,"unpackedSize":1750918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVttjCRA9TVsSAnZWagAAaFMP/33LanRAfzcLNiB0hWH0\naadwFKJ4OUgQzTyOiNglk5rGDe7dobRwKpvNXgGNLf8wXnoeZB2tHYFcVhfk\nFdYJbQ1KETDq7vye08XfCtH4VWONCvW0rI2yD3gpBtxfocPVKVQa2V2VSLZQ\nG8mDI5AEkWkRWLoQfFfCp5hPJC2XPgnnQrKBMFTyRNmfLH34sQM2Oc08vLXf\nUZtLx94rx7khCbejoQajPX+T+rXPbUBp0l0LRVyFQr3Q7mCtypkVDHc4sNvW\n9snID5w+ACrNlBLWOlfsI0Qp4F8eGvZiUDY/AIFge3MFqEqG6I2DRXPBTPhd\nKLdR3268b1avdLrCkWUXFrAkNuwOT3Ddv3O/pLui5JQZy2IA1WTT5CC7fS/K\nzyl8cS71JfybFPIFmta3csSBYmep9dVi4flzuFZFl9H7+shOY0Oqhceai0tv\n8tfCUSN6USeVOn8uptNoCsDbrKND/16atisv7/KiaNy16OmybSWkzX1yX8Zp\nsx0ULOVk20lTu+gaKCxWvrGZhvJBls5UBOfb+OoR5awLBroJGfGaaYmlIM4F\nAPBIiq+LNrUedDYDGjageYKT6CN37fldo51rplspV1ADsm2Qq4mx6wC9m1FW\nOrJq+rOk9XBjRuC6xhzuf/+zSpeHRxyQ6leClVTQk+HkJ5HkKic8nDMQ27Vo\nccFN\r\n=8FIR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDf34wfqBc1ZvavXuVgKN1BBrujxhKN5SP+sbxRajPzlAIgcWKq2TOF1N+yndniJXqOeiorFVa3XjQiMBZNwXXOSKU="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.3_1532418915159_0.5500300841007011"},"_hasShrinkwrap":false},"2.1.4":{"name":"move-on","version":"2.1.4","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"cf7650a5cde968c0ae00d17ea41b8716da816963","_id":"move-on@2.1.4","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-7LnWh7veiQQCX3HlwYyOYnJMQoqSOIKgT3vtzdcWKl82IsAzuW1JziRmpPerkbv05fP6VBr+FsrxP65KUfaKeA==","shasum":"ac9c8f65e58002a1a534b7e83ba8f1c08c71d57e","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.4.tgz","fileCount":30,"unpackedSize":1750652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVuDqCRA9TVsSAnZWagAAM7UP/RBLisWRzmDw2qAAQTWt\nERgglBgizpfw8uSbW9cXRQzbdZhwXylrs17vC74Ya3DEPSdhZdP3Zl72PLXQ\n9CsmN6/iwAnhk4znFgLiTb3zGV539Bq31VMOyIwiCIOBilpo0LPPDeKqWzI+\nxFpxOnDD/RFDnSjbtP8w6h9OSOtorsiRUQUC3MhBaP3GpXKEYpEkJZZXa5wR\nAqvBf7fI4Ala6Ou7gTAmh5dUj7IU6J4AnIZ8dPyKoynuDy6zPqopBd+jwZlo\nLCINsnLTq1W1gm0ST0spnqAbt/WT49Lwvs9WM2en88WCLBxB8rvxX1fyc8yg\nprDqa3dyUKbeeN/YYo+stM51ieZLzgC6zI+xzqVpKouPM1M2glgKo55UWXFk\nhwbZyvFVHxT9g0TBTbjV0xF3hMr2I9NdrkGPJqwM2/yYUxhfO+ULQL2kLyuf\nL+pz8Uii6jCFatArBZmk1K5dSSrzoqBVIq63iTJcSb3W779vPnnGoDvcmhnk\nlpIuvxbmFGdqD+Xl3y+9sgDBeNkym2yULmrcIS+vqaJkujXXOIwqqpU+r9VU\nFGgKVfxdgpBGBQ7ovgM0b8V4g9GYVp9RW2a6IQMiob2t+2K5UXUvDTqVzR4z\nyy69DDwIGmR17cL4Y8QSTcTmhCkbp5BK/cmYtXqushfEJJfRzuNpbcTo8jby\nQviu\r\n=Ekue\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIA8NgHLYCAHexuxsukhggUvpk0bhdueiQGXBsFsarNgIgedPTY/e3kMvgFxLPY0VZkiBJ4L6/3uaTngDq7N4eRQQ="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.4_1532420330442_0.7352571091313409"},"_hasShrinkwrap":false},"2.1.5":{"name":"move-on","version":"2.1.5","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"cb7f32344a1f9942409df035a8194401b2bb27f8","_id":"move-on@2.1.5","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-xj/VtvaGA2b6i89mwkML7YBUfwM/K9zMKBozTmUwpjWdg7K2hR88j/G3yJj6jEcH7C4RvulBRK7K8GQT1BSVWQ==","shasum":"c4b87f34558fad2351b594de3a456b1ca5bd4d35","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.5.tgz","fileCount":30,"unpackedSize":1750680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVuQmCRA9TVsSAnZWagAAE4MQAJBvpdR2r8bQnsdlbeCe\nBynOQt4TFsUC47le6iJjcwTjkN6Sh/o0ZdkP8BNKCxXNB/ttk5A15gaC57S5\nh8nnxlYxafvHkwTXJuwcI32KV2oJ9YBymfIaQLJgzBirLg5ZcXG4/XVU/Lf2\nNCt/4TgsPRFA71c2g8o5/1g9bxuyKei9ZVDgoRgbzo9ZAFmX1OpymsXv4DjL\nnvBy0G4uZ/2f+O/Eya9MCXt1v8xRrtU/ivrcK76s8vfhl8ojhFClBu3U71Tr\nezLaDbcMqbut1zfXiZQ09OnY+ktMSQjgL3muzsQ0YThhdIMYqRNqVxeAQdQt\ncZWux293R7THt3LKa/VUIjZYT2q0NSpCVBlZBiiXNn5sBLZ0hR9U1g3PaUQ1\n+QOk3iz+AvlWsM0kMHZv8nhC3/KDejMExZJ8j3grvgEKihdwF6MmbRfCLu/e\nHHOYVI0Cb5tEkNyZMpypVzZlvKSRocfCFIvt+YNPwyAlvPpFkTk6UtOoJNWA\n75pnlmc8pR901a4gHEhSgSwyKA2E/PenGKIakzgme7BrP9fegd7O05hkc7/+\nHSQbQRDgizOj9lLVJukXTdYQxp4l85eYiNzR5V9NrJ5IPQ+1JekthNho4Ufm\njcek0Sms64WLRwI0+TnkVfd/RCvkobjgEGYxvTV6Vd9+bjX4lfcYKUlrUOtZ\nVDiZ\r\n=snSi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5Mhn3gLjHi8uashrXC554F/BDLxKuBMiyQJcCfWsEcQIhAOZY6qBoo/9iHMiqEddDoXMG/ZknfP7i3CnWbcgBJNh4"}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.5_1532421158699_0.5839533812118527"},"_hasShrinkwrap":false},"2.1.6":{"name":"move-on","version":"2.1.6","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"src/index.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"node tests/jasmine.conf.js","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^2.2.0","typeof-arguments":"^3.1.1"},"devDependencies":{"babel-cli":"^6.26.0","babel-loader":"^7.1.5","babel-preset-env":"^1.7.0","jasmine":"^3.1.0","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.2.7","webpack":"^4.16.1","webpack-cli":"^3.1.0"},"gitHead":"f02be2fb41983b09092883493a1e599b66d444f2","_id":"move-on@2.1.6","_npmVersion":"5.3.0","_nodeVersion":"8.11.2","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-gla8k2Zfgcrd3a12pyfuALuswSP3M0sXOniXr/OAtJBK0/YmRnL6+MZi2/HI8TuE/t/sbGASI5lcZg+27aCq/Q==","shasum":"61763d9afd07fe3e02b34978d34e1a92ff4efe27","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.6.tgz","fileCount":30,"unpackedSize":1750872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVwXuCRA9TVsSAnZWagAA1dMQAIcaf7Efeiu7+qpBiewq\nQyjESfURoh1Vfjfr8tSOVHKXdtA1x6KqzwyhLI2IphmruhQ6xsozeLD0zyl5\nbv/ZSZtrgyy7CaS0lp2NOxosR0LSlGxDjZx+Carhe3xZCKXExVC5gkZeewUw\n7avYeDhO4XLBND8z+Wgw86Wq1VWaiEpbpM4dHiBEgfgqebdi2DBWO9Lu+qVa\nXbqG35HJ4/GxoFWTQ1b4X/HhIZsOvZQ+D3Ho7i0yr/trlxO2wCXM3CKW/0fm\noAPTik+0bXeWJywcnNYnqyFwLb9lV8jz7AOhG8KXmr6q0h0bOzmQcNkzkZOm\nsaSPSQtJzDeb0ICtVdkGxaUsdLoI+FVqqSaubVM2tRZkriULYZQhZjFOT7Cz\nY852k3s+J3uny195K5D2lH8gRq9C4kRNRBZOraD4M/t2AUCu298WTszYbIAS\nxLcyyT7EY6hdajcENVl163vYJ/J5jp00qMrzEepTeMiWF6UkrQd8nIkznzL4\n104p3rI/M35vwlFv4YHT/d1c4BHv0ux37znlwqTNpz1aTxKHrAHcb01akIqE\ngrKgiPKi+eMtdEnfSr52dd0O7u++MBT/Z7zxjKY1E4x0QRjTxqHXp9VYaxx0\nGl4F9AKjYpMf7KZqErNnMbIlCbp1M26yeKdnl6iH1z7f4/6MibNNAyeJ7rWi\nS9Xr\r\n=li1r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHUOyH1QQUL9CNCH3YF8EQpPR6y5Sp2DB9fg3q/y947tAiEAgmscPD4igRj7yAGcOZuvEuY/+U66O1MSLTOaN54jxRc="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.6_1532429806250_0.11131526942128112"},"_hasShrinkwrap":false},"2.1.7":{"name":"move-on","version":"2.1.7","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"dist/move-on.node.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"test":"babel-node jasmine.conf.js","start":"webpack --config webpack.dev.js","build":"webpack --config webpack.prod.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^3.0.0","typeof-arguments":"^5.0.0"},"devDependencies":{"@babel/cli":"^7.1.0","@babel/core":"^7.0.1","@babel/node":"^7.0.0","@babel/preset-env":"^7.0.0","babel-loader":"^8.0.2","jasmine":"^3.3.1","jasmine-spec-reporter":"^4.2.1","join-array":"^1.1.1","uglifyjs-webpack-plugin":"^1.3.0","webpack":"^4.19.1","webpack-cli":"^3.1.1","webpack-merge":"^4.1.4","webpack-node-externals":"^1.7.2"},"gitHead":"e65918f64d36a18af4856f3921023b40c97cd96b","_id":"move-on@2.1.7","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"dist":{"integrity":"sha512-SDwLvNkjJ/elvBl/atvqAStykNihLmq+JYfGkNvCMDvdWkRi69n9yffv8Fy1IlB7i3wiU7Nb80u4M/4m+OkfmQ==","shasum":"b1c6f864a30a64bc31a80c7660dd9c08040ae936","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.7.tgz","fileCount":35,"unpackedSize":1700801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcO599CRA9TVsSAnZWagAA8scP/3zpK4dU+kO+sCpigpNS\nA+xBmKvXo4ZO1gZM3FMjLfxGU6tEAekd36ZxI4vK/o8HmwSbkvyTmLAAMBRS\n/XlFmJHaUljpVMb1/mOA7vPb3IWI6lNlPi6f6dr6WND/HiUVMQ/pshJmVslt\nYF8H1L3A+F1vh1CFFlLUVtEQc3mMabEMQ1tUD2aGKgjnAtOGS+DMEbpN79w8\nhWnHb76IQIKQDju5gU4i5fcZyFQ6qzzDUX/oRic9ffNDjhqJj+2FtUbWCWhs\nxU/bZU29KzVhx30F3YZqZqgOk75nLb5DCBYGtM21ZH4JeSMa4S8cKH4wMMzL\nvEQ4RRusaImHp6Z3NzWefbv+LI48Ki8fN50sNQK+2RlJOnhf42WClzclPIi0\n52dpegV7CIrM1Y39tnPc/i5Ui7E9a7W1MntpC8OIrv4MdKKPS8mm+DMSOEn8\nYgPwD+/xZOIfM8I0XHxojuQJlug9oNIsR1LOQrPv/3K4s+V8KSi0DULd2Rzg\nvjRb5IL2lsZ5zk/AAMYvlginhocCF8YKZQepiEGDjf5HXHHD1RODkEow34Q5\ntaTUEmYeOBSX4R6XhOMnRt0jkmOmOlH2tlebKpLVrn/D7Oqcf8gd1ds5NddH\nXVfhAKZr+8Xu1XHXo0i7eSfrrNUYpj8VeiM5K8hcmr+sWAneO/yVRduEIItb\nG7d6\r\n=xaJb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpTZCgZiDmNzdknbywJKd9lVMqSlArXrsy0U2AtYmj3wIhAKQMt55ve2vUxRMDTLEYZLX/P5KbIuwmitKd/u4ZcdeE"}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.7_1547411324904_0.11855950598327225"},"_hasShrinkwrap":false},"2.1.8":{"name":"move-on","version":"2.1.8","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"dist/move-on.node.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"start":"webpack --env.dev","build":"webpack --env.prod","test":"babel-node jasmine.conf.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^3.0.3","typeof-arguments":"^5.1.2"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/node":"^7.10.5","@babel/preset-env":"^7.11.0","babel-loader":"^8.1.0","jasmine":"^3.6.1","jasmine-spec-reporter":"^5.0.2","join-array":"^1.1.3","terser-webpack-plugin":"^4.1.0","webpack":"^4.44.1","webpack-cli":"^3.3.12","webpack-merge":"^5.1.1","webpack-node-externals":"^2.5.1"},"gitHead":"40a67aa86c0997ae9dddd407fe80a4b0bdcf46d6","_id":"move-on@2.1.8","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-2gvOFiesHcCciTbyR6PCAgqnp3c6DTQiJ/ftXHYiEHVuZDBtetdM+JVJyIFSQG7TmzkuZBpuKTrOfkViPol5GQ==","shasum":"94152253546df8aaded4b4bf395f98ebaebcb67c","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.8.tgz","fileCount":31,"unpackedSize":1689593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO59RCRA9TVsSAnZWagAAHPEP/RmDdYwx9uQ50CpMpyFY\n00vcdcFkxFL9TynleK2Ckh7W2jTQXpd7HVxpipoXmD5MT52SfElw7witTTFC\nmrJoPF3BaNs6qWX18vzKxtyWdbvslj93bLaQx2MpoK2IwJ4zqFX6PJLor2RH\nktLZNs+emQ6v+Etx2bNKEryPr/Vvk3FzNeSrvvGZH0/RSeC/p+iMP+FKQyvV\nmDriMD354RVOFP+wlzmc3hvINKOkh6c2Bqm2k/SBVRLdXZhVqbkdYahWHGH0\n6x/8eTozhsIrmKiog26swR8+Swx7yohbHsCavC62bx5U9bO25GoCv5bHQgU8\nOgPC52n8EvqXtYqrelKGbm1FAk9kljmBVVJgLOCsgxkyhh3qNQspxb+5kEWZ\n0zGnKQnylDnkquVOmC5CiUbgBoHD1p8HF9fLKjuxysTU5D2Wn7TSfzThlHFO\nX4wsahyOSLVAJd1cXkBUSB28iOl7f607EP/y0UQODpO0L+e1eopVHppoWB2f\niwtXZGNl5M8PSgpSgZveTg5FL7dNPsyy8ITcMBdzVm6C3R6WLjufMNhNV/kj\nvAesQtN4j2nSY+xm+8SndIKS0I12LJOlZ4nlMBTlPvhn7QcAJRgkFd1L++rG\n23l1yMTn1d6buzebCaZVOoAG6AyhTlRJMbZwWp1tr9DxddnR93BO7GMrQw/b\nnTcv\r\n=KRac\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBGmFzTOGBFXYT3rpreZTQ2ID7UxQUS3tESQAxFMpyYAiEA2zM5bsUOrbM+98su+6CPV2jM/aHH8yvWbvPfnvAOdzU="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.8_1597742928300_0.35074673493366104"},"_hasShrinkwrap":false},"2.1.9":{"name":"move-on","version":"2.1.9","description":"Creates a queue of sync or async functions with resolve and reject callback.","main":"dist/move-on.node.js","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"scripts":{"start":"webpack --env.dev","build":"webpack --env.prod","test":"babel-node jasmine.conf.js"},"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"license":"MIT","bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"homepage":"https://github.com/devrafalko/move-on#readme","dependencies":{"of-type":"^3.0.3","typeof-arguments":"^5.1.2"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/node":"^7.10.5","@babel/preset-env":"^7.11.0","babel-loader":"^8.1.0","jasmine":"^3.6.1","jasmine-spec-reporter":"^5.0.2","join-array":"^1.1.3","terser-webpack-plugin":"^4.1.0","webpack":"^4.44.1","webpack-cli":"^3.3.12","webpack-merge":"^5.1.1","webpack-node-externals":"^2.5.1"},"gitHead":"b86bc028d247402b26c72da837aeef5ab3bcb27a","_id":"move-on@2.1.9","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-nHCaqAwIRgXdS5mN0Fjrg2UuykDObHgJtVRMUqUSwMEC8ruJG+jxidVqPaQAy7zhqDvelt0fnEWrz4VuatWEpg==","shasum":"1ebf1e66b2d0fa207e9cbd8ccd7edc0f6707e10d","tarball":"https://registry.npmjs.org/move-on/-/move-on-2.1.9.tgz","fileCount":4,"unpackedSize":85737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfU9fNCRA9TVsSAnZWagAAqZkQAJJHXrbxJlb0/T1HhFvL\neZRgoLJOSduiWcnYIlom0jn45zB8wRAfKoJSaz3R3FqPGtImH5al4cKfQ3ym\nGQo/Rrrvfq/yGBRzyJi3ShwQOAiGrJNld7ri54sdMLboz4qkmmBbORfRVDR8\nZ94B8vjZJ27cC7JdDcfawjiNlpyBwJDUoNhc9DJS4xHANrfBcqN91h5daWf0\nlUXwH/3dApDfFiK/uNwyDSuOJIMorfwq54aOReHd2ylj06D3GiYHVlqd5CwB\n7ywTHwpbQbqyrqt4UMd0+q63YqfC2tYXYVDHHJkzBA+dWbAzbBdYyjEbENcV\nwIknnSnzXcz1Y5YfRKq1UGfzONGjKOG4gUt5qQOe/6FTOWMO3VytSmoBCN9D\nGqc1c/jt4UfCcAeuuBXkGT5rBfbnvn8eAXlVywwUX8uN5MlRu1ZbORzhmCNN\nXY4h17/YUpZZXjNHlBTniH85NSGfZH0fWF1zg1C1YBm59BogfP9zODd2DAie\nq2APfO0k8VmzVT8Sskch9il/qX7Z0fFylYbxasR9y6ZW2VsrbP9XSn3HAheV\nXXTQLEZp6Or1AuTKp0aXvDsdTe9efIkAKLXlghzfDk43aS4R4Lh+hea90J3s\nac5nD1bHWmwM5FWjdUqn5mRptsXKCx29M50he0MOQ4gLtehNFBK3gS0+HYOb\nlUnu\r\n=PPtI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzdcDC/CxDpLV085fylJLjA5nDDVnEhtVv5Rb1/1v3hAiEAi1zn11PWqSKMm2rB62e9i49hXXuOD5FGeDwWtw3UFys="}]},"maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"_npmUser":{"name":"devrafalko","email":"dev.rafalko@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/move-on_2.1.9_1599330252903_0.7790947960104015"},"_hasShrinkwrap":false}},"readme":"<h1>Description</h1>\r\n<code>move-on</code> is a module that:\r\n<ul>\r\n  <li>executes the chosen functions\r\n    <em>(synchronous and | or asynchronous)</em> in the chain <a href=\"#sample-sync-async\">[sample]</a></li>\r\n  <li>can be a\r\n    <em>(really, really great)</em> alternative for\r\n    <strong>Promises</strong>\r\n  </li>\r\n  <li>supports\r\n    <strong>\r\n      <a href=\"#config-timeout\">timeout</a>\r\n    </strong>\r\n    <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-first\">[sample]</a>\r\n  </li>\r\n  <li>contains\r\n    <a href=\"#moveon-all-behaviour\">four methods</a> that immitate the Promises'\r\n    <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all\">\r\n      <code>.all</code>\r\n    </a> and\r\n    <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race\">\r\n      <code>.race</code>\r\n    </a> methods <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a> <a href=\"#sample-first\">[sample]</a></li>\r\n  <li>allows to set the\r\n    <code>this</code> reference\r\n    <strong>\r\n      <a href=\"#config-context\">inner context</a>\r\n    </strong> for all functions in the chain to transmit data between functions <a href=\"#sample-context-arguments\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a> <a href=\"#sample-class-methods\">[sample]</a></li>\r\n</ul>\r\n<p>Any bugs found? Give me to know on\r\n  <a href=\"https://github.com/devrafalko/move-on\">GitHub</a>.</p>\r\n<h1>Usage</h1>\r\n<h4>Node</h4>\r\n<code>npm install move-on</code><br/><br/>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\n```\r\n\r\n<h4>Browsers</h4>\r\n<p>\r\n  Add the <code>move-on.js</code> library to the HTML file.<br/>\r\n  The library is located in <code>./dist/move-on.js</code> directory.<br/>\r\n  It is a webpack&babel bundled cross-browser library version.<br/>\r\n  The library is accessible as <code>moveOn</code> variable in the global <em>(window)</em> scope.<br/>\r\n\r\n```html\r\n<script src='move-on.js'></script>\r\n<script>\r\n  moveOn(list, config, onDone, onCatch);\r\n</script>\r\n```\r\n\r\n<h1>Tests</h1>\r\n<code>npm test</code>\r\n\r\n```cmd\r\n> git clone https://github.com/devrafalko/move-on.git\r\n> cd move-on\r\n> npm install\r\n> npm test        //run tests in node\r\n> npm test err    //run tests in node with failed specs shown\r\n> npm test deep   //run tests in node with errors' descriptions shown\r\n```\r\n\r\n<h1>Simple sample</h1>\r\n\r\n```javascript\r\nconst moveOn = require('move-on'); \r\n/* [Function] moveOn(list, config, onDone, onCatch)\r\n   [Function] moveOn.all(list, config, onDone, onCatch)\r\n   [Function] moveOn.each(list, config, onDone, onCatch)\r\n   [Function] moveOn.first(list, config, onDone, onCatch) */\r\n\r\nconst list = [retrieveData, computeData, displayData];\r\nconst config = { timeout: 5000 };\r\n\r\nmoveOn(list, config, onDone, onCatch);\r\n\r\nfunction retrieveData(resolve, reject, context){\r\n  setTimeout(resolve, 1000); //asynchronous resolve\r\n}\r\n\r\nfunction computeData(resolve, reject, context){\r\n  resolve(); //synchronous resolve\r\n}\r\n\r\nfunction displayData(resolve, reject, context){\r\n  resolve();\r\n}\r\n\r\nfunction onDone(reject, context){}\r\nfunction onCatch(context){}\r\n```\r\n<h1>Methods short description</h1>\r\n<p>The module's methods expect the [Array]\r\n<a href=\"#list-argument\">\r\n  <code>list</code></a> of functions to be passed as the first argument. Each function in the chain has the\r\n<a href=\"#chained-functions\">\r\n  <code>resolve</code>\r\n</a> and\r\n<a href=\"#chained-functions\">\r\n  <code>reject</code>\r\n</a> parameter, that should be called when ready\r\n<em>(or failed)</em> in order to move the functions execution forward. When the functions chain is successfully executed, the\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> callback function is called finally, otherwise the\r\n<a href=\"#catch-argument\">\r\n  <code>catch</code>\r\n</a> callback function is called.</p>\r\n<h4>1.\r\n  <code>moveOn</code>\r\n</h4>\r\n<p>The chained functions are executed sequentially\r\n<em>(one after another)</em>. Each function is expected to be\r\n<a href=\"#chained-functions\">\r\n  <code>resolved</code>\r\n</a>, so that the next chained function was executed. The\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function is called as the last one, when all previous chained functions resolved. The\r\n<a href=\"#catch-argument\">\r\n  <code>catch</code>\r\n</a> function is called instead of\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function, when at least one chained function failed\r\n<em>(<a href=\"#chained-functions\">rejected</a>)</em>.<br/>\r\n<a href=\"#moveon-behaviour\">See the full description below</a>.<br/>See the samples: <a href=\"#sample-sync-async\">[sample]</a> <a href=\"#sample-context-arguments\">[sample]</a> <a href=\"#sample-reject\">[sample]</a> <a href=\"#sample-return-resolve\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a> <a href=\"#sample-class-methods\">[sample]</a> <a href=\"#sample-email-validation\">[sample]</a></p>\r\n<h4>2.\r\n  <code>moveOn.all</code>\r\n</h4>\r\n<p>The\r\n<code>all</code> static method of\r\n<code>move-on</code> module executes all chosen functions at the same time\r\n<em>(similarly to Promises'\r\n  <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all\">\r\n    <code>.all</code>\r\n  </a> method)</em>. All chained functions are expected to be\r\n<a href=\"#chained-functions\">\r\n  <code>resolved</code>\r\n</a> so that the final\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function was called. The\r\n<a href=\"#catch-argument\">\r\n  <code>catch</code>\r\n</a> function is called instead of\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function, when at least one chained function failed\r\n<em>(<a href=\"#chained-functions\">rejected</a>)</em>.<br/>\r\n<a href=\"#moveon-all-behaviour\">See the full description below</a>.<br/>See the samples: <a href=\"#sample-all\">[sample]</a></p>\r\n<h4>3.\r\n  <code>moveOn.each</code>\r\n</h4>\r\n<p>The\r\n<code>each</code> static method of\r\n<code>move-on</code> module executes all chosen functions at the same time. Each chained function is expected to be either\r\n<a href=\"#chained-functions\">\r\n  <code>resolved</code>\r\n</a> or\r\n<a href=\"#chained-functions\">\r\n  <code>rejected</code>\r\n</a>, so that the final\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function was called. The failed\r\n<em>(<a href=\"#chained-functions\">rejected</a>)</em> function\r\n<strong>does not stop</strong> the further functions execution. It can be used\r\n<em>eg.</em> to log the warnings in the\r\n<a href=\"#catch-argument\">\r\n  <code>catch</code>\r\n</a> callback function.<br/>\r\n<a href=\"#moveon-each-behaviour\">See the full description below</a>.<br/>See the samples: <a href=\"#sample-each-inner\">[sample]</a></p>\r\n<h4>4.\r\n  <code>moveOn.first</code>\r\n</h4>\r\n<p>The\r\n<code>first</code> static method of\r\n<code>move-on</code> module executes all chained functions at the same time. It expects the first\r\n<em>(fastest)</em> function to be\r\n<a href=\"#chained-functions\">\r\n  <code>resolved</code>\r\n</a>, so that the\r\n<a href=\"#done-argument\">\r\n  <code>done</code>\r\n</a> function was called\r\n<em>(similarly to Promises'\r\n  <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race\">\r\n    <code>.race</code>\r\n  </a> method)</em>. When\r\n<strong>all</strong> functions failed\r\n<em>(<a href=\"#chained-functions\">rejected</a>)</em>, the\r\n<a href=\"#catch-argument\">\r\n  <code>catch</code>\r\n</a> function is called instead.<br/>\r\n<a href=\"#moveon-first-behaviour\">See the full description below</a>.<br/>See the samples: <a href=\"#sample-first\">[sample]</a></p>\r\n<h1>Methods behaviour</h1>\r\n<h3 id=\"moveon-behaviour\">moveOn(\r\n  <a href=\"#list-argument\">\r\n    <code>list</code>\r\n  </a>,\r\n  <a href=\"#config-argument\">\r\n    <code>config</code>\r\n  </a>,\r\n  <a href=\"#done-argument\">\r\n    <code>done</code>\r\n  </a>,\r\n  <a href=\"#catch-argument\">\r\n    <code>catch</code>\r\n  </a>)\r\n</h3>\r\n<ul>\r\n  <li>The\r\n    <code>move-on</code> module function executes the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>sequentially</strong>\r\n    <em>(one after another)</em> in the chain</li>\r\n  <li>When one\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolves</a>\r\n    </strong>, the next\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function is called,\r\n    <em>and so on...</em>\r\n  </li>\r\n  <li>When the\r\n    <strong>last</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolves</a>\r\n    </strong>, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> function is called\r\n    <strong>once</strong>\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejects</a>\r\n    </strong>, the farther\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions and the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> function are\r\n    <strong>not called</strong> in the end</li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejects</a>\r\n    </strong>, the\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> function is called instead\r\n    <strong>once</strong>\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution)</em>\r\n  </li>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can be\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolved</a>\r\n    </strong> and | or\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejected</a>\r\n    </strong>\r\n    <strong>multiple times</strong>. The forks of chain are created and executed then\r\n    <a href=\"#multiple-calls\">[read more]</a>\r\n  </li>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can execute the inner\r\n    <code>move-on</code> module\r\n    <a href=\"#inner-moveon-module\">[read more]</a>\r\n  </li>\r\n  <li>\r\n    Samples: <a href=\"#sample-sync-async\">[sample]</a> <a href=\"#sample-context-arguments\">[sample]</a> <a href=\"#sample-reject\">[sample]</a> <a href=\"#sample-return-resolve\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a> <a href=\"#sample-class-methods\">[sample]</a> <a href=\"#sample-email-validation\">[sample]</a>\r\n  </li>\r\n</ul>\r\n<h3 id=\"moveon-all-behaviour\">moveOn.all(\r\n  <a href=\"#list-argument\">\r\n    <code>list</code>\r\n  </a>,\r\n  <a href=\"#config-argument\">\r\n    <code>config</code>\r\n  </a>,\r\n  <a href=\"#done-argument\">\r\n    <code>done</code>\r\n  </a>,\r\n  <a href=\"#catch-argument\">\r\n    <code>catch</code>\r\n  </a>)\r\n</h3>\r\n<ul>\r\n  <li>\r\n    <code>move-on</code>.<code>all</code> static method executes all the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>simultaneously</strong>\r\n    <em>(at the same time)</em>\r\n  </li>\r\n  <li>When one\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolves</a>\r\n    </strong>, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> is\r\n    <strong>not called</strong> immediately</li>\r\n  <li>The\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> waits, till\r\n    <strong>all</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions are\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolved</a>\r\n    </strong>, to be called\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution - after that, all\r\n      <a href=\"#chained-functions\">resolve</a> and\r\n      <a href=\"#chained-functions\">reject</a> calls are ignored)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejects</a>\r\n    </strong>, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> function is\r\n    <strong>not called</strong> in the end</li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejects</a>\r\n    </strong>, the\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> function is called instead\r\n    <strong>once</strong>\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution - after that, all\r\n      <a href=\"#chained-functions\">resolve</a> and\r\n      <a href=\"#chained-functions\">reject</a> calls are ignored)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <a href=\"#chained-functions\">resolves</a> and | or\r\n    <a href=\"#chained-functions\">rejects</a>\r\n    <strong>multiple times</strong>, only the\r\n    <strong>first</strong> call is respected\r\n    <a href=\"#multiple-calls\">[read more]</a>\r\n  </li>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can execute the inner\r\n    <code>move-on</code> module\r\n    <a href=\"#inner-moveon-module\">[read more]</a>\r\n  </li>\r\n  <li>\r\n    Samples: <a href=\"#sample-all\">[sample]</a>\r\n  </li>\r\n</ul>\r\n<h3 id=\"moveon-each-behaviour\">moveOn.each(\r\n  <a href=\"#list-argument\">\r\n    <code>list</code>\r\n  </a>,\r\n  <a href=\"#config-argument\">\r\n    <code>config</code>\r\n  </a>,\r\n  <a href=\"#done-argument\">\r\n    <code>done</code>\r\n  </a>,\r\n  <a href=\"#catch-argument\">\r\n    <code>catch</code>\r\n  </a>)\r\n</h3>\r\n<ul>\r\n  <li>\r\n    <code>move-on</code>.<code>each</code> static method executes all the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>simultaneously</strong>\r\n    <em>(at the same time)</em>\r\n  </li>\r\n  <li>When one\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolves</a>\r\n    </strong>, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> is\r\n    <strong>not called</strong> immediately</li>\r\n  <li>The\r\n    <code>done</code> waits, till\r\n    <strong>each</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function is either\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolved</a>\r\n    </strong> or\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejected</a>\r\n    </strong>, to be called\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution - after that, all\r\n      <a href=\"#chained-functions\">resolve</a> and\r\n      <a href=\"#chained-functions\">reject</a> calls are ignored)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <strong>\r\n      <a href=\"#chained-functions\">rejects</a>\r\n    </strong> and the\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> is called, it\r\n    <strong>does not end up</strong> the module execution</li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <a href=\"#chained-functions\">resolves</a> and | or\r\n    <a href=\"#chained-functions\">rejects</a>\r\n    <strong>multiple times</strong>, only the\r\n    <strong>first</strong> call is respected\r\n    <a href=\"#multiple-calls\">[read more]</a>\r\n  </li>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can execute the inner\r\n    <code>move-on</code> module\r\n    <a href=\"#inner-moveon-module\">[read more]</a>\r\n  </li>\r\n  <li>\r\n    Samples: <a href=\"#sample-each-inner\">[sample]</a>\r\n  </li>\r\n</ul>\r\n<h3 id=\"moveon-first-behaviour\">moveOn.first(\r\n  <a href=\"#list-argument\">\r\n    <code>list</code>\r\n  </a>,\r\n  <a href=\"#config-argument\">\r\n    <code>config</code>\r\n  </a>,\r\n  <a href=\"#done-argument\">\r\n    <code>done</code>\r\n  </a>,\r\n  <a href=\"#catch-argument\">\r\n    <code>catch</code>\r\n  </a>)\r\n</h3>\r\n<ul>\r\n  </li>\r\n  <li>\r\n    <code>move-on</code>.<code>first</code> static method executes all the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>simultaneously</strong>\r\n    <em>(at the same time)</em>\r\n  </li>\r\n  <li>The\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> waits, till\r\n    <strong>the first</strong>\r\n    <em>(fastest)</em>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function is\r\n    <strong>\r\n      <a href=\"#chained-functions\">resolved</a>\r\n    </strong>, to be called\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution - after that, all\r\n      <a href=\"#chained-functions\">resolve</a> and\r\n      <a href=\"#chained-functions\">reject</a> calls are ignored)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>all</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>\r\n      <a href=\"#chained-functions\">reject</a>\r\n    </strong>, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> function is\r\n    <strong>not called</strong> in the end</li>\r\n  <li>When\r\n    <strong>all</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions\r\n    <strong>\r\n      <a href=\"#chained-functions\">reject</a>\r\n    </strong>, the\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> function is called instead\r\n    <strong>once</strong>\r\n    <em>(it\r\n      <strong>ends up</strong> the module execution - after that, all\r\n      <a href=\"#chained-functions\">resolve</a> and\r\n      <a href=\"#chained-functions\">reject</a> calls are ignored)</em>\r\n  </li>\r\n  <li>When\r\n    <strong>whichever</strong>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function\r\n    <a href=\"#chained-functions\">resolves</a> and | or\r\n    <a href=\"#chained-functions\">rejects</a>\r\n    <strong>multiple times</strong>, only the\r\n    <strong>first</strong> call is respected\r\n    <a href=\"#multiple-calls\">[read more]</a>\r\n  </li>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can execute the inner\r\n    <code>move-on</code> module\r\n    <a href=\"#inner-moveon-module\">[read more]</a>\r\n  </li>\r\n  <li>\r\n    Samples: <a href=\"#sample-first\">[sample]</a>\r\n  </li>\r\n</ul>\r\n<h1>Arguments</h1>\r\n<ol>\r\n  <li>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a>\r\n  </li>\r\n  <li>\r\n    <a href=\"#config-argument\">\r\n      <code>config</code>\r\n    </a>\r\n  </li>\r\n  <li>\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a>\r\n  </li>\r\n  <li>\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a>\r\n  </li>\r\n</ol>\r\n<h3 id=\"list-argument\">\r\n  <code>list</code>\r\n  <strong>[Array: function | array]</strong>\r\n</h3>\r\nThe [Array]\r\n<code>list</code> stores the list of functions, that should be called. It can contain:\r\n<ul>\r\n  <li>[Function] items\r\n    <a href=\"#list-mode-a\">[see below]</a> <a href=\"#sample-sync-async\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a> <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a>\r\n    <br/>\r\n    <code>const list = [fnA, fnB, fnC];</code>\r\n  </li>\r\n  <li>or [Array] items that store the [Function] items\r\n    <a href=\"#list-mode-b\">[see below]</a>\r\n    <br/>\r\n    <code>const list = [fnA, [obj, fnB, fnC], fnD]</code>\r\n  </li>\r\n  <li>or [Array] items that store the [String] names of methods\r\n    <a href=\"#list-mode-c\">[see below]</a> <a href=\"#sample-email-validation\">[sample]</a>\r\n    <br/>\r\n    <code>const list = [fnA, [obj, 'fnB', 'fnC'], fnD]</code>\r\n  </li>\r\n</ul>\r\n<h4 id=\"list-mode-a\">1. [Function] items</h4>\r\n<ul>\r\n  <li>The [Array]\r\n    <code>list</code> can contain [Function] items. It may be function, arrow function or object's method</li>\r\n  <li>All functions are\r\n    <a href=\"#config-bind\">bound</a> by default to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a> reference\r\n    <em>(except arrow functions and already bound functions\r\n      <a href=\"#config-bind\">[read more]</a>)</em>\r\n  </li>\r\n  <li>\r\n    Samples: <a href=\"#sample-sync-async\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a> <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a>\r\n  </li>\r\n</ul>\r\n\r\n```javascript\r\nconst retrieveData = function(){};\r\nconst computeData = ()=>{};\r\nconst displayData = { display:()=>{} };\r\nconst list = [retrieveData, computeData, displayData.display];\r\n```\r\n<p></p>\r\n<h4 id=\"list-mode-b\">2. [Array: function] items for individual binding</h4>\r\n<ul>\r\n  <li>All chained functions are\r\n    <a href=\"#config-bind\">bound</a> by default to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a> reference</li>\r\n  <li>You can set the\r\n    <strong>individual</strong>\r\n    <code>this</code> reference for the chosen functions\r\n    <em>(except arrow functions and already bound functions\r\n      <a href=\"#config-bind\">[read more]</a>)</em>\r\n  </li>\r\n  <li>In order to bind the chained functions individually, push [Array] item into the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a>:\r\n    <ul>\r\n      <li>The\r\n        <code>[0]</code> item should indicate the\r\n        <strong>object</strong> or value to be the\r\n        <code>this</code> reference for the functions</li>\r\n      <li>The\r\n        <code>[1]</code>,\r\n        <code>[2]</code>\r\n        <em>, etc...</em> item(s) should indicate the\r\n        <strong>function(s)</strong>, that will be bound to the\r\n        <code>[0]</code> object or value</li>\r\n    </ul>\r\n  </li>\r\n  <li>The [Array] item's functions are bound to the given\r\n    <code>[0]</code> object or value instead of the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n  </li>\r\n  <li>The\r\n    <a href=\"#config-bind\">\r\n      <code>config.bind</code>\r\n    </a> setting does not affect the individual\r\n    <code>this</code> reference setting</li>\r\n  <li>The [Array] item's functions still have the access to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <a href=\"#config-passcontext\">parameter</a>\r\n  </li>\r\n  <li>the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> can still contain the\r\n    <a href=\"#list-mode-a\">[Function] items</a> next to this [Array] item</li>\r\n</ul>\r\n\r\n```javascript\r\nconst workers = {}, earnings = {}, tasks = {};\r\nconst config = {context: tasks}; //the default this reference\r\nconst list = [\r\n  functionA, //this === tasks\r\n  [workers, functionB], //this === workers\r\n  [earnings, functionC] //this === earnings\r\n];\r\nmoveOn(list, config, onDone, onCatch));\r\n```\r\n<p></p>\r\n<h4 id=\"list-mode-c\">3. [Array: string] items for methods</h4>\r\nThe methods passed to the\r\n<a href=\"#list-argument\">\r\n  <code>list</code>\r\n</a> loses their\r\n<code>this</code> reference to the object, they were declared in, what may be undesirable.\r\n\r\n```javascript\r\nconst workers = {\r\n  addWorker: function(){},\r\n  listEarnings: function(){}\r\n};\r\nconst list = [\r\n  workers.addWorker, //this !== workers\r\n  workers.listEarnings //this !== workers\r\n];\r\n```\r\n\r\n<ul>\r\n  <li>to retain the\r\n    <code>this</code> reference to the object, that the methods are declared in, push [Array] item with methods' [String] names into the\r\n    <a\r\n      href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a>:\r\n    <ul>\r\n      <li>The\r\n        <code>[0]</code> item should indicate the\r\n        <strong>object</strong>, that the methods are declared in</li>\r\n      <li>The\r\n        <code>[1]</code>,\r\n        <code>[2]</code>\r\n        <em>, etc...</em> item(s) should indicate the [String]\r\n        <strong>name(s)</strong> of the method(s) declared in the\r\n        <code>[0]</code> object</li>\r\n    </ul>\r\n  </li>\r\n  <li>These methods retain the\r\n    <code>this</code> reference to the\r\n    <code>[0]</code> object and are not\r\n    <a href=\"#config-bind\">bound</a> to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n  </li>\r\n  <li>The\r\n    <a href=\"#config-bind\">\r\n      <code>config.bind</code>\r\n    </a> setting does not affect the\r\n    <code>this</code> reference</li>\r\n  <li>The [Array] item functions still have the access to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <a href=\"#config-passcontext\">parameter</a>\r\n  </li>\r\n  <li>the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> can still contain the\r\n    <a href=\"#list-mode-a\">[Function] items</a> or\r\n    <a href=\"#list-mode-b\">[Array] items with functions</a> next to this [Array] item with [String] method's names</li>\r\n  <li>Samples: <a href=\"#sample-email-validation\">[sample]</a></li>\r\n</ul>\r\n\r\n```javascript\r\nconst displayData = function(){};\r\nconst workers = {\r\n  addWorker: function(){},\r\n  listEarnings: function(){}\r\n};\r\nconst list = [ [workers, 'addWorker', 'listEarnings'], displayData ];\r\n\r\nmoveOn(list, config, onDone, onCatch));\r\n```\r\n<p></p>\r\n<h3 id=\"config-argument\">\r\n  <code>config</code>\r\n  <strong>[Object | null]</strong>\r\n</h3>\r\n<ul>\r\n  <li>the [Object]\r\n    <code>config</code> argument allows to set the following\r\n    <strong>config properties</strong>:\r\n    <a href=\"#config-timeout\">\r\n      <code>timeout</code>\r\n    </a>,\r\n    <a href=\"#config-bind\">\r\n      <code>bind</code>\r\n    </a>,\r\n    <a href=\"#config-context\">\r\n      <code>context</code>\r\n    </a>,\r\n    <a href=\"#config-passcontext\">\r\n      <code>passContext</code>\r\n    </a>\r\n  </li>\r\n  <li>when the\r\n    <code>config</code> is set to\r\n    <code>null</code> or when it does not define the particular config property or when it defines the config property\r\n    <strong>incorrectly</strong>, the\r\n    <strong>default value</strong> is used for this config property\r\n    <strong>instead</strong> <a href=\"#sample-reject\">[sample]</a> <a href=\"#sample-return-resolve\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a>\r\n  </li>\r\n  <li>any error is thrown when any config property is defined incorrectly\r\n    <em>(the default value is used instead)</em>\r\n  </li>\r\n</ul>\r\n<h4 id=\"config-timeout\">\r\n  <code>config.timeout</code>\r\n</h4>\r\n<strong>Type:</strong> [Number | null | Infinity]</br>\r\n<strong>Default:</strong>\r\n<code>10000</code>\r\n<br/>\r\n<strong>Description:</strong>\r\n<br/>\r\n<ul>\r\n  <li>It must be a [Number] integer, equal or bigger than\r\n    <code>0</code>, that indicates the\r\n    <strong>milliseconds</strong>\r\n  </li>\r\n  <li>it behaves different for each method:\r\n    <ol>\r\n      <li>\r\n        <a href=\"#moveon-behaviour\">\r\n          <code>moveOn</code>\r\n        </a>:<br/>The\r\n        <code>config.timeout</code> starts out counting down\r\n        <strong>individually</strong> for each chained function immediately after it is called.<br/>It expects\r\n        <strong>each function</strong> to be\r\n        <a href=\"#chained-functions\">resolved</a> or\r\n        <a href=\"#chained-functions\">rejected</a>\r\n        <strong>before timeout</strong> pass,<br/>otherwise it calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function with the\r\n        <strong>\r\n          <a href=\"#timeout-error\">timeout error</a>\r\n        </strong> argument passed</li>\r\n      <li>\r\n        <a href=\"#moveon-all-behaviour\">\r\n          <code>moveOn.all</code>\r\n        </a>:<br/>The\r\n        <code>config.timeout</code> starts out counting down\r\n        <strong>once for all</strong> chained functions when the module is fired.<br/>It expects\r\n        <strong>all functions</strong> to be\r\n        <a href=\"#chained-functions\">resolved</a> or\r\n        <strong>any function</strong> to be\r\n        <a href=\"#chained-functions\">rejected</a>\r\n        <strong>before timeout</strong> pass,<br/>otherwise it calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function with the\r\n        <strong>\r\n          <a href=\"#timeout-error\">timeout error</a>\r\n        </strong> argument passed</li>\r\n      <li>\r\n        <a href=\"#moveon-each-behaviour\">\r\n          <code>moveOn.each</code>\r\n        </a>:<br/>The\r\n        <code>config.timeout</code> starts out counting down\r\n        <strong>once for all</strong> chained functions when the module is fired.<br/>It expects\r\n        <strong>all functions</strong> to be\r\n        <strong>either\r\n          <a href=\"#chained-functions\">resolved</a> or\r\n          <a href=\"#chained-functions\">rejected</a>\r\n        </strong>\r\n        <strong>before timeout</strong> pass,<br/>otherwise it calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function with the\r\n        <strong>\r\n          <a href=\"#timeout-error\">timeout error</a>\r\n        </strong> argument passed</li>\r\n      <li>\r\n        <a href=\"#moveon-first-behaviour\">\r\n          <code>moveOn.first</code>\r\n        </a>:<br/>The\r\n        <code>config.timeout</code> starts out counting down\r\n        <strong>once for all</strong> chained functions when the module is fired.<br/>It expects\r\n        <strong>at least one</strong> function to be\r\n        <a href=\"#chained-functions\">resolved</a> or\r\n        <strong>all functions</strong> to be\r\n        <a href=\"#chained-functions\">rejected</a>\r\n        <strong>before timeout</strong> pass,<br/>otherwise it calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function with the\r\n        <strong>\r\n          <a href=\"#timeout-error\">timeout error</a>\r\n        </strong> argument passed</li>\r\n    </ol>\r\n  </li>\r\n  <li>All\r\n    <a href=\"#chained-functions\">\r\n      <code>resolves</code>\r\n    </a>s and\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>s that are called\r\n    <strong>after</strong> the\r\n    <code>config.timeout</code> pass\r\n    <strong>are ignored</strong>\r\n  </li>\r\n  <li>When the\r\n    <code>config.timeout</code> is set to\r\n    <code>null</code> or\r\n    <code>Infinity</code>, the timeout is\r\n    <strong>not set at all</strong>. If any of the chained function does not\r\n    <a href=\"#chained-functions\">resolve</a>\r\n    <em>(or <a href=\"#chained-functions\">reject</a>)</em>, anything happen then and the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> or\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> function is never called in the end</li>\r\n  <li>When the\r\n    <code>config.timeout</code> is not defined, or if it is defined with\r\n    <strong>incorrect</strong> value, the\r\n    <strong>default</strong> value is set instead</li>\r\n  <li>Samples: <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-first\">[sample]</a></li>\r\n</ul>\r\n<h5 id=\"timeout-error\">Timeout error</h5>\r\nIt is an [Error] object with the following properties, that allow to distinguish, that the\r\n<strong>timeout</strong> error has been passed:\r\n<ul>\r\n  <li>\r\n    <code>message</code>:\r\n    <em>eg.</em>\r\n    <code>\"Timeout. The chained function did not respond in the expected time of 10000 ms.\"</code>\r\n  </li>\r\n  <li>\r\n    <code>info</code>:\r\n    <code>\"timeout\"</code>\r\n  </li>\r\n  <li>\r\n    <code>code</code>:\r\n    <code>\"ETIMEDOUT\"</code>\r\n  </li>\r\n</ul>\r\n<h4 id=\"config-context\">\r\n  <code>config.context</code>\r\n</h4>\r\n<strong>Type:</strong> [any]\r\n<br/>\r\n<strong>Default:</strong>\r\n<code>{}</code>\r\n<br/>\r\n<strong>Description:</strong>\r\n<br/>\r\n\r\n<ul>\r\n  <li>The\r\n    <code>config.context</code> refers to the object\r\n    <em>(or value)</em>, that will be used as the\r\n    <code>this</code> reference in all\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions,\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> and\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a>\r\n  </li>\r\n  <li>It is usefull to transmit data between functions; <em>eg. the [Object]\r\n    <code>config.context</code>'s properties can be defined and got in any function</em></li>\r\n  <li>The\r\n    <code>config.context</code> can be\r\n    <strong>any value</strong>, as any value can be used as the\r\n    <code>this</code> reference in\r\n    <code>Function.prototype.bind</code>\r\n    <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind\">[read more]</a>\r\n  </li>\r\n  <li>The\r\n    <code>config.context</code> is used as the\r\n    <code>this</code> reference by default, unless you set\r\n    <a href=\"#config-bind\">\r\n      <code>config.bind</code>\r\n    </a> to false</li>\r\n  <li>The\r\n    <code>config.context</code> is also accessible as the parameter, unless you set\r\n    <a href=\"#config-passcontext\">\r\n      <code>config.passContext</code>\r\n    </a> to false</li>\r\n  <li>Samples: <a href=\"#sample-context-arguments\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a> <a href=\"#sample-class-methods\">[sample]</a></li>\r\n</ul>\r\n<h4 id=\"config-passcontext\">\r\n  <code>config.passContext</code>\r\n</h4>\r\n<strong>Type:</strong> [Boolean]\r\n<br/>\r\n<strong>Default:</strong>\r\n<code>true</code>\r\n<br/>\r\n<strong>Description:</strong>\r\n\r\n<ul>\r\n  <li>By default, the\r\n    <code>config.context</code> object\r\n    <em>(or value)</em> is passed through each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function, the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> and\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> as the\r\n    <strong>argument</strong>:\r\n    <ul>\r\n      <li>arguments passed through\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions: {\r\n        <code>0</code>:\r\n        <a href=\"#chained-functions\">\r\n          <code>resolve</code>\r\n        </a>,\r\n        <code>1</code>:\r\n        <a href=\"#chained-functions\">\r\n          <code>reject</code>\r\n        </a>,\r\n        <code>2</code>:\r\n        <a href=\"#config-context\">\r\n          <code>context</code>\r\n        </a>}</li>\r\n      <li>arguments passed through\r\n        <a href=\"#done-argument\">\r\n          <code>done</code>\r\n        </a> function: {\r\n        <code>0</code>:\r\n        <a href=\"#chained-functions\">\r\n          <code>reject</code>\r\n        </a>,\r\n        <code>1</code>:\r\n        <a href=\"#config-context\">\r\n          <code>context</code>\r\n        </a>}</li>\r\n      <li>arguments passed through\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function: {\r\n        <code>0</code>:\r\n        <a href=\"#config-context\">\r\n          <code>context</code>\r\n        </a>}</li>\r\n    </ul>\r\n  </li>\r\n  <li>In order not to pass the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a> as the argument, set\r\n    <code>config.passContext</code> to\r\n    <code>false</code>\r\n  </li>\r\n  <li>The\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a> accessible as the parameter is usefull:\r\n    <ul>\r\n      <li>if the\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions,\r\n        <a href=\"#done-argument\">\r\n          <code>done</code>\r\n        </a> or\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> are\r\n        <strong>arrow functions</strong>, that are non-binding and cannot refer to the\r\n        <a href=\"#config-context\">\r\n          <code>config.context</code>\r\n        </a> via\r\n        <code>this</code> keyword</li>\r\n      <li>if you compose the\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> with\r\n        <strong>\r\n          <a href=\"#list-mode-b\">individually bound</a>\r\n        </strong> functions or\r\n        <strong>\r\n          <a href=\"#list-mode-c\">methods names</a>\r\n        </strong>, that do not refer to the\r\n        <a href=\"#config-context\">\r\n          <code>config.context</code>\r\n        </a> via\r\n        <code>this</code> keyword</li>\r\n      <li>if\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions,\r\n        <a href=\"#done-argument\">\r\n          <code>done</code>\r\n        </a> or\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> are\r\n        <strong>already</strong> bound</li>\r\n    </ul>\r\n  </li>\r\n  <li>Samples: <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a></li>\r\n</ul>\r\n<h4 id=\"config-bind\">\r\n  <code>config.bind</code>\r\n</h4>\r\n<strong>Type:</strong> [Boolean]\r\n<br/>\r\n<strong>Default:</strong>\r\n<code>true</code>\r\n<br/>\r\n<strong>Description:</strong>\r\n<ul>\r\n  <li>By default, each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function,\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> and\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> are bound to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a> object\r\n    <em>(or value)</em>, thus the\r\n    <code>this</code> keyword refers to the\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n  </li>\r\n  <li>In order to retain the former\r\n    <code>this</code> reference of all functions, set the\r\n    <code>config.bind</code> to\r\n    <code>false</code>\r\n  </li>\r\n  <li>In order to set the individual\r\n    <code>this</code> reference for chosen functions, see the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a>\r\n    <a href=\"#list-mode-b\">constructing options</a>\r\n  </li>\r\n  <li>\r\n    <strong>keep in mind</strong>, that arrow functions are non-binding and that already bound functions cannot have the\r\n    <code>this</code> reference changed anymore</li>\r\n</ul>\r\n<h3 id=\"done-argument\">done(\r\n  <a href=\"#chained-functions\">\r\n    <code>reject</code>\r\n  </a>,\r\n  <a href=\"#config-context\">\r\n    <code>context</code>\r\n  </a>)\r\n  <strong>[Function]</strong>\r\n</h3>\r\nThe\r\n<code>done</code> is a callback function, that\r\n<em>(in general)</em> is called as the last one, when the\r\n<a href=\"#list-argument\">\r\n  <code>list</code>\r\n</a> functions have been successfully executed. The\r\n<code>done</code> is called in a different way and time, depending on which method is called:\r\n<ol>\r\n  <li>\r\n    <a href=\"#moveon-behaviour\">\r\n      <code>moveOn</code>\r\n    </a> The\r\n    <code>done</code> is called, when the last function from the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> collection is resolved.\r\n    <br/> The arguments passed through\r\n    <code>done</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[2]</code>,\r\n    <code>[3]</code>\r\n    <em>, etc...</em> The arguments passed by the last resolved\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function </li>\r\n  <li>\r\n    <a href=\"#moveon-all-behaviour\">\r\n      <code>moveOn.all</code>\r\n    </a> The\r\n    <code>done</code> is called, when all\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions are resolved.\r\n    <br/> The arguments passed through\r\n    <code>done</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[2]</code>\r\n    <a href=\"#resolvemap\">\r\n      <code>resolveMap</code>\r\n    </a>\r\n  </li>\r\n  <li>\r\n    <a href=\"#moveon-each-behaviour\">\r\n      <code>moveOn.each</code>\r\n    </a> The\r\n    <code>done</code> is called, when all\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions are either resolved or rejected.\r\n    <br/> The arguments passed through\r\n    <code>done</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[2]</code>\r\n    <a href=\"#resolvemap\">\r\n      <code>resolveMap</code>\r\n    </a>\r\n  </li>\r\n  <li>\r\n    <a href=\"#moveon-first-behaviour\">\r\n      <code>moveOn.first</code>\r\n    </a> The\r\n    <code>done</code> is called, when the first\r\n    <em>(fastest)</em>\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function is resolved.\r\n    <br/> The arguments passed through\r\n    <code>done</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[2]</code>,\r\n    <code>[3]</code>\r\n    <em>, etc...</em> The arguments passed by the first\r\n    <em>(fastest)</em> resolved\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function </li>\r\n</ol>\r\n<h4 id=\"resolvemap\">\r\n  <code>resolveMap</code> object</h4>\r\n<ul>\r\n  <li>The\r\n    <code>resolveMap</code> object is passed through\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> callback when the\r\n    <a href=\"#moveon-all-behaviour\">\r\n      <code>moveOn.all</code>\r\n    </a> and\r\n    <a href=\"#moveon-each-behaviour\">\r\n      <code>moveOn.each</code>\r\n    </a> method is executed. It stores all arguments that have been passed by each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function's\r\n    <a href=\"#chained-functions\">\r\n      <code>resolve</code>\r\n    </a> call.</li>\r\n  <li>The\r\n    <code>resolveMap</code> contains all\r\n    <strong>\r\n      <code>arguments</code>\r\n    </strong> objects at the\r\n    <strong>indeces</strong> that correspond to the order of\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions calling;\r\n    <em>the third\r\n      <a href=\"#list-argument\">\r\n        <code>list</code>\r\n      </a> function's arguments are accessible via\r\n      <code>resolveMap[2]</code>, and so on...</em>\r\n  </li>\r\n  <li>The\r\n    <code>resolveMap</code> properties:\r\n    <ul>\r\n      <li>\r\n        <code>missing</code> It returns the [Array] list of those\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions' indeces\r\n        <em>(due to the order of calling)</em> that have not been resolved</li>\r\n    </ul>\r\n  </li>\r\n  <li>The\r\n    <code>resolveMap</code> methods:\r\n    <ul>\r\n      <li>\r\n        <code>forEach</code>\r\n        <br/> It loops through\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.\r\n        <br/> It expects the\r\n        <code>[0]</code> parameter to be the [Function] callback.\r\n        <br/> The [Function] callback is called for\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.\r\n        <br/> The callback parameters:\r\n        <code>{0: arguments, 1: argumentsIndex, 2: resolveMap}</code>\r\n        <br/> Usage:\r\n        <code>resolveMap.forEach((arguments, argumentsIndex, resolveMap) => {} );</code>\r\n      </li>\r\n      <li>\r\n        <code>forAll</code>\r\n        <br/> It loops through\r\n        <strong>each item</strong>\r\n        <em>(argument)</em> of\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.\r\n        <br/> It expects the\r\n        <code>[0]</code> parameter to be the [Function] callback.\r\n        <br/> The [Function] callback is called for\r\n        <strong>each item</strong>\r\n        <em>(argument)</em>.\r\n        <br/> The callback parameters:\r\n        <code>{0: argument, 1: argumentsIndex, 2: itemIndex, 3: resolveMap}</code>\r\n        <br/> Usage:\r\n        <code>resolveMap.forAll((argument, argumentsIndex, itemIndex, resolveMap) => {} );</code>\r\n      </li>\r\n    </ul>\r\n  </li>\r\n  <li>Samples: <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a></li>\r\n</ul>\r\n<h3 id=\"catch-argument\">catch(\r\n  <a href=\"#config-context\">\r\n    <code>context</code>\r\n  </a>)\r\n  <strong>[Function]</strong>\r\n</h3>\r\nThe\r\n<code>catch</code> is a callback function, that\r\n<em>(in general)</em> is called as the last one, when the\r\n<a href=\"#list-argument\">\r\n  <code>list</code>\r\n</a> function(s) have failed. The\r\n<code>catch</code> is called in a different way and time, depending on which method is called:\r\n<ol>\r\n  <li>\r\n    <a href=\"#moveon-behaviour\">\r\n      <code>moveOn</code>\r\n    </a> The\r\n    <code>catch</code> is called, when any\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function rejects.\r\n    <br/> The arguments passed through\r\n    <code>catch</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>,\r\n    <code>[2]</code>\r\n    <em>, etc...</em> The arguments passed by the rejected\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function</li>\r\n  <li>\r\n    <a href=\"#moveon-all-behaviour\">\r\n      <code>moveOn.all</code>\r\n    </a> The\r\n    <code>catch</code> is called, when any\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function rejects.\r\n    <br/> The arguments passed through\r\n    <code>catch</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>,\r\n    <code>[2]</code>\r\n    <em>, etc...</em> The arguments passed by the rejected\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function</li>\r\n  <li>\r\n    <a href=\"#moveon-each-behaviour\">\r\n      <code>moveOn.each</code>\r\n    </a> The\r\n    <code>catch</code> is called for each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function rejection.\r\n    <br/> The arguments passed through\r\n    <code>catch</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>,\r\n    <code>[2]</code>\r\n    <em>, etc...</em> The arguments passed by the rejected\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function</li>\r\n  <li>\r\n    <a href=\"#moveon-first-behaviour\">\r\n      <code>moveOn.first</code>\r\n    </a> The\r\n    <code>catch</code> is called, when all\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function rejected.\r\n    <br/> The arguments passed through\r\n    <code>catch</code>:\r\n    <br/>\r\n    <code>[0]</code>\r\n    <a href=\"#config-context\">\r\n      <code>config.context</code>\r\n    </a>\r\n    <br/>\r\n    <code>[1]</code>\r\n    <a href=\"#rejectmap\">\r\n      <code>rejectMap</code>\r\n    </a>\r\n  </li>\r\n</ol>\r\n<h4 id=\"rejectmap\">\r\n  <code>rejectMap</code> object</h4>\r\n<ul>\r\n  <li>The\r\n    <code>rejectMap</code> object is passed through\r\n    <a href=\"#catch-argument\">\r\n      <code>catch</code>\r\n    </a> callback when the\r\n    <a href=\"#moveon-first-behaviour\">\r\n      <code>moveOn.first</code>\r\n    </a> method is executed. It stores all arguments that have been passed by all\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions'\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a> calls</li>\r\n  <li>The\r\n    <code>rejectMap</code> contains all\r\n    <strong>\r\n      <code>arguments</code>\r\n    </strong> objects at the\r\n    <strong>indeces</strong> that correspond to the order of\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions calling;\r\n    <em>the third\r\n      <a href=\"#list-argument\">\r\n        <code>list</code>\r\n      </a> function's arguments are accessible via\r\n      <code>rejectMap[2]</code>, and so on...</em>\r\n  </li>\r\n  <li>The\r\n    <code>rejectMap</code> methods:\r\n    <ul>\r\n      <li>\r\n        <code>forEach</code>\r\n        <br/> It loops through\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.\r\n        <br/> It expects the\r\n        <code>[0]</code> parameter to be the [Function] callback.</br>\r\n        The [Function] callback is called for\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.\r\n        <br/> The callback parameters:\r\n        <code>{0: arguments, 1: argumentsIndex, 2: rejectMap}</code>\r\n        <br/> Usage:\r\n        <code>rejectMap.forEach((arguments, argumentsIndex, rejectMap) => {} );</code>\r\n      </li>\r\n      <li>\r\n        <code>forAll</code>\r\n        <br/> It loops through\r\n        <strong>each item</strong>\r\n        <em>(argument)</em> of\r\n        <strong>each\r\n          <code>arguments</code> object</strong>.</br>\r\n        It expects the\r\n        <code>[0]</code> parameter to be the [Function] callback.\r\n        <br/> The [Function] callback is called for\r\n        <strong>each item</strong>\r\n        <em>(argument)</em>.\r\n        <br/> The callback parameters:\r\n        <code>{0: argument, 1: argumentsIndex, 2: itemIndex, 3: rejectMap}</code>\r\n        <br/> Usage:\r\n        <code>rejectMap.forAll((argument, argumentsIndex, itemIndex, rejectMap) => {} );</code>\r\n      </li>\r\n    </ul>\r\n  </li>\r\n</ul>\r\n<h1 id=\"chained-functions\">Chained functions</h1>\r\n<ul>\r\n  <li>Each\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function is called with the following arguments passed:\r\n    <ul>\r\n      <li>\r\n        <code>[0]</code>\r\n        <code>resolve</code> callback function</li>\r\n      <li>\r\n        <code>[1]</code>\r\n        <code>reject</code> callback function</li>\r\n      <li>\r\n        <code>[2]</code>\r\n        <a href=\"#config-context\">\r\n          <code>config.context</code>\r\n        </a> object\r\n        <em>(or value)</em>\r\n      </li>\r\n      <li>\r\n        <code>[3]</code>,\r\n        <code>[4]</code>\r\n        <em>, etc...</em>\r\n        <em>(for\r\n          <a href=\"#moveon-behaviour\">\r\n            <code>moveOn</code>\r\n          </a> method only)</em> The arguments passed by the\r\n        <strong>previous</strong>\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> function</li>\r\n    </ul>\r\n  </li>\r\n  <li>Both\r\n    <code>resolve</code> and\r\n    <code>reject</code> can be called with any number of arguments <a href=\"#sample-context-arguments\">[sample]</a> <a href=\"#sample-all\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a> <a href=\"#sample-first\">[sample]</a>\r\n  </li>\r\n  <li>When the\r\n    <code>resolve</code> is called with arguments, these arguments will be passed:\r\n    <ul>\r\n      <li>\r\n        <a href=\"#moveon-behaviour\">\r\n          <code>moveOn</code>\r\n        </a>: for the further\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> function\r\n        <em>(or for the\r\n          <a href=\"#done-argument\">\r\n            <code>done</code>\r\n          </a> function, when the last\r\n          <a href=\"#list-argument\">\r\n            <code>list</code>\r\n          </a> function resolves)</em>\r\n      </li>\r\n      <li>\r\n        <a href=\"#moveon-first-behaviour\">\r\n          <code>moveOn.first</code>\r\n        </a>: for the\r\n        <a href=\"#done-argument\">\r\n          <code>done</code>\r\n        </a> function</li>\r\n      <li>\r\n        <a href=\"#moveon-all-behaviour\">\r\n          <code>moveOn.all</code>\r\n        </a>,\r\n        <a href=\"#moveon-each-behaviour\">\r\n          <code>moveOn.each</code>\r\n        </a>: for the\r\n        <a href=\"#done-argument\">\r\n          <code>done</code>\r\n        </a> function in the\r\n        <a href=\"#resolvemap\">\r\n          <code>resolveMap</code>\r\n        </a> object</li>\r\n    </ul>\r\n  </li>\r\n  <li>When the\r\n    <code>reject</code> is called with arguments, these arguments will be passed:\r\n    <ul>\r\n      <li>\r\n        <a href=\"#moveon-behaviour\">\r\n          <code>moveOn</code>\r\n        </a>,\r\n        <a href=\"#moveon-all-behaviour\">\r\n          <code>moveOn.all</code>\r\n        </a>,\r\n        <a href=\"#moveon-each-behaviour\">\r\n          <code>moveOn.each</code>\r\n        </a>: for the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function</li>\r\n      <li>\r\n        <a href=\"#moveon-first-behaviour\">\r\n          <code>moveOn.first</code>\r\n        </a>: for the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> function in the\r\n        <a href=\"#rejectmap\">\r\n          <code>rejectMap</code>\r\n        </a> object</li>\r\n    </ul>\r\n  </li>\r\n</ul>\r\n\r\n```javascript\r\nfunction fetchData(resolve, reject, context){\r\n  this.someAsyncAjaxHere((err, data) => {\r\n    if(err) return reject(new Error('Could not read the data.'));\r\n    this.data = data;\r\n    return resolve();\r\n  });\r\n}\r\n```\r\n<p></p>\r\n<h1 id=\"multiple-calls\">Multiple\r\n  <a href=\"#chained-functions\">\r\n    <code>resolve</code>\r\n  </a> |\r\n  <a href=\"#chained-functions\">\r\n    <code>reject</code>\r\n  </a> calls</h1>\r\n<ul>\r\n  <li>\r\n    <strong>keep in mind</strong> that both\r\n    <a href=\"#chained-functions\">\r\n      <code>resolve</code>\r\n    </a> and\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a> do not end function execution. In order to end function execution, use\r\n    <code>return resolve();</code> or\r\n    <code>return reject();</code>\r\n  </li>\r\n  <li>the\r\n    <a href=\"#moveon-all-behaviour\">\r\n      <code>moveOn.all</code>\r\n    </a>,\r\n    <a href=\"#moveon-each-behaviour\">\r\n      <code>moveOn.each</code>\r\n    </a> and\r\n    <a href=\"#moveon-first-behaviour\">\r\n      <code>moveOn.first</code>\r\n    </a> methods expect the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions to call\r\n    <a href=\"#chained-functions\">\r\n      <code>resolve</code>\r\n    </a> or\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a>\r\n    <strong>once</strong>\r\n  </li>\r\n  <li>the\r\n    <strong>\r\n      <a href=\"#moveon-behaviour\">\r\n        <code>moveOn</code>\r\n      </a>\r\n    </strong> method, as it calls the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> functions sequentially, accepts the multiple\r\n    <a href=\"#chained-functions\">\r\n      <code>resolve</code>\r\n    </a> and\r\n    <a href=\"#chained-functions\">\r\n      <code>reject</code>\r\n    </a> calls:\r\n    <ul>\r\n      <li>when the\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> function calls the\r\n        <a href=\"#chained-functions\">\r\n          <code>resolve</code>\r\n        </a> twice, it runs the further\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions twice\r\n        <em>(the forks are created)</em>;\r\n        <em>the\r\n          <a href=\"#chained-functions\">\r\n            <code>resolve</code>\r\n          </a> can be called eg. with different arguments</em>\r\n      </li>\r\n      <li>when the\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> function calls the\r\n        <a href=\"#chained-functions\">\r\n          <code>reject</code>\r\n        </a> twice, it calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a> twice;\r\n        <em>the\r\n          <a href=\"#chained-functions\">\r\n            <code>reject</code>\r\n          </a> can be called eg. with different [Error] objects</em>\r\n      </li>\r\n      <li>when the\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> function calls both\r\n        <a href=\"#chained-functions\">\r\n          <code>resolve</code>\r\n        </a> and\r\n        <a href=\"#chained-functions\">\r\n          <code>reject</code>\r\n        </a>, it both runs the further\r\n        <a href=\"#list-argument\">\r\n          <code>list</code>\r\n        </a> functions and calls the\r\n        <a href=\"#catch-argument\">\r\n          <code>catch</code>\r\n        </a>\r\n      </li>\r\n    </ul>\r\n  </li>\r\n  <li>Samples: <a href=\"#sample-return-resolve\">[sample]</a> <a href=\"#sample-multiple-resolve\">[sample]</a></li>\r\n</ul>\r\n<h4 id=\"inner-moveon-module\">inner\r\n  <code>move-on</code> module</h4>\r\n<ul>\r\n  <li>the\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function can also contain the\r\n    <strong>inner</strong>\r\n    <code>move-on</code> module execution, that has the\r\n    <a href=\"#done-argument\">\r\n      <code>done</code>\r\n    </a> argument set to the\r\n    <a href=\"#chained-functions\">\r\n      <code>resolve</code>\r\n    </a> callback of this\r\n    <a href=\"#list-argument\">\r\n      <code>list</code>\r\n    </a> function</li>\r\n  <li>Samples: <a href=\"#sample-multiple-resolve\">[sample]</a> <a href=\"#sample-each-inner\">[sample]</a></li>\r\n</ul>\r\n<h1>Code examples</h1>\r\n<h4 id=\"sample-sync-async\">1. The <code>move-on</code> chain of synchronous and asynchronous functions</h4>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\nconst list = [requestData, parseData, displayData];\r\nconst config = {\r\n  context:{\r\n    table: document.getElementById('list') //accessible in all functions as this.table\r\n  }\r\n};\r\n\r\nmoveOn(list, config, onDone, onCatch);\r\n\r\n//asynchronous\r\nfunction requestData(resolve, reject, context) {\r\n  getAjaxData((err, json) => {  \r\n    if (err) return reject(err);\r\n    this.json = json;\r\n    resolve();\r\n  });\r\n}\r\n\r\n//synchronous\r\nfunction parseData(resolve, reject, context) {\r\n  this.data = parseJSON(this.json);\r\n  this.employees = getEmployeesList(this.data);\r\n  this.earnings = getEarningsList(this.data);\r\n  resolve();\r\n}\r\n\r\nfunction displayData(resolve, reject, context) {\r\n  table.innerHTML = parseTableContent(this.employees, this.earnings);\r\n  resolve();\r\n}\r\n\r\nfunction onDone(reject, context) {\r\n  this.table.style.display = \"table\";\r\n}\r\n\r\nfunction onCatch(context, err) {\r\n  throw new Error(`Could not get the data: ${err}`);\r\n}\r\n```\r\n<h4 id=\"sample-context-arguments\">2. The <code>move-on</code> module with the user <code>config.context</code> and the arguments passed through the <code>resolve</code> and <code>reject</code> arrow callback functions</h4>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\n\r\nfunction check(resolve, reject) {\r\n  console.log(this.name); //Jessica\r\n  console.log(this.age); //25\r\n  //the [String] argument passed through the catch callback function\r\n  if (!this.name || !this.age) return reject('The person was not defined.');\r\n  return resolve();\r\n}\r\n\r\nconst config = {\r\n  context: {\r\n    name: 'Jessica',\r\n    age: 25\r\n  }\r\n};\r\n\r\nmoveOn([check], config, (reject, context) => {\r\n  //the arrow function could not be bound to the context reference\r\n  //but the context is still accessible as the parameter\r\n  console.log(`New person added: ${context.name} (${context.age})yo.`);\r\n}, (context, err) => {\r\n  console.error(err); //The [String] argument passed through the reject callback function\r\n});\r\n```\r\n<h4 id=\"sample-reject\">3. The <code>move-on</code> module that rejects</h4>\r\n<blockquote>\r\n  Mind that the second <strong>rejected</strong> function ends up the execution of further chained functions.<br/>\r\n</blockquote>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\n\r\nmoveOn([a, b, c], null, onDone, onCatch);\r\n\r\nfunction a(resolve, reject) {\r\n  resolve();\r\n}\r\nfunction b(resolve, reject) {\r\n  reject('oops!');\r\n}\r\nfunction c(resolve, reject) {\r\n  //it's been never called!\r\n  resolve();\r\n}\r\n\r\nfunction onDone(reject, context) {\r\n  //it's been never called!\r\n}\r\n\r\nfunction onCatch(context, message) {\r\n  console.log(message); //oops!\r\n}\r\n```\r\n<h4 id=\"sample-return-resolve\">4. The <code>move-on</code> instructions after <code>resolve</code> call</h4>\r\n<blockquote>\r\n  In order to end up the chained function's execution, call <code>return resolve();</code>\r\n</blockquote>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\n\r\nmoveOn([a, b, c], null, onDone, onCatch);\r\n\r\n/* logs order:\r\n  A before\r\n  B before\r\n  C before\r\n  Done!\r\n  C after\r\n  B after\r\n  A after\r\n*/\r\n\r\nfunction a(resolve) {\r\n  console.log('A before');\r\n  resolve();\r\n  console.log('A after');\r\n}\r\nfunction b(resolve) {\r\n  console.log('B before');\r\n  resolve();\r\n  console.log('B after');\r\n}\r\nfunction c(resolve) {\r\n  console.log('C before');\r\n  resolve();\r\n  console.log('C after');\r\n}\r\n\r\nfunction onDone(reject, context) {\r\n  console.log('Done!');\r\n}\r\n\r\nfunction onCatch(context, msg) {\r\n  console.log(msg); //oops!\r\n}\r\n```\r\n<h4 id=\"sample-multiple-resolve\">5. The inner <code>move-on</code> module and multiple <code>resolve</code> and <code>reject</code> calls</h4>\r\n<blockquote>\r\n  <strong>Mind</strong> how <em>X</em>, <em>Y</em> and <em>Z</em> functions of the inner module execute between <em>A</em>, <em>B</em> and <em>C</em> chained functions.<br/>\r\n  <strong>Mind</strong> how the <em>B</em> and <em>C</em> chained functions are executed twice, by double <code>resolve</code> call in <em>A</em> chained function.\r\n</blockquote>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\nmoveOn([a, b, c], null, onDone, onCatch);\r\n/* The order of functions execution:\r\n   A, X, Y, Z, B, C, Done, Catch, B, C, Done, Catch */\r\n\r\nfunction a(resolve, reject) {\r\n  console.log('A');\r\n  moveOn([x, y, z], null, () => resolve(), () => reject);\r\n  resolve();\r\n}\r\nfunction b(resolve) {\r\n  console.log('B');\r\n  resolve();\r\n}\r\nfunction c(resolve, reject) {\r\n  console.log('C');\r\n  resolve();\r\n  reject();\r\n}\r\nfunction x(resolve) {\r\n  console.log('X');\r\n  resolve();\r\n}\r\nfunction y(resolve) {\r\n  console.log('Y');\r\n  resolve();\r\n}\r\nfunction z(resolve) {\r\n  console.log('Z');\r\n  resolve();\r\n}\r\nfunction onDone() {\r\n  console.log('Done');\r\n}\r\nfunction onCatch() {\r\n  console.log('Catch');\r\n}\r\n```\r\n<h4 id=\"sample-all\">6. The <code>move-on</code>.<code>all</code> chain</h4>\r\n<blockquote>\r\n  It calls <code>done</code> callback function right after <strong>all</strong> chained functions are resolved.<br/>\r\n  The user's shorter <code>config.timeout</code> is set.<br/>\r\n  The <code>reject</code> callback functions are not used. In case of error, the <code>catch</code> callback function will still be called with <code>config.timeout</code> error.<br/>\r\n  All retrieved data is passed through the <code>resolve</code> callback and accessible in the <code>ResolveMap</code> <code>done</code> callback function.\r\n  </blockquote>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\n\r\nconst list = [getArticle, getTagList, getCommentSection];\r\n\r\nmoveOn.all(list, { timeout: 5000, passContext: false }, onDone, onCatch);\r\n\r\nfunction getArticle(resolve) {\r\n  var xhr = new XMLHttpRequest();\r\n  xhr.onreadystatechange = () => {\r\n    if (xhr.readyState == 4 && xhr.status == 200) return resolve(xhr.responseText);\r\n  };\r\n  xhr.open(\"GET\", \"article.js\", true);\r\n  xhr.send();\r\n}\r\n\r\nfunction getTagList(resolve) {\r\n  var xhr = new XMLHttpRequest();\r\n  xhr.onreadystatechange = () => {\r\n    if (xhr.readyState == 4 && xhr.status == 200) return resolve(xhr.responseText);\r\n  };\r\n  xhr.open(\"GET\", \"tags.js\", true);\r\n  xhr.send();\r\n}\r\n\r\nfunction getCommentSection(resolve) {\r\n  var xhr = new XMLHttpRequest();\r\n  xhr.onreadystatechange = () => {\r\n    if (xhr.readyState == 4 && xhr.status == 200) return resolve(xhr.responseText);\r\n  };\r\n  xhr.open(\"GET\", \"comments.js\", true);\r\n  xhr.send();\r\n}\r\n\r\nfunction onDone(reject, context, map) {\r\n  let article = JSON.parse(map[0][0]);\r\n  let tags = JSON.parse(map[1][0]);\r\n  let comments = JSON.parse(map[2][0]);\r\n}\r\n\r\nfunction onCatch(err) {\r\n  throw new Error(err);\r\n}\r\n```\r\n<h4 id=\"sample-each-inner\">7. The <code>move-on</code>.<code>each</code> inner module</h4>\r\n<blockquote>\r\n  The <code>move-on</code> is used to get the files list asynchronously and then to copy all files asynchronously.<br/>\r\n  The inner <code>move-on</code>.<code>each</code> module is injected in the second chained function in order to report the success | failure message for each copied file.<br/>\r\n  Each copying failure occurrence calls <code>reject</code> callback and logs the warning.<br/>\r\n  When all files are (un)successfully copied, the <code>done</code> callback function is called, that indicates the end of files copying action.\r\n</blockquote>\r\n\r\n```javascript\r\nconst moveOn = require('move-on');\r\nconst fs = require('fs');\r\nconst path = require('path');\r\n\r\nconst list = [getContentsList, copyFiles];\r\nconst config = {\r\n  passContext: false,\r\n  context: {\r\n    copyFrom: './modules',\r\n    copyTo: './prod/modules'\r\n  }\r\n};\r\n\r\nmoveOn(list, config, onDone, onCatch);\r\n\r\n\r\nfunction getContentsList(resolve, reject) {\r\n  fs.readdir(this.copyFrom, (err, files) => {\r\n    if (err) return reject(`Could not get the access to the \"${this.copyFrom}\" path.`);\r\n    resolve(files); //the files object will be passed through the second function\r\n  });\r\n}\r\n\r\nfunction copyFiles(resolve, reject, files) {\r\n  const list = [];\r\n  //the moveOn.each will take the same user context to get the access to the paths\r\n  const config = { context: this, passContext: false };\r\n  //creating the list of chained functions for each files item:\r\n  for (let file of files) list.push((resolve, reject) => {\r\n    let fromPath = path.resolve(this.copyFrom, file);\r\n    let toPath = path.resolve(this.copyTo, file);\r\n    fs.copyFile(fromPath, toPath, (err) => {\r\n      //the reject call does not abort the module execution in moveOn.each method\r\n      if (err) return reject(`The file \"${file}\" could not be copied.`);\r\n      resolve(file); //the file path is added to the [Resolved] map, accessible in the final done callback function\r\n    });\r\n  });\r\n  //the inner moveOn.each module - as the done callback - calls the resolve callback of the second copyFiles function with [Resolved] map argument\r\n  moveOn.each(list, config, (reject, map) => resolve(map), (err) => console.warn(err));\r\n}\r\n\r\n\r\nfunction onDone(reject, map) {\r\n  //the [Resolved] map contains the collection of all passed files paths\r\n  //the missing property contains the indeces of all moveOn.each chained functions that have been rejected\r\n  let message = !map.missing.length ? 'All files have been successfully moved.' : 'The files have been moved with some errors.';\r\n  console.log(message);\r\n}\r\n\r\nfunction onCatch(err) {\r\n  throw new Error(err);\r\n}\r\n```\r\n<h4 id=\"sample-first\">8.","maintainers":[{"name":"devrafalko","email":"dev.rafalko@gmail.com"}],"time":{"modified":"2022-06-20T10:26:31.294Z","created":"2017-09-05T03:10:00.951Z","1.0.0":"2017-09-05T03:10:00.951Z","1.1.0":"2018-01-24T07:19:43.758Z","1.1.1":"2018-01-29T09:13:22.225Z","1.1.2":"2018-06-18T09:12:29.608Z","2.1.0":"2018-07-19T12:08:32.653Z","2.1.1":"2018-07-19T13:25:51.516Z","2.1.2":"2018-07-19T13:32:59.122Z","2.1.3":"2018-07-24T07:55:15.248Z","2.1.4":"2018-07-24T08:18:50.611Z","2.1.5":"2018-07-24T08:32:38.825Z","2.1.6":"2018-07-24T10:56:46.366Z","2.1.7":"2019-01-13T20:28:45.012Z","2.1.8":"2020-08-18T09:28:48.427Z","2.1.9":"2020-09-05T18:24:13.024Z"},"homepage":"https://github.com/devrafalko/move-on#readme","keywords":["promise","race","all","timeout","function","chain","queue","this","resolve","reject","catch","synchronous","asynchronous","sync","async"],"repository":{"type":"git","url":"git+https://github.com/devrafalko/move-on.git"},"author":{"name":"Paweł Rafałko"},"bugs":{"url":"https://github.com/devrafalko/move-on/issues"},"license":"MIT","readmeFilename":"readme.md"}