{"_id":"@blunge/fluid-workflows","_rev":"19-476ece99a91a23e9c1396abe7bad5f89","name":"@blunge/fluid-workflows","dist-tags":{"latest":"0.25.0"},"versions":{"0.1.0":{"name":"@blunge/fluid-workflows","version":"0.1.0","_id":"@blunge/fluid-workflows@0.1.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"dist":{"shasum":"9f7799f075853ee0805ea04811422c167f222823","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.1.0.tgz","fileCount":7,"integrity":"sha512-3iDGb1sAdw+O1TQVe41U3Ij3j187dpVg9WJuasWq90mZGvdyQ407/SuVy2Yu5iNRb9ayuX1aNKSzF5ryrXA3mQ==","signatures":[{"sig":"MEQCIC41nBzJniIAbHTt5A6CY5SPBvIA+/dE+DQOZAhqCM7oAiBESErQGQEDeGcXvCvk8WEY1x0sq1ye5ejxhaX5z1rveA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222082},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"ce21cb53b1f0cf88f212d451959b81ca34303ce7","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"_npmVersion":"11.3.0","description":"","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"zod":"^4.1.8","uuid":"^11.0.5","bullmq":"^5.10.4","lodash":"^4.17.21","ioredis":"^5.4.2","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","eslint":"^9.19.0","vitest":"^2.1.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.1.0_1758017147777_0.815948764949288","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@blunge/fluid-workflows","version":"0.2.0","license":"MIT","_id":"@blunge/fluid-workflows@0.2.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"01da217b0f399ba49a1bb814f17bf49e1e8a08e0","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.2.0.tgz","fileCount":9,"integrity":"sha512-SepvVHafkL3R3kXpgBoC4Ob0ZHZuJskb5fHQyd7DVpCgICDbP84CuVvuBzYH8kxmfkKXPSxmFwI4W7taWi9ILw==","signatures":[{"sig":"MEYCIQDzPEpOXWvo9MEOJnhqm+QsAd+e8q/mwYTliQjKBTMe8wIhAPy1Z+ChM5Xn2BYyFzM3LUGTmLk5i1dFckfn3HxYpTaW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226290},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"750ecd6eb775db17b1f746db999fa09f29a76eae","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"zod":"^4.1.8","uuid":"^11.0.5","bullmq":"^5.10.4","lodash":"^4.17.21","ioredis":"^5.4.2","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","eslint":"^9.19.0","vitest":"^2.1.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.2.0_1758019346410_0.9276884684803222","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@blunge/fluid-workflows","version":"0.3.0","license":"MIT","_id":"@blunge/fluid-workflows@0.3.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"196cf4b86975f7a50632a71292ee0f6e57f939d9","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.3.0.tgz","fileCount":9,"integrity":"sha512-bpLtPRuitiZJUiZg0FmqxZAZOdNgaen9YcikLnS0n4jYzxYqbhJFxy/SmTJ1urTdcEiD/rqiszeyL2igUditMw==","signatures":[{"sig":"MEUCIQDtpXunkc7yV0iQnFQ5WNlsx4QM6pGxv3n0ON7gwQM9VAIgKQ4Flz+AWlXuE2KWOJ1ix63c726J5XZrydOW++68g2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271579},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"42e50ad3d283b9c565e3f1c48514ebfd0eff6041","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"zod":"^4.1.8","uuid":"^11.0.5","bullmq":"^5.10.4","lodash":"^4.17.21","ioredis":"^5.4.2","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","eslint":"^9.19.0","vitest":"^2.1.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.3.0_1758028370781_0.4805659224982599","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@blunge/fluid-workflows","version":"0.4.0","license":"MIT","_id":"@blunge/fluid-workflows@0.4.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"8dd1e508eff11c218cbcf26c36a276ef1eafe0c7","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.4.0.tgz","fileCount":9,"integrity":"sha512-ofbdF9eCpWU3HtVp7nrdP7MY9t+MuaoCR8iBbkiINz/rp+N81gvlauqfseDP/apnLvomS/kbeOlo0W1bjcu/6Q==","signatures":[{"sig":"MEQCIHKhXq9vxf/kqZTRhQXm7XR118qP/w82mRLDeBvywRiRAiA8tmgfDhMLYsguRAfJnTziCi9Uvcc1B6ig6zTOkZvaxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313780},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"c3cd6d3a6b69e7b628a8d7236e7785f6be103c6c","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"zod":"^4.1.8","uuid":"^11.0.5","bullmq":"^5.10.4","lodash":"^4.17.21","ioredis":"^5.4.2","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","eslint":"^9.19.0","vitest":"^2.1.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.4.0_1758030421203_0.4523146062893548","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@blunge/fluid-workflows","version":"0.5.0","license":"MIT","_id":"@blunge/fluid-workflows@0.5.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"2371d7186bfc9281d3ca2d286518b10284bbe88a","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.5.0.tgz","fileCount":9,"integrity":"sha512-PyGeBhSDuegXuu3arup6QFoTNkmuqqwTUySHIhNGphImOnwMXcz/7mzZ0vHL/ZWvcyL74G3SPZpncG+uyVRxSw==","signatures":[{"sig":"MEYCIQC7xsa8Y8TzpfWgZAl6ZP+B1Uw00SxQJstLHihnWb7aeQIhAIpi2KieQaz9bPfBNVjZeNzsH2PuMUcoFt9eN8BFTrTH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313822},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"591e0a4d3704c07dfba15d27cd56d245756904c1","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"zod":"^4.1.8","uuid":"^11.0.5","bullmq":"^5.10.4","lodash":"^4.17.21","ioredis":"^5.4.2","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","eslint":"^9.19.0","vitest":"^2.1.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.5.0_1758031840435_0.709000002511674","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@blunge/fluid-workflows","version":"0.6.0","license":"MIT","_id":"@blunge/fluid-workflows@0.6.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"f855b307ddfa436d9c736215a991500bee909df6","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.6.0.tgz","fileCount":9,"integrity":"sha512-RKhJilxnJtgjt9sQhI++bz5FR9bUPsvHPc0nc7SH55SggrYexfVODxfaaEjUyZMGluAn5gPrMeH2Q12fplcfSQ==","signatures":[{"sig":"MEQCIHqyqm1SG4PK7798F8QemB1cSmEc58G6719UMm75JlTYAiAGPeDspMp1fJRReOglHVYyqN/CHOKHgcyYI5emkj4/9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313950},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"a7cefe0f6012f73b0ee6b1734be372be66d2f024","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5","lodash":"^4.17.21","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"peerDependencies":{"zod":"^4.1.8","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.6.0_1758053291357_0.10219591626219593","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@blunge/fluid-workflows","version":"0.7.0","license":"MIT","_id":"@blunge/fluid-workflows@0.7.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"c5c4beba50efd46bf6311a3b125aace1c6a39071","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.7.0.tgz","fileCount":9,"integrity":"sha512-BmcdojGjaJNbL9X/VNbC01Hit14u3sZzmiDZIpp95zOiXYilOuaEMNOARaTrzcs8VSU7eRHinzjbVDQWLRBMpw==","signatures":[{"sig":"MEYCIQCU1/mG54XhyChg2bJHId9JyM4fVuQmzoj79qJFwHeMTQIhALSBQqUhR7fibWje7FjMq4HRNaYMh3T2IRVU+6N3eJJE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313960},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"eecc1ded213802b461a21a02122a6226a81df239","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5","lodash":"^4.17.21","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.0.0 || ^4.0.0","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"peerDependencies":{"zod":"^4.1.8","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.7.0_1758092906314_0.6237208164770494","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@blunge/fluid-workflows","version":"0.8.0","license":"MIT","_id":"@blunge/fluid-workflows@0.8.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"b111559ec292ae3573c547c4b881dcb51d78040a","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.8.0.tgz","fileCount":9,"integrity":"sha512-UPkSSvnXvBgnmX6DkpuWZjuCNGob++bvsAcEbRTTPvt+RNEHngd3VuyOqsPMoGhuP0jVeB1nNSNWzV7F0Cr6JA==","signatures":[{"sig":"MEUCIQDxijRZDkXgSUb/nGk63Ito3jR+w6qviCBrwm4xHz2z+wIgDeVAjsJAHeFkd2s0wkmx8WojUNRE5TR5JmOrly4DRTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313960},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"3bb20144cc1993a95501f7a699c76f20bb7fc2e5","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5","lodash":"^4.17.21","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","@types/lodash":"^4.17.16","typescript-eslint":"^8.22.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.8.0_1758093079152_0.43573028681334525","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@blunge/fluid-workflows","version":"0.9.0","license":"MIT","_id":"@blunge/fluid-workflows@0.9.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"c7a4ceca938818efc8d4365f26ef3e791608f38c","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.9.0.tgz","fileCount":9,"integrity":"sha512-X1ybWZtn0FWX4/E5yij9mUiQv72QzE6hSmfw80/a1Rvv407BBL+evcamDKuiFyHP4VVsakx+dLiFRRz3lqjHtg==","signatures":[{"sig":"MEUCIQDlmUUykUluyxiOWVBmg/JhNfDXJewTP9sGEAylsz85dAIgNktbqWADJx1hu4ddAY8ynFBPxYI/3Rkz68N/JQaHL00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333353},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"4d6db59a13ddc99c3a25cfab8a368e1a6806a9f2","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.9.0_1758151123790_0.5452786714075986","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@blunge/fluid-workflows","version":"0.10.0","license":"MIT","_id":"@blunge/fluid-workflows@0.10.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"ef8d8ff885bf4b68582baf465d34add12449cbda","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.10.0.tgz","fileCount":9,"integrity":"sha512-0rVqFMm8gtp41CwFp+DloHLjPXnWwBiFd1k4nF2UmViyfoscmBZbzLGxkvQYG36r/q6n//kzPhNlkejJYF+Ajw==","signatures":[{"sig":"MEUCIHQhvl5WP+4erHEbSEAJIxws664RxLK6QxKcVs99egNUAiEAlvuKDJ2eof0MlpLpuGtifJJOW5BIKrraeJRhqPnsUbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336624},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"c0fa9b5b8a35dc7a5bfb92246e47174e606ab99b","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.3.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.10.0_1758215708960_0.5616767043057835","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@blunge/fluid-workflows","version":"0.13.0","license":"MIT","_id":"@blunge/fluid-workflows@0.13.0","maintainers":[{"name":"ryuuseijin","email":"zamasu@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"b29303d4c77c59a3105984ee5d3db6e9ff5223ac","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.13.0.tgz","fileCount":9,"integrity":"sha512-mF9Ef8SZTAxCIsFuPou+gXK9W1mTc9Tcgp1MFzszBYbUHm8BT00rkP8Ec62jzKuUbkWFLQstnqqhJW1GJHOACA==","signatures":[{"sig":"MEUCIQDRPJ+J6yxRggX14ZAqIjAC7q0mqOT05jELonG+LfqLoAIgWHu3flQvKoX3bu6C/J4gKpdgx8FDAw1lrsbd93sleno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":431443},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"43565e98598d15d62716d97d1fed1c4e9b64b5fa","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"zamasu@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.13.0_1770110031703_0.9629079610409612","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@blunge/fluid-workflows","version":"0.14.0","license":"MIT","_id":"@blunge/fluid-workflows@0.14.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"760aa60506500aa224726703d84dc6fd9ff77663","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.14.0.tgz","fileCount":9,"integrity":"sha512-Q1SgWaiMv5wdx+TCCG5qst+2unXSgjZ+c+fp352MZmjM1FKLkU7BSeLCpz/XDxoDep0F2JcRnbvv/3ZKn4xJzQ==","signatures":[{"sig":"MEUCIFvYcQ/ES9dZiIFXLUNFoBKh5pYk0APnlSx26HV1ZFeHAiEA2Kj6DwEHFixkOWQcFa1RdGnMvhvMveUo7MrC2yAleIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":431443},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"ad45e1f218f6a274697109d7c0c837d5fa915672","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.14.0_1770110489519_0.85782001814775","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@blunge/fluid-workflows","version":"0.15.0","license":"MIT","_id":"@blunge/fluid-workflows@0.15.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"2e3ef11374ea05ed116a05ef53dcd24379130847","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.15.0.tgz","fileCount":9,"integrity":"sha512-lQJuekOoI9bCwpItW9xMjWEJfgVH3pKfEbVloewzQPTNl29XAjEd2Bg3d1PjA2qyBpvgWhY6R2p6Yai3JIKX3g==","signatures":[{"sig":"MEYCIQCn8XCXBjdLQc1uvEgOTS4xr/DQHuU4l/YVhH/75yns+QIhAPRrtJxQpPlKYHNhsqbwWmNSx+maVwD2J2/oQMWjGsbN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536267},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"07798e6de079f1f82ae7ebfe082f67f78921b7d1","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.15.0_1770127784783_0.5882816334303964","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@blunge/fluid-workflows","version":"0.18.0","license":"MIT","_id":"@blunge/fluid-workflows@0.18.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"05f167359f6c2404aa3936cf40b077c0981c5bad","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.18.0.tgz","fileCount":9,"integrity":"sha512-Q4OcHSaPSD/ILndIRmd2SWT5fx2HzWEo0QkbieF9UOf7Vsuk4T1wVenfa8dIbDx10iaT3ObcdSZyYszSvmTMAw==","signatures":[{"sig":"MEQCIAIA9Go3paRb2nQPrJvK+uJlvXOcH2Xr5YlpqZbyqD9ZAiAn+WP8d7Dq0vkkcr5k3w1WJ5Inry/ng+AF11cUP88QUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560401},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"4714d2ffa00d8c7b5a6bc6447dc102d0075706f9","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.18.0_1770162017259_0.748461260510825","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@blunge/fluid-workflows","version":"0.19.0","license":"MIT","_id":"@blunge/fluid-workflows@0.19.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"caa37c3ff04ab3a17bf3eb2890cbb19be575fcc5","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.19.0.tgz","fileCount":9,"integrity":"sha512-I8OvjNhiTSD6C/Ai1dw0Htv70V1i54DxJfIL6TpWuEzEX1989V7vsgAc5ng3KKkrg5fBlX8U9fDF736BiNDS2w==","signatures":[{"sig":"MEUCIQCxU3VxcrQcd6be1WvhaZzNvWBCGWvX1+zm32eFgRH25AIgOjKCiVQBFE8qDPduEF4vOw0X9uXMElqJytDfrDJGYVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564451},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"1f49fa14e472016b8d5c879e3982902ac7c92f85","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.19.0_1770166302769_0.587611203776119","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@blunge/fluid-workflows","version":"0.20.0","license":"MIT","_id":"@blunge/fluid-workflows@0.20.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"35cf614b43b42535d6eb669d6fdb591b6aec8fdd","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.20.0.tgz","fileCount":9,"integrity":"sha512-dC/cZPHEEtccEF7yhRsboQOj4eJh9R9/keOVI6Wujb8kfEEGvPhu0lccCZc6f2oMsWFxlVF9s7RpxYExldb/Rw==","signatures":[{"sig":"MEYCIQCQkU0NCPf12CRBhfPUEun8HhgAlBzdgWDn/n0ktBP/CgIhAM25jr75g65AAvGJNlRf+YnJ00bGajWoJYnFnax5yMsR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564451},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"2018d5f0ae4615ab0a31c2e2f53631de35f6c369","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.20.0_1770167116687_0.24836862867400367","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@blunge/fluid-workflows","version":"0.21.0","license":"MIT","_id":"@blunge/fluid-workflows@0.21.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"92e7bfdfd87e77fd881f3fb5023a9bf48c08a70d","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.21.0.tgz","fileCount":9,"integrity":"sha512-1Uf+VVGvw0U5D9mVDam9JC0qsDKGQPtx4I8YLcDYg0wDG0Z/gYCIScG0jhIHKGyHyXuWW3qGMGkLKThvhkGmuw==","signatures":[{"sig":"MEQCIB9ESN6IkbPBrbOZOvy82ozkQGpSGQtaduM7sP14bk4eAiAd/5qYZDR0tLybknEXKcGaQ4PMMLO0l23fm0fVU3X2OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565719},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"11e82aa05a6cbc9698f1324d7e1202ca2a627651","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.21.0_1770169108564_0.22134410356664214","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@blunge/fluid-workflows","version":"0.22.0","license":"MIT","_id":"@blunge/fluid-workflows@0.22.0","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"dist":{"shasum":"2b14cc22fffc1acac254b8630ebf366bd9bc6b9e","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.22.0.tgz","fileCount":9,"integrity":"sha512-/k4TTiz1MiYIG9kZWgRxXef+LWrZeasj3JeGxjkhY5UIjdmDzLOyiZ+r7RtOy8llFbmitMkNA3A5VdUvHUAjCQ==","signatures":[{"sig":"MEQCIFkmd41fkzgVUv7Anq/VDUa9ZoM40DyO2siC+yne4cndAiAIIsYaNzxj/FQ4L1QvKqkJrntL98gizcchyHXwTvrX/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567739},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"58ba655cf59cb0234474143681f7b26cd5bc208b","private":false,"scripts":{"tsc":"tsc","lint":"eslint","test":"vitest --config ./vitest.config.ts --run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","test-watch":"vitest --config ./vitest.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts"},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"repository":{"url":"git+https://github.com/blunge-ai/fluid-workflows.git","type":"git"},"_npmVersion":"11.6.0","description":"Type-safe workflow building + job-queue execution with adapters.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"uuid":"^11.0.5","msgpackr":"^1.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.1.8","tsup":"^8.1.0","bullmq":"^5.10.4","eslint":"^9.19.0","vitest":"^2.1.2","ioredis":"^5.4.2","wrangler":"^4.0.0","@eslint/js":"^9.19.0","typescript":"^5.6.2","@types/node":"^18.17.0","@types/eslint":"^9.6.1","typescript-eslint":"^8.22.0","@cloudflare/workers-types":"^4.20250109.0","@cloudflare/vitest-pool-workers":"^0.8.0"},"peerDependencies":{"zod":"^3.0.0 || ^4.0.0","bullmq":"^5.10.4","ioredis":"^5.4.2"},"_npmOperationalInternal":{"tmp":"tmp/fluid-workflows_0.22.0_1770170717136_0.10664980614496744","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@blunge/fluid-workflows","version":"0.25.0","private":false,"type":"module","description":"Type-safe workflow building + job-queue execution with adapters.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/blunge-ai/fluid-workflows.git"},"bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"homepage":"https://github.com/blunge-ai/fluid-workflows#readme","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"sideEffects":false,"engines":{"node":">=18"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --out-dir dist","tsc":"tsc","lint":"eslint","test-watch":"vitest --config ./vitest.config.ts","test":"vitest --config ./vitest.config.ts --run","test:cloudflare":"vitest --config ./vitest.cloudflare.config.ts --run","test:cloudflare-watch":"vitest --config ./vitest.cloudflare.config.ts","release:minor":"npm run build && npm version minor -m \"chore(release): %s\" && git push --follow-tags && npm publish --access public"},"devDependencies":{"@cloudflare/vitest-pool-workers":"^0.8.0","@cloudflare/workers-types":"^4.20250109.0","@eslint/js":"^9.19.0","@types/eslint":"^9.6.1","@types/node":"^18.17.0","eslint":"^9.19.0","bullmq":"^5.10.4","ioredis":"^5.4.2","tsup":"^8.1.0","typescript":"^5.6.2","typescript-eslint":"^8.22.0","vitest":"^2.1.2","wrangler":"^4.0.0","zod":"^4.1.8"},"dependencies":{"msgpackr":"^1.11.2","uuid":"^11.0.5"},"peerDependencies":{"bullmq":"^5.10.4","ioredis":"^5.4.2","zod":"^3.0.0 || ^4.0.0"},"_id":"@blunge/fluid-workflows@0.25.0","gitHead":"f76b52ada08ae97ed152940eac6ccf6c9901ecd0","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-zn+Q5k31ltV7f4yEqymvaXAZYyVzngOEUWz/t244o0tT/r+VTQX1fEXquUXjtuEx8P/VVy1rE1IncbN/kNnTow==","shasum":"5f209b59f45d4f7b0b366059eb40929f13c8f0de","tarball":"https://registry.npmjs.org/@blunge/fluid-workflows/-/fluid-workflows-0.25.0.tgz","fileCount":9,"unpackedSize":590169,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCplS/V+c6bJsRW8BOXDNNaYkigX+mw0K5U4vlHm9EopQIhAIsQbjiw4kfMY9t19dCwBotAaWYMs+ShiYCnx6GsomfT"}]},"_npmUser":{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"},"directories":{},"maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fluid-workflows_0.25.0_1770982334887_0.576940801519849"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-16T10:05:47.678Z","modified":"2026-02-13T11:32:15.219Z","0.1.0":"2025-09-16T10:05:47.965Z","0.2.0":"2025-09-16T10:42:26.623Z","0.3.0":"2025-09-16T13:12:51.014Z","0.4.0":"2025-09-16T13:47:01.416Z","0.5.0":"2025-09-16T14:10:40.638Z","0.6.0":"2025-09-16T20:08:11.557Z","0.7.0":"2025-09-17T07:08:26.491Z","0.8.0":"2025-09-17T07:11:19.353Z","0.9.0":"2025-09-17T23:18:44.035Z","0.10.0":"2025-09-18T17:15:09.186Z","0.13.0":"2026-02-03T09:13:51.829Z","0.14.0":"2026-02-03T09:21:29.660Z","0.15.0":"2026-02-03T14:09:44.958Z","0.18.0":"2026-02-03T23:40:17.541Z","0.19.0":"2026-02-04T00:51:42.961Z","0.20.0":"2026-02-04T01:05:16.838Z","0.21.0":"2026-02-04T01:38:28.775Z","0.22.0":"2026-02-04T02:05:17.432Z","0.25.0":"2026-02-13T11:32:15.088Z"},"bugs":{"url":"https://github.com/blunge-ai/fluid-workflows/issues"},"license":"MIT","homepage":"https://github.com/blunge-ai/fluid-workflows#readme","repository":{"type":"git","url":"git+https://github.com/blunge-ai/fluid-workflows.git"},"description":"Type-safe workflow building + job-queue execution with adapters.","maintainers":[{"name":"ryuuseijin","email":"ryuuseijin@fastmail.com"}],"readme":"# fluid-workflows\n\nType-safe durable workflows with fluid builder syntax and optional job-queue execution with adapters.\n\nThe main problem this project attempts to solve is the separation of workflow definition from execution. Execution can involve persisting intermediary steps through a storage adapter (e.g. redis, or cloudflare durable objects) or using queues with a queueing adapater (e.g. BullMq, or cloudflare queues).\n\n## Install\n\n```bash\nnpm install @blunge/fluid-workflows bullmq ioredis zod\n```\n\n## Quick Start\n\nThis defines a simple workflow with a single step that adds two numbers together.\n\n```ts\nimport fwf from '@blunge/fluid-workflows';\n\nconst wf = fwf.create({ name: 'add', version: 1 })\n  .step(async ({ a, b }: { a: number; b: number }) => ({ sum: a + b }));\n\n// Run the workflow directly (uses in-memory storage by default)\nconst out = await wf.run({ a: 2, b: 3 });\nconsole.log(out.sum); // 5\n```\n\n## BullMQ Adapter\n\nTo use the `BullMQAdapter` you need to have redis running and the `REDIS_URL` env variable defined.\n\nFor example, to run tests:\n\n```bash\nREDIS_URL=redis://127.0.0.1:6379 npm run test\n```\n\n## Using job queues\n\n```ts\nimport fwf from '@blunge/fluid-workflows';\n\n// Workflow definitions\n\nconst child = fwf.create({ name: 'child', version: 1 })\n  .step(async ({ s }: { s: string }) => ({ s2: `child(${s})` }));\n\nconst parent = fwf.create({ name: 'parent', version: 1 })\n  .step(async ({ n }: { n: number }) => ({ s: `n=${n}` }))\n  .step(child)\n  .step(async ({ s2 }) => ({ out: s2 }));\n\n// Configuration\n\nconst { worker, dispatcher } = fwf.jobQueueConfig({\n  engine: new fwf.BullMqAdapter({ attempts: 1, lockTimeoutMs: 8000 }),\n  workflows: [parent],\n  queues: { parent: 'parent-queue', child: 'child-queue' },\n  jobTimeoutMs: 60000, // Maximum time a job is expected to run (also used for state TTL)\n});\n\n// On a worker machine, run parent workflows\nconst stopParent = worker.run(['parent-queue']);\n\n// Possibly on a separate machine, run child workflows\nconst stopChild = worker.run(['child-queue']);\n\n// Alternatively, run all workflows on the same machine\n// const stopAll = worker.run('all');\n\n// On the app server, dispatch workflows and optionally await the output\nconst result = await dispatcher.dispatchAwaitingOutput(parent, { n: 5 });\nconsole.log(result.out); // 'child(n=5)'\n\nawait stopParent();\nawait stopChild();\n```\n\n## Advanced features\n\n### Parallel execution\n\nUse `.parallel()` to run multiple child workflows in parallel. Each child receives the full \naccumulated state, and their outputs are merged into the result with the specified keys.\n\n```ts\nconst child1 = fwf.create({ name: 'child1', version: 1 })\n  .step(async ({ n }: { n: number }) => `child1(${n})`);\n\nconst child2 = fwf.create({ name: 'child2', version: 1 })\n  .step(async ({ n }: { n: number }) => `child2(${n})`);\n\nconst parent = fwf.create({ name: 'parent', version: 1 })\n  .step(async ({ n }: { n: number }) => ({ n2: n * 2 }))\n  .parallel({ c1: child1, c2: child2 })\n  .step(async ({ n, n2, c1, c2 }) => ({ \n    out: `${c1}, ${c2}` // 'child1(5), child2(5)'\n  }));\n```\n\n### Zod schema support\n\nYou may have noticed that we need to specify the type of the input to the first step explicitly. You\ncan pass a **zod** schema to automatically infer the input type to the first step. The inputs to the\nworkflow will also be validated against the schema during workflow execution.\n\n```ts\nconst inputSchema = z.object({ a: z.number(), b: z.number() });\n\nconst parent = fwf.workflow({ name: 'parent', version: 1, inputSchema })\n  .step(async ({ a, b }) => ({ \n     ...\n  }));\n```\n\n### Control flow\n\n* `restart` - allows a workflow to be restarted with new input data\n* `complete` - allows the workflow to be completed early with the given result\n\nThe control flow functions only wrap the argument and return it, and the wrapped result has to be\nreturned by the step to indicate to the workflow runner what shoud happen next.\n\n```ts\nconst wf = fwf.workflow({ name: 'iterate', version: 1, inputSchema })\n  .step(async ({ iterations }, { restart, complete }) => ({\n     if (iterations < 10) {\n       return restart({ iterations: iterations + 1 });\n     }\n     // will skip any following steps\n     return complete({ iterations });\n  }))\n  .step(async () => {\n     // will never reach here\n  });\n\nconst out = await wf.run({ iterations: 0 });\nconsole.log(out.iterations); // 10\n```\n\n### update\n\nThe `update` function allows the step's input data to be updated, such that if the step does not run\nto completion, it will be retried with the updated input data. Additional information, such as the\ncurrent workflow progress, can be reported to job status listeners by passing an `info` property in\nthe options object.\n\n```ts\nconst parent = fwf.workflow({ name: 'parent', version: 1, inputSchema })\n  .step(async ({ iterations, maxIterations }, { update }) => ({\n     for (; iterations > 0; iterations--) {\n\n       // by convention we pass a value from 0 to 1 to report the current progress\n       const progress = Math.min(1, iterations / maxIterations);\n\n       // calling update here updates the input data and reports the current progress\n       const { interrupt } = await update({ input: { iterations }, info: { phase: 'iterating', progress } });\n\n       // or just report progress, without updating the step's input data\n       // const { interrupt } = await update({ info: { phase: 'iterating', progress } });\n\n        if (interrupt) {\n          throw Error('interrupted');\n        }\n      }\n   }));\n```\n\n### subscribe\n\nThe `subscribe` method allows job status listeners to receive real-time updates when a job's state changes (e.g., progress updates from `update()` calls or job completion).\n\n```ts\nconst unsubscribe = await wf.subscribe(jobId, (status) => {\n  console.log('Job status update:', status);\n});\n\n// Later, stop listening\nunsubscribe();\n```\n\nNote: This example uses in-memory storage by default. To use Redis pub/sub for status updates across processes, pass a `RedisStorage` instance when creating the workflow.\n\n## License\n\nMIT © Blunge\n","readmeFilename":"README.md"}