File size: 1,060 Bytes
064bfd6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import { z } from 'zod/v4'
import { lazySchema } from '../../utils/lazySchema.js'
import type { SettingsJson } from '../../utils/settings/types.js'
/**
* Schema for the remotely managed settings response.
* Note: Uses permissive z.record() instead of SettingsSchema to avoid circular dependency.
* Full validation is performed in index.ts after parsing using SettingsSchema.safeParse().
*/
export const RemoteManagedSettingsResponseSchema = lazySchema(() =>
z.object({
uuid: z.string(), // Settings UUID
checksum: z.string(),
settings: z.record(z.string(), z.unknown()) as z.ZodType<SettingsJson>,
}),
)
export type RemoteManagedSettingsResponse = z.infer<
ReturnType<typeof RemoteManagedSettingsResponseSchema>
>
/**
* Result of fetching remotely managed settings
*/
export type RemoteManagedSettingsFetchResult = {
success: boolean
settings?: SettingsJson | null // null means 304 Not Modified (cache is valid)
checksum?: string
error?: string
skipRetry?: boolean // If true, don't retry on failure (e.g., auth errors)
}
|