{"_id":"@danthegoodman/quick-convex","_rev":"18-4deec1a34c2064545daf20298225401c","name":"@danthegoodman/quick-convex","dist-tags":{"latest":"0.2.14"},"versions":{"0.1.2":{"name":"@danthegoodman/quick-convex","version":"0.1.2","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.1.2","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"4fd8f4ef9c357b9a599a711c2a0a67bfa03eaafb","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.1.2.tgz","fileCount":74,"integrity":"sha512-2AsjI/hjEHvNptt5gALDSGxPNmIlpWFMO6aC6oW6luzGnyI4D8AiJzn1+CQm1WsYy0pj/keZBKIbz90HPp5FUA==","signatures":[{"sig":"MEYCIQC4FqFkmwEelShliK+arDq6PqCVw/WSqxJ7EjCEr9cG8QIhAMav75gLU95ZF8Iv7BaFQ01apNKI9ml3VkDfWKXScLLq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242014},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"0cbe9a92115134fadbefcfeffd845a6e28dd7873","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"1.31.7","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"0.0.41","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.1.2_1770563652097_0.30376977361345503","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@danthegoodman/quick-convex","version":"0.1.3","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.1.3","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"13891e3ed0d3a7a9d3bd0d053d25515a9bf91ae5","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.1.3.tgz","fileCount":74,"integrity":"sha512-cKzaZdlaX7HSkzlRhEefMxXyMVirsEDqpx3D9o8iPcp+kJD1/o0KXZsgFC6D6NdEXgh44++Pz1hxUCCENyr9Ig==","signatures":[{"sig":"MEYCIQDV/eO6M4LTD8JWH5FLanipuKx9NvTz9zc9+mCqoih6qAIhAIV8N7DWI5hfPTEGeuGZi8C8hAPnUfjZyISe7/N6ffjT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319301},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"1f68643a34a55cce110f9a6251da9ae769a51295","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"1.31.7","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"0.0.41","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.1.3_1770571964028_0.5886954810238552","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@danthegoodman/quick-convex","version":"0.1.5","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.1.5","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"e8b122ba842a03a41b637cfe19a14647ecdbb7d5","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.1.5.tgz","fileCount":74,"integrity":"sha512-fPzm6d8O7dC8w+zwvbizk+6EJyd4Y8ELRI2qr11/f02N09sOBjh5N/fCh8b8nCQ6ksINouEpbNfwDE/57KXN/g==","signatures":[{"sig":"MEQCIFi18waCAvT92sNSM4pLnxjt3b6cyL13CwJPW79pbyFiAiAuExshNMz92RaM7NJyb79lzvVewE2I0THi9DqIOE2y7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343526},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"1de8f22b63829e933d26ee230e93ad7ca45e7fc3","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"1.31.7","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"0.0.41","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.1.5_1770768371147_0.9210835474614414","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@danthegoodman/quick-convex","version":"0.2.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.0","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"df1ea393be06e2aa9aa4bc2fba39bd49b4708b92","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.0.tgz","fileCount":74,"integrity":"sha512-tJA9zJymxr2cWMjm7YDcwvDN7yKdAzQfi4JbcV6a7aOqWQOdnfcnQWz6yjngFnRJbeyMV8NYMtxwvj/3Cm2/cw==","signatures":[{"sig":"MEQCIGCfEHz4f3LI/voflpIA2OwAmbwL6vp+mqvxcmZt4OsTAiAJlsveJQf8LpzDIOw2S/RHcRy8/FEEoZosHU83MoBe9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373553},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"9e00cc7d3c9ece98fda988acf3b265dd554eb418","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"1.31.7","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"0.0.41","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.0_1773528242831_0.43190312751878635","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@danthegoodman/quick-convex","version":"0.2.1","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.1","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"5c83453575d12589c38896a4e08379593fb0199e","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.1.tgz","fileCount":74,"integrity":"sha512-k0/Jh7H8xL/zSEG/oAv0M6pIZue6+R0NbwLMLzAC8qEdfJeCM71/FZehwwBAqj+1q8budeqKYqS/9KJNjX/5Cg==","signatures":[{"sig":"MEUCIQDH4jbdNw5F0JynvCRxYRl/P22NlVyDH8PpRsDi6cgn7QIgCNfu9yDyFyLEexbPEgLmFKWtBXWh6pzVquk17WN72i4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373554},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"6e955e900174bcecb7dab88ebfbf4285b3aa86b3","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.34.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"0.0.41","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.1_1774390798433_0.06972141829550615","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@danthegoodman/quick-convex","version":"0.2.2","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.2","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"67ed7227464efbc3ed8c050124eeb5983981faac","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.2.tgz","fileCount":74,"integrity":"sha512-3L1+AjoM+WqTvQStMXbP+CC3/BKl1nVLSYngtJS0Ptfn+19n1gMYv6P/77P0myeBgC1gSLlEQ1Bn82tvwHplbQ==","signatures":[{"sig":"MEUCIDbh5vcugrRQ+DlYIPQqeLdoCc3jlPnUxLXNCoiFb6P8AiEA6mAVF+QIYAoLbr6sfMzho5ukXeW4fozTvtcxLBjoSAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379048},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"2bbee845fb87a39edd2ff2446fe79a4f09c7d1d7","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.34.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.44","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.2_1774396150359_0.12011102163800258","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@danthegoodman/quick-convex","version":"0.2.3","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.3","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"47041fc97417c106139261f76010929d064fcd26","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.3.tgz","fileCount":74,"integrity":"sha512-BMpVCVwpNkcmcrIOZ/NpfUtWK8716SoGnlnLm36PoFNg0M6nAai9EeowNnrRqjv7mxANVF3jBTGbwhrrIXezMQ==","signatures":[{"sig":"MEYCIQCRrlUCGVixCK+lwNQrU2l36E+EPFS1mrX+EUUA5GahKAIhAPuVse6+/IUcSHWgKRx7uRUXmtkF2l6Q1eLsd70zy2is","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380000},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"1cbf81a8776d043b13f7b595006a5db7881007a1","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.34.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.44","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.3_1774398085063_0.7999637738160625","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@danthegoodman/quick-convex","version":"0.2.4","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.4","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"d7e2336c6f384ebdb589e629226eb3a182f71a91","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.4.tgz","fileCount":74,"integrity":"sha512-KmfNx2DEaSJkmYb17jZaPQsdOoCnrObhrKwUscGwRG/apsAxXUtiYLxqnFnAs1HbI0Wy/8drZFQJyG6eFM+gQg==","signatures":[{"sig":"MEUCIQCHqdin8+8JkyZ213DoiP3IMVtT6atWVngSq72hMS+bHQIgYjEOEV3aAGULkbw0n2KAEfv9mpZy9vD7DKzmNaMkm7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383683},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"781247c50b7bef819523cd617b636ab4ac7f3118","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.34.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.44","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.4_1774661626886_0.8231447597284178","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@danthegoodman/quick-convex","version":"0.2.5","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.5","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"56fae9f76a5d8429d8a6e2ab0947bd2f51a664f2","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.5.tgz","fileCount":74,"integrity":"sha512-ZlAYWnMbJGBbzfPu63vi2KZrlcDQoN/+U04Xl3s6zi79ujdsh3kT4V4f0RqLgRfqeMahG1nIPE6tvEnv2Gd6PQ==","signatures":[{"sig":"MEUCIQD+YbBHOftGwhP/1+g5t5kKc3NdTJswYXTT9VeIeqfB1wIgWa6kvpYKav0q0Vrmc8HPeViI9hhAykHWLqZ0mFq3GXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437582},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"03fff1ecd1e71e37c49e0e32d95b2f846dcfcc6a","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.34.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.44","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.5_1774663797187_0.08010954192003172","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@danthegoodman/quick-convex","version":"0.2.6","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.6","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"75af3f4a277f3afc084e8e5780728dc96261ab35","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.6.tgz","fileCount":22,"integrity":"sha512-BV4NhqALoGmHYiTg8TrGa/FtSv9tus+Zt0hOaBCa2QnRE6IkBNLRyasyjn+Lr5zEzUhHIXKi5x86+SlyH4hBkw==","signatures":[{"sig":"MEUCIAQzAISYASqfCQQ5TLC7AixqejaO1iwkr1BQjIjqTsaxAiEApUJRK9mCPYTIrZ9bUjWhtX2U/LglC1q36B7h/ds9tUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196322},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"294af9ce9d912f1facea93f6e70d3a8245fd8ad6","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.36.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.44","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.6_1777762490390_0.3607297731572823","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@danthegoodman/quick-convex","version":"0.2.7","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.7","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"85390f5323cd000822f63db16fdbeabdd3b74541","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.7.tgz","fileCount":74,"integrity":"sha512-YNnzSvvm14xyqf8JtHvIp1tmfL+6++x7eWwjsW7E3hdcvo5J9/smWhIPFISZXR7MlDtNAKek/9xFvL+CIlCU5w==","signatures":[{"sig":"MEQCIGHS8E2hfb/Av9Unwz3w6VRSYnEIeRO5hQzB0rw6b4FpAiBgbUOZotLNWgRHkVAWBtjb0CBu73jN3g0wvRM3nikrwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":441267},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"12f5f9e7092efe0a80dc982ad1326ac806219caf","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.36.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.51","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.31.7"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.7_1777763595040_0.19061356279920005","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@danthegoodman/quick-convex","version":"0.2.8","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.8","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"016446720d86cbcb2dbaa06057365a5b5ad4a361","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.8.tgz","fileCount":74,"integrity":"sha512-s3SjJELnN76yHGKAD/Rj+jhpU+aIFp90xvbb4zRNFha0MwY1cvDkYHqNSZ6QLvCq9KSTJPAm9OOVhzHw/YS7lA==","signatures":[{"sig":"MEUCIQCC43O55xNlUJ3HnciRNe7hl2P/mUdAtcgYSrVAMep1RwIgeuUFnDGdOsKACBMrKR5GvLX0MHkVWJdC5bm+eeBqLXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":470539},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"c8b21ef81e9bef63b9cce92dba9c124357252f2a","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.39.1","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.53","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.39.1"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.8_1779212640882_0.8862145617181698","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@danthegoodman/quick-convex","version":"0.2.9","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.9","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"61aa72fa33c312e2be54dd2790c6714679779bff","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.9.tgz","fileCount":79,"integrity":"sha512-kk8Z6aGafMoIQ4ROao8hud1iOJJcyZqz5yTVP0teN9z0vP3GQEct0anD1xJVlJTDRjGv/PEhpug3XLN5DWyk2g==","signatures":[{"sig":"MEUCIBGG1zXj5+6FuyIFw43LONSLaORmGKziEI6pfnzDhaCaAiEA+BUILFIQJoMc2JAw1Yw3ikpiVQJ3W5lEmRijBBnDE+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473603},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"f08aa75d4bf5c4c7f5b42f7316dc11ec1496b261","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"10.9.2","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.39.1","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.53","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.39.1"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.9_1779212841514_0.27627042242452715","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@danthegoodman/quick-convex","version":"0.2.10","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.10","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"b6b8364c4ac720511e5a94470017600d6b5dad99","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.10.tgz","fileCount":84,"integrity":"sha512-sKOPlFpl79hT083m81o93toqES5sDvdlF0l1Y/AgZfmO82gkzrrOAxtDXr9BoSiWo9eenfqESE/CNgicWed8+Q==","signatures":[{"sig":"MEUCIQDgStXdjwVIUVdbBCZWDZaFot+frJfb9wFSXzG101poIAIgNMq7l5B09BlWmEPNqlc+YeQT8BdP0xLnVKq6RpX7BL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505544},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"8df2a78256961a061760460435ca919da0f04fde","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"11.12.1","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.39.1","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.53","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.39.1"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.10_1780416932270_0.8272775783649087","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@danthegoodman/quick-convex","version":"0.2.11","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.11","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"373d538417604188b4f3be3af6cd49cbb7eb3e2f","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.11.tgz","fileCount":84,"integrity":"sha512-POjgm6uaaCqCiZwVatJCjQfCLSyEUggyda5F05fyLM3KmkWDsj0xwXw/pmTGbXtCyvXWZEaRWiqmT97Ft5PF1A==","signatures":[{"sig":"MEUCID4Eaurf2ROG1BmG3r92DQh9jpttDTKdsFYnbbHfBJFqAiEAo3heQU213feyxHmJD4tkZSSXolOFbiHqrpp57wQ2Dlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513028},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"9b5a1aba3239a78509f8f5ca935ef45c0c2d9aac","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"11.12.1","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.39.1","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.53","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.39.1"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.11_1782247784856_0.49431817836399916","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@danthegoodman/quick-convex","version":"0.2.12","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.12","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"73037ce6d1612021599a202aa351d14dff690130","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.12.tgz","fileCount":84,"integrity":"sha512-fz2QcarkPz245q1T3P363kBAl4GdfOe2o61FV93D0SPo/0+T76yE/YrOHyNYVtDa3rSp/CNjMITTaOGIIO3zzw==","signatures":[{"sig":"MEQCICF3suJAbSe+BB2wilFSI5UtteVLwcqoOsc4OIZWiWjlAiB1dyRGe6XdTOBRxecvvcYcgM/l4xnisiSfPA0ScA/mpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517719},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"c794ae086fb8cfa777c2fa3470c29b606435f928","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"11.12.1","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.39.1","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.53","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.39.1"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.12_1783735513181_0.30505463826469414","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@danthegoodman/quick-convex","version":"0.2.13","keywords":["convex","component"],"license":"Apache-2.0","_id":"@danthegoodman/quick-convex@0.2.13","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"homepage":"https://github.com/danthegoodman1/quick-convex#readme","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"5a639777765f10cfef72ab6d2d3bf00483d652c3","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.13.tgz","fileCount":84,"integrity":"sha512-C8yYY4pLeY1qN8XTU3yaR3RhnM7q8F5W2s0Wz5thoRqYfkyfzOJjN9n/5/pS1YWOvz6Mb0NRuFGbuAte5g5W0Q==","signatures":[{"sig":"MEUCIQDgP93HkiYo5t+u5fI8OqhEoqjufQs1RwP9djvgso7/gQIgHCQo1593rAkjc4AENvyNyOWAh7Lk2Ax7Nv2ckSXyGGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527010},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"8aeca897b942e89671150a9ace5aacc935613327","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"11.12.1","description":"A quick convex component for Convex.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.43.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.55","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.43.0"},"_npmOperationalInternal":{"tmp":"tmp/quick-convex_0.2.13_1786380065325_0.2618482416445753","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"_id":"@danthegoodman/quick-convex@0.2.14","bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"dist":{"shasum":"472657524ea04c7e546187a568a3f43c6b360ea2","tarball":"https://registry.npmjs.org/@danthegoodman/quick-convex/-/quick-convex-0.2.14.tgz","fileCount":85,"integrity":"sha512-E9xs96mlVq4lwrgLP+s9zzYGEK241WvAv3jo5zMW4OyqTKpOAjvW01snjIEE01fRuHciahIiWYcRW7YFLLIO+g==","signatures":[{"sig":"MEUCIQCbvUXbk4u+9ODCWMsU+2pC+ijCfvdWoonhY6LAaL50OgIgdceBH1oGThnIsaFdbE8+jezl2ZYqvkE6GRfsVMjox04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDS2xKGpze+Tloe43m+x6ATEKqaFyW1HKW0qf5wRI4W8QIgBMVbrkgto+zcpVgKL+u3cnkD2rE4uFYen+W356ExXFU="}],"unpackedSize":552861},"name":"@danthegoodman/quick-convex","type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"31a3a085a5b5871ad8fccb693b1e8e9b82399928","license":"Apache-2.0","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text","prepublishOnly":"npm whoami || npm login"},"version":"0.2.14","_npmUser":{"name":"danthegoodman","email":"dan@danthegoodman.com"},"homepage":"https://github.com/danthegoodman1/quick-convex#readme","keywords":["convex","component"],"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"_npmVersion":"11.12.1","description":"A quick convex component for Convex.","directories":{},"maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"_nodeVersion":"24.15.0","dependencies":{"uuid":"^13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.1","react":"^19.2.4","convex":"^1.43.0","eslint":"9.39.2","vitest":"4.0.18","cpy-cli":"^6.0.0","globals":"^17.3.0","prettier":"3.8.1","react-dom":"^19.2.4","@eslint/js":"9.39.2","pkg-pr-new":"^0.0.63","typescript":"5.9.3","@types/node":"^24.10.9","@types/uuid":"^10.0.0","convex-test":"^0.0.55","@types/react":"^19.2.10","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.3","@types/react-dom":"^19.2.3","typescript-eslint":"8.54.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"^1.43.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/quick-convex_0.2.14_1789691898347_0.42769693600480996"}}},"time":{"created":"2026-02-08T15:14:12.020Z","modified":"2026-09-18T00:38:18.600Z","0.1.2":"2026-02-08T15:14:12.232Z","0.1.3":"2026-02-08T17:32:44.197Z","0.1.5":"2026-02-11T00:06:11.286Z","0.2.0":"2026-03-14T22:44:02.963Z","0.2.1":"2026-03-24T22:19:58.613Z","0.2.2":"2026-03-24T23:49:10.522Z","0.2.3":"2026-03-25T00:21:25.206Z","0.2.4":"2026-03-28T01:33:47.065Z","0.2.5":"2026-03-28T02:09:57.345Z","0.2.6":"2026-05-02T22:54:50.552Z","0.2.7":"2026-05-02T23:13:15.197Z","0.2.8":"2026-05-19T17:44:01.028Z","0.2.9":"2026-05-19T17:47:21.690Z","0.2.10":"2026-06-02T16:15:32.404Z","0.2.11":"2026-06-23T20:49:45.024Z","0.2.12":"2026-07-11T02:05:13.373Z","0.2.13":"2026-08-10T16:41:05.444Z","0.2.14":"2026-09-18T00:38:18.428Z"},"bugs":{"url":"https://github.com/danthegoodman1/quick-convex/issues"},"license":"Apache-2.0","homepage":"https://github.com/danthegoodman1/quick-convex#readme","keywords":["convex","component"],"repository":{"url":"git+https://github.com/danthegoodman1/quick-convex.git","type":"git"},"description":"A quick convex component for Convex.","maintainers":[{"name":"danthegoodman","email":"dan@danthegoodman.com"}],"readme":"# QuiCK Convex\n\nA [QuiCK](https://www.foundationdb.org/files/QuiCK.pdf)-style queue implementation as a Convex component.\n\n## Installation\n\n```ts\n// convex/convex.config.ts\nimport { defineApp } from \"convex/server\";\nimport quickConvex from \"@danthegoodman/quick-convex/convex.config.js\";\n\nconst app = defineApp();\napp.use(quickConvex, { name: \"quickVesting\" });\napp.use(quickConvex, { name: \"quickFifo\" });\n\nexport default app;\n```\n\n## Testing with convex-test\n\nRegister each Quick component instance with `convex-test` using the helper from\n`@danthegoodman/quick-convex/test`. Use the same component names you configured\nin `convex.config.ts`.\n\n```ts\nimport { convexTest } from \"convex-test\";\nimport schema from \"./schema.js\";\nimport quickTest from \"@danthegoodman/quick-convex/test\";\n\nconst modules = import.meta.glob(\"./**/*.*s\");\n\nexport function initConvexTest() {\n  const t = convexTest(schema, modules);\n\n  quickTest.register(t, \"quickVesting\");\n  quickTest.register(t, \"quickFifo\");\n\n  return t;\n}\n```\n\nOnce a queue has drained and the component is idle, Quick should settle cleanly\nunder `convex-test` without any extra Quick-specific teardown step.\n\nIf your test intentionally leaves delayed work scheduled for the future, that\nscheduled work will still exist at test end. The teardown fix only covers stale\ninternal Quick reschedules after the component is otherwise idle.\n\n## Quick Class API\n\nUse the class API for enqueueing work:\n\n```ts\nimport { Quick } from \"@danthegoodman/quick-convex\";\nimport { components, api } from \"./_generated/api\";\n\nconst quickVesting = new Quick(components.quickVesting, {\n  defaultOrderBy: \"vesting\",\n  managerSlots: 10,\n  workersPerManager: 25,\n  retryByDefault: true,\n  defaultRetryBehavior: {\n    maxAttempts: 5,\n    initialBackoffMs: 250,\n    base: 2,\n  },\n});\n\nconst quickFifo = new Quick(components.quickFifo, {\n  defaultOrderBy: \"fifo\",\n});\n```\n\n### Worker function contract\n\nWorkers must accept this argument shape:\n\n```ts\n{\n  payload: TPayload;\n  queueId: string;\n}\n```\n\nThis applies to both action and mutation workers.\n\n### Enqueue action worker\n\n```ts\nexport const enqueueEmail = mutation({\n  args: { userId: v.string() },\n  handler: async (ctx, args) => {\n    return await quickVesting.enqueueAction(ctx, {\n      queueId: args.userId,\n      priority: 12,\n      fn: api.jobs.sendEmailWorker,\n      args: { userId: args.userId },\n      runAfter: 5_000,\n    });\n  },\n});\n```\n\n### Enqueue mutation worker\n\n```ts\nexport const enqueueMutationWorker = mutation({\n  args: { userId: v.string() },\n  handler: async (ctx, args) => {\n    return await quickVesting.enqueueMutation(ctx, {\n      queueId: args.userId,\n      fn: api.jobs.processUserMutationWorker,\n      args: { userId: args.userId },\n    });\n  },\n});\n```\n\n### Batch enqueue (multi-function)\n\n`enqueueBatchAction` and `enqueueBatchMutation` accept per-item function refs and dedupe handle creation per unique function in the batch.\n\n```ts\nexport const enqueueBatch = mutation({\n  args: { queueId: v.string() },\n  handler: async (ctx, args) => {\n    return await quickFifo.enqueueBatchAction(ctx, [\n      {\n        queueId: args.queueId,\n        fn: api.jobs.workerA,\n        args: { value: 1 },\n      },\n      {\n        queueId: args.queueId,\n        fn: api.jobs.workerA,\n        args: { value: 2 },\n      },\n      {\n        queueId: args.queueId,\n        fn: api.jobs.workerB,\n        args: { value: 3 },\n      },\n    ]);\n  },\n});\n```\n\n### Retried onComplete callback\n\n`onComplete` is always a mutation handle and runs for both action and mutation workers.\nQuick persists completion state (`phase: \"onComplete\"`) and resumes there after crashes, so completion handlers are retried safely up to 2 times.\n\n```ts\nimport { vOnCompleteArgs } from \"@danthegoodman/quick-convex\";\n\nexport const onEmailComplete = mutation({\n  args: vOnCompleteArgs(v.object({ userId: v.string() })),\n  handler: async (_ctx, args) => {\n    // args: { workId, context, status, result }\n    return null;\n  },\n});\n\nexport const enqueueEmail = mutation({\n  args: { userId: v.string() },\n  handler: async (ctx, args) => {\n    return await quickVesting.enqueueAction(ctx, {\n      queueId: args.userId,\n      fn: api.jobs.sendEmailWorker,\n      args: { userId: args.userId },\n      onComplete: {\n        fn: api.jobs.onEmailComplete,\n        context: { userId: args.userId },\n      },\n    });\n  },\n});\n```\n\n`vOnCompleteArgs()` without a context validator uses `context: any`.\n\n### Retry configuration\n\n- Set class defaults in `new Quick(component, { retryByDefault, defaultRetryBehavior })`.\n- Override per item with `retry`:\n- `retry: false` disables retries for that item.\n- `retry: true` uses class/default retry behavior.\n- `retry: { maxAttempts, initialBackoffMs, base }` sets per-item behavior.\n\n### Runtime manager slots\n\n`managerSlots` controls how many manager actions may claim queue pointers at once.\nSet it to `0` to pause new work without enqueueing a placeholder item. Already\nrunning workers continue until they finish.\n\n```ts\nexport const pauseQuick = mutation({\n  args: {},\n  handler: async (ctx) => {\n    await ctx.runMutation(components.quickVesting.config.update, {\n      managerSlots: 0,\n    });\n  },\n});\n\nexport const resumeQuick = mutation({\n  args: {},\n  handler: async (ctx) => {\n    await ctx.runMutation(components.quickVesting.config.update, {\n      managerSlots: 10,\n    });\n    await ctx.runMutation(components.quickVesting.config.kick, {});\n  },\n});\n```\n\nIf you use the class API, the same control is available as\n`quick.setManagerSlots(ctx, slots)` and `quick.kick(ctx)`.\n\n### Priority in vesting mode\n\n- `priority` is optional on `enqueueAction`, `enqueueMutation`, and batch items.\n- Missing `priority` defaults to `0`.\n- Supported values are integers in `0..15`.\n- Higher numbers are higher priority.\n- Priority only affects `\"vesting\"` mode.\n\n## Queue behavior\n\n- Supports `\"vesting\"` and `\"fifo\"` order modes.\n- FIFO items are ordered by Convex commit timestamp, so concurrent enqueues\n  follow transaction commit order. Items queued by older Quick versions drain\n  before timestamped items after upgrade.\n- Uses pointer-based scanning and leasing for concurrent processing.\n- `managerSlots` controls maximum concurrently running managers (default `10`).\n- `managerSlots: 0` pauses new manager claims until the value is raised and the scanner is kicked.\n- `workersPerManager` controls how many items a manager dequeues per `queueId` pass (default `10`).\n- Includes cron-based recovery and pointer garbage collection.\n\n### Choosing an ordering mode\n\n- Use `\"vesting\"` when throughput is the priority. Ready items can run as soon as they are due, so delayed/retried items do not block newer ready work in the same queue.\n- In `\"vesting\"` mode, ready items are dequeued by `priority` first, then by `vestingTime` within that priority tier.\n- Cross-queue priority is best-effort rather than strict because queue scheduling is still pointer-based.\n- Use `\"fifo\"` when strict per-`queueId` ordering is required. This enforces head-of-line semantics for that ordering domain. In `\"fifo\"` mode, a delayed/retrying head item stalls the rest of that same `queueId` until it is ready again.\n\nIn practice, FIFO queues are often a cleaner and more performant alternative to creating many `maxParallelism: 1` workpools (one per ordering domain). With Quick FIFO, use `queueId` as the domain key (for example a user id, account id, or aggregate id), and each domain (`queueId` value) stays ordered while different domains can still process in parallel.\n\n## Compare to Convex Workpools\n\nQuick is heavily inspired by Convex Workpools and the QuiCK paper. Workpools are excellent and production-proven, and this component builds on many of the same ideas.\n\n### Workpools strengths\n\n- Slightly lighter weight runtime model.\n- Officially maintained by the Convex team.\n- Operationally simpler in many common setups.\n- Production-proven at scale in Convex.\n\n### Workpools edge case to be aware of\n\n- In some bursty scale-up patterns (idle `0` to many scheduled items), contention can appear around work claiming.\n- Today, Workpools do not retry onComplete timeout failures.\n\n### Quick strengths\n\n- Multiple ordering modes, especially strict per-domain FIFO via `queueId`.\n- FIFO is much easier to model than emulating ordering via many `maxParallelism: 1` workpools.\n- Faster and lower contention ramp from idle to heavy load.\n- OnComplete timeout failures are retried up to 2 times.\n- QuiCK model proven at scale at Apple (but not this implementation!)\n\n### Tradeoff to keep in mind\n\n- Quick is a bit heavier per unit work when load is low or not amortized (more queue-management actions/mutations around each job).\n\n## Example\n\nSee `example/convex/example.ts` for end-to-end usage with `Quick`.\n","readmeFilename":"README.md"}