{"_id":"josk","_rev":"43-5fd7a6e78efee7fbd85cc6bfbb1c1423","name":"josk","dist-tags":{"next":"5.1.0-beta.0","latest":"6.3.0"},"versions":{"1.0.0":{"name":"josk","version":"1.0.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"cfd8881aac15b3185a2bc5df1e259861f7274707","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.0.tgz","integrity":"sha512-I8XGi8EKC2KkPP/3W722S5q55d19ggqph3fnxkYPRtLKUHEa40AuUvyPmCJWI3EE1q/9+zn5Quf4hTNMzmx3aA==","signatures":[{"sig":"MEUCIGedXyr9Wn3tDgNtaT4RuSqay4npNeAyzUErtg4/59BYAiEAq5KPZZLLDHw38fVDP9PPyrSXPqxmuTYpWzN7sBdC/gY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"cfd8881aac15b3185a2bc5df1e259861f7274707","gitHead":"ab152ea383baeae156af2f2bd844d35f9956c9fc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"2.15.11","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.6.2","dependencies":{"mongodb":"^2.2.16"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.0.tgz_1482957863438_0.23670263309031725","host":"packages-18-east.internal.npmjs.com"}},"1.0.1":{"name":"josk","version":"1.0.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"ea0122ce6495bd8e48097b0dd1f7118bc9399023","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.1.tgz","integrity":"sha512-VS0AugKUBJWAP1z9XEi24+Y+zqcRmFV+1Yr2gvqq4fV19zClmh8lbhpPSFlwtQq0KZuDahJpn4kTadns4Vyn0w==","signatures":[{"sig":"MEUCIQDU2qZNOVy9OiHIIX68B5vM8Ob52b3+Ai+Ar4fm0K1OsQIgeyvelrLPkrnQzICmYJoojdd1VYFpjk63gGsM762F2gI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ea0122ce6495bd8e48097b0dd1f7118bc9399023","gitHead":"47d3169fb0ed75a566531c78783e0aa2e0927214","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"2.15.11","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.7.3","dependencies":{"mongodb":"^2.2.24"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.1.tgz_1487765042466_0.9464600603096187","host":"packages-18-east.internal.npmjs.com"}},"1.0.2":{"name":"josk","version":"1.0.2","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.2","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"ef2a556a05b8cc57f40d5963422f271bc0fe1d27","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.2.tgz","integrity":"sha512-dxC1zHAMqazMJbDn9DEdbw0/ixmQQp7D7lvMVxbjLiqHYAREHZuY/HQV70MqTzgPwHmBzFwzBrictt8samyppw==","signatures":[{"sig":"MEYCIQDrra/mzfIb3yGwVIuSgY+rOOT6vvihhE4uhKXOtTO3MAIhAMS0OKm2g8mt3ip6okghR035rxf/bdwACaK3aVXzBupr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ef2a556a05b8cc57f40d5963422f271bc0fe1d27","gitHead":"a62d8048c3e336a8cd00d86569ea72d91b0b936a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"4.4.2","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.8.0","dependencies":{"mongodb":"^2.2.24"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.2.tgz_1489630277620_0.3262111973017454","host":"packages-12-west.internal.npmjs.com"}},"1.0.3":{"name":"josk","version":"1.0.3","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.3","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"cb62d84b4938c6728ac6a38be361359f4c7b23de","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.3.tgz","integrity":"sha512-QUxrtaA+qxil3kdu+BqGDySBuUMP92tiZT7nHvj/Ishurbg9ki3n18M7ElSjEeQwOx3LDhlVDiH0wsOxlHv1sw==","signatures":[{"sig":"MEQCIDABF6o5o1X2Slxg4TnGw9n8X73/guKp9hbzCZnn4v1+AiBSIbo1HReqGoPRFFQZWdgFV5cjaSu/XOJ9Cp5kyiZx1w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"cb62d84b4938c6728ac6a38be361359f4c7b23de","gitHead":"b8fcb2b156bcd6af252f431f0a1a936f97fc9638","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"4.5.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.8.1","dependencies":{"mongodb":"^2.2.26"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.3.tgz_1494972893159_0.25314081902615726","host":"packages-18-east.internal.npmjs.com"}},"1.0.4":{"name":"josk","version":"1.0.4","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.4","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"c0304eac80fc262ffbc12ecfbb709fad0859ce00","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.4.tgz","integrity":"sha512-MaYkXhPZJ8zgiV3JbPQvaQU4nF9FG7uEtQyYlmwpoMQ4q+hCQ6EC9dqHnY3/fVsOab0b6ZzsaBfseAPBOdoCdg==","signatures":[{"sig":"MEYCIQC9CA5pXgL4swdQVhd58OaofGfEHS34cqAqdKunXMHY9wIhAI0hLGcJIABqe+iUN3i31Fj9C5xuMLzbm0t/VSIkSmaJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"a18f58f052c7f00f6f294831ce34e9bdb2eeabb8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"5.0.3","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.8.3","dependencies":{"mongodb":"^2.2.30"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.4.tgz_1500339326118_0.2899220499675721","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"josk","version":"1.0.5","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.0.5","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"f2a4da93974da671ff0e64e7ac9f1a30ec12ea12","tarball":"https://registry.npmjs.org/josk/-/josk-1.0.5.tgz","integrity":"sha512-DnCa5NaZALr0zOutanKGCStVQIzpVtQoxYxjXa6jBo1rFsiZuG08gpeBCEfPmHhRqAomgniQqN2pll6TgkPdxg==","signatures":[{"sig":"MEUCIQDPbg71qjA+WCDHHDAybhmLZ4Qy6jGxSnJ0UdHu4ZLN6gIgeOz44FnFfxr9dTvx2w1U4Olk2zbE+2MoJRe7cOM3Y34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f2a4da93974da671ff0e64e7ac9f1a30ec12ea12","gitHead":"a18f58f052c7f00f6f294831ce34e9bdb2eeabb8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"4.6.1","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.8.4","dependencies":{"mongodb":"^2.2.31"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.0.5.tgz_1503034628613_0.9349082233384252","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"josk","version":"1.1.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@1.1.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"0230eae22b7f4e4346e2f276310ad1331ac0974e","tarball":"https://registry.npmjs.org/josk/-/josk-1.1.0.tgz","integrity":"sha512-/PPqm5cRx/h4Dpn7XrynJmjaSRmArkPKZMXrhjWUTx/mymS2sryIwVgU32SbIigZH1Jbgr2JHW+evz502zj4hQ==","signatures":[{"sig":"MEQCIFOEGAJBqQT+vXyLpF0fbdIIzJ0MOfwbon/+82hxNXm3AiBBkiTIgyPO5NZXcXYgf2sq2EFKyW8fqkjHW2alIi45Yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"0230eae22b7f4e4346e2f276310ad1331ac0974e","gitHead":"46d0e7c9d25f49a8d7b51008bd5cb48dbdabc346","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"4.6.1","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"4.8.4","dependencies":{"mongodb":"^2.2.33"},"_npmOperationalInternal":{"tmp":"tmp/josk-1.1.0.tgz_1508128538181_0.3678795052692294","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"josk","version":"2.0.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"70594be8d931dc3174123da3f4f77a1cc1728104","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.0.tgz","integrity":"sha512-WYgOwD216bUVJ/oW1ZesdWYonLhbRNWQuiHQUeTx79a246f+Ndt0qNfYHKprsE6dOfza36LYIKKU7uXSwLi+2Q==","signatures":[{"sig":"MEQCIHn7EyaIUxXK0AJA2QI06GieBWgkOkLzqnaaUJ0dF/f/AiAAujoyYEeMVfKP5HOjZb6KDtJJ/Vi/vC501MHr0xxL8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","engines":{"node":">=8.9.0"},"gitHead":"3ca32b7f7454be46f35c4d07f01658c07d542448","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"5.6.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.9.3","dependencies":{"mongodb":"^3.0.1"},"devDependencies":{"chai":"^4.1.2","josk":"file://./","mocha":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/josk-2.0.0.tgz_1516816026667_0.6527570656035095","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"josk","version":"2.0.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk#readme","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"3bbc2de9bd1c06b642226f6ab8f5b11794a0575e","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.1.tgz","integrity":"sha512-Wdzs6z9PbhkC8kTl5FzCTxQk9WVbPGSNHGFoJKyFMU+oKVWspCdRC5O1zLIvWMd/pChnb+hOYwCfDLkNA4ooZg==","signatures":[{"sig":"MEYCIQDgKVBmKQaJ5HVAupTCw/oqapd1A6Bg5bTpdhcqNfo7gwIhAKQ/q9ISqbgP6KmZYYxnB+IBkdWaKyYKBXOv1sKJtDdu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","engines":{"node":">=8.9.0"},"gitHead":"6c071ed267242ff69cae42500fd091a03b39de15","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"5.6.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.9.3","devDependencies":{"chai":"^4.1.2","josk":"file://./","mocha":"^5.0.0","mongodb":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/josk-2.0.1.tgz_1516817476677_0.9221038592513651","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"josk","version":"2.0.2","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.2","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"6aaa2edf934f13be56878df567f82384c9147849","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.2.tgz","fileCount":11,"integrity":"sha512-MFzPR+5Hr8+Rg+tUIch6PgN9HuI/WRP25kIak83aJeKCkMJvcNS7832jL4k0IuGHMxQ6IZK7w76E0Q9huhPKQQ==","signatures":[{"sig":"MEYCIQD3gU11nEm6IMx/u+IL6QqHS92gXF/CXBNNtZuC/cmlNAIhAIditVvZnuAHmf2v9zXj6IKPLcI02Dyzo+fRE5ar14AS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqoSlCRA9TVsSAnZWagAAVaUP/iKem5gqJQh52kqC8dqz\nps8nc0/zJrXLh3zF1T1MWPJj6Zq4riCtqjy8tcr0VK4MTUPtkxxQs2dFjX1z\nsh2YoNplE/EzMcfdvx23JNTpFRqh71oGL0lk+nY8/wYpVI9gHHwsx3GxVe2T\nooYBcsSx+1t4Skh+0BU+rD0eCovRAT8mupQzC9+IMun+8RPGXEiRl7uHZ38i\napAcdWGl9x1xerVPILQ7ylmPgarJz2sRQkGS0gDROOdpoMcig9Fcm/PiZvXA\ns11DS1w3JkZypP2CXVemfEXp6X0BR8cnhJ0OjCnY7shFLZkmk0LgYpD2l1+Q\n38AeJbcpNM0HNYBBGfvy6/X3DwMoiREf1LXZ615+Bp3zkQhXYQE/EgVFo5b2\n3HDpmf2GQKTsxNi/+FtDrjUksL0bCcRqrjk3shJFJQYZs4Z0j615Inkaxr6W\nAWVYS1nZRis9J/QIxOnKiXWgPw2k80Vfj14GAHCljxpFUmhhrYcL5SCJbfN/\nelmUFzkYG6mI+O9iIBWpr7wcp9mlKxhA6seDqv9pfPDe/LNU0sLsxgXQOH7i\nprhZ9kOV4denPwalh25Hvldd9efVhFbvNbivY8/0y1+bdjp++wD1F1Fubrot\nScxGo2F+ajyn2guh+rL8msdRP3Uc8bSjERwjz1+tETP4xKaKWyaa3Q5FjpwZ\nvaCx\r\n=oe1n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"22cd83692bf12e6796abc97766d7f99d635e3ceb","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"5.6.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.11.4","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","josk":"file://./","mocha":"^5.2.0","mongodb":"^3.1.6","pathval":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.0.2_1537901733199_0.7253296556020354","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"josk","version":"2.0.3","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.3","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"1ce7bd9ecb8236a65781e44ae0712ed623c2d412","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.3.tgz","fileCount":12,"integrity":"sha512-9HBr5oEvoMUEHLu9jhnkd8Se+Gxasqgd4AtSsN3eL6+FHiHFWrOKgO7eI9W5AGc6RJVWPRCCq4nW5h51ZWI4sQ==","signatures":[{"sig":"MEYCIQC5oA3d4tCLjBAONku6zpJuIuXzO/GJ7fzjd03QraHF+AIhANNnj43f5SoB23RbqvizmZsadrfaqC2Z7sTSfpFg9iCO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclUZnCRA9TVsSAnZWagAAQEgP/25csXKKv6qSgd62qlc+\nNPD8psoJCVR54I1asFSGo/4tQXjioYh60zoSXccCxZv5TZa3JFGxMFdx86IZ\ntQuIoYFlfQym3YALxuOIIiDRg7Os2HypMZ7RZ4jGbRorsYkMSR8MsWFn4+dx\ngt5MMZpLdMMzPHS3tgTfFdkZm3a2Q4LaDdoYo7D6Di5DeYb4XUCaoV7Vo79C\nJCTV4wHhCyE+evyKjtTrRinx2LdvlaY3KnkeRAUl1Q1b27kH/bF1XqXEjgkA\nZyebsEgmRDwzdm1mAtJWj0R8ajcL936VU51nHjqH4+1TMQi5kuahcB5H0ebx\nbnofh3t/B4/sP83mFuhvmx4Q4xk71ajnC0tTzhiXmsz9RbWVMBKWwGkt8SWX\n41JQAwf9krmqS/PcpzWTlmWEfUnzA7tk/H8JzuX5ZpdU1fgk+oNAdPpE/7D2\nZ2KE55JgypK3sytcThduEp9vWH/OxARetTY7iC2nTYnWwlsjrfwJOYg86ljU\nXUFiVJsHhpl5ZlC5Xp2XdenlNztpnXRe98PqerpFFLlzrz691izIBi1eSz81\nJftkHeQsmffjL4cjwW3/3MZqZ1Ppzu416B5u6g4T047eL2TtkcXadCNSIrh7\nv0WtiZwALY6k2vSSPLz/GLN9nXK0ouh1eM721PAlQ3//SINLiYfVr6+NPWbE\n55Xg\r\n=ttjO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"bb6d20235f880dfb4cf048af29d712a92da02a31","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.9.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.11.4","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.0.2","mongodb":"^3.1.6"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.0.3_1553286758221_0.14982852872119068","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"josk","version":"2.0.4","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.4","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"4515f699015e75dcd90b0426379f9a7689dc7581","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.4.tgz","fileCount":9,"integrity":"sha512-h3OTx46glFaKsEY9QpfMUEIHCQhMGIOj0yYyBLfRCfXQwryBRuDA635Xl4lN2MHpFHO+0GlQVuGjChGhGMVeyw==","signatures":[{"sig":"MEQCICfg4HZlEid9tU38261BWGjq+QEsKIna/J/oRSOeKi/HAiB0/imKJ26+YBtJrvYb+bZJAVovxntTJJ+DAd10J0HP1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclVZNCRA9TVsSAnZWagAASwwQAKH2cntoh+PiCW8EKpan\nv9QgtymKvbjWQFU62qVwMaYbw+zNnyizk04f4Hz07YeQw2VUtYBHTGVlXnXz\n/mxo9AWeB8AmMGiICEG7amJkjUoQpytSa+QtLRrNheMGsnboSPyxqpEATV1j\nH1OFhRFyPsXAFngFrQ16LciekglD0+8K5IhiNgURGeSWcyCwmFi8UEbVBdoG\n+7pPhljcf3pGBpt1L0iCa8fUp9ZqYWu3NYrImn/tM83UFWX/Ict90CxkOoqt\nqA+YKTm5ZFwXOAfIJzI+FbJFQ3bRJXSLcBae2+n7+J6WUhVh1X/6wx9yYgq9\nssEESX8gdu+1jk9+6Et485icD2uRA/ifWDRDIaRIwPXVlNT0LXyQeu9tTul1\ngTI7qIkdYiR4/PvFk43LKM+u1HvsAAngXqVjvd9GKGbiweRUT4GBxmGIwQgp\nVhdFcgDuFoSN9O7FjfNvZp+3fwBF5Rhzk1NxkYIJ2pnCSrAGNJJu7gP8SS0q\nCY///HAlYSJklcuZfG0AveQaDzrw6tqXDwtQ1G+I4l+ZZOynJkR1Q3SDzvjN\nDoz1petsIOKo7CkpQWtvTgINNg3uA1Nz+UCMiTst2oS6dmgZ3VrtSVFD8eUy\nd6xVM4PQRj5oEAP7rWiAkhrLJ90OW9UdYQeQ6BE/uUbWgnBoeB6W4KT63ExP\nJnwu\r\n=w0Eh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"dbd5791db7e7332ec71f015a952dce1ada8c5832","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.9.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.11.4","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.0.2","mongodb":"^3.1.6"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.0.4_1553290828468_0.8217968769481634","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"josk","version":"2.0.5","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.0.5","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"14c501ce85e69ed722e55db1b20917bfb60eee82","tarball":"https://registry.npmjs.org/josk/-/josk-2.0.5.tgz","fileCount":10,"integrity":"sha512-a2ZlBKBDj7Z7M0k/0Dv8ce/grtgVzqKet8QEbr0i2C1p3wdFIuonTSJJQKYEWfaR75VcsvcdOF1spW0RCVwbXw==","signatures":[{"sig":"MEQCIE1wjX5tmBY1bLdeJAiThlPGCAJLozt3oWniwHbVHYIdAiBgKgjiFJqJNM9dPMziOAPx/PXCWPvANV3dnuTrXnplHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclYHlCRA9TVsSAnZWagAAhIwQAIbujkBickAIHKnORPNV\nqYaIux/qhkabL6m4qZMfRizDiA1IQwMH2OQkb5OOmDg/k86z+ZWIJJLcg0SH\nICokLKED5yqnYgGpBSvH9OG96MuYTqYAUCBDMcJuH3qm3Vh/9t7t6EIxa6Xz\numZmZWndHDABkq4XDRWD4y+pEBzGZBMBBQ1cAxjQzhOGKTHrTJUVQWzYWSRw\ns76PnYW5OeuQifRLuYIiqwTm+JHCyr8u0UEiRqcRcPv9XvJCOH4ntjG4nWbM\nlOtIrZUYzB+ReemG4ZeDsAtnY4CvTkEfpKPJiU+yvhGZiq9SuHb+DC/ht0Jl\nQBFvvb0V7wvKOmIieV1V2yqSzcS2xOtCjCymcMJNtHcTsf/XNey73iMWdOKB\npfpwRgdYrFVKdUk+/kR5RmEdrxzKWIyWs6iMu/Omq5defD2sUUNx5xh5vD5X\nImFkU6qDlSFhb8ZO3FNcZc0KkI/zS8Vr6BGlmcG6mQKo0eZWbFK83aatgxMp\nvYipa6fV1CUtgfQwjRYTHDCkuc+VTHTTFdxBo804fXKFFhZrrozdM0PHPyGP\n705SllZEnWH2nHPaiHOL/1Ylp1m5mmC5F6yG+KbTha99eLk/KFGHU3BA0ZXn\niG+KHQXZEklk35AIBkEuuX+hrW1gxToJFhDtwWwvvYh4InkcDYeYMka0k3BP\nOBCB\r\n=tf4B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"29b0c18cdcf8bdcb2fe1cfe88d786188f6c6ef32","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.9.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.11.4","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.0.2","mongodb":"^3.1.6"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.0.5_1553301988593_0.8303893156054034","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"josk","version":"2.1.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.1.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"2846bdc573a999be6d0e4a7f7e787dd5d730cd64","tarball":"https://registry.npmjs.org/josk/-/josk-2.1.0.tgz","fileCount":10,"integrity":"sha512-1/nUFM/NG2ac60oi5PmTpRGDtp591vg2+aJgS/oSyWBYiaXybsffYXYVxDWgGdyFFenARaqPEnSS+UHYnDvQLA==","signatures":[{"sig":"MEUCIQCQ+uPYUkvxHwhP7QfqRdHU8wQAP3cVAWXxG8g4Lx/kmQIgPyGpC76hURm3tqUkA/8DIiGC1PVhl6MWmNxhqwr6TOU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBRPXCRA9TVsSAnZWagAAxbgQAKHUdwQYmny4d10L3T0a\nBMvmLlVWkInmF2hBYCoaw5VG/u6Nz6dyBhdjUscEtnmuDa6uYcObkfjQml44\nJ3IZNTnbVhaRE6mUvaMWRLgghhEjQBEKShde4iloTuCUAtgN/u4v0xogb0yS\nMLZZX6ueDLknT7LOWnxAq7NDSsPZXnefDL73uiBgVPuUka24PSOhH7lyOgXz\n8trO30e4t6ewni7GE99fGfCWEgu6JJiMFSdJ24yeQIh4PP6eme5xCeKU87WH\nddAtDRYy5ycW1cgn0Kzrwnw6GLBlcAtVCaIWzKDWwE7H9J8jaOoJkV5xSbxs\nzHUNaROun+v8pyZB2YdcyHlvvzeXd2H9j6+kBIWqrobWw1Yt/HNHFlfmYihM\nV61sWEsiSskxASMUoZ/zxfq7Yh81vY00dI/WG3Bp1IKPSd5t5UMKMl6O0WDT\n0H/zegPuY24RG7xwSrIzOYZyA76mzDnZYJZA4vRbnLWYGZiPM87JTGYRhDnq\nueKOFZQK92T16T+Z3+UnoCuACT8AFddeJaYijaaxCISiWLatJPZ29Ld/BQPP\nCOxxsz3G6GZnulzmVxSY+QjYJsLqdTpi+YN8mL+8GAlhFtXYAZaaqH04HB4h\n6EFYEJoeXaag11PcswcK5fmKX2Qh9ZropkRgdLq/QET6QuvFtRZvENosuWSL\nsdUD\r\n=QvGm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"2c278b5951100ec251b85f17b7b1a7d15217e7c2","scripts":{"test":"mocha"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.9.1-next.0","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.15.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.2","chai":"^4.2.0","mocha":"^6.0.2","mongodb":"^3.2.7","pathval":"^1.1.0","bson-ext":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.1.0_1560613846341_0.6290398721479351","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"josk","version":"2.1.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.1.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"78442a432ce9ab6e4f66ac4e14c84e5644853c71","tarball":"https://registry.npmjs.org/josk/-/josk-2.1.1.tgz","fileCount":11,"integrity":"sha512-OoEh/7FCkK8iRWyZbGcTwFYlgo1FE8/yO/57TeBMm152NllL5vH2sBHN5wO5okLmvXOozDla46DcKapEtaZ4Cg==","signatures":[{"sig":"MEUCIQDTxd4Pzy+Ueb0oQNC0wQwjD4dPfPVJVlxowHH4T5U04AIgUwQHl7Txqxl0B+Qfsu/A3RaAa0eLBk0hhXEVktObL1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoQ5bCRA9TVsSAnZWagAA2cAP/1NAP8ypyxp0KCFsx+HO\nSWxhN+MGo4EZwqo7DDw3ABqdgqhp+RFSrFwjd4V7IS6XbntiVV+LTTYlO0aA\ncPVR6+Dur/ed8pv0q6uWr6bDSTem36dQ4Zhgq59ldpcyqg8hYaqgUOUHzbor\nQkwab1a9zQFD8tgCFu56WkFhtWmfMbtB0q6853nNOQw45OrJoManU+JhUOu5\nYq8O8vvbV6JhGQIknjJkGmtF5B7AQMlny9he8aKp+l+/8nFF2XIlOHmbUmYx\nO12bAMzyb/3xI0V/1zzkJMUzfGZsoQh1tuwWPitM/Uhxc9xpxECeV54EUXRh\nqTkC7RjveESuWn+luzLQwuTUPjyXgYGe8I2qpbkNwTEIPEZvilYJHiZX2a16\nFz8c/8JBcysfiIInbvzTiIxubigFl4f0OBMp/0/jLfWRgEmyPQPZW4r75BJ+\nYLoT2iBCZxH4LxKDF8TQ6DlRASzk3V+uYWrjMyR3YzQSSmNtJbLbeVei51Bj\nzcOm9lG0SdyOHHgFCtSF4f3nPiNVbKMzsQ0vvpUqadHw7BnTRQmEl7C/bGvR\n92d9lzwbhmIv79IWQXMmcqUePXHxPyJadbPF7IadrCVCS0Y4FYHpDy5rVqUk\nwIi3BMsCcjgDb3DbxhFOaGcwn+KBhVzJp3q3IrV2oxn+VjIfMxFc1zfaZ+PK\njk3a\r\n=6LTd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"6caf3c4efb929c57caf7e67dfe6a8571adae6b7f","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.11.3","description":"Task and jobs runner. With support of multiple clusters and servers setup","directories":{},"_nodeVersion":"8.15.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.2","chai":"^4.2.0","mocha":"^6.2.1","mongodb":"^3.2.7","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.1.1_1570836059091_0.5465786593111721","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"josk","version":"2.2.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"bcfc53d9f7d55ab2fed67885fad5529fdf3a2030","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.0.tgz","fileCount":7,"integrity":"sha512-jz1DPsq5C1OAhChNGWccUJK+Zvl346d1Vv6C3rMRGIRDthQTSwfi1RzXE7bOKSirQTazEn5B2aAWjLaH2Y40/w==","signatures":[{"sig":"MEUCIGnNlutPIXvKyZgRQ+l7+sLAUktNx17K6lm9iSTTxEd2AiEA/e3/UL7HUeWIckQsPteY6Mkt0H5yOUO/xJYSOILs/OM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpHn5CRA9TVsSAnZWagAA0bUP/i44FwNd+M4ijJ38LC42\nlYsDTOAOTwlh2VOeXKcRAUGjZXAE1vMPFopgqxxc/EwmYvpvHhBS5LXCuNtA\npoDNj0ck41HKYbg8pUl6ySarNUneNfdiigZPCIvzvnN0Y8jEAHXjx1/IaAKt\nLJj3xIDoDivrhQZb8ew9tvF0F/3TLTuCO4i1KAvJrDyTspoP+PmmBGNoG25i\ntTqv9gf+D6l+/WyPaz/Q1nARgNFJN4ITfwwisqUw24k0gBqAIXSIR6bvc5oP\noihlfWSZavlh5S7DNV3DduCJYP2NRazwwyWyzvKMNkOfpgO/evejchKaLwPW\nYcLzsnbKJrSrq/O6nHaT0r+5x+RX027y0P+gKObvMtHY/POkd9npZpVOLAAw\nudhIe5KSyjrrg6Sz2sNd9Apu18e1ksZbiPnVol6Ax3n/h+K/SU/zwxOCYIJe\nB4uFHOwYxNOxSXDMpaP3GJt0nGSJ2D5JKxniWO1NUdYQp3VUDvj5roa9n4rf\nilz9dbsNhSC8348mu0oTUabPuxT9XjAnuzYP0gKaRnSnkBaTxGXxXtsfDJxY\nZpZfeES686NvkArzhOd/QlbDclGdQAaAxvpK6xdHc8BLJZPLBJEdV7CMGeKf\n9SM/qhEBk2atFoBnAjyhRrw+CdVk7OKU05tMUIce0ke7o4iJ22fX9RFsc1lV\nFjsb\r\n=uu7r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"0c0f694c14d46044db3da7bb844295a30118626d","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.11.3","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"8.15.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.2","chai":"^4.2.0","mocha":"^6.2.1","mongodb":"^3.3.2","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.0_1571060216347_0.09409409642049638","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"josk","version":"2.2.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"e6ce14b0f494b44209cf744beb6923fd03eec836","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.1.tgz","fileCount":7,"integrity":"sha512-gL235uCFVZNh5S8lNx60THUp0PeKokZA2zckBLXeuNFofjstjKFtvMyatwWF3WibnL1kbOAfWoDe21JBMZF8yQ==","signatures":[{"sig":"MEQCIEmdLO9+tHN40dyp2gcLcMLKOJ6JT/83xy3ubwByciXiAiAocTFcmNqWFGWjQSwIgNU6KsWMaRO5bhRNRFZh7qPNSg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5adyCRA9TVsSAnZWagAAJe4P/39wvTDzkdIOTmaVxNHt\n00j/YIcnDzUDJx52/erANNWiG0k1o2eu7irJXpVr8spUINlgslVyeNjx3AGu\nVlbQSquT4c15pJQGvlY9YMkgyJ8JUzAUDxJBmvi5IWH+MVMKWp/Yz7MzyzCT\nSaqLsa+LmvZcjpdGAzj1u6ey6Gbk3PXML0GfzxH92uszbewB1Sln/nbLr8hU\ntn1ZIV6KQrqoXFpf0lkoKtCnuzz/jlmwC9mGtF2iNO7z1Ign9+85jLY5L9DP\njciPH01FtHEI2EN9p8HnKBTdsChWO6UmetyrG0HThr+HNAeAxM5BoObgHfsg\nNskyonVrWdP/GmEglaCHhwBC9xi9eP02ArKMMlngDC7c88FlmaVeGjnMgkCj\nX3nKX62Z7Cp68gA4caeBIMLjoNmUaJ/LBT+yUKWRR6ZuSu2KzWNsDYJmPgc4\ntAOMFv86lrKn0EXLSUjy0GtwokeGPnB0GsvMi4+d+ysjihIBlAkDGxnXRPtc\n8BT6TQEsoeJDJzepWFfyB2X/l8zl1a8vTRi7/kjfnig6VR6zo9dUdWFjPCFJ\nPWxdreDUavZSHVSypsf8j/zzVY4NwoMhtuL1xzDlhwC0LlIF1hXsWIc6y4qu\naJjH13Ne5FMgjBYorZdh8rGIXB1yDL0CIJZTPnFc/yk2T3IOw/6CPzIiSnqV\n+a3o\r\n=KwbU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"c363ebe97313fbe46642e4ec5f34f8e03b996a0a","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.13.1","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"8.16.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.2","chai":"^4.2.0","mocha":"^6.2.2","mongodb":"^3.3.2","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.1_1575331697898_0.9952166043813195","host":"s3://npm-registry-packages"}},"2.2.2":{"name":"josk","version":"2.2.2","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.2","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"b7dc4f650a5a3e33d854a71e77e23a428700f433","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.2.tgz","fileCount":6,"integrity":"sha512-Gb84081XH9VHeYIsJxGzc9lO0GUEAaQo5uvtTowclDQDILbz6NFOmYylGKZGr0zlNanYu5xVnx5AVmupKPq3IA==","signatures":[{"sig":"MEQCIHI0TWr/xgBuUeg4ZQBrZO7Me3hUJN4hWaKOTtnzKy80AiALWHYKDstvTG0+0qRNoDpDnkzgPOQlpoOqXFR7AzdciA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5ahACRA9TVsSAnZWagAAEWMP/jhAJ/AZqsZPz7Zn4Zem\nPxMPf3sKEdsSqFz/B19C+FleAPU/mnhbiZbqQlFIZsPBjYkhHIZFcRthSumj\nIw3szrcccbPrYkacuFOeJknTtytRm9KZPLX82Q2GMkQQp+hV6uchoe+ECQmH\nyYAOq5yuq0YLrYspbuOTvM+3W55h6CgDPPIExJaUH4yDVqc/01kZF7wtV001\ne9Jon3ogwYbNkvl3xT4Mc3Qnje9sFNeMNfcWSdGES/g90UCWynyzsU9ajZQy\ncWIvXuIJe9V6DG+KhYyyaok9GLzmyu5DifOovdLl7Rj1flFs4czNtYcWHL59\nLv3u+lrK7ZPdd92wm+pfEUjuP12B9mkvOPSHnVqQsvH5/+b3Sk/iPo4MDrtF\ncd43IQ1kctOWjtwCLBPFCVoKHZTzrRKME6EsAgKQXuABucXkoMyUuMuMwV4k\ng6TuDquaVtGRXBNJvIB2XOGvqS39HFWrUc5oaHgZQ+EUKXLbfhgkztf+SuYJ\nxQjF+IWp/Zb/x7i0sMdldfmj+RHVbCw5sop3A0eE7xirtPlTyWxCCrO9Gl8S\nlRYAnQT909dvhXwdB23yKbEhAH74ZZJ3m8vUiMcp6E3nDoT7Sl5nDJi/I4xR\nY+2aBIwC6xOk/ZbiNd32y2jvbxJ+9uMAMBScrq+mna/KAHOxvGz1UfEfiN+2\nAVbF\r\n=r+7y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"c363ebe97313fbe46642e4ec5f34f8e03b996a0a","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.13.1","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"8.16.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.2","chai":"^4.2.0","mocha":"^6.2.2","mongodb":"^3.3.2","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.2_1575331903856_0.27414203187314956","host":"s3://npm-registry-packages"}},"2.2.3":{"name":"josk","version":"2.2.3","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.3","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"942561d9f3dee76a05f53b4096fbd79315de91f3","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.3.tgz","fileCount":6,"integrity":"sha512-UG+OQ9Fi7nXFg3OucWD25BhSfvzQhw4kNyNrWln15FNeQ1u4KQfIVOJUgoVkBS2VbIjbv51IFjN7Jw7d6hMy5g==","signatures":[{"sig":"MEUCIFMoJwyKI5Gvhz9SVjQk4HkYU0cP0RlBCXkIm4lJ5bZ2AiEA/cnHvmTE82DSae8daCpWkY88kqh4Lxhopcgcgq+wk7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXGQjCRA9TVsSAnZWagAATCcP/iJJRlSM07fUQ3dszYYc\nanqpMNdMkfPbtfXvaIL2aoaNWyxUICdWD1ogmOT35mf18NNgwZMRlYeF2ZUh\nEKm5sto6I2B+73m+XniZl/O4CZ9nwXGBVHglCPYpMzQK3K9Djfa8LinaCx9B\nLQGSS8Xod0AIxtdL8sdjt2IuMx1EEw5/XV13PYzU4YynDHbQh7PpgaZn5XtA\nHRNWHJZGaXX6etTDaQwUBvgkCZVTpKJIEbbbIRN8hs333Dy9F0rdBH3D/+Jz\ntdx0IB8EKT4yXAmiLlMqZiJYWFdi2nc0P1FXytKfB9/KId3Y86QsaOZkCX2y\niEQYDGevpFRS/OLCI+oZQPgDpFB8IznJ8niEXvRMuhbcMUFNW8dYTWN2JtIc\neEYgLRtRnU7GtcOAkl9brIY5ovAXRLw4p1mwXdPT1VZfxMjWRRayZLL7N/9o\nE0h6Vh0urNwpXqJRnYvVTP/XFBnOjrDrnqAkb41lISfLSeeBiCiCXRqc5qZ4\nOeJWdi4agANvUZmoPA7xGOSIDTrt9Ow1gsIFRZH9t/3W4tZ5NrSD1gJWMV9P\nAEOT0R8IhR3UYr4yE0d1iXPyBDAIaTBdNuRXhrMmBSmsLExrrKRXV5nBvxdy\nHequ3T1FhR+gcR4+CPYa7HPF4uUKbg6n8vzO0EEizUSf4z10xsB2bnoxkfhe\ntQaY\r\n=nsgb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"e2523802f309e0a0d761b28d04b3c53278293d52","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.14.0","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.3","chai":"^4.2.0","mocha":"^7.1.0","mongodb":"^3.5.4","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.3_1583113250837_0.48910983012081743","host":"s3://npm-registry-packages"}},"2.2.4":{"name":"josk","version":"2.2.4","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.4","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"0d81886fa43dccb767daad92a374eaa9905dbb9d","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.4.tgz","fileCount":6,"integrity":"sha512-EaIHg8JK2+gnJUNTSUuyTBjVVmKKA8GwAFzqjo3E9ilk5Cr3B9XnMgu7jnE2faweuwVpnX9HCUs/ico4wIZtSQ==","signatures":[{"sig":"MEUCIQCRQfpWsIvI7igxrouUkukcexM5Y3ADsmazKbLiRMnrVAIgBvEqElq/sTdnhetyGGbW7aj0O9CHpx8E4RYhJjtEXcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh6pCCRA9TVsSAnZWagAA8e0QAIJn2FSsyUuUMJJO5+w5\nWvP6tpxOmuQFx7+4C1XrJG6ifAgPRaIBrV/4523JIzyj7f/8FHClJ51Di/wL\nd0wyAFcQ3QmdDE7jQuJxTqy4HSBe86dKVkst/lY1Hpiva8jBfaY08ZBvenrZ\nmW0wtbcw+oQl5Xgdgw/0O2NtWjlUlD9SbfkgeHuHEfR1RqjeC3rDPVjmwo8f\ngwFRb1/9GeBI9RuXlcWQ2S/Pa/dipBskC06CB936loMdNoDr58mQrbmr6MYj\nSVEkygOVsCNEXheqBF++1IMSuu4Ioge0jWy6viBGQ74as1mH2UUrwDA7v2S8\ndPpTVvEj7BWgO2+b6ofC1LxefG8WHDHxW0EQVp66gkGpVTjTgWD6qGIl4EQY\nirrT9bGPS3gDzpPhJoSOQwJA3PBOF+fdDGZ0wRtLW++T0J3H+RtimT3ueKxI\nXBYAVfWv/IT+3JjT4NPDPzG8jAXSJv+8iUFLAN3SHdsy8nyvOok5HifOy1WP\nOZVIioPQGbdCvJpw1ZGzSfaM2bO2XxSybDFGlnJjZFO2gAHJkDYLf5x7Mg3O\ngH5P+kTRGcjZQvHPxI/+Sqe1sQqAF61j//AEojAdeEZ3NarWhV/qAgxsa0Oi\nDm8nhUrBeRVVM+TM8GpZdIsgplk58XFCgNrujiQkfW6zu/i0IP/mCMR/9MnC\nxnH8\r\n=0TUW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"57fa3030c2fb78dceb1aae9c63c088458684d5cd","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.14.4","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.4","chai":"^4.2.0","mocha":"^7.1.1","mongodb":"^3.5.5","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.4_1585949249943_0.7874511262498443","host":"s3://npm-registry-packages"}},"2.2.5":{"name":"josk","version":"2.2.5","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.2.5","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"274e655ebfe7f0a71342fd5ba8d0608ab1cbe826","tarball":"https://registry.npmjs.org/josk/-/josk-2.2.5.tgz","fileCount":6,"integrity":"sha512-3WbVdCSd8R8NsYvoMisdI5AAZiLKgppW3lx9J5hDA+mfm9x8w8hY2bi8ngpZUCKPh1tS+msQwVAcHoSCxCwkNw==","signatures":[{"sig":"MEUCIGFK9c8T2PSdRbaC691lf7pYfHOFmcDUck6YgFROrJbNAiEA8YyXhi9jInEaaLVT3jdoiMkUlyGaOprPzaJ7nh7pUtA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerzAnCRA9TVsSAnZWagAAdZ8P/0cI2SZPznG49FSwPrwg\npSiXVMc/ZizF/WdV3tq9U6eDiuFj4gZueqTcVkfGo3Cd18XPim5DPWQ1elwD\ngLJKyPZglfv0QzgwjToTFe4MDtSnz9Ph3oZ80PqsiZkD+DJPvWidVmuufnlK\nLCZarRRnBWwAOaTcWJRxoane+2RDq9rl+/QdbQOGXVFdAZxFZRNtzKRWoTaU\nc9+7ZazMdF9obscUSAqbw5e8dxMcMgMz6DHFo5WPI0Jio+AZkU77tbS8vh/Q\nhmvuNXig39mrV9rPV/CXty9yPNMxFT4eK7/zndN32OS/wK1DOJqQokXTcbP/\nRmRm6VsavKGZapOFWG4b+MEdBlBObnL9qxOOhSPloOUi5cvl5CvPpDOt9ARK\nhcXG9wjMLst0LDyATTN5FTjXk51oVfWrZH+nXv1jTDa5mowYEt2d9p4HGwLB\nHYJn4FkueZAK9MLNc8kb1WldLfVPnfdPzWEQ3QL6PqulbBAqDNv/8ibMAJod\npBO7JZqFreFU64Qo8KygjiDizVmtLdtwpx9/m0SK9VnWrMIj8FzpNp/PSdBv\nGBW8+fLqBjo5xiQVLXMVJnNbPQmBOSW2mWmPkezQmkpAhsR0RvpZyFYfpDeJ\nQwNBJwGwxoCs6QEw3O/JpvoY4meqMDisQSfuk+ldplDUtgkVCkKeBXlPJHX/\nixOZ\r\n=U8zZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"17319ada9973f0d0765081a1e9cd1e664b5612e2","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.14.4","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"12.16.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.0.4","chai":"^4.2.0","mocha":"^7.1.2","mongodb":"^3.5.7","pathval":"^1.1.0","bson-ext":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.2.5_1588539431392_0.5207089498394695","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"josk","version":"2.3.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.3.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/VeliovGroup/josk","bugs":{"url":"https://github.com/VeliovGroup/josk/issues"},"dist":{"shasum":"f1c4bc8a89e874a2eebf4e04c38760765be73051","tarball":"https://registry.npmjs.org/josk/-/josk-2.3.0.tgz","fileCount":6,"integrity":"sha512-6d9snzk9ETrUEtH8IxlmSIsFSrq+cK/dd9beCOHGGlCf4xuTfDnXkEM6IWkwm44CK45TgNUQCRRp5paYDmenGg==","signatures":[{"sig":"MEQCIAagkG6gzbki07gkINbAgrAUG/rKlVKhUSM9/VX2yuOiAiAsOqtOgRDi4r9Z8iupFd5wiVIP8Hd/4WdxAjQ94EyKzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc2W+CRA9TVsSAnZWagAAbH4P/jcodI5Kf2Xnak5vE3e9\nQOpZo4qCl/9NHL7IObSm492q8lkPAw2RyOFlb+RUuyShsgnOIhyErh5pv1wk\ny6W5q0IRYlcmcQbApQlQbszPP6aDG99LbeWw5GlgyQyUzqT8M7S6Kfsw1IBS\nhNZELAqlXgGB0cllIUlA/mxT5bKmbHGnVoH6wGE2CJjBwm40xYmFtZr3XF3G\nR144a4NWU1tNEqP1XZ/G05I8YLxMpKAE0rW5TSCv3KWAVbFSS3R3NcjyPE9A\n42eNDVNiJMFFqPSRTpJwRYYFDj6Se601ZpYYnsZGlYAEAe4Y2Yn+amZgoTs4\ng3KlZcyxX7ZGxjMICNvD2KcZoTq5f5lAnRjLHhc6l95uSEhOiQHtt81ulxaT\nq2wE6WkAKyQkh0SAzAB2hQNur0w9cHzdxwAmSEMk3JIA/fNbQUDVNaN30hMz\nsJcrOgvfUCtHCRQVvYpRUpcnHbobHkp74dm5eu2esQEeHr6FMg++nF2iKdql\n75bZNO2gM1d1IpthFy2knLAmWwsLPVmaxCbhANOvR5EuxvZDAowNnG32wzvZ\nncVcfOpuYTh+SAni1e1fo8KJc2HdllQVHYBIl2byB/TlgFsGezoP6MXM6I0r\nxbvPTLGtK07Us1sz+k+xwpk97uG7q0pQAGmcj62zIQ/SDiGEY5/x7Yo2gZzH\nIQ8c\r\n=rkFh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule"],"engines":{"node":">=8.9.0"},"gitHead":"2321853f3ffcc5ef9048a985925a5f956685935e","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/VeliovGroup/josk.git","type":"git"},"_npmVersion":"6.14.8","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"12.18.3","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.1.0","chai":"^4.2.0","mocha":"^8.1.3","mongodb":"^3.6.2","pathval":"^1.1.0","bson-ext":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.3.0_1601398205828_0.7243118160845581","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"josk","version":"2.4.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.4.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"ac2a66cc1953b696124709d353bd363bef779a32","tarball":"https://registry.npmjs.org/josk/-/josk-2.4.0.tgz","fileCount":6,"integrity":"sha512-QDrFQhnW8HEHo844UERhEDPwLGgpk0+f1s7eE4Y5NHFoGtJPGExym8215n8xH8Dry4UJwap9Sn274zHYU8PXwg==","signatures":[{"sig":"MEYCIQCpkohEhA6Wx4aQWI3PNuDmUvdGuEHEodqPpPJYi30ehwIhAP+tvivsZtToC2Sd/oC9/kTnqI1EM1apv/ZyEk/7J5X+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIFApCRA9TVsSAnZWagAADlYP/3HUI6grvDBYDKTXPl46\npM6LxVSsMtD1E74RppeJx9OJH11v0tWgdFBkJX0QbPCj1Ij2r0Ny+U0WebHu\nMHwLz0kogPI1XP2WBiY76LgTEc/OAs/DMkBGXmOcF3KaX9omYIJoPNgkkVE3\nCMcYoWEaUKBw+vWs/cMMBGGW5OH4WAVghCFaMTLMJGuBaN1/X4KkqvZ6ZWha\nbG7+cJJLlWQyjqnA004ESAZzSnj73eHrRnGlKEyVirrlm1ZLxMvcyyKDHM/O\nc8tgOBsF1tI2D8dTq5CS3VNy4bljY79hCve2UpmQiUXc8ZMuVuewl1slp/90\nd9ykCoHX05wJelo4XFqLKkmeamDa7iojxdwwa38v3OxJzCceNr/ey8E5aFKj\nVwZlzC/BCL96rKBrRopSL1Y3csO6miJOkvLhDSAyR6DZ/9TL/OnBcSAAVBLt\nAh+n+ZwBtMI5lCfzj0QNSQekDHs1IAP5hhmstivOEsCxlYIbyPWCPtsusM15\nbgTTqjxqG5kqBRx2zf9nVRK+igrsr8mK9IQiqnl9KqwK8tR0G5zxnRgQ/QCL\nVN3GvTvpAY60pspnlOin2a62GqxXpdaISEpR0b0MU7XLGyF+7exfLffhCR5X\no4Sgyl4MZzDhWYFXZFEBQJfbJR+8v65J0dstbJSUbg869CqkzUMIHtZ0NpvY\n+dn0\r\n=zip/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"engines":{"node":">=8.9.0"},"gitHead":"61f08c0bc4f429ac5f4d0cb73744b8b3b9f614d2","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"7.5.2","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"12.20.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.2.2","chai":"^4.3.0","mocha":"^8.2.1","mongodb":"^3.6.4","pathval":"^1.1.1","bson-ext":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.4.0_1612730408488_0.5581307180118751","host":"s3://npm-registry-packages"}},"2.4.1":{"name":"josk","version":"2.4.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@2.4.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"2ef9d0abac22b523932199b9bcba72828dd0af23","tarball":"https://registry.npmjs.org/josk/-/josk-2.4.1.tgz","fileCount":4,"integrity":"sha512-w7l4KNzbolKwTaH4SoAs9fpuK1V7qv1EHdzYvR4ogJtKMQpdnh1pWcORPXNWJ09O8tLrsf0JOcKtg8GNYVCeUQ==","signatures":[{"sig":"MEUCIQD0zC6ehu+7ESrjs2QTlkBPv+wD54ATFi1QTLGYqyAWVgIgCYIV645qJz3c8riG8OM22MZcpnt7NBgvr8vC29sWZp8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJic5rvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWmg/+JlLPo/0g70s8JoEZedVV81kvDZv1tiwbETCoRhQmGIWd0cNh\r\nM/u8G5Kp1NHc7lXst2S34YNEL7GP45NX3KKjbaEy/riVxRRwpO2KTUY/3cm0\r\n+CUV2ykRCVOs+zFEavPEUfnX1JVBfupzd/VOg50Y4ptHIUDmyq48Eh3QzN9a\r\nrjaERvbnORt3yHj7xAyycGgKuCsyEcqiq3ctdGJf8PRpS+dwrVna4J0/Q5rW\r\n5x2cEAnrhhe2PZjah7mddjj0nucmodskOyww0tMBa6h0K9p8N1kjDL7zmVh1\r\nrOOFCFbD5EdjZmxE3a9VRsFYgwT8jq4cepJR7NFJUDUo21wBvFpWS4pnE8zE\r\ngIc8pCs9tbM2qAGSNy63FcRfVg3pU7HyfmV6ZKzYBmT/+DLiIJC27Rjbl4mZ\r\nkTtEU/XR/mVO5NK6CZVY45S4J2T+pk0A+6HlNYu3dP65yrOnuNFRHSZiXxop\r\n39EZTH4RmGz1tnILGmnZwVGa/lRxr7UMmpVgFlZHsJ06JVIOgJofLa8Xy1wv\r\nmcEOulfwt5AsLawughJYjWaKKEK39TBAPQg4C/OMIE/yv/nlLaoVyy/QPxx6\r\nwBwtbkgYCMwUlAJY5J8ZBqTEmaVGjdPdDmwObNvFlMy2M3ZzEKKpUzzYXFam\r\nwXc68Wk0eEBF1HWBkNyQeg5Mgj579HeVAeM=\r\n=h3TH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"engines":{"node":">=8.9.0"},"gitHead":"46f3b425770317c66649f1a4c708b05e8c5c5c67","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"8.8.0","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"14.19.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"bson":"^4.6.3","chai":"^4.3.6","mocha":"^10.0.0","mongodb":"^4.5.0","pathval":"^1.1.1","bson-ext":"^4.0.2"},"_npmOperationalInternal":{"tmp":"tmp/josk_2.4.1_1651743471109_0.5067360909222416","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"josk","version":"3.0.0","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@3.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"6e603120c61965930b7fca7ab030ad05144139a0","tarball":"https://registry.npmjs.org/josk/-/josk-3.0.0.tgz","fileCount":4,"integrity":"sha512-3usWmu0t8Ej+NETrN53bjeGqkxFfb1ybW2qvpGNUBUcvMRT7xvNlVoX63mj1ah4iwGKj6aL5VKHH7cjXbjvVhg==","signatures":[{"sig":"MEQCIBtSyj9JBgG2yOG20NTb3k5T4e+SPEuWFyUO6dzVz2eLAiByNvSHTI0hIX/4jKul59JueMrNnLPA5cGHpkeSRwTWYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifd6uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyCQ//VAG+1E61Nr1XxYb/8dzgzVSJRGONuK5CE2fiGkvsyJv9bBEY\r\nWDRO4Kplm9c0LmQty6UMm5XS6AxthfCC+zK53l4ZGHUTqtVujH+xXM8pAdYA\r\n4c+/NheQuIXN/qOTpy/3QeTVlEzOKjER+CyEVIEmazhKHeWsiM2ZhqjLNrVy\r\n5kPpCGSFTH+DrxVoLVnDCMtEls5a9i4QiOXQ3/utO+2N3/+AerTiBpojLY9b\r\ncdnRmr9i11gZyX2YxeJMuNmmRrbFR13tXZ26cOHk3jQzXEyOEbttowSvm2fE\r\nfAQEM/PBpHZQYyOWFtsaBexRr48bTxGwnrtcLlNhUd8MULUQUnxuhhp7X7g1\r\n0FeWoABhiI3JrQtevdVp3HHwRyzVaumPJKg3p2Une9hkqkA1hnGIOyUrYoh3\r\n2L+PvqUCyW9ivGgOHx+bfI4F2AHAe1zygn7JAW6fosHsOUT00pG0vZO72QFr\r\nNrDnjNxuLXqykEj9vYXdQqHZt19Pf4iapX/gQ6Es0Z5LIYiOmh5YAezYqirJ\r\ngg2MLV1BfsSkEvktW2EYLBmuSQaCbooIL+AM16jQzDXRp4GM9jGPCg5egl+d\r\nfzDUcHVv7ScHE28DvWeya7Ym6pViIqKClTDjmLXQ9mD1HKPFoVteTAn7hJjH\r\nA+YFoxyNrctHmSYM32eH1VMqaUzBhVR5vR4=\r\n=ZzLO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"engines":{"node":">=8.9.0"},"gitHead":"3fddf2e716934e56c6188b80c023ac38160b3b20","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"8.8.0","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^4.6.3","chai":"^4.3.6","mocha":"^10.0.0","mongodb":"^4.6.0","pathval":"^1.1.1","bson-ext":"^4.0.2","cron-parser":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_3.0.0_1652416173990_0.39146402542251724","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"josk","version":"3.0.1","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@3.0.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"3b04cd6c9aa9ef3aad7905cbd7b78f8dcd17a563","tarball":"https://registry.npmjs.org/josk/-/josk-3.0.1.tgz","fileCount":6,"integrity":"sha512-8twJKqwAZJ3Ip1/iXYOMkxLDsWrR5YM+6Nb5XLwU/ruf/na54qkZEz2pHX6AEkg0AqKjVrVeA9RCKg9Fd0Aklw==","signatures":[{"sig":"MEUCIAiM7sRZIKRUIkw8fZ/LN49r9rsArfShy8dK/oklRTQkAiEAvdQpC1bSAxuReBMUHOuITdmZNYAjGkIwGTBEtIHtFWE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiozRqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQbg//YBAmarEX1L+WMpDu5xdDZXVPiKiTQpfkS8VK6sfzynY/dZVS\r\nKKoUc4SH12n622Bx1LVuiQNbgicf7ZdG/OIEXcsfq5JOKTVzwDwNPee/TWDF\r\nTcy6zPwoXRvaezxRNRuPFs34orcfwHTM4ct8zIiSl7Ntb1n7zaSjuKbpB1n/\r\nJkEu9tYhwG8F1K4QUFJSF5KHpU8R8URxXamRbQYwr1v92cnjHbeQ528d1l0N\r\nCoXDlCUiRalEUNfGQA98Cr5WguE/aTBUh2TdPhKCIm9yJydeNRYZg2b9uIoP\r\nclLJtk6fGKFNY27EIHpzT8jdxgLJHOsiPSLTL7yscWFC5pcS0ErqyPwq5piC\r\na+uzGXj6n5JDnHX2k2S5L4vQAZfPPUawb+v+UFj5NpxfB28acQkcmbm5j+yj\r\nLwMJ5qqwj4mz2vhKam6cwVLAfu8eVfng06eUXdFbFHB7RXGmook0wU0u/3xj\r\nMtudsDtLeatptQPOJSkeCUovdgi6geiavW//bblQ2BZBg63lMb6lYQB90eaz\r\nMqfxTGry3TdvJSHDREOthLq4WUfegeYqTIDYsMetjhlqrnrscAnV0Kh0JVPP\r\nI/RGzxsvsxr3G9NnFh/6s0I5wBge7r2G1ssFidhXhpamsPRZ2KnwQVOdxTpF\r\nbVR0lyyNyqUzPDDIFTUl86NUotcagE6tzcs=\r\n=BMIZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"engines":{"node":">=8.9.0"},"gitHead":"732857bd5732bde1e0180e02ee32f68b9cf4f7bc","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"6.14.17","description":"Scheduler and manager for jobs and tasks in Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"bson":"^4.6.4","chai":"^4.3.6","mocha":"^10.0.0","mongodb":"^4.7.0","pathval":"^1.1.1","bson-ext":"^4.0.2","cron-parser":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_3.0.1_1654862954334_0.7830808113531904","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"josk","version":"3.0.2","keywords":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@3.0.2","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"e73d09e32c8d9ff25a32a9bff3aa7976a4557783","tarball":"https://registry.npmjs.org/josk/-/josk-3.0.2.tgz","fileCount":6,"integrity":"sha512-YjiiS+qvj2D2Rz8O6e437hqi8SOAROpcsQVxF/XAUkps0OvgWB99ZlksVbC2NVlZx1IRJcRQwGqCggwy6+t5cA==","signatures":[{"sig":"MEUCIDARc8XTmojHgLj6kM0hcJGS+TdXP7lY4JMfnHcTPh99AiEAhlD2NCMxQZ7a/R9Q4Y2RHCzhMeSuPNQTLJAqzuU5T50=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwYR5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyZg/+PrJZYJdnrfF2/0aY+5m8RzY8BHY1k8VRqwHIECoxcp75jOmY\r\nTggWhl+OUSFTzZ0z2QdDybl+wMZ9gt5alAVSFn7YK/R/nEBSKMGdxo04pqFr\r\nXZhrgec1jZ7BaLoalBXHwi+Bx2Zd5eM5M4PItt++toj/cCRDvWosNCd+Q4HV\r\nIKImuav/w+5oyBXmTVVaOLcdrGnlOG4p59PmJ3SjXCtZOvp9Ll/3pmCzYnR/\r\nqHu/p2vNxTOyzIOzPNEMDpC7lv240QL118CqWxvbxpuRXco8CYA6/2bOmaS8\r\nVJse7Zw5ZNrR/Ztmf7SnF10uqs5Zrw9RodJw5hR/zTsiMinsDH4HFZlFYeR0\r\ngRt9sPy5VLt8ImO06INCtFE6P5L5alO91MWg+q4rrVmGw6iLxQuyyHeOBLfp\r\n0X2aXN9HPfTMZRT6iX7mfMnv+PIg+uRbEYi9EwQDiitfwIRn0j26fag5aBiQ\r\n6Hh/tnOt8Srae2A6w+K+xJtN6+1pQKUHcLyIgNU51+N0SZEevVhzkRMOR96m\r\nhSW4iscCBHivY/yQpD3Skn3hezDbbXnZ4AI0ZO39pkM55C6IzXSInyEOwHTq\r\nIVVbPJmKF4ScmSvzXw1obqoypGPq+aASp+AMtZEEqNGkopFQVfzJQ68usTMe\r\nV0aBiOAcO+gvOeoM4GAKcNmXPDBqjobk/1k=\r\n=q15K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","tags":["tasks","jobs","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"engines":{"node":">=8.9.0"},"gitHead":"d4bafd4d0e10b7a990c748e9b7811bdc16614aad","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"6.14.17","description":"Jobs scheduler and manager for Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"bson":"^4.6.4","chai":"^4.3.6","mocha":"^10.0.0","mongodb":"^4.7.0","pathval":"^1.1.1","bson-ext":"^4.0.2","cron-parser":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_3.0.2_1656849529179_0.09197974949913501","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"josk","version":"3.1.0","keywords":["tasks","jobs","horizontal scaling","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@3.1.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"4e0a081efa34bdc1a44d54e43658d5af7ac79e21","tarball":"https://registry.npmjs.org/josk/-/josk-3.1.0.tgz","fileCount":4,"integrity":"sha512-b2AiJdFwqGsSxrYeE2ep+v3miyv9Xfgd1gO1GumyZc3f//Z7IRhGI8hr2LUEa9rNphAaTGY8TFRHSs38TPVLiw==","signatures":[{"sig":"MEUCIQDmJJtgr1oszx3x8g9FyK+d76UICXWOC2XQO+99fa7oZQIgDqQ36hUUEpflMcTEckRdK565sXpt7HiONBJ9NMCMpnw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39872},"main":"index.js","tags":["tasks","jobs","horizontal scaling","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"type":"module","engines":{"node":">=14.20.0"},"gitHead":"5ede9f07e9935c5641776df1a96e080bc83b83ee","scripts":{"test":"mocha ./test/npm.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.5.0","description":"Jobs scheduler and manager for Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"21.7.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^6.3.0","chai":"^4.4.1","mocha":"^10.3.0","mongodb":"^6.5.0","pathval":"^2.0.0","bson-ext":"^4.0.3","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_3.1.0_1711929998564_0.0008050857710555359","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"josk","version":"3.1.1","keywords":["tasks","jobs","horizontal scaling","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@3.1.1","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"038f98949b58a8dd91ef2f218505efa3b1cac6e2","tarball":"https://registry.npmjs.org/josk/-/josk-3.1.1.tgz","fileCount":5,"integrity":"sha512-1ZdxA5Kth2hYb6wW0c8XdvGftnkj/l7vpaRKdsP5O7uV3AmmBfwYv0eZTL84mZlVwc57or9u9aTMEsRUXTr61w==","signatures":[{"sig":"MEUCIQDZjsNN6K53otV+eBY79q6T9k0+tDLSJ8oOiCCdto4FIwIgQ3Gfthjh9aaw0V7eBdHZo3G75lcbhveUh8AtQ+20Pn4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59754},"main":"index.js","tags":["tasks","jobs","horizontal scaling","cluster","scheduler","agent","agenda","servers","task","job","schedule","CRON"],"type":"module","engines":{"node":">=14.20.0"},"exports":{"import":"./index.js","require":"./index.cjs"},"gitHead":"a0ba80e3b039a66b5ca5ff26f3e7c14f9ef07dd1","scripts":{"test":"mocha ./test/npm.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.5.0","description":"Jobs scheduler and manager for Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"21.7.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^6.6.0","chai":"^4.4.1","mocha":"^10.3.0","mongodb":"^6.5.0","bson-ext":"^4.0.3","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_3.1.1_1712086060275_0.894113303446272","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"josk","version":"4.0.0","keywords":["agenda","agent","cluster","CRON","high load","horizontal scaling","job","jobs","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@4.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"5e8f182706a8c89f4736f9e435379d1aa5308877","tarball":"https://registry.npmjs.org/josk/-/josk-4.0.0.tgz","fileCount":8,"integrity":"sha512-89CQGwMlu9Tnb+moUjQVGMhSFD+Nih+83eWV2zINaAVJkxm2vR+EQR7hAtncrIcPW+dONVRTRMrMDBc3n1s+jw==","signatures":[{"sig":"MEUCIQDq2WLYdTKDX5prMhRk/m+y7mSzAoYx3hvWWjD5w5WKdAIgRON1c7CpEKF/A8fJB3gjfQQ9ghvRoEn6JKnJOfInDdA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83466},"main":"index.js","tags":["agenda","agent","cluster","CRON","high load","horizontal scaling","job","jobs","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","tasks"],"type":"module","engines":{"node":">=14.20.0"},"exports":{"import":"./index.js","require":"./index.cjs"},"gitHead":"cfa8041b4e29516018bb88c6a7bb531777f53017","scripts":{"test":"mocha ./test/npm.js","test-mongo":"mocha ./test/npm-mongo.js","test-redis":"mocha ./test/npm-redis.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.5.0","description":"Jobs scheduler and manager for Node.js on multi-server and clusters setup","directories":{},"_nodeVersion":"21.7.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^6.6.0","chai":"^5.1.0","mocha":"^10.4.0","redis":"^4.6.13","mongodb":"^6.5.0","bson-ext":"^4.0.3","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_4.0.0_1712271791915_0.05741114328944086","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"josk","version":"4.1.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@4.1.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"c2b5f18df0b83c8d91ecff2bde284d2c012f24d6","tarball":"https://registry.npmjs.org/josk/-/josk-4.1.0.tgz","fileCount":8,"integrity":"sha512-CcoQ1cw3Laht2KwNOKxDqEtnolVfspmUtqAOmXkMKP/5xz2d0yWZYgBUc1RMJhKdwP/0+Y/+7J5j3TVwffkcgg==","signatures":[{"sig":"MEUCIQD+95FnXT7H72lU3oRheBbyAjjKQbUruiD2j+dCSzPBogIgHlHKWDQUHUAD/S68xW12sUQYPlJzdfepL5KLcYPWgCo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87901},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","engines":{"node":">=14.20.0"},"exports":{"import":"./index.js","require":"./index.cjs"},"gitHead":"be28f2980a5ab550863b3934125cba79fcc964fe","scripts":{"test":"mocha ./test/npm.js","test-mongo":"mocha ./test/npm-mongo.js","test-redis":"mocha ./test/npm-redis.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.5.0","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications","directories":{},"_nodeVersion":"21.7.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^6.6.0","chai":"^5.1.0","mocha":"^10.4.0","redis":"^4.6.13","mongodb":"^6.5.0","bson-ext":"^4.0.3","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_4.1.0_1712613066189_0.496005640964164","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"josk","version":"5.0.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@5.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"1d4471e51f4c89d1f602455ca4b2b01644532343","tarball":"https://registry.npmjs.org/josk/-/josk-5.0.0.tgz","fileCount":7,"integrity":"sha512-hD82IqX1kCTzetZn9sk8jOiMW7emArlYclsykk4+BOSkQlnfRN01tyAoNsOO9eYkkUg3rcGcui1h4A/iwkHp2w==","signatures":[{"sig":"MEYCIQCDF2YHedMgRU+pYrZ1oWjMwJ2sPQkG0ZLnbXMJ/HK+LgIhAJTIYelZrJRUD8YYoZ7QzZBSazJBkmIXF/6Mbtv3dCQr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88156},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","engines":{"node":">=14.20.0"},"exports":{"import":"./index.js","require":"./index.cjs"},"gitHead":"1765b5ded891935d0c5242b7bd4b31d26d8edd64","scripts":{"test":"mocha ./test/npm.js","test-mongo":"mocha ./test/npm-mongo.js","test-redis":"mocha ./test/npm-redis.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.2.4","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications","directories":{},"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"devDependencies":{"bson":"^6.6.0","chai":"^5.1.0","mocha":"^10.4.0","redis":"^4.6.13","mongodb":"^6.5.0","bson-ext":"^4.0.3","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_5.0.0_1712788761268_0.0919310672621303","host":"s3://npm-registry-packages"}},"5.1.0-beta.0":{"name":"josk","version":"5.1.0-beta.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@5.1.0-beta.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"150b48188a4b4e56501467f5ea35097befff7161","tarball":"https://registry.npmjs.org/josk/-/josk-5.1.0-beta.0.tgz","fileCount":15,"integrity":"sha512-VNZCdMYZW01hrNy4Z3R3cQsHqR8L1N11xdBwBvd29/I0uRBkzmKX45D50HlbZVt4N2ek5NTda470GrN5f40C8Q==","signatures":[{"sig":"MEUCIHJR5PML6Ok/toDayTymotB6FA8Easjg8Fp1uA99YSwUAiEAqAZbokaVpoLWp4ooMp9v3S2gIwHx9TGIrKOtoqDXHXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179492},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","types":"./index.d.ts","engines":{"node":">=14.20.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}}},"gitHead":"cebb01058ec4b169f8ef0ff225c94cfe40d9bae2","scripts":{"test":"mocha ./test/npm.js && npm run test:jest && npm run test:types","test:jest":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs","test:mongo":"mocha ./test/npm-mongo.js","test:redis":"mocha ./test/npm-redis.js","test:types":"tsc -p ./tsconfig.types.json","test:postgres":"mocha ./test/npm-postgres.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs && rm -rf ./.types-tmp && tsc --emitDeclarationOnly --declaration --outDir ./.types-tmp --rootDir ./ && cp ./.types-tmp/index.d.ts ./index.d.ts && cp ./.types-tmp/index.d.ts ./index.d.cts && cp ./.types-tmp/adapters/*.d.ts ./adapters/ && rm -rf ./.types-tmp","test:jest:core":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/core.test.js","test:jest:adapters":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/adapters.test.js","test:adapter-guards":"mocha ./test/adapter-guards.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.9.2","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"pg":"^8.13.1","bson":"^6.6.0","chai":"^5.1.0","jest":"^29.7.0","mocha":"^10.4.0","redis":"^4.6.13","mongodb":"^6.5.0","bson-ext":"^4.0.3","typescript":"^5.8.2","cron-parser":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_5.1.0-beta.0_1778583069719_0.4623220454270769","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"josk","version":"6.0.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@6.0.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"24a7610d4e3b7c5214a59c3ccfcaa4ed2ab4a79a","tarball":"https://registry.npmjs.org/josk/-/josk-6.0.0.tgz","fileCount":13,"integrity":"sha512-UMUvotMEkczQU4MZ/ExXOGp9mXA909Ty3Nw8DnVRQQOjN9wxte+px/OPeflXi8x1xJrd5YFNOhGrMCk503OFkA==","signatures":[{"sig":"MEUCIQDiEXR0Gxwwode4I3uSvG6U7uAUmykWRBgiR/EdVKay0gIgT2cjydPRwfaZHHwfm+0Bzi6mGJkC95A/a876gE1xQvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197462},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","types":"./index.d.ts","engines":{"bun":">=1.1.0","node":">=20.9.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}}},"gitHead":"77d0ef01e21fcc9ae6ff9afda47c4d83e3b6d892","scripts":{"test":"mocha ./test/npm.js && npm run test:jest && npm run test:types","test:bun":"bun test ./test/jest/","test:jest":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs","test:mongo":"mocha ./test/npm-mongo.js","test:redis":"mocha ./test/npm-redis.js","test:types":"tsc -p ./tsconfig.types.json","build:types":"rm -rf ./.types-tmp && tsc -p tsconfig.json --outDir ./.types-tmp && node scripts/strip-internal.mjs ./.types-tmp/index.d.ts ./.types-tmp/index.d.cts ./.types-tmp/adapters/redis.d.ts ./.types-tmp/adapters/mongo.d.ts ./.types-tmp/adapters/postgres.d.ts ./.types-tmp/adapters/blank-example.d.ts && cp ./.types-tmp/index.d.ts ./index.d.ts && cp ./.types-tmp/index.d.cts ./index.d.cts && cp ./.types-tmp/adapters/*.d.ts ./adapters/ && rm -rf ./.types-tmp","test:coverage":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs --coverage","test:postgres":"mocha ./test/npm-postgres.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs --external node:crypto && npm run build:types","test:jest:core":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/core.test.js","test:jest:adapters":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/adapters.test.js","test:adapter-guards":"mocha ./test/adapter-guards.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.9.2","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","chai":"^6.2.2","jest":"^30.4.2","mocha":"^11.7.5","redis":"^5.12.1","mongodb":"^7.2.0","typescript":"^6.0.3","cron-parser":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_6.0.0_1778884203594_0.6551656948815228","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"josk","version":"6.1.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@6.1.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"80276ec9d937f0fe923c8866f3304d58f89f7b06","tarball":"https://registry.npmjs.org/josk/-/josk-6.1.0.tgz","fileCount":13,"integrity":"sha512-iw/rAJxgpQTFEVN4Hy2YCPnRa8C00/mbcxqJQjTGsEdOqpXrmKJ0aUexeqwcNaG5nrKZdzBlmLTgbqPAWvUCdg==","signatures":[{"sig":"MEUCIBuqx2Nd/iW63b8NyXXcbYGQMwBKa9r2mu0g+4XBUnr+AiEA007g+0mJ1YKxg+ZUhWVlP4r9wijtqc8Vv/WgQNzx1y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206049},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","types":"./index.d.ts","engines":{"bun":">=1.1.0","node":">=20.9.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}}},"gitHead":"32758f2ae177d2ed8ee88f89c091b7049e7d9b08","scripts":{"test":"mocha ./test/npm.js && npm run test:jest && npm run test:types","test:bun":"bun test ./test/jest/core.test.js ./test/jest/adapters.test.js","test:jest":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs","test:mongo":"mocha ./test/npm-mongo.js","test:redis":"mocha ./test/npm-redis.js","test:types":"tsc -p ./tsconfig.types.json","build:types":"rm -rf ./.types-tmp && tsc -p tsconfig.json --outDir ./.types-tmp && node scripts/strip-internal.mjs ./.types-tmp/index.d.ts ./.types-tmp/index.d.cts ./.types-tmp/adapters/redis.d.ts ./.types-tmp/adapters/mongo.d.ts ./.types-tmp/adapters/postgres.d.ts ./.types-tmp/adapters/blank-example.d.ts && cp ./.types-tmp/index.d.ts ./index.d.ts && cp ./.types-tmp/index.d.cts ./index.d.cts && cp ./.types-tmp/adapters/*.d.ts ./adapters/ && rm -rf ./.types-tmp","test:coverage":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs --coverage","test:postgres":"mocha ./test/npm-postgres.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs --external node:crypto && npm run build:types","test:jest:core":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/core.test.js","test:jest:adapters":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/adapters.test.js","test:adapter-guards":"mocha ./test/adapter-guards.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.9.2","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","chai":"^6.2.2","jest":"^30.4.2","mocha":"^11.7.5","redis":"^5.12.1","rollup":"^4.60.4","mongodb":"^7.2.0","typescript":"^6.0.3","cron-parser":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_6.1.0_1779197332668_0.9503919575533142","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"josk","version":"6.2.0","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"author":{"url":"https://veliovgroup.com","name":"dr.dimitru"},"license":"BSD-3-Clause","_id":"josk@6.2.0","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"homepage":"https://github.com/veliovgroup/josk","bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"dist":{"shasum":"991fceb38b86b85d9296da6d904c391ab4f3c860","tarball":"https://registry.npmjs.org/josk/-/josk-6.2.0.tgz","fileCount":13,"integrity":"sha512-n5korIippKMsK9Fp8oC7zkTEjdAxFYpsm1yhnMMSHycapYjwzT7/eOT8MqxTxEj3pLnY3VRc7Pdd9V6DbkW1Uw==","signatures":[{"sig":"MEYCIQCPYiHMipS1v2+zTa4+t5E3QID65mS6I6/sIJU77nlY5AIhAOk/5WifWiY1rJhOF5JFWAcKYRd9f/cBbcZI/LtV0Ae6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217869},"main":"index.js","tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"type":"module","types":"./index.d.ts","meteor":{"node":{"3.2":">=18","2.14":">=14"},"packageName":"ostrio:cron-jobs","versionsFrom":["2.14","3.2"]},"engines":{"bun":">=1.1.0","node":">=20.9.0"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}}},"gitHead":"82979a9fcb55c6245c17b5c7a047b3bdc264c5dd","scripts":{"test":"mocha ./test/npm.js && npm run test:jest && npm run test:types","test:bun":"bun test ./test/jest/core.test.js ./test/jest/adapters.test.js","test:jest":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs","test:mongo":"mocha ./test/npm-mongo.js","test:redis":"mocha ./test/npm-redis.js","test:types":"tsc -p ./tsconfig.types.json","build:types":"rm -rf ./.types-tmp && tsc -p tsconfig.json --outDir ./.types-tmp && node scripts/strip-internal.mjs ./.types-tmp/index.d.ts ./.types-tmp/index.d.cts ./.types-tmp/adapters/redis.d.ts ./.types-tmp/adapters/mongo.d.ts ./.types-tmp/adapters/postgres.d.ts ./.types-tmp/adapters/blank-example.d.ts && cp ./.types-tmp/index.d.ts ./index.d.ts && cp ./.types-tmp/index.d.cts ./index.d.cts && cp ./.types-tmp/adapters/*.d.ts ./adapters/ && rm -rf ./.types-tmp","test:coverage":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs --coverage","test:postgres":"mocha ./test/npm-postgres.js","prepublishOnly":"rollup index.js --file index.cjs --format cjs --external crypto,node:crypto --generatedCode.constBindings && npm run build:types","test:jest:core":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/core.test.js","test:jest:adapters":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/adapters.test.js","test:adapter-guards":"mocha ./test/adapter-guards.js"},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"repository":{"url":"git://github.com/veliovgroup/josk.git","type":"git"},"_npmVersion":"10.9.2","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","chai":"^6.2.2","jest":"^30.4.2","mocha":"^11.7.5","redis":"^5.12.1","rollup":"^4.60.4","mongodb":"^7.2.0","typescript":"^6.0.3","cron-parser":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/josk_6.2.0_1780240667992_0.8004657867801335","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"josk","version":"6.3.0","description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","main":"index.js","type":"module","types":"./index.d.ts","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}}},"scripts":{"build:types":"rm -rf ./.types-tmp && tsc -p tsconfig.json --outDir ./.types-tmp && node scripts/strip-internal.mjs ./.types-tmp/index.d.ts ./.types-tmp/index.d.cts ./.types-tmp/adapters/redis.d.ts ./.types-tmp/adapters/mongo.d.ts ./.types-tmp/adapters/postgres.d.ts ./.types-tmp/adapters/blank-example.d.ts && cp ./.types-tmp/index.d.ts ./index.d.ts && cp ./.types-tmp/index.d.cts ./index.d.cts && cp ./.types-tmp/adapters/*.d.ts ./adapters/ && rm -rf ./.types-tmp","prepublishOnly":"rollup index.js --file index.cjs --format cjs --external crypto,node:crypto --generatedCode.constBindings && npm run build:types","test":"mocha ./test/npm.js && npm run test:jest && npm run test:types","test:adapter-guards":"mocha ./test/adapter-guards.js","test:jest":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs","test:jest:core":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/core.test.js","test:jest:adapters":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --runInBand test/jest/adapters.test.js","test:bun":"bun test ./test/jest/core.test.js ./test/jest/adapters.test.js","test:coverage":"node --experimental-vm-modules ./node_modules/jest/bin/jest.js --config jest.config.mjs --coverage","test:types":"tsc -p ./tsconfig.types.json","test:redis":"mocha ./test/npm-redis.js","test:mongo":"mocha ./test/npm-mongo.js","test:postgres":"mocha ./test/npm-postgres.js"},"keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"tags":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"repository":{"type":"git","url":"git://github.com/veliovgroup/josk.git"},"bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"homepage":"https://github.com/veliovgroup/josk","author":{"name":"dr.dimitru","url":"https://veliovgroup.com"},"license":"BSD-3-Clause","engines":{"node":">=20.9.0","bun":">=1.1.0"},"meteor":{"packageName":"ostrio:cron-jobs","versionsFrom":["2.14","3.2"],"node":{"2.14":">=14","3.2":">=18"}},"devDependencies":{"chai":"^6.2.2","cron-parser":"^5.5.0","jest":"^30.4.2","mocha":"^11.7.5","mongodb":"^7.2.0","pg":"^8.20.0","redis":"^5.12.1","rollup":"^4.60.4","typescript":"^6.0.3"},"gitHead":"6c1a9e3d253b124220514883966518e43a43e551","_id":"josk@6.3.0","_nodeVersion":"24.16.0","_npmVersion":"11.15.0","dist":{"integrity":"sha512-SjJR5fIUqHbbiFU8ak3cY1LMuM0xcJFIF6ojAe70mfKXV+1YrlKMuK6ITT6njGl8ZCOYLEsj9WrvVgg8f+FaZQ==","shasum":"c9f2271e3abe02863d04ca88be71dc8ca9a2a064","tarball":"https://registry.npmjs.org/josk/-/josk-6.3.0.tgz","fileCount":13,"unpackedSize":220960,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGJ+AP0LjIyyZQ0ZlvohGz1J6llMloJP0cITWIRpGYVoAiAD3NqD7mKenXzR83lfoulrkQaNSB3OR1rRb558rmbd7A=="}]},"_npmUser":{"name":"dr.dimitru","email":"ceo@veliov.com"},"directories":{},"maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/josk_6.3.0_1786481758462_0.6801618666424503"},"_hasShrinkwrap":false}},"time":{"created":"2016-12-28T20:44:24.083Z","modified":"2026-08-11T20:55:58.801Z","1.0.0":"2016-12-28T20:44:24.083Z","1.0.1":"2017-02-22T12:04:03.112Z","1.0.2":"2017-03-16T02:11:19.643Z","1.0.3":"2017-05-16T22:14:55.727Z","1.0.4":"2017-07-18T00:55:27.165Z","1.0.5":"2017-08-18T05:37:09.624Z","1.1.0":"2017-10-16T04:35:39.225Z","2.0.0":"2018-01-24T17:47:08.210Z","2.0.1":"2018-01-24T18:11:16.781Z","2.0.2":"2018-09-25T18:55:33.337Z","2.0.3":"2019-03-22T20:32:38.329Z","2.0.4":"2019-03-22T21:40:28.648Z","2.0.5":"2019-03-23T00:46:28.788Z","2.1.0":"2019-06-15T15:50:46.453Z","2.1.1":"2019-10-11T23:20:59.207Z","2.2.0":"2019-10-14T13:36:56.508Z","2.2.1":"2019-12-03T00:08:18.060Z","2.2.2":"2019-12-03T00:11:44.005Z","2.2.3":"2020-03-02T01:40:51.119Z","2.2.4":"2020-04-03T21:27:30.056Z","2.2.5":"2020-05-03T20:57:11.521Z","2.3.0":"2020-09-29T16:50:06.006Z","2.4.0":"2021-02-07T20:40:08.678Z","2.4.1":"2022-05-05T09:37:51.350Z","3.0.0":"2022-05-13T04:29:34.114Z","3.0.1":"2022-06-10T12:09:14.593Z","3.0.2":"2022-07-03T11:58:49.345Z","3.1.0":"2024-04-01T00:06:38.739Z","3.1.1":"2024-04-02T19:27:40.516Z","4.0.0":"2024-04-04T23:03:12.100Z","4.1.0":"2024-04-08T21:51:06.371Z","5.0.0":"2024-04-10T22:39:21.489Z","5.1.0-beta.0":"2026-05-12T10:51:09.854Z","6.0.0":"2026-05-15T22:30:03.738Z","6.1.0":"2026-05-19T13:28:52.860Z","6.2.0":"2026-05-31T15:17:48.146Z","6.3.0":"2026-08-11T20:55:58.620Z"},"bugs":{"url":"https://github.com/veliovgroup/josk/issues"},"author":{"name":"dr.dimitru","url":"https://veliovgroup.com"},"license":"BSD-3-Clause","homepage":"https://github.com/veliovgroup/josk","keywords":["agenda","agent","cluster","CRON","highload","high load","horizontal scaling","job","jobs","manager","mongo","mongodb","redis","redisdb","schedule","scheduler","servers","task","task manager","task scheduler","tasks"],"repository":{"type":"git","url":"git://github.com/veliovgroup/josk.git"},"description":"Tasks/CRON scheduler and manager for horizontally scaled multi-server applications. Supports Redis, MongoDB, PostgreSQL adapters.","maintainers":[{"name":"dr.dimitru","email":"ceo@veliov.com"}],"readme":"[![npm version][badge-npm-v]][npm-url]\n[![npm downloads][badge-npm-dm]][npm-url]\n[![CI][badge-ci]][ci-url]\n[![minified size][badge-size]][size-url]\n[![Coverage][badge-cov]](#running-tests)\n[![License: BSD-3-Clause][badge-license]][license-url]\n[![Node.js][badge-node]][node-url]\n[![TypeScript][badge-ts]][ts-url]\n[![Bun][badge-bun]][bun-url]\n[![Meteor.js][badge-meteor]][meteor-url]\n[![zero dependencies][badge-deps]][npm-url]\n[![Sponsor][badge-sponsor]][sponsor-url]\n[![Donate][badge-donate]][donate-url]\n<a href=\"https://ostr.io/info/built-by-developers-for-developers?ref=github-josk-repo-top\"><img src=\"https://ostr.io/apple-touch-icon-60x60.png\" height=\"20\"></a>\n<a href=\"https://meteor-files.com/?ref=github-josk-repo-top\"><img src=\"https://meteor-files.com/apple-touch-icon-60x60.png\" height=\"20\"></a>\n\n# JoSk\n\n\"JoSk\" is a Node.js task manager for horizontally scaled apps and apps that would need to scale horizontally quickly at some point of growth.\n\n\"JoSk\" mimics the native API of `setTimeout` and `setInterval` and supports [CRON expressions](https://github.com/veliovgroup/josk?tab=readme-ov-file#cron). All queued tasks are synced between all running application instances via Redis, MongoDB, or a [custom adapter](https://github.com/veliovgroup/josk/blob/master/docs/adapter-api.md).\n\nThe \"JoSk\" package is made for a variety of horizontally scaled apps, such as clusters, multi-servers, and multi-threaded Node.js instances, that are running either on the same or different machines or even different data centers. \"JoSk\" uses storage-level leases and atomic task claims so each due tick is claimed by one instance; delivery guarantees depend on the scheduling method.\n\n\"JoSk\" is not just for multi-instance apps. It seamlessly integrates with single-instance applications as well, showcasing its versatility and adaptability.\n\n__Note: JoSk is the server-only package.__\n\n## ToC\n\n- [Main features](https://github.com/veliovgroup/josk?tab=readme-ov-file#main-features)\n- [Prerequisites](https://github.com/veliovgroup/josk?tab=readme-ov-file#prerequisites)\n- [Install](https://github.com/veliovgroup/josk?tab=readme-ov-file#install) as [NPM package](https://www.npmjs.com/package/josk)\n  - [Bun runtime](https://github.com/veliovgroup/josk?tab=readme-ov-file#bun-runtime)\n  - [Agent Skill (Claude Code, Codex, Cursor, Copilot, Windsurf, …)](https://github.com/veliovgroup/josk?tab=readme-ov-file#agent-skill)\n- [API](https://github.com/veliovgroup/josk?tab=readme-ov-file#api)\n  - [Constructor `new JoSk()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#new-joskopts)\n    - [`RedisAdapter`](https://github.com/veliovgroup/josk?tab=readme-ov-file#redis-adapter)\n    - [`MongoAdapter`](https://github.com/veliovgroup/josk?tab=readme-ov-file#mongodb-adapter)\n    - [`PostgresAdapter`](#postgresql-adapter)\n  - [`JoSk#setInterval()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#setintervalfunc-delay-uid)\n  - [`JoSk#setTimeout()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#settimeoutfunc-delay-uid)\n  - [`JoSk#setImmediate()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#setimmediatefunc-uid)\n  - [`JoSk#clearInterval()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#clearintervaltimer)\n  - [`JoSk#clearTimeout()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#cleartimeouttimer)\n  - [`JoSk#destroy()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#destroy)\n  - [`JoSk#ping()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#ping)\n  - [`JoSk#pause()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#pause)\n  - [`JoSk#resume()`](https://github.com/veliovgroup/josk?tab=readme-ov-file#resume)\n- [Execution semantics](https://github.com/veliovgroup/josk?tab=readme-ov-file#execution-semantics)\n- [TypeScript](https://github.com/veliovgroup/josk?tab=readme-ov-file#typescript)\n- [Examples](https://github.com/veliovgroup/josk?tab=readme-ov-file#examples)\n  - [CRON usage](https://github.com/veliovgroup/josk?tab=readme-ov-file#cron)\n  - [Passing arguments](https://github.com/veliovgroup/josk?tab=readme-ov-file#pass-arguments)\n  - [Clean up old tasks](https://github.com/veliovgroup/josk?tab=readme-ov-file#clean-up-old-tasks)\n  - [MongoDB connection options](https://github.com/veliovgroup/josk?tab=readme-ov-file#mongodb-connection-fine-tuning)\n  - [Meteor.js](https://github.com/veliovgroup/josk/blob/master/docs/meteor.md)\n- [Prefix mapping per adapter](https://github.com/veliovgroup/josk?tab=readme-ov-file#prefix-mapping)\n- [Operational FAQ](https://github.com/veliovgroup/josk?tab=readme-ov-file#operational-faq)\n- [Migration guide (v4 → v5)](docs/migration-v4-v5.md)\n- [Migration guide (v5 → v6)](docs/migration-v5-v6.md)\n- [Migration guide (v6 → v6.1)](docs/migration-v6-v6.1.md)\n- [Migration guides](https://github.com/veliovgroup/josk/blob/master/docs/README.md#migration-guides)\n- [Important notes](https://github.com/veliovgroup/josk?tab=readme-ov-file#notes)\n- [~99% tests coverage](https://github.com/veliovgroup/josk?tab=readme-ov-file#running-tests)\n- [Why it's named \"JoSk\"](https://github.com/veliovgroup/josk?tab=readme-ov-file#why-josk)\n- [Support Section](https://github.com/veliovgroup/josk?tab=readme-ov-file#support-our-open-source-contribution)\n\n## Main features\n\n- 🏢 Synchronize single task across multiple servers;\n- 🔏 Read locking to avoid simultaneous task executions across complex infrastructure;\n- 📦 Zero dependencies, written from scratch for top performance;\n- 👨‍🔬 ~99% tests coverage;\n- 💪 Bulletproof design, built-in retries, and \"zombie\" task recovery 🧟🔫.\n\n## Prerequisites\n\n- `redis-server@>=5.0.0` or KeyDB — for RedisAdapter (requires `redis` NPM package, both `redis@^4` and `redis@^5` are supported). KeyDB and Valkey are supported with the same single-writer topology.\n- `mongod@>=4.4` — for MongoAdapter (requires the official `mongodb` NPM package; tested against the official driver only)\n- `postgres@>=12` — for PostgresAdapter (requires `pg@>=8.0.3` NPM package; `pg@7` does not connect on Node 14+)\n- `node@>=20.9.0` — Node.js version\n- `bun@>=1.1.0` — optional, runs the same package and the same Jest suite under [Bun](https://bun.sh) via `bun:test` (see [Bun runtime](#bun-runtime) section)\n\n### Older releases compatibility\n\n- `node@<20.9.0` — use `josk@^5`\n- `mongod@<4.0.0` — use `josk@=1.1.0`\n- `node@<14.20.0` — use `josk@=3.0.2`\n- `node@<8.9.0` — use `josk@=1.1.0`\n\n## Install:\n\n```shell\nnpm install josk --save\n```\n\n```js\n// ES Module Style\nimport { JoSk, RedisAdapter, MongoAdapter, PostgresAdapter } from 'josk';\n\n// CommonJS\nconst { JoSk, RedisAdapter, MongoAdapter, PostgresAdapter } = require('josk');\n```\n\n### Bun runtime\n\n*Since* `v6.0.0`\n\nJoSk runs unmodified on [Bun](https://bun.sh) `>=1.1.0`. The package is pure ESM, has no Node-only globals beyond `node:crypto.randomUUID()` (which Bun ships natively), and the official `mongodb`, `pg`, and `redis` drivers all work under Bun. Install with `bun add josk` and import the same way:\n\n```js\nimport { JoSk, RedisAdapter, MongoAdapter, PostgresAdapter } from 'josk';\n```\n\nThe full Jest test suite (`test/jest/`) doubles as the Bun test suite — `npm run test:bun` runs every core and adapter test under Bun's `bun:test` runner. See [Running Tests](#running-tests).\n\nNotes:\n\n- Use the same adapter packages as on Node (`mongodb`, `pg`, `redis`).\n- Schedulers running across mixed Node and Bun processes coexist under the same prefix; lease acquisition and task claiming are storage-level operations and runtime-agnostic.\n- Bun's standalone executables (`bun build --compile`) bundle JoSk like any ESM library.\n\n### Agent Skill\n\nJoSk ships a Claude / Copilot / Cursor / Codex / Gemini-ready skill bundle. Install it once in your project (or globally) and your AI agent will reach for the right preset, adapter, and pitfall list without you having to paste docs into the chat.\n\n```sh\n# Install the JoSK skill globally:\nnpx skills add veliovgroup/josk -g\n\n# Or install the JoSK skill into the current project:\nnpx skills add veliovgroup/josk\n```\n\nThe `npx skills` CLI ([vercel-labs/skills](https://github.com/vercel-labs/skills)) supports 50+ AI coding agents. Pass `-a claude-code` to target a specific agent. The bundled JoSk skill covers full public API, adapter setup, execution semantics, CRON and handler patterns, and common pitfalls — it's the same material as the README and `docs/`, structured for an LLM.\n\n> [!NOTE]\n> The skill source is **not** shipped in the npm tarball — it's distributed via GitHub and consumed only by AI tooling.\n\n## API:\n\nConstructor options for *JoSk*, *RedisAdapter*, *MongoAdapter*, *PostgresAdapter*\n\n### `new JoSk(opts)`\n\n- `opts.adapter` {*RedisAdapter*|*MongoAdapter*|*PostgresAdapter*} - [Required] Instance of adapter or [custom](https://github.com/veliovgroup/josk/blob/master/docs/adapter-api.md)\n- `opts.debug` {*Boolean*} - [Optional] Enable debugging messages, useful during development\n- `opts.autoClear` {*Boolean*} - [Optional] Remove (*Clear*) obsolete tasks (*any tasks which are not found in the instance memory (runtime), but exists in the database*). Obsolete tasks may appear in cases when it wasn't cleared from the database on process shutdown, and/or was removed/renamed in the app. Obsolete tasks may appear if multiple app instances running different codebase within the same database, and the task may not exist on one of the instances. Default: `false`\n- `opts.zombieTime` {*Number*} - [Optional] time in milliseconds, after this time - task will be interpreted as \"*zombie*\". This parameter allows to rescue task from \"*zombie* mode\" in case when: `ready()` wasn't called, exception during runtime was thrown, or caused by bad logic. While `resetOnInit` option helps to make sure tasks are `done` on startup, `zombieTime` option helps to solve same issue, but during runtime. Default value is `900000` (*15 minutes*). It's not recommended to set this value to below `60000` (*one minute*)\n- `opts.lockLeaseTime` {*Number*} - [Optional] Scheduler lease TTL in milliseconds. Default: `min(zombieTime, 30000)`, floored at `2 * maxRevolvingDelay + 1000`. See [v6.3 migration notes](https://github.com/veliovgroup/josk/blob/master/docs/migration-v6.2-v6.3.md)\n- `opts.execute` {*String*} - [Optional] due-task execution mode. Use `one` to claim and run one task per scheduler lease, or `batch` to drain all currently due tasks under same lease. Default: `batch`\n- `opts.concurrency` {*Number*} - [Optional] maximum number of task handlers that can run in parallel. Use a positive integer to cap parallelism (useful when handlers share rate-limited resources like the same DB the adapter uses); use `Infinity` to disable throttling. Default: `Infinity`\n- `opts.lockOwnerId` {*String*} - [Optional] stable owner id for scheduler lease tokens. Useful for observability (lease IDs include this prefix) and for re-claiming this instance's leases after a planned restart. Default: auto-generated per `JoSk` instance via `crypto.randomUUID()`\n- `opts.minRevolvingDelay` {*Number*} - [Optional] Minimum revolving delay — the minimum delay between tasks executions in milliseconds. Default: `128`\n- `opts.maxRevolvingDelay` {*Number*} - [Optional] Maximum revolving delay — the maximum delay between tasks executions in milliseconds. Default: `768`\n- `opts.onError` {*Function*} - [Optional] Informational hook, called instead of throwing exceptions. Default: `false`. Called with two arguments:\n  - `title` {*String*}\n  - `details` {*Object*}\n  - `details.description` {*String*}\n  - `details.error` {*Mix*}\n  - `details.uid` {*String*} - Internal `uid`, suitable for `.clearInterval()` and `.clearTimeout()`\n  - `details.task` {*Mix*} - Present only for malformed-task errors; the offending task payload\n- `opts.onExecuted` {*Function*} - [Optional] Informational hook, called when task is finished. Default: `false`. Called with two arguments:\n  - `uid` {*String*} - `uid` passed into `.setImmediate()`, `.setTimeout()`, or `setInterval()` methods\n  - `details` {*Object*}\n  - `details.uid` {*String*} - Internal `uid`, suitable for `.clearInterval()` and `.clearTimeout()`\n  - `details.date` {*Date*} - Execution timestamp as JS {*Date*}\n  - `details.delay` {*Number*} - Execution `delay` (e.g. `interval` for `.setInterval()`)\n  - `details.timestamp` {*Number*} - Execution timestamp as unix {*Number*}\n\nHook throws and async rejections are logged and isolated from scheduler execution.\n\n### `new RedisAdapter(opts)`\n\n*Since* `v5.0.0`\n\n- `opts.client` {*RedisClient*} - [*Required*] `RedisClient` instance, like one returned from `await redis.createClient().connect()` method\n- `opts.prefix` {*String*} - [Optional] use to create multiple named instances\n- `opts.resetOnInit` {*Boolean*} - [Optional] (*__use with caution__*) make sure all old tasks are completed during initialization. Useful for single-instance apps to clean up unfinished that occurred due to intermediate shutdown, reboot, or exception. Default: `false`\n- `opts.useHashTags` {*Boolean*} - [Optional] use Redis Cluster hash-tag keys (`josk:{prefix}:*`) so all adapter keys live in same slot. Default: `false`, preserving existing standalone keys (`josk:prefix:*`)\n\n### `new MongoAdapter(opts)`\n\n*Since* `v5.0.0`\n\n- `opts.db` {*Db*} - [*Required*] Mongo's `Db` instance, like one returned from `MongoClient#db()` method\n- `opts.prefix` {*String*} - [Optional] use to create multiple named instances\n- `opts.lockCollectionName` {*String*} - [Optional] By default all JoSk instances use the same `__JobTasks__.lock` collection for locking\n- `opts.resetOnInit` {*Boolean*} - [Optional] (*__use with caution__*) make sure all old tasks are completed during initialization. Useful for single-instance apps to clean up unfinished that occurred due to intermediate shutdown, reboot, or exception. Default: `false`\n\n### `new PostgresAdapter(opts)`\n\n*Since* `v6.0.0`\n\n- `opts.client` {*Pool*|*Client*} - [*Required*] `pg` client with `.query()` method. `Pool` is recommended for long-running applications\n- `opts.prefix` {*String*} - [Optional] use to create multiple isolated scheduler namespaces in same database. Default: `default`\n- `opts.resetOnInit` {*Boolean*} - [Optional] (*__use with caution__*) deletes tasks and locks for current `prefix` during initialization. Useful for local development and single-instance startup recovery. Default: `false`\n\n### Initialization\n\nJoSk is storage-agnostic (since `v4.0.0`). Shipped with Redis, MongoDB, and PostgreSQL adapters. Extend via [custom adapter](docs/adapter-api.md)\n\n#### Redis Adapter\n\nJoSk has no dependencies, hence make sure `redis` NPM package is installed in order to support Redis Storage Adapter. `RedisAdapter` stores due timestamps in sorted set and task payloads in hash, then claims due work atomically via Lua scripts. `RedisAdapter` is compatible with Redis-like databases with Lua + sorted-set support, and was well-tested with [Redis](https://redis.io/) and [KeyDB](https://docs.keydb.dev/)\n\nKeyDB guidelines:\n\n- Use a single writable KeyDB primary. For Redis Cluster or KeyDB Cluster, pass `useHashTags: true` so adapter keys use one hash slot: `josk:{prefix}:schedule`, `josk:{prefix}:tasks`, `josk:{prefix}:lock`.\n- Do not route JoSk reads or writes to replicas. Scheduler correctness depends on immediate visibility of lock and task-claim writes.\n- Avoid KeyDB active-replication/multi-master mode for scheduler correctness. Conflict resolution and eventual convergence can allow duplicate task claims across writers.\n- For multi-DC strict single-claim scheduling, use a strongly consistent storage topology, or prefer PostgreSQL with one write authority.\n\n```js\nimport { JoSk, RedisAdapter } from 'josk';\nimport { createClient } from 'redis';\n\nconst redisClient = await createClient({\n  url: 'redis://127.0.0.1:6379'\n}).connect();\n\nconst jobs = new JoSk({\n  adapter: new RedisAdapter({\n    client: redisClient,\n    prefix: 'app-scheduler',\n    // useHashTags: true, // Enable for Redis Cluster / KeyDB Cluster\n  }),\n  onError(reason, details) {\n    // Use onError hook to catch runtime exceptions\n    // thrown inside scheduled tasks\n    console.log(reason, details.error);\n  }\n});\n```\n\n#### MongoDB Adapter\n\nJoSk has no dependencies, hence make sure `mongodb` NPM package is installed in order to support MongoDB Storage Adapter. Note: this package will add two new MongoDB collections per each `new JoSk()`. One collection for tasks and second for \"Read Locking\" with `.lock` suffix\n\n```js\nimport { JoSk, MongoAdapter } from 'josk';\nimport { MongoClient } from 'mongodb';\n\nconst client = new MongoClient('mongodb://127.0.0.1:27017');\n// To avoid \"DB locks\" — it's a good idea to use separate DB from the \"main\" DB\nconst mongoDb = client.db('joskdb');\nconst jobs = new JoSk({\n  adapter: new MongoAdapter({\n    db: mongoDb,\n    prefix: 'cluster-scheduler',\n  }),\n  onError(reason, details) {\n    // Use onError hook to catch runtime exceptions\n    // thrown inside scheduled tasks\n    console.log(reason, details.error);\n  }\n});\n```\n\n#### PostgreSQL Adapter\n\n*Since* `v6.0.0`\n\nJoSk has no dependencies, hence make sure `pg` NPM package (`npm i pg`) is installed. PostgreSQL `>=12` is recommended. Adapter auto-creates and migrates `josk_tasks` and `josk_locks` tables on init, using current database/schema from the provided client.\n\n```js\nimport { JoSk, PostgresAdapter } from 'josk';\nimport { Pool } from 'pg';\n\nconst pool = new Pool({\n  connectionString: 'postgres://user:pass@localhost:5432/joskdb'\n});\n\nconst jobs = new JoSk({\n  adapter: new PostgresAdapter({\n    client: pool,\n    prefix: 'cluster-scheduler',\n  }),\n  onError(reason, details) {\n    // Use onError hook to catch runtime exceptions\n    // thrown inside scheduled tasks\n    console.log(reason, details.error);\n  }\n});\n```\n\nPostgreSQL guidelines:\n\n- Use `pg.Pool` for application runtime. Share same pool when scheduler tasks also use PostgreSQL, or use a small dedicated pool when you want scheduler isolation.\n- Use one writable primary endpoint. Do not route JoSk reads or writes to read replicas; task claims must be immediately visible across app instances.\n- Use same `prefix` on instances that must share one schedule. Use different `prefix` values for isolated tenants, environments, or test suites.\n- Prefer a dedicated database or schema when possible. Adapter creates `josk_tasks` and `josk_locks`; table names are fixed, isolation is by `prefix`.\n- Keep `resetOnInit: false` in clustered production. `true` deletes current-prefix tasks and lock rows during adapter initialization.\n- `execute: 'batch'` is default. It claims due tasks in batches using `FOR UPDATE SKIP LOCKED`, then iterates returned task list in memory. Best for draining backlogs with fewer DB round-trips.\n- `execute: 'one'` claims one due task per scheduler lease with `LIMIT 1`. Useful when you want smaller execution bursts or tighter fairness between instances.\n- Tune `minRevolvingDelay` and `maxRevolvingDelay` with pool capacity and task runtime. Lower delays poll more often and increase database writes.\n\n#### Create the first task\n\nAfter JoSk initialized simply call `JoSk#setInterval` to create recurring task\n\n```js\nconst jobs = new JoSk({ /*...*/ });\n\njobs.setInterval((ready) => {\n  /* ...code here... */\n  ready();\n}, 60 * 60000, 'task1h'); // every hour\n\njobs.setInterval((ready) => {\n  /* ...code here... */\n  asyncCall(() => {\n    /* ...more code here...*/\n    ready();\n  });\n}, 15 * 60000, 'asyncTask15m'); // every 15 mins\n\n/**\n * no need to call ready() inside async function\n */\njobs.setInterval(async () => {\n  try {\n    await asyncMethod();\n  } catch (err) {\n    console.log(err)\n  }\n}, 30 * 60000, 'asyncAwaitTask30m'); // every 30 mins\n\n/**\n * no need to call ready() when call returns Promise\n */\njobs.setInterval(() => {\n  return asyncMethod(); // <-- returns Promise\n}, 2 * 60 * 60000, 'asyncAwaitTask2h'); // every two hours\n```\n\nNote: This library relies on job ID. Always use different `uid`, even for the same task:\n\n```js\nconst task = function (ready) {\n  //... code here\n  ready();\n};\n\njobs.setInterval(task, 60000, 'task-1m'); // every minute\njobs.setInterval(task, 2 * 60000, 'task-2m'); // every two minutes\n```\n\n### `setInterval(func, delay, uid)`\n\n- `func` {*Function*} - Function to call on schedule\n- `delay` {*Number*} - Delay for the first run and interval between further executions in milliseconds\n- `uid` {*String*} - Unique app-wide task id\n- Returns: {*`Promise<string>`*}\n\n*Set task into interval execution loop.* `ready()` *callback is passed as the first argument into a task function.*\n\nIn the example below, the next task __will not be scheduled__ until the current is ready:\n\n```js\njobs.setInterval(function (ready) {\n  /* ...run sync code... */\n  ready();\n}, 60 * 60000, 'syncTask1h'); // will execute every hour + time to execute the task\n\njobs.setInterval(async function () {\n  try {\n    await asyncMethod();\n  } catch (err) {\n    console.log(err)\n  }\n}, 60 * 60000, 'asyncAwaitTask1h'); // will execute every hour + time to execute the task\n```\n\nIn the example below, the next task __will not wait__ for the current task to finish:\n\n```js\njobs.setInterval(function (ready) {\n  ready();\n  /* ...run sync code... */\n}, 60 * 60000, 'syncTask1h'); // will execute every hour\n\njobs.setInterval(async function () {\n  /* ...task re-scheduled instantly here... */\n  process.nextTick(async () => {\n    await asyncMethod();\n  });\n}, 60 * 60000, 'asyncAwaitTask1h'); // will execute every hour\n```\n\nIn the next example, a long running task is executed in a loop without delay after the full execution:\n\n```js\njobs.setInterval(function (ready) {\n  asyncCall((error, result) => {\n    if (error) {\n      ready(); // <-- Always run `ready()`, even if call was unsuccessful\n    } else {\n      anotherCall(result.data, ['param'], (error, response) => {\n        if (error) {\n          ready(); // <-- Always run `ready()`, even if call was unsuccessful\n          return;\n        }\n\n        waitForSomethingElse(response, () => {\n          ready(); // <-- End of the full execution\n        });\n      });\n    }\n  });\n}, 0, 'longRunningAsyncTask'); // run in a loop as soon as previous run is finished\n```\n\nSame task combining `await`/`async` and callbacks\n\n```js\njobs.setInterval(function (ready) {\n  process.nextTick(async () => {\n    try {\n      const result = await asyncCall();\n      const response = await anotherCall(result.data, ['param']);\n\n      waitForSomethingElse(response, () => {\n        ready(); // <-- End of the full execution\n      });\n    } catch (err) {\n      console.log(err)\n      ready(); // <-- Always run `ready()`, even if call was unsuccessful\n    }\n  });\n}, 0, 'longRunningAsyncTask'); // run in a loop as soon as previous run is finished\n```\n\n#### `ready()` — argument forms\n\n`ready` is the function passed as the first argument to every task handler. It is a `Promise<boolean>`-returning function and accepts several optional argument shapes:\n\n- `ready()` — schedule the next interval run at `now + delay` (default).\n- `ready(date)` — `Date` instance; schedule the next interval run at that exact wall-clock moment. Only honored for `setInterval`; `setTimeout`/`setImmediate` are at-most-once and have already been removed before the handler ran. This is the building block for CRON expressions — pair with [`cron-parser`](https://www.npmjs.com/package/cron-parser).\n- `ready(timestamp)` — numeric ms-epoch; same as above.\n- `ready(callback)` — Node-style callback `(error, success) => void`. Useful for non-async handlers that prefer not to use the returned `Promise`.\n\nCalling `ready()` twice throws (or invokes the callback with `error`) — *\"Resolution method is overspecified\"*. Either return a `Promise` from the handler **or** call `ready()` once, never both.\n\nFor zero-arity handlers (`async function () { … }` or `() => doSomething()`), JoSk auto-calls `ready()` for you when the returned Promise settles. You only need to call `ready()` manually when the handler accepts it as an argument.\n\n```js\nimport { CronExpressionParser } from 'cron-parser';\n\nconst intervalCron = (job, cronExpr, uid) => {\n  const next = () => CronExpressionParser.parse(cronExpr).next().toDate();\n  return jobs.setInterval(function (ready) {\n    job();\n    ready(next()); // schedule the next run at the cron's next fire time\n  }, Math.max(0, +next() - Date.now()), uid);\n};\n\nintervalCron(() => sendReport(), '0 9 * * *', 'daily-report-9am');\n```\n\n### `setTimeout(func, delay, uid)`\n\n- `func` {*Function*} - Function to call after `delay`\n- `delay` {*Number*} - Delay in milliseconds\n- `uid` {*String*} - Unique app-wide task id\n- Returns: {*`Promise<string>`*}\n\n*Run a task after delay in ms.* `setTimeout` *is useful for cluster work where duplicate execution is worse than a missed run.* `ready()` *callback is passed as the first argument into a task function.*\n\n```js\njobs.setTimeout(function (ready) {\n  /* ...run sync code... */\n  ready();\n}, 60000, 'syncTaskIn1m'); // will run at most once across the cluster in a minute\n\njobs.setTimeout(function (ready) {\n  asyncCall(function () {\n    /* ...run async code... */\n    ready();\n  });\n}, 60000, 'asyncTaskIn1m'); // will run at most once across the cluster in a minute\n\njobs.setTimeout(async function () {\n  try {\n    /* ...code here... */\n    await asyncMethod();\n    /* ...more code here...*/\n  } catch (err) {\n    console.log(err)\n  }\n}, 60000, 'asyncAwaitTaskIn1m'); // will run at most once across the cluster in a minute\n```\n\n### `setImmediate(func, uid)`\n\n- `func` {*Function*} - Function to execute\n- `uid`  {*String*}   - Unique app-wide task id\n- Returns: {*`Promise<string>`*}\n\n*Run a one-shot task as soon as the next scheduler tick claims it.* `setImmediate` *is useful for cluster work where duplicate execution is worse than a missed run.* `ready()` *is passed as the first argument into the task function.*\n\n```js\njobs.setImmediate(function (ready) {\n  //...run sync code\n  ready();\n}, 'syncTask'); // will run at most once across the cluster\n\njobs.setImmediate(function (ready) {\n  asyncCall(function () {\n    //...run more async code\n    ready();\n  });\n}, 'asyncTask'); // will run at most once across the cluster\n\njobs.setImmediate(async function () {\n  try {\n    /* ...code here... */\n    await asyncMethod();\n  } catch (err) {\n    console.log(err)\n  }\n}, 'asyncTask'); // will run at most once across the cluster\n```\n\n### `clearInterval(timerId)`\n\n- `timerId` {*String*|*`Promise<string>`*} — Timer id returned from `JoSk#setInterval()` method\n- Returns: {`Promise<boolean>`} `true` when task is successfully cleared, or `false` when task was not found\n\n*Cancel current interval timer.*\n\n```js\nconst timer = await jobs.setInterval(func, 34789, 'unique-taskid');\nawait jobs.clearInterval(timer);\n```\n\n### `clearTimeout(timerId)`\n\n- `timerId` {*String*|*`Promise<string>`*} — Timer id returned from `JoSk#setTimeout()` method\n- Returns: {`Promise<boolean>`} `true` when task is successfully cleared, or `false` when task was not found\n\n*Cancel current timeout timer.*\n\n```js\nconst timer = await jobs.setTimeout(func, 34789, 'unique-taskid');\nawait jobs.clearTimeout(timer);\n```\n\n### `destroy()`\n\n- Returns: {*boolean*} `true` if instance successfully destroyed, `false` if instance already destroyed\n\n*Destroy JoSk instance*. This method shouldn't be called in normal circumstances. Stop internal interval timer. After JoSk is destroyed — calling public methods would end up logged to `stdout` or if `onError` hook was passed to JoSk it would receive an error. Only permitted methods are `clearTimeout` and `clearInterval`.\n\n```js\n// EXAMPLE: DESTROY JoSk INSTANCE UPON SERVER PROCESS TERMINATION\nconst jobs = new JoSk({ /* ... */ });\n\nconst cleanUpBeforeTermination = function () {\n  /* ...CLEAN UP AND STOP OTHER THINGS HERE... */\n  jobs.destroy();\n  process.exit(1);\n};\n\nprocess.stdin.resume();\nprocess.on('uncaughtException', cleanUpBeforeTermination);\nprocess.on('exit', cleanUpBeforeTermination);\nprocess.on('SIGHUP', cleanUpBeforeTermination);\n```\n\n### `ping()`\n\n- Returns: {*`Promise<object>`*}\n\n*Ping JoSk instance*. Check scheduler readiness and its connection to the \"storage adapter\"\n\n```js\nconst jobs = new JoSk({ /* ... */ });\n\nconst pingResult = await jobs.ping();\nconsole.log(pingResult)\n/**\nIn case of the successful response\n{\n  status: 'OK',\n  code: 200,\n  statusCode: 200,\n}\n\nFailed response\n{\n  status: 'Error reason',\n  code: 500,\n  statusCode: 500,\n  error: ErrorObject\n}\n*/\n```\n\n### `pause()`\n\n- Signature: `pause()` or `pause(timerId)`\n- Returns: {*boolean*} `true` if pause state changed, `false` if already paused for that scope\n- **When to use:** Multi-instance setups only — other JoSk peers must exist to run work while this process is paused. For long-running tasks that should not keep the JoSk handler (and revolving loop) blocked until finished; skip on single-instance apps and short handlers.\n- **Global** `pause()` — this instance stops acquiring the scheduler lease on revolving ticks. Handlers already running continue. Tasks stay registered in storage; other cluster members keep competing.\n- **Per-task** `pause(timerId)` — when this instance claims that task, it reschedules without invoking the handler so another instance can run it. Pass only the timer id string returned from `setInterval`, `setTimeout`, or `setImmediate` (not the bare `uid` argument you passed to `set*`).\n\n```js\nif (loadSheddingActive()) {\n  jobs.pause(); // stop competing while saturated\n}\nconst heavy = await jobs.setInterval(worker, 60_000, 'heavy-sync');\njobs.pause(heavy); // only skip this task on this pod\n```\n\n### `resume()`\n\n- Signature: `resume()` or `resume(timerId)`\n- Returns: {*boolean*} `true` if pause cleared, `false` if not paused\n- `resume()` clears global pause. `resume(timerId)` clears per-task pause (same timer id from `set*`). Competing resumes on the next revolving tick (no separate `start()`).\n\n```js\njobs.resume();        // global\njobs.resume(heavy);   // per timer id from set*\n```\n\n**Inside `set*` handlers (queue polling):** After this instance wins a tick, claim rows from your own queue, then `pause()` or `pause(timerId)`, call `ready()` (or return only after `ready()` if work is branched off), run heavy processing on this instance, and `resume()` / `resume(timerId)` in `finally` when done — so JoSk releases the tick quickly and this instance stops competing until local work finishes. See [skills/josk/references/patterns.md](skills/josk/references/patterns.md) for full examples (global and per-`timerId`).\n\n## Execution semantics\n\nDifferent scheduling methods have different at-least-once / at-most-once guarantees. Pick the one that matches your tolerance for missed or duplicated runs.\n\n| Method | Guarantee | Notes |\n|---|---|---|\n| `setImmediate(func, uid)` | **At-most-once** across the cluster | Task is removed from storage *before* the handler runs. If the process dies between removal and completion, the run is lost. |\n| `setTimeout(func, delay, uid)` | **At-most-once** across the cluster | Task is removed from storage *before* the handler runs. If the process dies between removal and completion, the run is lost. |\n| `setInterval(func, delay, uid)` | **At-least-once** per scheduled tick (until cleared) | Storage row stays during execution. If `ready()` is not called within `zombieTime`, the task is re-claimed and may run again. Make your handler idempotent. |\n\n`zombieTime` is the safety net for stuck handlers. Choose it long enough to cover your slowest legitimate handler, plus storage round-trip overhead. Default `900000` ms (15 minutes).\n\n`execute` controls how the scheduler drains the work queue under a single lease:\n\n- `batch` (default) claims due tasks in batches under one lease — best throughput.\n- `one` claims a single due task per lease — smaller bursts, tighter fairness across instances.\n\n`concurrency` caps how many handlers run in parallel inside this JoSk instance. Default is unbounded (`Infinity`), which matches `setInterval`/`setTimeout` semantics from Node's standard library. Set a finite cap if handlers share resources (DB connections, external API rate limits).\n\n**Instance backpressure:** `pause()` / `pause(timerId)` are per-process, not cluster-wide — useful only when **several instances** share the scheduler and this one should yield during **long** local work. Pair with `concurrency` (caps parallel handlers) and `execute: 'one'` (smaller claim bursts).\n\n## TypeScript\n\nJoSk ships with TypeScript declarations for both ESM (`index.d.ts`) and CommonJS (`index.d.cts`). The `JoSkAdapter` interface is exported so custom adapters can be type-checked against the public contract.\n\n```ts\nimport { JoSk, RedisAdapter } from 'josk';\nimport type { JoSkAdapter, JoSkOption, JoSkOnError } from 'josk';\nimport { createClient } from 'redis';\n\nconst onError: JoSkOnError = async (title, details) => {\n  console.error(title, details.error, details.uid);\n};\n\nconst adapter: JoSkAdapter = new RedisAdapter({\n  client: await createClient({ url: process.env.REDIS_URL }).connect(),\n  prefix: 'cluster-scheduler'\n});\n\nconst options: JoSkOption = { adapter, execute: 'batch', concurrency: 16, onError };\nconst jobs = new JoSk(options);\n```\n\n## Examples\n\nUse cases and usage examples\n\n### CRON\n\nUse JoSk to invoke synchronized tasks by CRON schedule, and the [`cron-parser` package](https://www.npmjs.com/package/cron-parser) to parse CRON expressions. The example below uses `cron-parser@^5` (v5 renamed the entrypoint to the `CronExpressionParser.parse()` static method).\n\n```js\nimport { CronExpressionParser } from 'cron-parser';\n\nconst jobsCron = new JoSk({\n  adapter: new RedisAdapter({\n    client: await createClient({ url: 'redis://127.0.0.1:6379' }).connect(),\n    prefix: 'cron-scheduler'\n  }),\n  minRevolvingDelay: 512, // Adjust revolving delays to higher values\n  maxRevolvingDelay: 1000, // as CRON schedule defined to seconds\n});\n\n// CRON HELPER FUNCTION\nconst setCron = async (uniqueName, cronTask, task) => {\n  const next = CronExpressionParser.parse(cronTask).next().toDate();\n  // Guard against clock skew: parsed \"next\" can land in the recent past.\n  const initialDelay = Math.max(0, +next - Date.now());\n\n  return await jobsCron.setInterval(function (ready) {\n    const upcoming = CronExpressionParser.parse(cronTask).next().toDate();\n    ready(upcoming);\n    task();\n  }, initialDelay, uniqueName);\n};\n\nsetCron('Run every two seconds cron', '*/2 * * * * *', function () {\n  console.log(new Date());\n});\n```\n\n### Pass arguments\n\nPassing arguments can be done via wrapper function\n\n```js\nconst jobs = new JoSk({ /* ... */ });\nconst myVar = { key: 'value' };\nlet myLet = 'Some top level or env.variable (can get changed during runtime)';\n\nconst task = function (arg1, arg2, ready) {\n  //... code here\n  ready();\n};\n\njobs.setInterval((ready) => {\n  task(myVar, myLet, ready);\n}, 60 * 60000, 'taskA');\n\njobs.setInterval((ready) => {\n  task({ otherKey: 'Another Value' }, 'Some other string', ready);\n}, 60 * 60000, 'taskB');\n```\n\n### Async/Await with ready() callback\n\nFor long-running async tasks, or with callback-apis it might be needed to call `ready()` explicitly. Wrap task's body into `process.nextTick` to enjoy `await`/`async` combined with classic callback-apis\n\n```js\njobs.setInterval((ready) => {\n  process.nextTick(async () => {\n    try {\n      const result = await asyncCall();\n      waitForSomethingElse(async (error, data) => {\n        if (error) {\n          ready(); // <-- Always run `ready()`, even if call was unsuccessful\n          return;\n        }\n\n        await saveCollectedData(result, [data]);\n        ready(); // <-- End of the full execution\n      });\n    } catch (err) {\n      console.log(err)\n      ready(); // <-- Always run `ready()`, even if call was unsuccessful\n    }\n  });\n}, 60 * 60000, 'longRunningTask1h'); // once every hour\n```\n\n### Clean up old tasks\n\nDuring development and tests you may want to clean up Adapter's Storage\n\n#### Clean up Redis\n\nTo clean up old tasks via Redis CLI use the next query pattern:\n\n```shell\nredis-cli --no-auth-warning --scan --pattern \"josk:default:*\" | xargs redis-cli --raw --no-auth-warning DEL\n\n# If you're using multiple JoSk instances with prefix:\nredis-cli --no-auth-warning --scan --pattern \"josk:prefix:*\" | xargs redis-cli --raw --no-auth-warning DEL\n\n# If useHashTags is true:\nredis-cli --no-auth-warning --scan --pattern \"josk:{prefix}:*\" | xargs redis-cli --raw --no-auth-warning DEL\n```\n\n#### Clean up MongoDB\n\nTo clean up old tasks via MongoDB use the next query pattern:\n\n```js\n// Run directly in MongoDB console (default prefix `default`):\ndb.getCollection('__JobTasks__default').deleteMany({});\n// If you're using a custom prefix:\ndb.getCollection('__JobTasks__PrefixHere').deleteMany({});\n// Lock collection (shared across prefixes by default):\ndb.getCollection('__JobTasks__.lock').deleteMany({});\n```\n\n#### Clean up PostgreSQL\n\nTo clean up old tasks and lock for current prefix via PostgreSQL:\n\n```sql\nDELETE FROM josk_tasks WHERE prefix = 'default';\nDELETE FROM josk_locks WHERE lock_key = 'josk-default.lock';\n\n-- If you're using custom prefix:\nDELETE FROM josk_tasks WHERE prefix = 'cluster-scheduler';\nDELETE FROM josk_locks WHERE lock_key = 'josk-cluster-scheduler.lock';\n```\n\n### MongoDB connection fine tuning\n\nFor replica-set tuning, dedicated-DB recommendations, the maintained index inventory, and notes on Mongoose / CosmosDB / DocumentDB compatibility, see [`docs/mongodb.md`](docs/mongodb.md).\n\n## Prefix mapping\n\n`prefix` isolates scheduler state per adapter. Same prefix = same shared queue; different prefixes = isolated namespaces. The default value is `default` across all adapters.\n\n| Adapter | Storage layout for `prefix: 'app'` | Notes |\n|---|---|---|\n| Redis | Default keys: `josk:app:schedule`, `josk:app:tasks`, `josk:app:lock`. With `useHashTags: true`: `josk:{app}:schedule`, `josk:{app}:tasks`, `josk:{app}:lock`. | Hash tags keep all keys on the same Cluster slot. Prefix must match `/^[A-Za-z0-9_\\-:.]+/` — special characters (notably `{` and `}`) are rejected to protect Cluster routing. |\n| MongoDB | Collection `__JobTasks__app`; lock collection `__JobTasks__.lock` (shared across prefixes, scoped by `uniqueName` field) | Override the lock collection with `lockCollectionName`. Keep collection names short — Mongo's name limit is 120 characters including database name. |\n| PostgreSQL | Rows in `josk_tasks` filtered by `prefix='app'`; lock row in `josk_locks` with `lock_key='josk-app.lock'` | Table names are fixed. Use prefix for tenant/environment isolation. |\n\n## Operational FAQ\n\n### How do I monitor stuck tasks?\n\nSet a long-running task to throw or skip `ready()` past `zombieTime`. The `onError` hook fires with `'One of your tasks is missing'` (only if `autoClear: false`). For active observability, query the storage directly: Redis `HLEN josk:prefix:tasks` (or `HLEN josk:{prefix}:tasks` with `useHashTags: true`), Mongo `db.__JobTasks__<prefix>.countDocuments({ executeAt: { $lt: new Date() } })`, Postgres `SELECT COUNT(*) FROM josk_tasks WHERE prefix='<prefix>' AND execute_at < (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) * 1000)::BIGINT`.\n\n### How do I handle storage restarts?\n\nJoSk swallows adapter errors and retries on the next tick. The scheduler self-recovers once the connection is healthy. Locks held by crashed nodes self-expire (Redis: PEXPIRE, Mongo: TTL index, Postgres: `locked_until` compared against server time on next claim).\n\n### `one` vs `batch` execute mode?\n\nUse `batch` for normal throughput — it claims due tasks in chunks and reduces storage round-trips. Switch to `one` if you need smaller execution bursts per instance, finer fairness between cluster members, or if your handlers contend on the same downstream resource.\n\n### Jitter: Why is my interval running every `delay + maxRevolvingDelay` ms?\n\nJoSk polls between `minRevolvingDelay` and `maxRevolvingDelay`. The effective interval is `delay + (poll latency)`. Lower `maxRevolvingDelay` for tighter intervals at the cost of more storage reads.\n\n### What about clock skew between nodes?\n\nRedis uses relative `PX` TTL. Postgres derives lease expiry from `CURRENT_TIMESTAMP`, so app-node clock skew does not change lock lifetime. Mongo stores app-generated dates and uses a server-side TTL index for cleanup; keep Mongo app nodes time-synchronized.\n\n## Notes\n\n- This package is perfect when you have multiple horizontally scaled servers for load-balancing, durability, an array of micro-services or any other solution with multiple running copies of code running repeating tasks that need one cluster-wide claim per due tick, not one claim per server/instance;\n- Recommended floor — unique tasks shorter than ~2 seconds may overlap with the storage round-trip plus revolving delay; tasks ≥2s have stable execution gaps. Example tasks: [Email](https://www.npmjs.com/package/mail-time), SMS queue, Long-polling requests, Periodic application logic operations or Periodic data fetch, sync, etc.\n- Accuracy — Delay of each task depends on storage round-trip and jitter window. Trusted execution range is `task_delay ± (maxRevolvingDelay + Storage_Request_Delay)`. With default `minRevolvingDelay: 128` / `maxRevolvingDelay: 768`, expect ±0.8s + storage latency. Tighten the bounds for stricter timing at the cost of more storage reads.\n- Use `opts.minRevolvingDelay` and `opts.maxRevolvingDelay` to set the range for *random* delays between executions. Revolving range acts as a safety control to make sure different servers __not__ picking the same task at the same time. Default values (`128` and `768`) are the best for 3-server setup (*the most common topology*). Tune these options to match needs of your project. Higher `opts.minRevolvingDelay` will reduce storage read/writes;\n- This package implements scheduler locking via Redis key, MongoDB `.lock` collection, or PostgreSQL `josk_locks` table. Task claims are adapter-level atomic operations.\n\n## Running Tests\n\nSetup, full and targeted suites, coverage, and the Bun runner live in [`docs/testing.md`](docs/testing.md). Quickstart:\n\n```shell\nREDIS_URL=\"…\" MONGO_URL=\"…\" PG_URL=\"…\" npm test\n```\n\n## Why JoSk?\n\n`JoSk` is *Job-Task* - Is randomly generated name by [\"uniq\" project](https://uniq.site)\n\n## Support our open source contribution:\n\n- Upload and share files using [☄️ meteor-files.com](https://meteor-files.com/?ref=github-josk-repo-footer) — Continue interrupted file uploads without losing any progress. There is nothing that will stop Meteor from delivering your file to the desired destination\n- Use [▲ ostr.io](https://ostr.io?ref=github-josk-repo-footer) for [Server Monitoring](https://snmp-monitoring.com), [Web Analytics](https://ostr.io/info/web-analytics?ref=github-josk-repo-footer), [WebSec](https://domain-protection.info), [Web-CRON](https://web-cron.info) and [SEO Pre-rendering](https://prerendering.com) of a website\n- Star on [GitHub](https://github.com/veliovgroup/josk)\n- Star on [NPM](https://www.npmjs.com/package/josk)\n- Star on [Atmosphere](https://atmospherejs.com/ostrio/cron-jobs)\n- [Sponsor via GitHub](https://github.com/sponsors/dr-dimitru)\n- [Support via PayPal](https://paypal.me/veliovgroup)\n\n[npm-url]: https://www.npmjs.com/package/josk\n[badge-npm-v]: https://img.shields.io/npm/v/josk.svg\n[badge-npm-dm]: https://img.shields.io/npm/dm/josk.svg\n[badge-ci]: https://github.com/veliovgroup/josk/actions/workflows/test.yml/badge.svg?branch=master\n[ci-url]: https://github.com/veliovgroup/josk/actions/workflows/test.yml\n[badge-size]: https://img.shields.io/bundlephobia/minzip/josk.svg\n[size-url]: https://bundlephobia.com/package/josk\n[badge-cov]: https://img.shields.io/badge/coverage-~99%25-brightgreen\n[badge-license]: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n[license-url]: https://opensource.org/licenses/BSD-3-Clause\n[badge-node]: https://img.shields.io/node/v/josk\n[node-url]: https://nodejs.org/\n[badge-ts]: https://img.shields.io/badge/TypeScript-ready-blue\n[ts-url]: https://github.com/veliovgroup/josk#typescript\n[badge-bun]: https://img.shields.io/badge/Bun-%3E%3D1.1.0-black?logo=bun\n[bun-url]: https://github.com/veliovgroup/josk#bun-runtime\n[badge-meteor]: https://img.shields.io/badge/Meteor.js-ostrio%3Acron--jobs-red?logo=meteor&logoColor=white\n[meteor-url]: https://packosphere.com/ostrio/cron-jobs\n[badge-deps]: https://img.shields.io/badge/dependencies-0-brightgreen\n[badge-sponsor]: https://img.shields.io/github/sponsors/dr-dimitru?label=Sponsor\n[sponsor-url]: https://github.com/sponsors/dr-dimitru\n[badge-donate]: https://img.shields.io/badge/Donate-PayPal-00457C?logo=paypal&logoColor=white\n[donate-url]: https://paypal.me/veliovgroup\n","readmeFilename":"README.md","users":{"mjurincic":true,"dr.dimitru":true}}