Files
adam-acs/app/validators/firmware_catalog.ts
T
Kevin L'HereecandCopilot d1c65dbf1e chore: initial commit — AdonisJS v7 TR-069 ACS
- Docker infrastructure (Dockerfile, docker-compose.yml, genieacs-sim)
- AdonisJS v7 app with Inertia.js + Vue 3
- MongoDB integration
- CWMP/TR-069 state machine engine
- Configuration engine with compliance tracking
- Branding: ADAM ACS (favicon, navbar, locales)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-29 16:46:37 +02:00

46 lines
1.6 KiB
TypeScript

import vine from '@vinejs/vine'
export const createFirmwareEntryValidator = vine.compile(
vine.object({
identifier: vine.string().trim().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/),
productClass: vine.string().trim().minLength(1),
version: vine.string().trim().minLength(1),
downloadUrl: vine.string().trim().url(),
checksum: vine.string().trim().minLength(1),
checksumType: vine.enum(['md5', 'sha256']),
fileSize: vine.number().min(0),
})
)
export const updateFirmwareEntryValidator = vine.compile(
vine.object({
productClass: vine.string().trim().minLength(1).optional(),
version: vine.string().trim().minLength(1).optional(),
downloadUrl: vine.string().trim().url().optional(),
checksum: vine.string().trim().minLength(1).optional(),
checksumType: vine.enum(['md5', 'sha256']).optional(),
fileSize: vine.number().min(0).optional(),
})
)
export const createMigrationRouteValidator = vine.compile(
vine.object({
identifier: vine.string().trim().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/),
productClass: vine.string().trim().minLength(1),
sourceVersionPattern: vine.string().trim().minLength(1),
targetVersion: vine.string().trim().minLength(1),
downloadUrl: vine.string().trim().url(),
priority: vine.number().min(0),
})
)
export const updateMigrationRouteValidator = vine.compile(
vine.object({
productClass: vine.string().trim().minLength(1).optional(),
sourceVersionPattern: vine.string().trim().minLength(1).optional(),
targetVersion: vine.string().trim().minLength(1).optional(),
downloadUrl: vine.string().trim().url().optional(),
priority: vine.number().min(0).optional(),
})
)