28 lines
792 B
TypeScript
28 lines
792 B
TypeScript
import { z } from 'zod/v4'
|
|
import { lazySchema } from '../../utils/lazySchema.js'
|
|
|
|
/**
|
|
* Schema for the policy limits API response
|
|
* Only blocked policies are included. If a policy key is absent, it's allowed.
|
|
*/
|
|
export const PolicyLimitsResponseSchema = lazySchema(() =>
|
|
z.object({
|
|
restrictions: z.record(z.string(), z.object({ allowed: z.boolean() })),
|
|
}),
|
|
)
|
|
|
|
export type PolicyLimitsResponse = z.infer<
|
|
ReturnType<typeof PolicyLimitsResponseSchema>
|
|
>
|
|
|
|
/**
|
|
* Result of fetching policy limits
|
|
*/
|
|
export type PolicyLimitsFetchResult = {
|
|
success: boolean
|
|
restrictions?: PolicyLimitsResponse['restrictions'] | null // null means 304 Not Modified (cache is valid)
|
|
etag?: string
|
|
error?: string
|
|
skipRetry?: boolean // If true, don't retry on failure (e.g., auth errors)
|
|
}
|