Files
adam-acs/app/validators/firmware_catalog.ts
T
Kevin L'Hereec f9e56c78b1 refactor: migrate all internal imports to package.json subpath aliases
- Add #domain, #protocol, #utils aliases to package.json imports map
- Replace all relative imports (./, ../, ../..) in app/ and
  database/mongo_migrations/ with the corresponding #alias imports,
  eliminating relative path traversal across the codebase
- Remove dead code: ConfigurationVersionModel.findByConfigurationIdentifier
  (unused, superseded by paginateVersions) and unused exception classes
  (NotFoundException, UnprocessableEntityException, DatabaseException)
  from app/exceptions/index.ts, keeping only BadRequestException
- Fix pre-existing syntax error in configuration_version.ts (mismatched
  parenthesis) that broke tsc
- Fix eqeqeq violation in configuration_service.ts and isNaN ->
  Number.isNaN in configuration_engine.ts / cwmp-1-0.ts / exchange_controller.ts
- Fix no-shadow violation in cwmp-1-0.ts EventStruct constructor
- Prettier formatting pass on touched files

Validated: tsc --noEmit clean, eslint app/ clean, full test suite green.
2026-07-22 11:45:14 +02:00

52 lines
1.7 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(),
})
)