{"_id":"@12-apps/jobs","_rev":"46-860cab1552cab24966a1777208c2749d","name":"@12-apps/jobs","dist-tags":{"latest":"4.6.0"},"versions":{"1.0.0":{"name":"@12-apps/jobs","version":"1.0.0","license":"MIT","_id":"@12-apps/jobs@1.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bce859cc2d747d43cb4adc50ce6cc01e51a827a3","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.0.0.tgz","fileCount":14,"integrity":"sha512-cITLv284JonPwjenjJfTBzjPjDOgwDfGHlg81x3ZY9xKGDRVuJOZvkZa/ikJzvDlxhrur2nom1Tgfw4jD29KIw==","signatures":[{"sig":"MEUCIQCAas40n3jr49qcOJNbSq0/1D7FCQtMHaIuc35gmL+4xQIgHP3xjaR49395SiSFrdM8jzmAiRycGGe3BfzemK2Gagw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"e1d0b7c4524e3a0cee4c80ebbf0bb7c11ee536f2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"tigredonorte","email":"tigredonorte3@gmail.com"},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.1.0","@12-apps/typescript-config":"^1.1.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.0.0_1785896240327_0.33477328021319264","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@12-apps/jobs","version":"1.2.0","license":"MIT","_id":"@12-apps/jobs@1.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3ced72b92e0cff4114b3b406f6cb07f23db8cf60","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.2.0.tgz","fileCount":14,"integrity":"sha512-IDNSFbj7EQH328dQUEtXxOgatzCfL6loMS+uWpXS49aFHOMzS6hnfNDXGI2Wi5pXzB+u6XnSNrxbz6mW+0KCrg==","signatures":[{"sig":"MEUCIQCRICnkSrstPL/T1fxuYH/0o505NtePom8Q0wVDpXY/SgIgGxB5cMY5GHuu8MwO6kd8VRbx8UTSVpGyN6eOnf7BrTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"d05da896cc8a43f54fec717c51429eefed6682d3","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.3.0","@12-apps/typescript-config":"^1.3.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.2.0_1785946164151_0.8539656473901223","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@12-apps/jobs","version":"1.2.1","license":"MIT","_id":"@12-apps/jobs@1.2.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"0e39e343277a21c162eaab731854052689ce9c66","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.2.1.tgz","fileCount":14,"integrity":"sha512-SIgjMLr0s8Ax2FG+twV1UdZjHKfaKN/XJ8BubQxZYTiWY4k7dQv8pFT31ek8U4dQv0NncNDrU4FqZzeZDFbGgw==","signatures":[{"sig":"MEQCIAX4zn2Q5qY1PJn0oEp+XlZxnA1YAupBmV7TaMbbR3eSAiAjelCyDPbGKF5AYk9eqoAWzsbtfizAuIeU3Y4Rvp3k2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"6a59470cbaaf679bd15ec21462bb500a5843db54","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.3.1","@12-apps/typescript-config":"^1.3.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.2.1_1785949559157_0.6795455680843683","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@12-apps/jobs","version":"1.3.0","license":"MIT","_id":"@12-apps/jobs@1.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2a48ea944df0ce85403e5a66f06a2336ac9131e2","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.3.0.tgz","fileCount":14,"integrity":"sha512-A2OWLkKFB+Auc/2atoacSePDB6h6MyUtFezvum8V9405OGeu9BpXyv3Z+hmxPSbg/SNmCKcJujE02kYumXJC0g==","signatures":[{"sig":"MEQCIBBZojQLuAmOF30+LcizA5Xd88zuV+Y7TJrUAinZ7XrwAiBhONh+qWpjR3CV8ragMozEDHGLpAiHEo8ELWpZh7uI8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"f52a264eaaba821a536b1f2a3fcfae9a6cc4f7c7","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.4.0","@12-apps/typescript-config":"^1.4.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.3.0_1785954812157_0.5383262465567138","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@12-apps/jobs","version":"1.3.1","license":"MIT","_id":"@12-apps/jobs@1.3.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"222dc70afaacb8e92389e4ba9cdd4686c774aa51","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.3.1.tgz","fileCount":14,"integrity":"sha512-BgUH4f0QYB7cPUx+7sbDcmo1ul/UIKE296FNcIo/gMOCKyz3j8EAPocncibeFEdLZ73L4w+fVbiBGc1s1C+MkA==","signatures":[{"sig":"MEYCIQCiNMSYx2NinMAX/ScGJxWQ1Rd4eQWJAkgLQ9AqvporuQIhAMrgTWqJLyqvMhO08WvT9Ap87GRJe1plw/0RdlUFCFa1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"4067cf613069590fbad29cf687882ba0f49e1073","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.4.1","@12-apps/typescript-config":"^1.4.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.3.1_1785955879881_0.38034943886287986","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@12-apps/jobs","version":"1.4.0","license":"MIT","_id":"@12-apps/jobs@1.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5d8d2310568eb8d228c8d5e80bb0ef36a16c06cb","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.4.0.tgz","fileCount":14,"integrity":"sha512-nIIPOeuXIISCF8uqwt8gwN6At7soDR0Y94RnoLuDH8j5qR+8gfpCdeScMU66MrXUhW29M1uB6BTBsYeKPfrG/w==","signatures":[{"sig":"MEYCIQDvnEMp9HNPVYtWJc/visKihDLH48tFn84koh2r39y5NAIhALBUD+w8yrpqaOrMkV+5M+ZaYoV2DqA0GftlRsPDdO4U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45810},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"9ac31454f10150e8721e44c9a38b8bb1d545dfea","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.0","@12-apps/typescript-config":"^1.5.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.4.0_1785966170350_0.697289670375348","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@12-apps/jobs","version":"1.4.1","license":"MIT","_id":"@12-apps/jobs@1.4.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"934894b89111c2c46ba67e9ecd9a7b40f09eb2f1","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.4.1.tgz","fileCount":9,"integrity":"sha512-EuzP7uSxoXjT0006r1ToqZ2Ug5VnQk0VSt2OnwWzFMhv36l/HHkwqUu3coFf1W+6E2z6K8usv3WU6nJQUX0HTA==","signatures":[{"sig":"MEQCIC73UX0LfdRcOhfU6ngkdSYago3BHT9lKAqvfOKidCl4AiA+9I2qVUUmu7vQSMYAe9ZBlwcPmOTqheeUQ5OTiq38NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"81e7421d24f622d31b501c3562db19b0c6943936","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.1","@12-apps/typescript-config":"^1.5.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.4.1_1785978932695_0.7525434149159791","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@12-apps/jobs","version":"1.4.2","license":"MIT","_id":"@12-apps/jobs@1.4.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"f3bfe20a339043e010d9f5a1880b0c997efefce2","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.4.2.tgz","fileCount":9,"integrity":"sha512-7IcWw/szmN0C+KwGj+87F8AYslkKHuaTr27Dw1v/3k7wgpYhB04ulXWDWDrjhzV5f+6mE+ReiJSIHV3jN7X37g==","signatures":[{"sig":"MEYCIQDiMiOTldkYb+bx+4CSdrv7QD9zhwlBDDVY6jhGDbXRvgIhAOaW3j6GS9x4efjMt96EPiXBfoycLv74SoqNWerlwZBU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"5b3c6dcbe2388e8e91037c253168e74a6bb3a8bf","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.2","@12-apps/typescript-config":"^1.5.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.4.2_1785992438665_0.7865066915499082","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@12-apps/jobs","version":"1.4.3","license":"MIT","_id":"@12-apps/jobs@1.4.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"0d6d2adc988952d66fe1b4ed95c002564b440b3a","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.4.3.tgz","fileCount":9,"integrity":"sha512-s0iSDg7uUFuYJtC2tYVVz+J00kpnjAt3R56L2XxfQI0h3v/9c/lRvjO0QkuLknjHIRotutBQZ8WLwIDWvRSkdg==","signatures":[{"sig":"MEYCIQCAeFT434zGbogVzCz2y2r+yNDlGfCrP6bqltBb9O7a7QIhALUsfhPQhhcLbcunlTix0L4ypUKhG/nxmY4i20b56uFd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"f57c50c67e9ea99974be5dcae253e526be4090d9","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.3","@12-apps/typescript-config":"^1.5.3","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.4.3_1785993066055_0.6452683283076279","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@12-apps/jobs","version":"1.5.0","license":"MIT","_id":"@12-apps/jobs@1.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"a870f485141f315868eccef241b9841bb387a710","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.5.0.tgz","fileCount":9,"integrity":"sha512-TU+rWnCk1MsETJgi0wE/RlcOmTfHmCG9onPXw2B4nqdMAxyKe0xs2eWFrkoKl7cjsiKNXnJz/5skNffiNoISWQ==","signatures":[{"sig":"MEQCIGPHsZhjUZHfInyHqv3fo9Anlousz++tf4AAWfVj/5PwAiAt230Ig6sKQpQBzzgpM7twPRqI5c/jieHUOibPTe0pKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"8e0cd152236f2f1e72297beceba8334893f28e2a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.0","@12-apps/typescript-config":"^1.6.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.5.0_1786030884490_0.6251340787905719","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@12-apps/jobs","version":"1.5.1","license":"MIT","_id":"@12-apps/jobs@1.5.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"13585a623a012e3e15a6d8dbb3955e84b9469835","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.5.1.tgz","fileCount":9,"integrity":"sha512-wOExvJOy/nU47cCXeDBimLceZcBGMHKcCoaoqlzDdVoH8TiI48gmN287GsFLMCYoXnW4hlNOLzac9/F4nCLAAw==","signatures":[{"sig":"MEQCIAbiQyvpC4frZoPTAXgb+kbypL2AGDU3PeRu0BpUd1bPAiB6hY4DfE+a3HqPKdF/gMiKktr/+D+Wzy7ReqejreR9rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"15f8407ccc08a7d53484c2d3d701a8b1eb28639d","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.1","@12-apps/typescript-config":"^1.6.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.5.1_1786059869825_0.17657729925144738","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@12-apps/jobs","version":"1.5.2","license":"MIT","_id":"@12-apps/jobs@1.5.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"4987fb09335462fac98dbc0bb4db9b22ff4d1290","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.5.2.tgz","fileCount":9,"integrity":"sha512-KUK29kocplZecWV9KGhtqKryAEDUrlC+YIg2YCuJ13QJdjSEFcAYeU1448RV0N5dGYnCMxyVOVteRoeyyEQtuQ==","signatures":[{"sig":"MEUCIQDM/g1Jx0srkt/evfcgIdAia27Wwfca8BbWtmWHZSg8vAIgXvBS1bcT/mMgGxYQ4YKGjq8fFx/c/AziM0aQqH9EU6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"5b1ad4d8fc1948a6a2494d48f84552644bd57405","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.2","@12-apps/typescript-config":"^1.6.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.5.2_1786061388373_0.9625423186799247","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@12-apps/jobs","version":"1.5.3","license":"MIT","_id":"@12-apps/jobs@1.5.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c966dac3a18faf6059c4881c8e641bb8c963aab9","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.5.3.tgz","fileCount":9,"integrity":"sha512-vZLZh4djvo2BHfFIkkg9THWUBr9xW3yWZLakWus5eYB/DFmDLewaZIFUxbLClMNkwpbR6nnrVNPafQ1ury/7Ww==","signatures":[{"sig":"MEYCIQC2NQfXFKxAjCuQTUN7eHJpJYDkLv169vxF5+a+y2CwUwIhAKGMtJkWmEjmjY0kvagUz/AHUYg/mZv9HbJRS+hPbOFq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"8ba6d6ad47840a83c06c146ef654227af5104a8e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.3","@12-apps/typescript-config":"^1.6.3","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.5.3_1786066343563_0.26686582605025766","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@12-apps/jobs","version":"1.6.0","license":"MIT","_id":"@12-apps/jobs@1.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"578df551cf37316395454086ce7a0d5c89249637","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.6.0.tgz","fileCount":9,"integrity":"sha512-zuXuXegjJsRrijx5/CvU9ganStOSeo+94oudiH78YtJmDS6Kvhi7y3NVyExWRF+ZbNOF5HDJvSk2jyAK3OHoqQ==","signatures":[{"sig":"MEYCIQCY8fqhSjXF2Vxu+tWfqMVI7MJe0vVa3mh7bC0sT0z7dgIhAOpUskFHeQ0yyw/mfM0WhpxOtldasgi16BH9zoyXL+nh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"1dbc1469b614c0f8b0f50e0116c4be4e99f39256","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.7.0","@12-apps/typescript-config":"^1.7.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.6.0_1786069511819_0.48006901586680106","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@12-apps/jobs","version":"1.7.0","license":"MIT","_id":"@12-apps/jobs@1.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"accd3d43ab8325f68492cb96c904bfbeb28861cd","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.7.0.tgz","fileCount":9,"integrity":"sha512-XpXIQjJNZLuAvppjkkOwLBi8gv82JarS6iKDQ3rVq3sDUIoPg9AgQXsZYXcjkX3jgOaBH+T/YXDHmEiTAnwXkQ==","signatures":[{"sig":"MEUCIQCDtVrMnWeaX7c2yEMpTaGjnXPeSjfmE4XExGeDnu6tQgIgKJKCqyT7qzkgp08PfYgZ6yNo+CE3EMrCLiGeuF5OqWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"6d34a3a466269e83fcce802ee81df261bfb14523","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.0.1","@12-apps/typescript-config":"^1.0.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.7.0_1786076487897_0.6513684951987166","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@12-apps/jobs","version":"1.7.1","license":"MIT","_id":"@12-apps/jobs@1.7.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8555da5e80e689b003f4151a07024c272c30cd45","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.7.1.tgz","fileCount":9,"integrity":"sha512-e1Uc9PRsE5Jj/ETco0gqH5naU+U7eBK1KCVlGkt/qyBM3sbb+NFpQYbNVrVTxLuJT96aftUdce+7f8lCxS9eRw==","signatures":[{"sig":"MEYCIQDCTuHqJSRdjlOui2X5ABHpY5V+320YvtfFuxycr2u5QwIhAPAhIUUziAqJ+QqMgadJF+7POrrb+gc/xISaZCrSPZ+A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"2e9d99f013ab8d5373a4e32a01a9c0221bd12190","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.8.1","@12-apps/typescript-config":"^1.8.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.7.1_1786077089259_0.9931913466530846","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@12-apps/jobs","version":"1.8.0","license":"MIT","_id":"@12-apps/jobs@1.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ce2fa9b8797596013ec1ec3100b4e5b0a90530c1","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.8.0.tgz","fileCount":9,"integrity":"sha512-/Xs9IoRJdn4qXPNfZXm3aKDnzqoRu9YuHW8pO7+6cx+wGJ1pQPtbd417sJEIhoPJVriQCZy8mOOTkMZqGURXbQ==","signatures":[{"sig":"MEUCIQD51KrcYCnOoThpLa7UfWel8Teqw/+Ko8xg70UBrhn3kQIgX1ULjTzpRXSHams21lkUlN2Ml7WI6dKt5zRk0PMWgxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"7bfcec03feb4cfeb6db70c9dd7b69a936a1687bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.9.0","@12-apps/typescript-config":"^1.9.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.8.0_1786089705470_0.8074540921805138","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@12-apps/jobs","version":"1.8.1","license":"MIT","_id":"@12-apps/jobs@1.8.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"7138a508ea63d5f1267d25a371a0d5472e915e7d","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.8.1.tgz","fileCount":9,"integrity":"sha512-f1HMYwWkspjUJYHp9M021FcJ42rB5531bfR+4TGaiSChAT5AIv+1EqeLPFl40x08DdbNTxTpMmHZJKeXqCGGHA==","signatures":[{"sig":"MEQCIBAwfuJGD3vYgIpchainY6k5t2wojL7cI7O2fzLXOt6IAiBGORmvbdrMS7/uWlQoUYTQCY+wsDHW5dco84UCwBmWtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36091},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"e7605e656458d821164b2c47ee7fe9d7d4d790bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.9.1","@12-apps/typescript-config":"^1.9.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.8.1_1786093365102_0.5214437440751867","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@12-apps/jobs","version":"1.9.0","license":"MIT","_id":"@12-apps/jobs@1.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"376a66958d5a5f36a22f6d2a752cf2fd55e7a44f","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.9.0.tgz","fileCount":9,"integrity":"sha512-Dxxtq1797IXtbNSt6zU84hamgN/WWy7MnrpTjrkAMv1j8dpUMG5ipxkd3g9rNGRRKVArsEe55Eh+rsamOMsTyQ==","signatures":[{"sig":"MEUCIAK1++VA/eVyh3fIeOdd6s832uhQCeUsDcGM6iBHxrqYAiEAzv3M9Gps+DBaXHVg1R5VfmzsAHJcw+iDOzGK0uqP1HY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36093},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"6bfe86e2215d81dffd8f616dad4aa181f027548b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.10.0","@12-apps/typescript-config":"^1.10.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.9.0_1786100267812_0.4927586705435938","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@12-apps/jobs","version":"1.10.0","license":"MIT","_id":"@12-apps/jobs@1.10.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8508fe14b93b7436cad82d523417c9f409f81ce3","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.10.0.tgz","fileCount":9,"integrity":"sha512-56yvwGgxt8eFplWtE7rCdxCQ8ylw0atOgRwSXzqkmO2Bowh1IjYAqbi7ExJ7F/ZQLYU9jECSpXy7BGXepJllRw==","signatures":[{"sig":"MEUCIE+eb+TsCS/yXXH8TnOWSmDWB3zNxTeDZCLgBe+E2cZwAiEApy7ZY54tHwl4DEBtZZP4se0nOQjoH8hrGUzedo9+NVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"ca77c6e24bbdd7ce427c8003f0de2444c95d88cf","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.11.0","@12-apps/typescript-config":"^1.11.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.10.0_1786103542617_0.6090560660544762","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@12-apps/jobs","version":"1.10.1","license":"MIT","_id":"@12-apps/jobs@1.10.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2c32d08feda9152c1ccf3fd291877d0b86580c43","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.10.1.tgz","fileCount":9,"integrity":"sha512-w+vqGLCo93zjAMkTwgOBtjl0U9YIWmSEMphuFTM0adQLswJ49nL9MftL0EtNRR0Bke1zyr2Sfs/J+RLYCdpRhw==","signatures":[{"sig":"MEUCIQDiwCev6ThVOudD8ORwT03EwMSxHh58j6hXdxt+3mYXSwIgKxWZgYYlA/RrACfRIprELVWptDa+yQw15tNEPthXSfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"b1c4a9ee167c219178d1933083ccaa44ba467ca2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.11.1","@12-apps/typescript-config":"^1.11.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.10.1_1786108045709_0.007027879778066293","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@12-apps/jobs","version":"1.11.0","license":"MIT","_id":"@12-apps/jobs@1.11.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"0c220b8150e0201efc3322eb0199cb2b4d638ae3","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.11.0.tgz","fileCount":9,"integrity":"sha512-GXt/1k2rQc0JHQxXGcyQ33/X+RO/1a431cbVHQ/C9YYKtCIxqHAbDWAx3LwB464AxHY39s1Z4tWt4a49h9xvLA==","signatures":[{"sig":"MEQCIHSWn/3Ymfk/HPcK2mDbj7vZO8eCO95Nn72BKPfE4W+IAiAfsEYj0SoFKvPcWqhV8X/qgrcoVZY9Tqgmw2lt4KSE1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"ec6d74e8ae3156dc9294ef46e3fd05dcdf8b6af4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.12.1","@12-apps/typescript-config":"^1.12.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.11.0_1786117829640_0.828931735465807","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@12-apps/jobs","version":"1.11.1","license":"MIT","_id":"@12-apps/jobs@1.11.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3511f3bf3755c6542a5bcdf52cfa2b114904b471","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.11.1.tgz","fileCount":9,"integrity":"sha512-GU7AOdZKxw+6g0kGAQBCzODJ8mAA+Lz818gAf3NAAfdaDi8kH8zLnPEWoA6iqTEp6z/9MwXge4/y6EBIkqOb0w==","signatures":[{"sig":"MEYCIQCrzER6E8kmnI7/clTZC7Kcj7Zf0png1ScSygXbWwkSgAIhAMEfjspZDEwP3gCc6n2lYJR73tJ8r0I/BEjc7oKDHodH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"e9fa4d72f92e37490fec1f39348375e9e34bf2ee","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.12.2","@12-apps/typescript-config":"^1.12.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.11.1_1786127707885_0.6247708211394825","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@12-apps/jobs","version":"1.12.0","license":"MIT","_id":"@12-apps/jobs@1.12.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bf93c01e31f9ac68b33880a6ce3e3a53983883a6","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.12.0.tgz","fileCount":9,"integrity":"sha512-hpEwdz1h1cqeyJe78IVcDLiYEjXbOypV5NJCe9ED+K6KHX9wH3QLXHPxJthU2BYL/74Tu9buimn3Tu0bRCU9tQ==","signatures":[{"sig":"MEUCIQDFStqbJq6u4vFrnEAgeC3z6n4BSXMrWihKY+ewlwEZDAIgLs+zbIbjC2Xo/6zHStcKX8vvXlbQIly7p2J4prh+BvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"903862a6809118567baa5931596f484c3ff8ff37","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.13.0","@12-apps/typescript-config":"^1.13.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.12.0_1786128514483_0.7184528386948539","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@12-apps/jobs","version":"1.13.0","license":"MIT","_id":"@12-apps/jobs@1.13.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"dc23ec94370f3a01b60aea798f5d4df56525e7cb","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.13.0.tgz","fileCount":9,"integrity":"sha512-SDrFgixQWGgV0ZgKOUQYdE5y6uf4JAINDRthufabmdYdOsGyLrg9Ay62PXqFWmvQm2EMVUgokkpU3Og+pwGSQw==","signatures":[{"sig":"MEYCIQC9JiSluzSU+ScZUCmgDsPFM3OkSzOlDlbTx0IcMiUZ4wIhAMHlpkY3sII1SP72Lti3ev93TjZFHuQbRcX3Wd20G8eJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"e04431a199d9e9beacb90ed14ef9dd7d779b426a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.14.0","@12-apps/typescript-config":"^1.14.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.13.0_1786132154265_0.055957668131954685","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@12-apps/jobs","version":"1.14.0","license":"MIT","_id":"@12-apps/jobs@1.14.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c79918db87b508100d4c25e928e13559f23bd8ad","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.14.0.tgz","fileCount":9,"integrity":"sha512-fhLUX+oQnC8KhzfMtL5suG6rKUmOTyI+If9M7nkLn3b5vS8RWmlLwA221Xo6gcERZ1mF4/XCyr/hPgdJ6hzgsQ==","signatures":[{"sig":"MEUCIETp2/YQTzytRDqwJYFoEON5aix249y9uJSSmfHlrEQ7AiEAvU90ZtTds0NhzbufHoaZmGrVmjM+iGO+4vjn/JVWWEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"f9c9457f43bc8c265f81d27b8d3bb5f250fce11e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.15.0","@12-apps/typescript-config":"^1.15.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.14.0_1786132987388_0.8003912229557753","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@12-apps/jobs","version":"1.15.0","license":"MIT","_id":"@12-apps/jobs@1.15.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"67cd6ff28d8f52540406db192657ed6326c0005a","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.15.0.tgz","fileCount":9,"integrity":"sha512-Kp8bA5Swb0USVKwhImaYEbuO9XAHoCsckITA4ofTlwcP6n89oE4znWw9TGYuG1JOvlQBzQJ2AoW+wFGx1WLruQ==","signatures":[{"sig":"MEUCIQDLgvVDrhG03GgM2UMcABHjrWZyEm+sU7iXqB6Qj4NxhgIgQiXP0zPbEaXmJAEzyp7AuddHjnCjWRptQERuJBElpec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"ebccb7d5693b1f1340342b72139daef11fc81223","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.16.0","@12-apps/typescript-config":"^1.16.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.15.0_1786133688398_0.5020905099808157","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@12-apps/jobs","version":"1.15.2","license":"MIT","_id":"@12-apps/jobs@1.15.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"08e57c4078082cec7b7208a0eec5aef266cac890","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.15.2.tgz","fileCount":9,"integrity":"sha512-B0GSuR33tbPTy13TQu+rLlRiNeIlWPEBbV+2Orj3wGfVsMKD6zp5wwCAv1qfCYV+nVazMAraOi7dUi5g4OuXlQ==","signatures":[{"sig":"MEUCIH0Q7wV1hfju3kSiSJ7M4wGGipzOi1TE2+7LH7I4DxwSAiEAra1dChEVexfjzJ3UTyrYRhvNr1b7I67Yy9h0oPImLWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"bfd39495ffa882cae31b10538877b522984cbebc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.16.2","@12-apps/typescript-config":"^1.16.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.15.2_1786138834437_0.1689768763998365","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@12-apps/jobs","version":"1.16.0","license":"MIT","_id":"@12-apps/jobs@1.16.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"655a0e58dbf69271a13c6f656151eb2fce24f82e","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.16.0.tgz","fileCount":9,"integrity":"sha512-VG+sTyPBRBSt1hHaHbNKykN+FwcXG7hErLF+ppBebi0KycfOk5kqR0J0hEC2nZof3PI7I37UkOZv+3B0EpMzDw==","signatures":[{"sig":"MEUCIQC02gKkREnIEpMQWChAcHm3JicxUVi4Q2jGChkHzZLmwgIget/OXcxRz7v9GRpjC+G5Z5AwDs28pF7pgfGCN1jG2yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"2d4a0e9dbf04f79e2306b779f56f0dd5d079e09a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.0","@12-apps/typescript-config":"^1.17.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.16.0_1786145534093_0.7432209356704704","host":"s3://npm-registry-packages-npm-production"}},"1.16.1":{"name":"@12-apps/jobs","version":"1.16.1","license":"MIT","_id":"@12-apps/jobs@1.16.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b9ff5626872ff298d218580e18939441991d803f","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.16.1.tgz","fileCount":9,"integrity":"sha512-ZVuDFpzcigOVxAdJCqgTmxDiNqJQgEZFL5H8FamhOqtuNAUHtMgESE9x3cSeaPO5zkfF+EWww9Lv5hULAl/e3w==","signatures":[{"sig":"MEUCIGBTH7rsjecWt7gMZGv2EzTBl8QhewMxEsLAyrf0v9VVAiEAxgtszCU/wnJ8s8ML4oHPtH5xL0PfGh40M/VJyBjUngY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"f0356169f9682182eabba77485cf4772051235ae","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.1","@12-apps/typescript-config":"^1.17.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.16.1_1786146680828_0.780510696066377","host":"s3://npm-registry-packages-npm-production"}},"1.16.2":{"name":"@12-apps/jobs","version":"1.16.2","license":"MIT","_id":"@12-apps/jobs@1.16.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"4ffd3583552feead4ba627834d3c2b71b459e21e","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.16.2.tgz","fileCount":9,"integrity":"sha512-Jhzb3uQn3e0aCSMrEJT27s96RoP2+nzhv6KJeWg9nLf7QImIwCEwlbY9EZLhp7cFsYnhGH7P70kWp0J48C78ew==","signatures":[{"sig":"MEYCIQC1pUzsj5mj65DR6skTZ19MBAXEwMWQ8PRPU8YqRDNUxAIhAP5eI3qoMuiWbWkMuDcAni0Wxo6QIg8SxAYUDyqmOvWv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"4b2466cbe6cded4941ec25ef92cf41d7fab0697e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.2","@12-apps/typescript-config":"^1.17.2","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.16.2_1786159931847_0.20657331906246545","host":"s3://npm-registry-packages-npm-production"}},"1.16.3":{"name":"@12-apps/jobs","version":"1.16.3","license":"MIT","_id":"@12-apps/jobs@1.16.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2e67ba056496305adae9577dacdb966eef3ceae8","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.16.3.tgz","fileCount":9,"integrity":"sha512-J9/ZbA97Wi+2PBEwEw//DB7sMHTjRCDLOq0GoAUIsP4vUYiI0cJPOETOoIwj16U0gJbCRa8BhnBJ/kQGaz4mrw==","signatures":[{"sig":"MEUCIQC3Y7GoP5jNBd2ZJaDaHT8qSBbOT79s8mJeryPkHLBrVAIgPBZnRseykHMfuK9R2+pIe8ast+ugIVLSWpHT5wnO3V0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.16.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"ee3399530780d82beea32410802a945627ffe271","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.3","@12-apps/typescript-config":"^1.17.3","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.16.3_1786197905101_0.9741228870374996","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@12-apps/jobs","version":"1.17.0","license":"MIT","_id":"@12-apps/jobs@1.17.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"55e0e981db4362d8e7172471b9032620a2032aab","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.17.0.tgz","fileCount":9,"integrity":"sha512-6WrwLtJyBsUKOxjqEPPAuWrAVJbNSpFTXVq5LtLzpNehNIA1SYeH4ArFDjmuzL9MYKccNkaKMn4ZgFGFF/+GLQ==","signatures":[{"sig":"MEUCIQC1v1Y/gTg/ObrcIKYIa5N7ehidwTybguK1tqQcyLyYKQIgXfEQRSPZuAYfo7A0MppdnDG9kXvLseefA0oqUElMoV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"8af3c18e1811d042f30016a4ba43e74abc4b8c50","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.18.0","@12-apps/typescript-config":"^1.18.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.17.0_1786203879664_0.3520301307282949","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@12-apps/jobs","version":"1.18.0","license":"MIT","_id":"@12-apps/jobs@1.18.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bdda6bab2f5ae73b5dd6133affa05c482688cb57","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.18.0.tgz","fileCount":9,"integrity":"sha512-OzxY2eIqX82aVnI5dq2L2HKKBY6jTggHrIrpyYxG/3/gOa8MeXUs/NMnbX0MG+R8cjmJDuQ5jj2DbzJV0JF8BQ==","signatures":[{"sig":"MEUCIQCVeDNonIJCXsqlNjr5gB8BxXHqKSDTUkZ5r/CwWi96PQIgQRXzGxAyyMioCMOCjmo1Xod51d81Z3Q1fl6DROQr6p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"3a8eb1783f8cccce3b7ec49cb10e3e6d2c5d7310","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.19.0","@12-apps/typescript-config":"^1.19.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.18.0_1786206081003_0.21315524432003552","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@12-apps/jobs","version":"1.19.0","license":"MIT","_id":"@12-apps/jobs@1.19.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"1b12a5c095606761ab475f1b7a3c3bbfcbae2b38","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.19.0.tgz","fileCount":9,"integrity":"sha512-e7/5LCWlzz3xaUQhxsc6tG1WiuKktsOHilSlDli9kZ/ZdVckF8SGyel0pZhADKoDY8Q5HCzGkokV1mXMlV2jFQ==","signatures":[{"sig":"MEQCIDhV0N3XdXi1/hdsizr07tZ16x9WQ3+Rq7iOuzJB1XyBAiBj6Ng53MUS5k/uve25+KOBWf8GBK6eNDcJcKDGXSR9GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36094},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts"},"gitHead":"21bbb5b06424cf045eaad617a5912aa00d0c654b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests). Framework-free; knows nothing about the host app's domain, O","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.19.0_1786209428349_0.7485962775281849","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@12-apps/jobs","version":"1.20.0","license":"MIT","_id":"@12-apps/jobs@1.20.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3f77adb420c3b89100c22f7871dc3f72ad2ac31f","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-1.20.0.tgz","fileCount":19,"integrity":"sha512-jFtBP4EPdu0T6qTn4cZsHWwvPkSciCmrtSk5fdwvyNegS7a1JtXTo+CPXn5w+9mu5PvlMyxUx3IeShrVz+LUIg==","signatures":[{"sig":"MEYCIQCs4kAHTBJGZkzEedjw2o044mclZLxrhPMJoITiF3pQsAIhALn1aX8EsqDHcC9la9Vd3V/kZnETnZY3bGlWYtUI7Vsd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93183},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"4d8a5f17d5a4379b059e7660b91932095cfd3ee4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_1.20.0_1786549755884_0.8346343549565836","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@12-apps/jobs","version":"2.0.0","license":"MIT","_id":"@12-apps/jobs@2.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"dd2d68317ec53606c43b8246b7b1245bb64f96df","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-2.0.0.tgz","fileCount":19,"integrity":"sha512-GS4pdl4QZrXQS4KNwalwxTi4tQKPwArFLHzHhPvvbEMWRYhPn6Tf4zu+eUN8BUh6Vi6pSWe4hp/ofIl6NdykjQ==","signatures":[{"sig":"MEUCIBcMX1vZaxOc+18JyX9mwSvSphOkmps5uk8B1qETLdP8AiEArCpPqxVKWzc4upSQWuI4c+YRXCvAxesl14cKvycNQ6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93174},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"5f6a9a9dd6fadbaacb19a80e0f2b76d85ef0b07b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.18.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_2.0.0_1786556871147_0.29658326710616256","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@12-apps/jobs","version":"3.0.0","license":"MIT","_id":"@12-apps/jobs@3.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"fe8551dd255f2a84c18d1b41739d1a8d53a87f02","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-3.0.0.tgz","fileCount":22,"integrity":"sha512-EKbg7q1PvN8A0ZdA7ZHf6cWX3x4zl+8NqxyeQIzavrR4GXbchwmEvCIVmV2bkkOQYEYm3P2npAZlQZuoVjIPcA==","signatures":[{"sig":"MEUCIQDk08F2OSuisXqxxNHzvbtFbJ7jPAVVRMZTdx3bjhPomgIgfKxh1/jYFP8Hs5NWj1HNC5XZGRKucUgVW/1qmq3vvAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135533},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"657775c150cb8fab3eaf79c8b48d92f95adc1d7c","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_3.0.0_1786711792456_0.7463530605485884","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@12-apps/jobs","version":"4.0.0","license":"MIT","_id":"@12-apps/jobs@4.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ed609ac3fd266efdc83d00f91c145d85fd713c51","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.0.0.tgz","fileCount":22,"integrity":"sha512-DX0os7k3Ivm5Q2qauNILyzX0REbmlzvfUyMfktXdHe4iN++2VyGo8OvgNRDxxiPl3eSnE/qkXozlu21hJDQ8lg==","signatures":[{"sig":"MEQCIFI1KceYU/S08KGGew4syNDT4OQwovn5LxHwPlzFRXQHAiBG4e/qRDN3igGRrB2msxaKizRJDiQW37Ry6IhBhVxH6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135533},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"f837d4958a5b21e02d2f02a1c008ff1d1a23937a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.0.0_1786800289517_0.13785820467817933","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@12-apps/jobs","version":"4.1.0","license":"MIT","_id":"@12-apps/jobs@4.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"187b49aeead44e1da0062c5506d45529ef5b7863","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.1.0.tgz","fileCount":22,"integrity":"sha512-pJpiT2yto5cc1u6Pz4nYZWvdCruyB//fLC/g4kE+VL/JeTUj0AEkbQmMtrq6wLUZWE8iEDJTDxSE/KMt4GQTLw==","signatures":[{"sig":"MEYCIQDuhQr3kseCy4saIkLthyWqXuhaWLTjH/gM78oGLOMQ7AIhANpC4Eb7IkRNx5iV/93AnHboTTLMIDVBJLZXZosbcsN5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135533},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"96eb4c415df62ceb17308a914c912abed5c35f64","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.1.0_1786805390698_0.9973423535127262","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@12-apps/jobs","version":"4.2.0","license":"MIT","_id":"@12-apps/jobs@4.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"1cc3dbfdf109eb5a195f40d651ee1b3dd138dea4","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.2.0.tgz","fileCount":23,"integrity":"sha512-htweqyefBPbSoOv5zBtibB+U3YErErmvf7MKZxykkWAf/XkshcjgYFnz9HEwe5EJyMRVu1Po75eETAdC9TlH8w==","signatures":[{"sig":"MEQCIAg/u8nMPqtXdS19TDgU2WXPzI1pYr22eNQhQGgJbp7vAiBg7IZqcAisUp8+Zt9W3U+ZiFk2dCip4qyjyN14KVpwEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148402},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./package.json":"./package.json"},"gitHead":"0b7f40064776c40f42ad34eb80e3d612e0cee0fd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.2.0_1787010606296_0.9797985753024954","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@12-apps/jobs","version":"4.3.0","license":"MIT","_id":"@12-apps/jobs@4.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"0522266682129290cb72a7994eff8eed019a54ff","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.3.0.tgz","fileCount":24,"integrity":"sha512-GRJqRtpfbQf9ll/wzqouTRAvA3IHHzyn+5eRRi6p5Va8j2WLzB7p55c9gAHyHr9s4au0uacJrvdGApIsoh1oQw==","signatures":[{"sig":"MEYCIQCZR2YQcyvbyj9IjwD4qeVzQZwcrjbzNAJQa1/Qc0oelgIhAMhuQ82i4u+2qVxUgiA4V2pDcu4SgD15tRnK7gsvIoxi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151091},"type":"module","wiring":{"env":[{"name":"REDIS_URL","description":"Set it and the queue turns itself on; unset selects the inline/off driver."},{"name":"JOBS_DRIVER","description":"bullmq | inline | off; unset picks by REDIS_URL and NODE_ENV."},{"name":"JOBS_WORKER","scope":"worker","description":"\"1\" on the ONE process that consumes the queue and runs schedules."},{"name":"JOBS_QUEUE_PREFIX","description":"Optional key prefix, to share one Redis across environments."}]},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json"},"gitHead":"9b1d9be6a3932a24aeaf538b9bd3d01aa1ff9b89","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.21.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.3.0_1787285158133_0.22096172629102417","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@12-apps/jobs","version":"4.3.1","license":"MIT","_id":"@12-apps/jobs@4.3.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"fa88ff176e4d0d7c174124846519355790fc266e","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.3.1.tgz","fileCount":24,"integrity":"sha512-r4o9hHGgSRxBBDudPx91dXhPNey1lTZznwbNqYdnXoWkmmho1oJIfMFhLQFe+fRVs2RjA/kJlIBDddhwOm4bsA==","signatures":[{"sig":"MEQCIFlPihHA/d6EKmjPTyWpn5mnzPG9sl0h5G3dKMwJyCmsAiApU/jrxfF3m1javnRwh3AohpGqdVIf8okqQtffHLBSaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151091},"type":"module","wiring":{"env":[{"name":"REDIS_URL","description":"Set it and the queue turns itself on; unset selects the inline/off driver."},{"name":"JOBS_DRIVER","description":"bullmq | inline | off; unset picks by REDIS_URL and NODE_ENV."},{"name":"JOBS_WORKER","scope":"worker","description":"\"1\" on the ONE process that consumes the queue and runs schedules."},{"name":"JOBS_QUEUE_PREFIX","description":"Optional key prefix, to share one Redis across environments."}]},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json"},"gitHead":"3c4711049bf8351685612372531c3cae1370bbbb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:401cbcd7-0a96-4a9a-a378-1d197b3f7d6f"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.3.1_1787327229808_0.6025074746611796","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@12-apps/jobs","version":"4.4.0","license":"MIT","_id":"@12-apps/jobs@4.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"03f798c6ed7ebcc1a027aaed975e4d8b4a3eb186","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.4.0.tgz","fileCount":24,"integrity":"sha512-+Y9U+Dloc3BhI9BD2P87kX6OqjfMfx0DdgFZtTs6xpc/WhPhozN7YEFXAiV+C+ehSouq7XEkt8e7dhcKJBV52Q==","signatures":[{"sig":"MEUCIQCdxuucXxFTqEF2MlNw7I741qjNMrNHQbf61YMw6okb4wIgAa6qE43X0EoiI+Kqmq9Dev9U0Z1NjdKr/dDNtVbcNnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151882},"type":"module","wiring":{"db":{"partial":"prisma/jobs.prisma","migrations":"prisma/migrations"},"env":[{"name":"REDIS_URL","description":"Set it and the queue turns itself on; unset selects the inline/off driver."},{"name":"JOBS_DRIVER","description":"bullmq | inline | off; unset picks by REDIS_URL and NODE_ENV."},{"name":"JOBS_WORKER","scope":"worker","description":"\"1\" on the ONE process that consumes the queue and runs schedules."},{"name":"JOBS_QUEUE_PREFIX","description":"Optional key prefix, to share one Redis across environments."}]},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json"},"gitHead":"bb484cd7dec9e17822ecdf07ea9e762a62d0bcc2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9045918-736d-4138-8772-19332caf4059"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.4.0_1787339717506_0.4324838072659607","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@12-apps/jobs","version":"4.5.0","license":"MIT","_id":"@12-apps/jobs@4.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"9c5d3b47cd760dd006adefbfc35769cec96a7094","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.5.0.tgz","fileCount":24,"integrity":"sha512-ZkQpqxuhMJeibVXTDKeBDeXPtjcZHi7gwSQ5JBOgMmdFUgsTPFtlpcGj867j8s1ZdN1Tx2r/+62uDpoRTA405A==","signatures":[{"sig":"MEYCIQDPK1KQcC/zCiXKBBDYKc9Z/TCPHLfKA9grwNcdyVy+OwIhANJGZzZyDsC/h8QtNTERI5qy08umqOCxBoE2No3evvA0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151906},"type":"module","wiring":{"db":{"partial":"prisma/jobs.prisma","migrations":"prisma/migrations"},"env":[{"name":"REDIS_URL","description":"Set it and the queue turns itself on; unset selects the inline/off driver."},{"name":"JOBS_DRIVER","description":"bullmq | inline | off; unset picks by REDIS_URL and NODE_ENV."},{"name":"JOBS_WORKER","scope":"worker","description":"\"1\" on the ONE process that consumes the queue and runs schedules."},{"name":"JOBS_QUEUE_PREFIX","description":"Optional key prefix, to share one Redis across environments."}]},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json"},"gitHead":"4714bd10c901bcc51544843d5d6091cc1509e649","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9045918-736d-4138-8772-19332caf4059"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.0.2","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.22.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/jobs_4.5.0_1787617809510_0.9550945708557503","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"_id":"@12-apps/jobs@4.6.0","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5fbfa60f7a48ed9e39d6cf0ee116f50a9ab1eaee","tarball":"https://registry.npmjs.org/@12-apps/jobs/-/jobs-4.6.0.tgz","fileCount":26,"integrity":"sha512-smm/U984Adm/1BeJLlO1+lEeC5VgkCbS1/aC4CjVPPnz/cDDpzHxY9ZbR8NbnEZ7G1U7tKRMdQw12UWctNurjA==","signatures":[{"sig":"MEUCIGw/PE227M5evsIqDT/daVU/SGdzDJYbNvu8WIRi7A3aAiEAusr3ZZDbDUSv8irEEVC5fnod5ZKP6gCmATvlBAgKHOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFYQsY/n2IRLoQVUxZ5dDI+P1KWfHgKW+ewTA2HCLZhpAiBJiYtHIHlt4B61i7t1CJkPrs7GuPKT4ekOwnN9f+l0sg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fjobs@4.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170203},"name":"@12-apps/jobs","type":"module","wiring":{"db":{"partial":"prisma/jobs.prisma","migrations":"prisma/migrations"},"env":[{"name":"REDIS_URL","description":"Set it and the queue turns itself on; unset selects the inline/off driver."},{"name":"JOBS_DRIVER","description":"bullmq | inline | off; unset picks by REDIS_URL and NODE_ENV."},{"name":"JOBS_WORKER","scope":"worker","description":"\"1\" on the ONE process that consumes the queue and runs schedules."},{"name":"JOBS_QUEUE_PREFIX","description":"Optional key prefix, to share one Redis across environments."}]},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./bullmq":"./src/drivers/bullmq.ts","./inline":"./src/drivers/inline.ts","./server":"./src/server/index.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json"},"gitHead":"811bd64f77bfecb483bdb1085ac10300004259a5","license":"MIT","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"version":"4.6.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9045918-736d-4138-8772-19332caf4059"}},"homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"_npmVersion":"12.1.0","description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","directories":{},"maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"bullmq":"^5.81.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.22.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0"},"peerDependenciesMeta":{"hono":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jobs_4.6.0_1790290120388_0.11136305336590269"}}},"time":{"created":"2026-08-05T02:17:20.146Z","modified":"2026-09-24T22:48:40.827Z","1.0.0":"2026-08-05T02:17:20.468Z","1.2.0":"2026-08-05T16:09:24.307Z","1.2.1":"2026-08-05T17:05:59.311Z","1.3.0":"2026-08-05T18:33:32.332Z","1.3.1":"2026-08-05T18:51:20.032Z","1.4.0":"2026-08-05T21:42:50.596Z","1.4.1":"2026-08-06T01:15:32.853Z","1.4.2":"2026-08-06T05:00:38.866Z","1.4.3":"2026-08-06T05:11:06.212Z","1.5.0":"2026-08-06T15:41:24.733Z","1.5.1":"2026-08-06T23:44:29.997Z","1.5.2":"2026-08-07T00:09:48.513Z","1.5.3":"2026-08-07T01:32:23.682Z","1.6.0":"2026-08-07T02:25:11.958Z","1.7.0":"2026-08-07T04:21:28.047Z","1.7.1":"2026-08-07T04:31:29.394Z","1.8.0":"2026-08-07T08:01:45.629Z","1.8.1":"2026-08-07T09:02:45.250Z","1.9.0":"2026-08-07T10:57:47.965Z","1.10.0":"2026-08-07T11:52:22.777Z","1.10.1":"2026-08-07T13:07:25.857Z","1.11.0":"2026-08-07T15:50:29.765Z","1.11.1":"2026-08-07T18:35:08.054Z","1.12.0":"2026-08-07T18:48:34.626Z","1.13.0":"2026-08-07T19:49:14.416Z","1.14.0":"2026-08-07T20:03:07.512Z","1.15.0":"2026-08-07T20:14:48.573Z","1.15.2":"2026-08-07T21:40:34.606Z","1.16.0":"2026-08-07T23:32:14.240Z","1.16.1":"2026-08-07T23:51:20.976Z","1.16.2":"2026-08-08T03:32:11.988Z","1.16.3":"2026-08-08T14:05:05.255Z","1.17.0":"2026-08-08T15:44:39.794Z","1.18.0":"2026-08-08T16:21:21.139Z","1.19.0":"2026-08-08T17:17:08.526Z","1.20.0":"2026-08-12T15:49:16.036Z","2.0.0":"2026-08-12T17:47:51.314Z","3.0.0":"2026-08-14T12:49:52.614Z","4.0.0":"2026-08-15T13:24:49.672Z","4.1.0":"2026-08-15T14:49:50.847Z","4.2.0":"2026-08-17T23:50:06.449Z","4.3.0":"2026-08-21T04:05:58.303Z","4.3.1":"2026-08-21T15:47:09.935Z","4.4.0":"2026-08-21T19:15:17.633Z","4.5.0":"2026-08-25T00:30:09.683Z","4.6.0":"2026-09-24T22:48:40.482Z"},"bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/jobs"},"description":"Generic background-job library: a typed job registry with retries, exponential backoff and cron schedules, behind a swappable driver port (BullMQ/Redis in production, inline execution in tests and zero-config dev). The runtime half (./server) is one facto","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"readme":"# @12-apps/jobs\n\nTyped background jobs — retries, exponential backoff and cron — behind a\nswappable driver. BullMQ/Redis in production, inline execution in tests and\nzero-config development.\n\nFramework-free and domain-free: no ORM import, no host-app types, no job names\nof its own. The logger is a port, the lease's database is a structural seam,\nobservation is a port, and the one web framework in sight (`hono`) is an\noptional peer behind its own subpath.\n\n```ts\n// where the domain lives — the import IS the registration\nexport const renderReport = defineJob<{ reportId: string }>({\n  name: \"reports.render\",\n  attempts: 5,\n  backoff: { type: \"exponential\", delayMs: 5_000 },\n  handle: async ({ reportId }) => renderAndStore(reportId),\n});\n\n// a job that only ever runs on a schedule needs no binding at all\ndefineJob({\n  name: \"reports.purge\",\n  schedule: { pattern: \"*/5 * * * *\", timezone: \"UTC\" },\n  handle: async () => purgeExpired(),\n});\n\n// at an emit site\nawait renderReport.enqueue({ reportId }, { dedupeKey: reportId });\n\n// at process start — ONE call wires driver, workers, drain, lease and health\nimport { createApiJobs } from \"@12-apps/jobs/server\";\nimport { jobsRouter } from \"@12-apps/jobs/hono\";\n\nconst jobsApi = createApiJobs({\n  jobs: () => import(\"./lib/jobs\"),   // the defineJob modules — required\n  db: () => getPrismaClient(),        // the sweep_leases table (optional)\n  events: { onJobFailed: pageOnDeadLetter },   // yours, if you want one\n});\nawait jobsApi.start();\napp.route(\"/api/internal/jobs\", jobsRouter(jobsApi));\n```\n\nWith no `REDIS_URL` and no config, `start()` resolves the INLINE driver\noutside production: handlers run in-process, schedules do not fire (and say\nso), and the app starts green with no Redis container. Production with no\nRedis resolves to NO driver plus a loud error and a 503 from `/health` —\nnever a crash, never a silent fake. `JOBS_WORKER=1` is what turns a process\nfrom producer (enqueue only) into consumer (workers + schedules); the worker\nis the same image, not a second build.\n\nThe full adoption contract — config seam, env variables, the events port, the\nsweep lease, the Prisma partial and why there is no `createWebJobs` — is in\n[ADOPTING.md](./ADOPTING.md).\n\n## The two rules\n\n**Payloads carry identifiers, never state.** `{ reportId }`, not the rendered\nreport. The database is the source of truth; the queue only decides *when*. A\npayload that duplicates a row is a second copy that can disagree with it, and\nit is the copy that gets acted on days later.\n\n**Handlers are idempotent.** Delivery is at-least-once — a worker can die\nbetween the side effect and the acknowledgement. Lean on the database's unique\nconstraints, not on the queue.\n\n## What it refuses\n\nThree wiring mistakes are refused rather than absorbed, because each of them\nis otherwise **silent** — the process starts, the probe is green, and work\nsimply stops happening:\n\n- **A job that cannot run.** `defineJob` throws on a blank name, an empty\n  `queue` (which never falls back to the default — it creates a queue nobody\n  consumes), a non-positive `attempts`/`concurrency`, a backoff with no delay,\n  and a cron pattern that is not 5 or 6 fields. `\"@daily\"` and `\"\"` both\n  install a scheduler that never fires.\n- **A deployment with no jobs.** `createApiJobs({ jobs: [] })` throws at the\n  factory; a `jobs` thunk that registers nothing throws from `start()`; and\n  `startJobWorkers()` throws on an empty registry, so the hand-wired root path\n  is guarded identically. Declaring nothing is not a way to turn jobs off —\n  `JOBS_DRIVER=off` is.\n- **An enqueue no worker could ever claim.** `enqueue` returns\n  `{ enqueued: false, reason: \"unregistered\" }` for a definition the registry\n  does not hold under that name (identity, not just the name). The alternative\n  is a write the backend accepts, no handler claims, and the consumer\n  dead-letters — after the caller was told `enqueued: true`.\n- **A `retention` window that bounds nothing.** Every number must be positive\n  and finite. A negative `count` does not keep fewer jobs, it trims one per\n  completion instead of holding a ceiling; `NaN` (an unset env var read through\n  `Number()`) disables the comparison entirely. Refused at the factory and\n  again in the driver.\n\n## Guarantees and non-guarantees\n\n- `enqueue` **never throws**. A queue outage returns `{ enqueued: false }` and\n  logs; it does not fail the request that was deferring work.\n- Bounded backend memory: completed jobs are kept a day, failed ones a week,\n  and a host with a different support window passes its own `retention` — whose\n  four numbers are validated, because a negative or `NaN` window stops bounding\n  the backend rather than shrinking it.\n- Schedules are **reconciled** on start — a cron job deleted from code has its\n  scheduler removed from Redis, instead of firing forever at a handler that no\n  longer exists. That removal is reported to `events.onScheduleRemoved`,\n  because it is destructive and a deploy did it.\n- **A stalled job is re-run, and reported.** When a worker's lock on a job\n  expires (a blocked event loop, a paused process, a silent Redis link), BullMQ\n  puts the job back and runs it again. Each stall is an error line and\n  `events.onJobStalled`. A job that keeps stalling (more than `maxStalledCount`\n  times, or, for a scheduled job, more starts than its attempts plus that) is\n  failed as a terminal dead-letter instead of being restarted forever. The\n  lock and stall numbers are configurable per queue through `stall`.\n- The `inline` driver honours `attempts` but not delays or schedules, and both\n  omissions are logged rather than silent. It is refused in production —\n  by name, by env var and by instance.\n\nThe BullMQ driver is exported from `@12-apps/jobs/bullmq`, never the barrel, so\nimporting `defineJob` at an emit site does not drag Redis into the bundle.\n`createApiJobs` keeps the same property: it imports the BullMQ driver lazily,\nonly in a process whose resolution actually picked it.\n\nRedis must run with `maxmemory-policy noeviction` — the driver checks and\ncomplains.\n\n## Telling somebody else what happened\n\nThis package notifies nobody, audits nothing and publishes no events. What it\nowns is the MOMENT, and the moments are a port:\n\n```ts\ncreateApiJobs({\n  jobs: () => import(\"./lib/jobs\"),\n  events: {\n    // The dead-letter. `terminal` is the whole point — a non-terminal failure\n    // is ordinary retry noise.\n    onJobFailed: ({ name, error, terminal }) => {\n      if (terminal) void notifyOperators(name, error);\n    },\n    onJobCompleted: ({ name, runId }) => void publishRealtime(name, runId),\n    // A job lost its lock mid-run and was put back to run again.\n    onJobStalled: ({ name, runId, stalledCount }) => void notifyOperators(name, runId, stalledCount),\n    // A deploy just cancelled a recurring job, permanently.\n    onScheduleRemoved: ({ name, queue }) => void audit(\"schedule.removed\", { name, queue }),\n  },\n});\n```\n\nAn observer that throws or rejects is logged and swallowed: somebody else's\ncode must not be able to fail the job it is watching.\n\n## The sweep lease\n\nScheduled sweeps declare `queue: SWEEP_QUEUE, concurrency: 1`, which makes\nthem single-flight within one worker. Across replicas that guarantee needs a\nnamed, time-bounded claim in the DATABASE — `createSweepLease` (or the bound\n`withSweepLease` on the `createApiJobs` return):\n\n```ts\ndefineJob({\n  name: \"reports.purge\",\n  queue: SWEEP_QUEUE,\n  concurrency: 1,\n  schedule: { pattern: \"0 * * * *\" },\n  handle: async () => {\n    const { ran } = await jobsApi.withSweepLease(\"reports.purge\", 10 * 60_000, () =>\n      purgeExpired(),\n    );\n    if (!ran) return; // another worker holds this tick\n  },\n});\n```\n\nThe claim is a conditional UPDATE — the database picks the winner — and only\na lost race is silent; a missing table or a dead store THROWS, so a stopped\nsweep has a failed job to point at it. The `SweepLease` table ships with this\npackage (`prisma/jobs.prisma` + `prisma/migrations/`) and is synced into the\nhost's schema; partials and migrations are COPIED, never symlinked.\n","readmeFilename":"README.md"}