{"_id":"@_all_docs/worker","_rev":"2-7aada66797fe3fe377c8b69b4892ceee","name":"@_all_docs/worker","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@_all_docs/worker","version":"0.1.0","_id":"@_all_docs/worker@0.1.0","maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"dist":{"shasum":"f8d6cee8400f11718fcce18617e4418454958175","tarball":"https://registry.npmjs.org/@_all_docs/worker/-/worker-0.1.0.tgz","fileCount":16,"integrity":"sha512-WovaX+yrW23U0QE+YaesCxFQxyD0WPiY4Qcg21pxpIk6IS0QWxemuskT3l1EtwZz5kHOzfpAFuEILZykBmOl2g==","signatures":[{"sig":"MEUCIQD3Ipc2P+oiuFeMV8v59+ksnBLs9LdPP+o1dMJH56KpIgIgKJaPYHAVyE+QA4a4Jdx4zeB41Ov8RqWWoUuxkaPZj2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38827},"type":"module","_from":"file:_all_docs-worker-0.1.0.tgz","exports":{".":"./index.js","./app":"./app.js","./processor":"./processor.js","./interfaces":"./interfaces.js","./processors":"./processors/index.js"},"scripts":{"test":"node --test test/*.test.js","build":"unbuild","start":"node node.js","build:cf":"unbuild --preset cloudflare","start:dev":"node --watch node.js","docker:run":"docker run -p 8080:8080 -e RUNTIME=cloudrun all-docs-worker","docker:test":"docker run -p 8080:8080 -e RUNTIME=cloudrun -d all-docs-worker && sleep 2 && curl http://localhost:8080/health","build:fastly":"unbuild --preset fastly","docker:build":"docker build -t all-docs-worker ."},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_resolved":"/tmp/3912fc8890e30c9a77a465277dce9b6a/_all_docs-worker-0.1.0.tgz","_integrity":"sha512-WovaX+yrW23U0QE+YaesCxFQxyD0WPiY4Qcg21pxpIk6IS0QWxemuskT3l1EtwZz5kHOzfpAFuEILZykBmOl2g==","_npmVersion":"11.6.0","description":"Edge-compatible worker implementation for processing npm registry data across multiple runtime environments.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"hono":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"unenv":"^1.9.0","unbuild":"^2.0.0","@hono/node-server":"^1.0.0"},"peerDependencies":{"@_all_docs/cache":"0.1.0","@_all_docs/types":"0.1.0","@_all_docs/packument":"0.1.0","@_all_docs/partition":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/worker_0.1.0_1759809928955_0.01404324256802747","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@_all_docs/worker","version":"0.5.1","description":"Multi-runtime worker for _all_docs operations","type":"module","repository":{"type":"git","url":"git+https://github.com/indexzero/_all_docs.git","directory":"workers/worker"},"author":{"name":"Charlie Robbins","email":"npm@charlie.dev"},"license":"Apache-2.0","exports":{".":"./index.js","./app":"./app.js","./processors":"./processors/index.js","./processor":"./processor.js","./interfaces":"./interfaces.js"},"dependencies":{"hono":"^4.0.0"},"devDependencies":{"unenv":"^1.9.0","unbuild":"^2.0.0","@hono/node-server":"^1.0.0"},"peerDependencies":{"@_all_docs/partition":"0.5.1","@_all_docs/packument":"0.5.1","@_all_docs/cache":"0.5.1","@_all_docs/types":"0.5.1"},"scripts":{"test":"node --test test/*.test.js","build":"unbuild","build:cf":"unbuild --preset cloudflare","build:fastly":"unbuild --preset fastly","start":"node node.js","start:dev":"node --watch node.js","docker:build":"docker build -t all-docs-worker .","docker:run":"docker run -p 8080:8080 -e RUNTIME=cloudrun all-docs-worker","docker:test":"docker run -p 8080:8080 -e RUNTIME=cloudrun -d all-docs-worker && sleep 2 && curl http://localhost:8080/health"},"_id":"@_all_docs/worker@0.5.1","bugs":{"url":"https://github.com/indexzero/_all_docs/issues"},"homepage":"https://github.com/indexzero/_all_docs#readme","_integrity":"sha512-l4xNWdmdC87K33Rqignzb2jSgvKEIzvS5In04/VVqOmfe6ApqP5kWiVYFmhzmcBRKNIwq0hGfS3z3Ay/xv5o1g==","_resolved":"/tmp/c8129bc54d981f3b01021cd5249e12b9/_all_docs-worker-0.5.1.tgz","_from":"file:_all_docs-worker-0.5.1.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-l4xNWdmdC87K33Rqignzb2jSgvKEIzvS5In04/VVqOmfe6ApqP5kWiVYFmhzmcBRKNIwq0hGfS3z3Ay/xv5o1g==","shasum":"7e5a58e7fef7a4556f4690095bc243e71344c058","tarball":"https://registry.npmjs.org/@_all_docs/worker/-/worker-0.5.1.tgz","fileCount":16,"unpackedSize":39106,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_all_docs%2fworker@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC7M0rfU1dLfjsXQUuH11/j8UH00uMwYn/KCEVH3ntw5gIhAM0PoyXK0oR8QrIKUTk7cGP2oqCr89SJISQE6EQaPYdV"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d40ff933-1c0e-435f-a6e0-b2db68721e81"}},"directories":{},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/worker_0.5.1_1770010124441_0.222825393911825"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-07T04:05:28.858Z","modified":"2026-02-02T05:28:44.858Z","0.1.0":"2025-10-07T04:05:29.167Z","0.5.1":"2026-02-02T05:28:44.570Z"},"description":"Multi-runtime worker for _all_docs operations","maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"readme":"# @_all_docs/worker\n\nEdge-compatible worker implementation for processing npm registry data across multiple runtime environments.\n\n## Overview\n\nThis package provides a Hono-based HTTP worker that can run on:\n- Node.js\n- Cloudflare Workers\n- Fastly Compute@Edge  \n- Google Cloud Run\n\n## Installation\n\n```sh\npnpm add @_all_docs/worker\n```\n\n## Usage\n\n### Node.js\n\n```js\nimport { serve } from '@hono/node-server';\nimport { app } from '@_all_docs/worker/app';\n\nserve({\n  fetch: app.fetch,\n  port: 3141\n});\n```\n\n### Cloudflare Workers\n\n```js\nimport { app } from '@_all_docs/worker/app';\n\nexport default {\n  fetch: app.fetch\n};\n```\n\n### Processors\n\nThe worker includes three processors for different work item types:\n\n```js\nimport { \n  processPartition, \n  processPackument, \n  processPartitionSet \n} from '@_all_docs/worker/processors';\n\n// Process a partition of _all_docs\nconst result = await processPartition(workItem, env);\n\n// Process a package document\nconst result = await processPackument(workItem, env);\n\n// Process a set of partitions\nconst result = await processPartitionSet(workItem, env, enqueueFunc);\n```\n\n## Environment Variables\n\n- `NPM_ORIGIN` - npm registry origin (default: `https://registry.npmjs.org`)\n- `RUNTIME` - Runtime environment (`node`, `cloudflare`, `fastly`, `cloudrun`)\n- `CACHE_DIR` - Cache directory for Node.js\n- `CACHE_KV` - KV namespace for Cloudflare\n- `CACHE_DICT` - Dictionary for Fastly\n- `CACHE_BUCKET` - GCS bucket for Cloud Run\n- `DEBUG` - Enable debug output\n\n## API Endpoints\n\n- `GET /health` - Health check endpoint\n- `POST /work` - Submit work items for processing\n- `GET /work/:id` - Get work item status\n\n## Structure\n\n```\nworker/\n├── app.js          # Main Hono application\n├── node.js         # Node.js entry point\n├── cloudflare.js   # Cloudflare Workers entry\n├── fastly.js       # Fastly Compute@Edge entry\n├── processors/     # Work item processors\n│   ├── partition.js\n│   ├── packument.js\n│   └── partition-set.js\n└── test/           # Test files\n```\n\n## Building\n\n```sh\n# Build for all targets\npnpm build\n\n# Build for Cloudflare Workers\npnpm build:cf\n\n# Build for Fastly Compute@Edge\npnpm build:fastly\n\n# Build Docker image for Cloud Run\npnpm docker:build\n```\n\n## Testing\n\n```sh\npnpm test\n```\n\n## Docker Support\n\nRun as a containerized service:\n\n```sh\n# Build image\npnpm docker:build\n\n# Run locally\npnpm docker:run\n\n# Test the container\npnpm docker:test\n```\n\n## License\n\nApache-2.0","readmeFilename":"README.md","homepage":"https://github.com/indexzero/_all_docs#readme","repository":{"type":"git","url":"git+https://github.com/indexzero/_all_docs.git","directory":"workers/worker"},"author":{"name":"Charlie Robbins","email":"npm@charlie.dev"},"bugs":{"url":"https://github.com/indexzero/_all_docs/issues"},"license":"Apache-2.0"}