1/**
  2 * Comprehensive dictionary of all supported file types in webui
  3 * Organized by category with TypeScript enums for better type safety
  4 */
  5
  6// File type category enum
  7export enum FileTypeCategory {
  8	IMAGE = 'image',
  9	AUDIO = 'audio',
 10	PDF = 'pdf',
 11	TEXT = 'text'
 12}
 13
 14// Specific file type enums for each category
 15export enum FileTypeImage {
 16	JPEG = 'jpeg',
 17	PNG = 'png',
 18	GIF = 'gif',
 19	WEBP = 'webp',
 20	SVG = 'svg'
 21}
 22
 23export enum FileTypeAudio {
 24	MP3 = 'mp3',
 25	WAV = 'wav',
 26	WEBM = 'webm'
 27}
 28
 29export enum FileTypePdf {
 30	PDF = 'pdf'
 31}
 32
 33export enum FileTypeText {
 34	PLAIN_TEXT = 'plainText',
 35	MARKDOWN = 'md',
 36	ASCIIDOC = 'asciidoc',
 37	JAVASCRIPT = 'js',
 38	TYPESCRIPT = 'ts',
 39	JSX = 'jsx',
 40	TSX = 'tsx',
 41	CSS = 'css',
 42	HTML = 'html',
 43	JSON = 'json',
 44	XML = 'xml',
 45	YAML = 'yaml',
 46	CSV = 'csv',
 47	LOG = 'log',
 48	PYTHON = 'python',
 49	JAVA = 'java',
 50	CPP = 'cpp',
 51	PHP = 'php',
 52	RUBY = 'ruby',
 53	GO = 'go',
 54	RUST = 'rust',
 55	SHELL = 'shell',
 56	SQL = 'sql',
 57	R = 'r',
 58	SCALA = 'scala',
 59	KOTLIN = 'kotlin',
 60	SWIFT = 'swift',
 61	DART = 'dart',
 62	VUE = 'vue',
 63	SVELTE = 'svelte',
 64	LATEX = 'latex',
 65	BIBTEX = 'bibtex',
 66	CUDA = 'cuda',
 67	VULKAN = 'vulkan',
 68	HASKELL = 'haskell',
 69	CSHARP = 'csharp',
 70	PROPERTIES = 'properties'
 71}
 72
 73// File extension enums
 74export enum FileExtensionImage {
 75	JPG = '.jpg',
 76	JPEG = '.jpeg',
 77	PNG = '.png',
 78	GIF = '.gif',
 79	WEBP = '.webp',
 80	SVG = '.svg'
 81}
 82
 83export enum FileExtensionAudio {
 84	MP3 = '.mp3',
 85	WAV = '.wav'
 86}
 87
 88export enum FileExtensionPdf {
 89	PDF = '.pdf'
 90}
 91
 92export enum FileExtensionText {
 93	TXT = '.txt',
 94	MD = '.md',
 95	ADOC = '.adoc',
 96	JS = '.js',
 97	TS = '.ts',
 98	JSX = '.jsx',
 99	TSX = '.tsx',
100	CSS = '.css',
101	HTML = '.html',
102	HTM = '.htm',
103	JSON = '.json',
104	XML = '.xml',
105	YAML = '.yaml',
106	YML = '.yml',
107	CSV = '.csv',
108	LOG = '.log',
109	PY = '.py',
110	JAVA = '.java',
111	CPP = '.cpp',
112	C = '.c',
113	H = '.h',
114	PHP = '.php',
115	RB = '.rb',
116	GO = '.go',
117	RS = '.rs',
118	SH = '.sh',
119	BAT = '.bat',
120	SQL = '.sql',
121	R = '.r',
122	SCALA = '.scala',
123	KT = '.kt',
124	SWIFT = '.swift',
125	DART = '.dart',
126	VUE = '.vue',
127	SVELTE = '.svelte',
128	TEX = '.tex',
129	BIB = '.bib',
130	CU = '.cu',
131	CUH = '.cuh',
132	COMP = '.comp',
133	HPP = '.hpp',
134	HS = '.hs',
135	PROPERTIES = '.properties',
136	CS = '.cs'
137}
138
139// MIME type enums
140export enum MimeTypeApplication {
141	PDF = 'application/pdf'
142}
143
144export enum MimeTypeAudio {
145	MP3_MPEG = 'audio/mpeg',
146	MP3 = 'audio/mp3',
147	MP4 = 'audio/mp4',
148	WAV = 'audio/wav',
149	WEBM = 'audio/webm',
150	WEBM_OPUS = 'audio/webm;codecs=opus'
151}
152
153export enum MimeTypeImage {
154	JPEG = 'image/jpeg',
155	PNG = 'image/png',
156	GIF = 'image/gif',
157	WEBP = 'image/webp',
158	SVG = 'image/svg+xml'
159}
160
161export enum MimeTypeText {
162	PLAIN = 'text/plain',
163	MARKDOWN = 'text/markdown',
164	ASCIIDOC = 'text/asciidoc',
165	JAVASCRIPT = 'text/javascript',
166	JAVASCRIPT_APP = 'application/javascript',
167	TYPESCRIPT = 'text/typescript',
168	JSX = 'text/jsx',
169	TSX = 'text/tsx',
170	CSS = 'text/css',
171	HTML = 'text/html',
172	JSON = 'application/json',
173	XML_TEXT = 'text/xml',
174	XML_APP = 'application/xml',
175	YAML_TEXT = 'text/yaml',
176	YAML_APP = 'application/yaml',
177	CSV = 'text/csv',
178	PYTHON = 'text/x-python',
179	JAVA = 'text/x-java-source',
180	CPP_HDR = 'text/x-c++hdr',
181	CPP_SRC = 'text/x-c++src',
182	CSHARP = 'text/x-csharp',
183	HASKELL = 'text/x-haskell',
184	C_SRC = 'text/x-csrc',
185	C_HDR = 'text/x-chdr',
186	PHP = 'text/x-php',
187	RUBY = 'text/x-ruby',
188	GO = 'text/x-go',
189	RUST = 'text/x-rust',
190	SHELL = 'text/x-shellscript',
191	BAT = 'application/x-bat',
192	SQL = 'text/x-sql',
193	R = 'text/x-r',
194	SCALA = 'text/x-scala',
195	KOTLIN = 'text/x-kotlin',
196	SWIFT = 'text/x-swift',
197	DART = 'text/x-dart',
198	VUE = 'text/x-vue',
199	SVELTE = 'text/x-svelte',
200	TEX = 'text/x-tex',
201	TEX_APP = 'application/x-tex',
202	LATEX = 'application/x-latex',
203	BIBTEX = 'text/x-bibtex',
204	CUDA = 'text/x-cuda',
205	PROPERTIES = 'text/properties'
206}