@d-sports/submissions-contract
Versioned Contract Freeze 2 package for admin submissions clients (d-sports-engage-native and web).
Contents
| Export | Purpose |
|---|---|
contractVersion | Shared string asserted in both repos' CI |
Freeze2RoutePaths / status, action, slot & error-code constants | Thin client vocabulary |
PREVIEW_SIGNED_URL_TTL_SECS / SUBMISSION_UPLOAD_URL_TTL_SECS | Frozen TTL policy |
./openapi.json | Copy of openapi/submissions.v1.json |
fixtures/ | JSON response fixtures per Freeze-2 route |
Source of truth
Zod schemas live in d-sports-api at lib/contracts/submissions/. Regenerate with:
bun run contract:submissions:emit
CI fails if the committed OpenAPI file drifts from regeneration.
Publish
Public npm package under the @d-sports org (same as @d-sports/team-access-contract).
Note: npm publish may be a follow-up if OTP is blocked; file:packages/submissions-contract in api devDependencies is enough to declare packaging Done.
Quick publish only:
cd packages/submissions-contract
npm publish --access public --tag freeze2
Also: ../../docs/plans/2026-08-05-freeze2-packaging-checklist.md.