Download src/utils/permissions/PermissionUpdateSchema.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 2.4 kB
-
https://huggingface.co/chenbhao/codev/resolve/main/src/utils/permissions/PermissionUpdateSchema.ts
- Command line
-
hf download hf://chenbhao/codev/src/utils/permissions/PermissionUpdateSchema.ts
-
curl -L -o PermissionUpdateSchema.ts https://huggingface.co/chenbhao/codev/resolve/main/src/utils/permissions/PermissionUpdateSchema.ts
2.4 kB
| /** | |
| * Zod schemas for permission updates. | |
| * | |
| * This file is intentionally kept minimal with no complex dependencies | |
| * so it can be safely imported by src/types/hooks.ts without creating | |
| * circular dependencies. | |
| */ | |
| import z from 'zod/v4' | |
| // Types extracted to src/types/permissions.ts to break import cycles | |
| import type { | |
| PermissionUpdate, | |
| PermissionUpdateDestination, | |
| } from '../../types/permissions.js' | |
| import { lazySchema } from '../lazySchema.js' | |
| import { externalPermissionModeSchema } from './PermissionMode.js' | |
| import { | |
| permissionBehaviorSchema, | |
| permissionRuleValueSchema, | |
| } from './PermissionRule.js' | |
| // Re-export for backwards compatibility | |
| export type { PermissionUpdate, PermissionUpdateDestination } | |
| /** | |
| * PermissionUpdateDestination is where a new permission rule should be saved to. | |
| */ | |
| export const permissionUpdateDestinationSchema = lazySchema(() => | |
| z.enum([ | |
| // User settings (global) | |
| 'userSettings', | |
| // Project settings (shared per-directory) | |
| 'projectSettings', | |
| // Local settings (gitignored) | |
| 'localSettings', | |
| // In-memory for the current session only | |
| 'session', | |
| // From the command line arguments | |
| 'cliArg', | |
| ]), | |
| ) | |
| export const permissionUpdateSchema = lazySchema(() => | |
| z.discriminatedUnion('type', [ | |
| z.object({ | |
| type: z.literal('addRules'), | |
| rules: z.array(permissionRuleValueSchema()), | |
| behavior: permissionBehaviorSchema(), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| z.object({ | |
| type: z.literal('replaceRules'), | |
| rules: z.array(permissionRuleValueSchema()), | |
| behavior: permissionBehaviorSchema(), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| z.object({ | |
| type: z.literal('removeRules'), | |
| rules: z.array(permissionRuleValueSchema()), | |
| behavior: permissionBehaviorSchema(), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| z.object({ | |
| type: z.literal('setMode'), | |
| mode: externalPermissionModeSchema(), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| z.object({ | |
| type: z.literal('addDirectories'), | |
| directories: z.array(z.string()), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| z.object({ | |
| type: z.literal('removeDirectories'), | |
| directories: z.array(z.string()), | |
| destination: permissionUpdateDestinationSchema(), | |
| }), | |
| ]), | |
| ) | |