{"_id":"@davidtnfsh/etl-contracts","name":"@davidtnfsh/etl-contracts","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@davidtnfsh/etl-contracts","version":"1.0.0","description":"Shared contracts for ETL job status system","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"keywords":["etl","contracts","types"],"author":"","license":"ISC","peerDependencies":{"zod":"^3.0.0 || ^4.0.0"},"devDependencies":{"typescript":"^5.3.3","zod":"^3.22.4"},"publishConfig":{"access":"public"},"_id":"@davidtnfsh/etl-contracts@1.0.0","gitHead":"b261a808ce97bd163c48df1ac635a7c118a2138b","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Htjqtz+BmYTJnvYsorIoBKecrEPES3PVMO1UsEuXD2wpDsB2JWYereyPijZxHIjl2oUoIg8MGtNAw1Mk8t8mlw==","shasum":"3c987cb5e73e6cbe8cc402ef188d6ba896f0b5af","tarball":"https://registry.npmjs.org/@davidtnfsh/etl-contracts/-/etl-contracts-1.0.0.tgz","fileCount":14,"unpackedSize":11084,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDup94qxeySlirvWMWagS2GcEizkmRbHK231HwS+cSPWQIhAL6WHgEh1wwn5bviyMkmpi94EbtNLhQR6Vu2Pxmk7nDH"}]},"_npmUser":{"name":"davidtnfsh","email":"davidtnfsh@gmail.com"},"directories":{},"maintainers":[{"name":"davidtnfsh","email":"davidtnfsh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/etl-contracts_1.0.0_1767852041151_0.706944344896655"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T06:00:41.013Z","1.0.0":"2026-01-08T06:00:41.294Z","modified":"2026-01-08T06:00:41.647Z"},"maintainers":[{"name":"davidtnfsh","email":"davidtnfsh@gmail.com"}],"description":"Shared contracts for ETL job status system","keywords":["etl","contracts","types"],"license":"ISC","readme":"# @davidtnfsh/etl-contracts\n\nShared TypeScript and Zod contracts for the All Weather ETL job status system.\n\n## Installation\n\n```bash\nnpm install @davidtnfsh/etl-contracts\n```\n\n## Usage\n\n```typescript\nimport { EtlJobStatusSchema, type EtlJobStatus } from '@davidtnfsh/etl-contracts';\n\n// Validate API responses\nconst response = await fetch('/api/jobs/123');\nconst data = await response.json();\nconst validated = EtlJobStatusSchema.parse(data);\n\n// TypeScript types\nconst job: EtlJobStatus = {\n  jobId: 'etl_123',\n  status: 'completed',\n  trigger: 'webhook',\n  createdAt: '2025-01-07T10:00:00Z',\n  recordsProcessed: 100,\n  recordsInserted: 95\n};\n```\n\n## Schemas\n\n- `EtlJobStatusSchema` - Job status response (flat structure)\n- `EtlJobCreatedSchema` - Job creation response\n- `EtlErrorSchema` - Error structure\n- `JobStatusEnum` - Status values: `pending`, `processing`, `completed`, `failed`\n- `ErrorCodeEnum` - Error codes: `API_ERROR`, `VALIDATION_ERROR`, `INTERNAL_ERROR`, `RATE_LIMIT_EXCEEDED`\n\n## Types\n\nAll types are inferred from Zod schemas:\n\n- `EtlJobStatus`\n- `EtlJobCreated`\n- `EtlError`\n- `JobStatus`\n- `ErrorCode`\n\n## License\n\nISC\n","readmeFilename":"README.md","_rev":"1-5559fc58cb6526ad9dfbe36412e0bd88"}